Commit graph

245 commits

Author SHA1 Message Date
Matt Van Horn
dd85c4a1b4
fix: support object and array parameters in custom HTTP tools (#373)
* fix: support object and array parameters in custom HTTP tools

* feat(ui): expose object and array types in the custom tool parameter editor

* fix: error handling and schema generation

---------

Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-06-02 11:35:38 +05:30
Abhay Babbar
98d2b24cba
Add Sarvam LLM, update Sarvam STT models, expose usage_info on run detail (#351)
* Add Sarvam LLM provider, update Sarvam STT models, expose usage_info on run detail.
Depends on pipecat PR dograh-hq/pipecat#43 for STT string language support.
Submodule bump will follow after that merges.

* test: cover Sarvam STT language mapping; link Sarvam docs

---------

Co-authored-by: Sabiha Khan <sabihak89@gmail.com>
2026-06-01 10:29:31 +05:30
Abhishek Kumar
fcb7004c7a feat: create tools using MCP 2026-05-31 16:50:44 +05:30
Sabiha Khan
25751efe3c
chore(main): release dograh 1.33.0 (#376) 2026-05-31 13:22:18 +05:30
Abhishek Kumar
78ba62e185 feat: banner if API is not reachable 2026-05-31 13:05:22 +05:30
Sabiha Khan
c4da6d6537
chore(main): release dograh 1.32.0 (#343) 2026-05-28 13:43:50 +05:30
Abhishek
fa2939e98f
fix: speed up multi arch build (#372)
* Speed up multi-arch Docker builds

* Remove temporary Docker workflow branch trigger
2026-05-28 13:43:33 +05:30
nuthalapativarun
62d3749219
feat: add copy-to-clipboard button for inbound webhook URL (#359)
* feat: add copy-to-clipboard button for inbound webhook URL

Users setting up inbound telephony had no easy way to copy the
webhook URL to paste into their provider dashboard. Add a copyable
inbound webhook URL display in the configuration detail card,
following the existing Configuration ID copy button pattern.

* fix: use NEXT_PUBLIC_BACKEND_URL if provided

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-05-27 14:56:02 +05:30
nuthalapativarun
5b61ad645f
feat: stamp API key into model override at save time to survive global provider change (#362)
* fix: stamp API key into model override at save time to survive global provider change

When a workflow overrides the TTS/LLM/STT provider to match the current
global config, the override dict only stores model/voice fields, not the
API key. If the global config later switches to a different provider, the
override can no longer inherit the API key and calls fail.

Fix: enrich_overrides_with_api_keys() copies the global provider's API
key (and other secret fields) into the override dict at workflow-save
time, making the override self-contained regardless of future global
config changes.

* feat: add test coverage and masking logic

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-05-27 14:01:14 +05:30
Abhishek
9675151549
feat: add delete button in an edge in workflow builder (#366)
* Added delete option for edge between two nodes

* Removed extra stack dump file

* chore: advance pipecat submodule to include MiniMax LLM service

* updated pipecat to c771a50e

* fix: simplify edge delete to match node and Backspace UX

Drop the confirmation dialog: node delete and Backspace-on-edge both
delete immediately and rely on undo/redo. The trash button should
behave the same way.

Match the GenericNode toolbar pattern by always rendering the trash
and pencil buttons (no readOnly gate); the edit dialog already
disables Save in readOnly. Wrap the two buttons in a flex container
with a small gap so they don't sit flush against each other.

Revert the manual package-lock version bump; that field is owned by
release-please.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: don't auto-save on edge delete

Persisting the workflow is a separate intent from "delete this edge",
the same way it's separate from "delete this node" (useNodeHandlers
doesn't auto-save either). The Save button in the edit dialog conveys
the save semantics; trash buttons shouldn't piggy-back on them.

After this, all delete paths (node toolbar trash, edge toolbar trash,
Backspace on node, Backspace on edge) mark the workflow dirty and
leave persistence to Cmd+S or the header Save button.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: XI <xman.india@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 19:00:01 +05:30
Abhishek Kumar
3df5730076 feat: add transcript and recording public URLs in API 2026-05-26 15:11:56 +05:30
Abhishek Kumar
7810923bca chore: return formatted transcript url
- Return formatted transcript and recording URL
- Harden campaign dispatcher logic
2026-05-26 13:24:12 +05:30
Abhishek Kumar
ad2fa07058 feat: add google stt and tts. add folders to organize agents 2026-05-22 14:36:50 +05:30
Sabiha Khan
21951eca18
chore(main): release dograh 1.31.0 (#318) 2026-05-21 17:29:59 +05:30
Abhishek Kumar
3da439207c chore: minor UI fixes 2026-05-21 17:20:21 +05:30
Abhishek
d97d1d72cd
feat: add chat based testing for voice agent (#308)
* feat: add backend foundations

* feat: add text chat UI

* chore: simplify the reload behaviour

* fix: fix upgrade banner to be triggered after package upload

* feat: simplify TesterPanel design

* chore: fix formatting and generate client

* chore: fix tracing for text chat mode

* fix: fix revert and edit CTA

* refactor: refactor TesterPanel into smaller components

* feat: enable runtime transition of nodes

* fix: fix review comments
2026-05-21 15:20:02 +05:30
Mohamed-Mamdouh
5f28c1b2a9
feat: add Tuner Integration to Dograh (#311)
* Add tuner integration

* bump pipecat version

* chore: update pipecat submodule to match upstream and use tuner-pipecat-sdk 0.2.0

Update pipecat submodule from 0.0.109.dev23 to 13e98d0d9 (the exact commit
upstream dograh-hq/dograh uses after v1.30.1). This installs pipecat-ai as
1.1.0.post277 via setuptools_scm, satisfying tuner-pipecat-sdk 0.2.0's
pipecat-ai>=1.0.0 requirement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* wire tuner

* feat: refactor integrations into self contained packages

* chore: simplify ensure_public_access_token

* fix: remove NodeSpec and make DTOs the source of truth

* feat: send relevant signal to mcp using to_mcp_dict

* fix: fix tests

* cleanup: remove nango integrations

* feat: add agents.md for integrations

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-05-20 14:37:33 +05:30
Abhishek
151bf77e40
feat: add agent skills to review PR (#320) 2026-05-19 17:02:26 +05:30
Sabiha Khan
8778bb453e
chore: mandate telnyx signature verification (#319) 2026-05-19 16:50:27 +05:30
Paulo Busato Favarato
75839f9de5
feat(mcp): generic MCP tool source with per-node function filtering (#301)
* feat(mcp): generic MCP tool source with per-node function filtering

Adds a Model Context Protocol tool category: connect a customer MCP
server and expose its tools to the agent, with optional per-node
allow-listing of individual MCP functions.

- ToolCategory.MCP enum + alembic migration
- MCP definition validator and collision-safe function-name namespacing
- McpToolSession wrapper: graceful-degrade, per-call open/close lifecycle
- CustomToolManager MCP branch (schemas + proxy handlers)
- Per-node mcp_tool_filters threaded through DTO/graph/engine
- Best-effort discovered_tools catalog cache + POST /tools/{uuid}/mcp/refresh
- UI: MCP create/edit config, tabbed ToolSelector with per-node toggles

* feat: refactor for code standardisation and documentation

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-05-19 16:10:00 +05:30
Sabiha Khan
0097974444
chore(main): release dograh 1.30.1 (#304) 2026-05-17 20:48:55 +05:30
Sabiha Khan
ae3eed1854
chore(main): release dograh 1.30.0 (#287) 2026-05-16 20:10:36 +05:30
Abhishek
2381a803ad
feat: add openai realtime models (#298)
* feat: add openai realtime models

* chore: bump pipecat

* fix: resample telephony audio for openai realtime

* fix: sampling rate fix for openai realtime

* chore: clean up dead code
2026-05-16 18:05:23 +05:30
Abhishek
45b00cd5d0
chore: remove looptalk (#299)
* chore: remove looptalk

Remove looptalk in the current version. We will be rethinking looptalk in a fresh way.

* chore: formatting fix
2026-05-16 17:45:12 +05:30
Sabiha Khan
53f1959edf
chore: override stack provider ui literals to contain Google Business instead of Google (#294) 2026-05-15 16:46:07 +05:30
Abhishek
87699f2dee
chore: refactor setup scrpts (#288)
* refactor setup scrpts

* update docker compose to use dograh-init

* avoid creating unnecessary conf files

* fix local setup script

* add agents.md
2026-05-14 14:45:34 +05:30
Sabiha Khan
80c9f2c2ad
chore(main): release dograh 1.29.0 (#275) 2026-05-13 22:36:07 +05:30
Abhishek Kumar
b728cc4922 chore: fix ARI documentation 2026-05-13 21:53:18 +05:30
Sabiha Khan
b670004725
feat: verify telnyx webhook signature optionally (#279) 2026-05-12 19:47:28 +05:30
spuice
f2cb6499e1
feat: inline rename of workflow on the editor page (#273)
* feat: inline rename of workflow on the editor page

Add a pencil icon next to the workflow name in
WorkflowEditorHeader.tsx. Clicking it swaps the <h1> for an inline
<Input> that saves on Enter or Blur, cancels on Esc, validates
empty/whitespace input, skips no-op renames, rolls back on API
error, and guards against double-submit. Reuses
saveWorkflowConfigurations (the existing rename path used by the
Settings page) — no parallel API call.

Closes https://github.com/dograh-hq/dograh/issues/252.

* refactor: collapse rename state and remove silent config fallback

- WorkflowEditorHeader: replace (isEditingName, nameDraft, nameError,
  isRenaming) with a single discriminated-union state. Error and saving
  were mutually exclusive and both meaningless in display mode; the
  union makes the bad combinations unrepresentable and structurally
  prevents the Enter -> disable-input -> blur -> re-fire race that the
  original code only guarded against by convention.

- RenderWorkflow: drop the `?? DEFAULT_WORKFLOW_CONFIGURATIONS` fallback
  in renameWorkflow. In normal flow the store is initialized before the
  header renders, but if it ever weren't, the fallback would silently
  overwrite the server-side config with defaults. Throw instead so the
  header's existing catch surfaces a toast.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 18:54:12 +05:30
Abhishek Kumar
9389340807 debug: add SentryErrorBoundary 2026-05-12 17:48:01 +05:30
Sabiha Khan
f634a50af3
chore(main): release dograh 1.28.0 (#266) 2026-05-11 17:15:03 +05:30
Abhishek
e2fe1f3cd4
feat: enable FORCE_TURN_RELAY to diagnose turn connectivity for local deployment setups (#272)
* filter out local sdp candidates on non local environment

* feat: add FORCE_TURN_RELAY variable

* add FORCE_TURN_RELAY option in docker-compose

* fix: fix github workflow
2026-05-11 17:13:01 +05:30
Sabiha Khan
01c201bf09
feat: add telnyx webhook api key in telephony config (#270) 2026-05-09 18:03:42 +05:30
Abhishek Kumar
6d93be3ef6 fix: number pool initialization in multi telephony setup
If there are multiple telephony configurations, the form number should be initialized from the campaigns given telephonic configuration rather than the organization default telephonic configuration.
2026-05-08 14:48:53 +05:30
Sabiha Khan
81a363b06e chore: rename deploy/embed widget section to add to website 2026-05-07 14:56:45 +05:30
Abhishek Kumar
0282eb3225 chore: load paginated versions of workflow 2026-05-07 13:43:59 +05:30
Sabiha Khan
d2a119c38a
feat: add headless mode, redesign floating widget, refactor lifecycle callbacks (#268)
* feat: add headless widget for deployment

* feat: call callbacks at the right time

* feat: add onCallConnected & onCallDisconnected callback

* feat: add a button with text for floating widget

* feat: add headless widget for deployment

* feat: call callbacks at the right time

* feat: add onCallConnected & onCallDisconnected callback

* feat: add a button with text for floating widget

* docs: web widget

* fix: format issue in pre-pr drift check

* fix: fix CD to rely on pipecat dev dependey

* chore: update message

---------

Co-authored-by: Abhishek Kumar <abhishek@a6k.me>
2026-05-07 12:23:41 +05:30
Abhishek
d4b6afb020
feat: add logs in campaigns for failure or pausing (#265)
* feat: add logs in campaigns on failure

* chore: bump pipecat

* chore: update format.sh

* chore: fix github workflow

* fix: fix formatting errors
2026-05-05 19:23:50 +05:30
Abhishek Kumar
abfb678b4d chore: bump pipecat 2026-05-05 15:59:12 +05:30
Abhishek Kumar
0d7b225f76 chore: updatae documentation for api trigger 2026-05-04 12:46:11 +05:30
Sabiha Khan
5ad5bbd985
chore(main): release dograh 1.27.0 (#250) 2026-05-02 18:39:44 +05:30
Abhishek
7fd3b96470
feat: agent stream for cloudonix OPBX (#261)
* feat: agent stream for cloudonix OPBX

* feat: make cloudonix app name optional

* feat: create application while configuring telephony config

* fix: get telephony configuration from stamped workflow run

* fix: fix vobiz hangup URL
2026-05-02 15:53:58 +05:30
Abhishek
5cfdbeff02
chore: new telephony config as default (#260)
- Mark first new telephony config as default
- Show telephony config in campaign details
2026-04-30 17:33:16 +05:30
Abhishek
e16f6438bd
feat: refactor telephony to support multiple telephony configurations (#251)
Co-authored-by: Sabiha Khan <sabihak89@gmail.com>
2026-04-29 11:39:57 +05:30
Abhishek Kumar
2f860e7f6d Merge branch 'main' of https://github.com/dograh-hq/dograh 2026-04-25 20:43:41 +05:30
dilipevents2007-cpu
2218ba8ad9
feat: add Plivo telephony provider support (#245)
* Add Plivo telephony provider support

* add Plivo telephony UI, fix audio config, and improve inbound call handling

---------

Co-authored-by: Dilip Tiwari <digitalapache20@gmail.com>
Co-authored-by: Sabiha Khan <sabihak89@gmail.com>
Co-authored-by: Abhishek <abhishek@a6k.me>
2026-04-25 20:41:46 +05:30
Abhishek Kumar
a1d4a1fab2 fix: make trigger paths globally unique 2026-04-25 19:44:44 +05:30
Abhishek Kumar
4171ad7a54 feat: add test mode for API trigger 2026-04-25 16:30:26 +05:30
Sabiha Khan
f7c1f63e1b
feat: add posthog signup and signin events, enable backend posthog events for oss version (#249) 2026-04-24 12:02:52 +05:30