@xopcai/xopc 0.0.142 → 0.0.144

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/README.md +1 -1
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  4. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  5. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  6. package/dist/extensions/telegram/src/plugin.js +1 -1
  7. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  8. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  9. package/dist/extensions/telegram/xopc.extension.json +1 -1
  10. package/dist/extensions/weixin/src/api/api.js +1 -1
  11. package/dist/extensions/weixin/src/plugin.js +1 -1
  12. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  13. package/dist/gateway/static/root/assets/activity-center-store-jITiX2vJ.js +1 -0
  14. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BawPxiu5.js → agent-avatar-dicebear-EAVnrCAs.js} +1 -1
  15. package/dist/gateway/static/root/assets/agents-5rTuJOtT.js +2 -0
  16. package/dist/gateway/static/root/assets/{app-management-settings-panel-81xd1p9R.js → app-management-settings-panel-Bu568NpC.js} +1 -1
  17. package/dist/gateway/static/root/assets/{appearance-settings-DYeQsYU8.js → appearance-settings-DSkm9bp_.js} +1 -1
  18. package/dist/gateway/static/root/assets/apps-page-DWetalKp.js +1 -0
  19. package/dist/gateway/static/root/assets/{archive-plugin-D_oa7oti.js → archive-plugin-C99N0vV6.js} +1 -1
  20. package/dist/gateway/static/root/assets/{attachment-load-Cd-bwI2N.js → attachment-load-CHTDqME5.js} +1 -1
  21. package/dist/gateway/static/root/assets/automation-suggestion-card-CBt6U3-S.js +1 -0
  22. package/dist/gateway/static/root/assets/automations-page-ICUfxeOz.js +4 -0
  23. package/dist/gateway/static/root/assets/{binary-plugins-O8svLKWw.js → binary-plugins-BRtxOLlM.js} +1 -1
  24. package/dist/gateway/static/root/assets/block-editor-CUlXfgXd.js +184 -0
  25. package/dist/gateway/static/root/assets/browser-settings-page-D7Bj4MKi.js +8 -0
  26. package/dist/gateway/static/root/assets/{capability-presets-api-dJy1Eqgx.js → capability-presets-api-Bg1ntFSD.js} +1 -1
  27. package/dist/gateway/static/root/assets/capability-presets-settings-panel-C-8I-Ktn.js +2 -0
  28. package/dist/gateway/static/root/assets/{channel-recipient-api-Bfuhp2ty.js → channel-recipient-api-DuulnhIj.js} +1 -1
  29. package/dist/gateway/static/root/assets/channels-settings-Dm5EqQyK.js +1 -0
  30. package/dist/gateway/static/root/assets/channels-status-swr-B5lVrUsN.js +1 -0
  31. package/dist/gateway/static/root/assets/check-BODqo66o.js +1 -0
  32. package/dist/gateway/static/root/assets/chunk-QUQL4437-DXsxWP7r.js +4 -0
  33. package/dist/gateway/static/root/assets/circle-alert-RzVebuX2.js +1 -0
  34. package/dist/gateway/static/root/assets/connectors-page-BOzjh-OK.js +2 -0
  35. package/dist/gateway/static/root/assets/{desktop-pet-DFMfIb5F.js → desktop-pet-C-Drhqyk.js} +1 -1
  36. package/dist/gateway/static/root/assets/desktop-pet-settings-CRGiolqF.js +1 -0
  37. package/dist/gateway/static/root/assets/{directory-picker-path-field-BrYt1gAr.js → directory-picker-path-field-Dw1L3M84.js} +1 -1
  38. package/dist/gateway/static/root/assets/dist-SwiI0Xu3.js +1 -0
  39. package/dist/gateway/static/root/assets/dreaming-settings-CF21cbjo.js +3 -0
  40. package/dist/gateway/static/root/assets/{extension-debug-page-Bh630pLD.js → extension-debug-page-Dcl8LJG_.js} +1 -1
  41. package/dist/gateway/static/root/assets/extension-page-i_BXmO_x.js +1 -0
  42. package/dist/gateway/static/root/assets/extension-settings-page-CWIi7xsn.js +1 -0
  43. package/dist/gateway/static/root/assets/{fetch-B1WtuprY.js → fetch-8QNN25Sh.js} +1 -1
  44. package/dist/gateway/static/root/assets/{gateway-config-api-De2N821l.js → gateway-config-api-2sLP2kkA.js} +1 -1
  45. package/dist/gateway/static/root/assets/gateway-settings-DMHiZc-2.js +1 -0
  46. package/dist/gateway/static/root/assets/{gateway-startup-retry-nEujFSDj.js → gateway-startup-retry-5YBnS9Fj.js} +1 -1
  47. package/dist/gateway/static/root/assets/goal-create-dialog-CAODVDiA.js +1 -0
  48. package/dist/gateway/static/root/assets/goal-detail-page-_d4DjmeX.js +4 -0
  49. package/dist/gateway/static/root/assets/{goals-config-api-DUy3eEse.js → goals-config-api-B4qeLKQS.js} +1 -1
  50. package/dist/gateway/static/root/assets/goals-page-lgsop664.js +2 -0
  51. package/dist/gateway/static/root/assets/goals-settings-Dx_1ZNgb.js +1 -0
  52. package/dist/gateway/static/root/assets/heartbeat-settings-DeTseEk_.js +1 -0
  53. package/dist/gateway/static/root/assets/index-CphxClbs.css +1 -0
  54. package/dist/gateway/static/root/assets/index-VWvztcst.js +257 -0
  55. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CVIwwM15.js → keyboard-shortcuts-settings-BpwpMmlk.js} +1 -1
  56. package/dist/gateway/static/root/assets/logs-page-9_hbTg3j.js +7 -0
  57. package/dist/gateway/static/root/assets/{markdown-split-B_6us9j7.js → markdown-split-BTRFTK0w.js} +1 -1
  58. package/dist/gateway/static/root/assets/{media-plugins-D_fryIyj.js → media-plugins-BABfIZPU.js} +1 -1
  59. package/dist/gateway/static/root/assets/messages-CzKxM6I4.js +5 -0
  60. package/dist/gateway/static/root/assets/models-hub-panel-B1CUvZxh.js +2 -0
  61. package/dist/gateway/static/root/assets/notes-page-88QBHW9a.js +1 -0
  62. package/dist/gateway/static/root/assets/notes-workbench-CerZOeLW.js +2 -0
  63. package/dist/gateway/static/root/assets/{page-tabs-D_8jGlqx.js → page-tabs-je95DZOf.js} +1 -1
  64. package/dist/gateway/static/root/assets/{preview-open-alternatives-BBLMK8Mp.js → preview-open-alternatives-BJbwi7Rc.js} +1 -1
  65. package/dist/gateway/static/root/assets/project-detail-page-BmrApldl.js +1 -0
  66. package/dist/gateway/static/root/assets/projects-page-tTn-k76N.js +1 -0
  67. package/dist/gateway/static/root/assets/remote-access-hub-DeA2-pOi.js +1 -0
  68. package/dist/gateway/static/root/assets/{save-bar-controls-DVS3FR5r.js → save-bar-controls-qWMQ9mod.js} +1 -1
  69. package/dist/gateway/static/root/assets/{schedule-field-D6vKd6-T.js → schedule-field-kxd270Gs.js} +1 -1
  70. package/dist/gateway/static/root/assets/{schema-form-BPy4lbIh.js → schema-form-DLnD-MuD.js} +1 -1
  71. package/dist/gateway/static/root/assets/sessions-page-D4kvvcL1.js +1 -0
  72. package/dist/gateway/static/root/assets/settings-advanced-gate-CI1OG4gq.js +1 -0
  73. package/dist/gateway/static/root/assets/{settings-collapsible-section-WzdikxPt.js → settings-collapsible-section-DQprvu5J.js} +1 -1
  74. package/dist/gateway/static/root/assets/{settings-form-section-CvfzhBV-.js → settings-form-section-Cqq7Y98y.js} +1 -1
  75. package/dist/gateway/static/root/assets/{settings-loading-skeleton-BxR-Ulhi.js → settings-loading-skeleton-b6rXULL5.js} +1 -1
  76. package/dist/gateway/static/root/assets/settings-page-BtBVz3cX.js +1 -0
  77. package/dist/gateway/static/root/assets/{settings-page-layout-CKefvbYi.js → settings-page-layout-BNJbtklV.js} +1 -1
  78. package/dist/gateway/static/root/assets/setup-status-panel-cmclUJzS.js +1 -0
  79. package/dist/gateway/static/root/assets/share-preview-page--zO-A1W1.js +2 -0
  80. package/dist/gateway/static/root/assets/shares-settings-DNJvqA67.js +1 -0
  81. package/dist/gateway/static/root/assets/skill-reload-api-DWr_0Xgn.js +1 -0
  82. package/dist/gateway/static/root/assets/skills-page-DEGsTbJx.js +2 -0
  83. package/dist/gateway/static/root/assets/{system-settings-panel-BokgAgf7.js → system-settings-panel-Cq9J7i7v.js} +1 -1
  84. package/dist/gateway/static/root/assets/{typed-models-lib-BwHlNL3L.js → typed-models-lib-CdSwi1gT.js} +1 -1
  85. package/dist/gateway/static/root/assets/{use-channel-catalog-DR11ap3A.js → use-channel-catalog-COXIfXcl.js} +1 -1
  86. package/dist/gateway/static/root/assets/user-context-page-C-V73ZaJ.js +1 -0
  87. package/dist/gateway/static/root/assets/user-profile-fields-editor-B1cxoGkh.js +1 -0
  88. package/dist/gateway/static/root/assets/user-profile-settings-panel-B8hlamVB.js +1 -0
  89. package/dist/gateway/static/root/assets/{utils-BKUWB-TT.js → utils-Dx01V8qF.js} +1 -1
  90. package/dist/gateway/static/root/assets/voice-api-key-field-DGpIUelZ.js +1 -0
  91. package/dist/gateway/static/root/assets/with-selector-aYPsXwdl.js +1 -0
  92. package/dist/gateway/static/root/assets/work-item-detail-page-fzWTxF26.js +1 -0
  93. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CL_rnAUB.js → workflow-run-setup-panel-Dt_x8LGg.js} +2 -2
  94. package/dist/gateway/static/root/assets/workflows-page-Bg02zEUh.js +11 -0
  95. package/dist/gateway/static/root/assets/workflows-page-DLioOiRN.css +1 -0
  96. package/dist/gateway/static/root/connector-icons/README.md +11 -0
  97. package/dist/gateway/static/root/connector-icons/airtable.svg +13 -0
  98. package/dist/gateway/static/root/connector-icons/asana.svg +15 -0
  99. package/dist/gateway/static/root/connector-icons/brave-search.svg +1 -0
  100. package/dist/gateway/static/root/connector-icons/clickup.svg +19 -0
  101. package/dist/gateway/static/root/connector-icons/composio.svg +266 -0
  102. package/dist/gateway/static/root/connector-icons/discord.svg +15 -0
  103. package/dist/gateway/static/root/connector-icons/dropbox.svg +152 -0
  104. package/dist/gateway/static/root/connector-icons/excel.svg +56 -0
  105. package/dist/gateway/static/root/connector-icons/fetch.svg +6 -0
  106. package/dist/gateway/static/root/connector-icons/figma.svg +178 -0
  107. package/dist/gateway/static/root/connector-icons/filesystem.svg +6 -0
  108. package/dist/gateway/static/root/connector-icons/github.svg +10 -0
  109. package/dist/gateway/static/root/connector-icons/gmail.svg +3 -0
  110. package/dist/gateway/static/root/connector-icons/google-calendar.svg +3 -0
  111. package/dist/gateway/static/root/connector-icons/google-docs.svg +25 -0
  112. package/dist/gateway/static/root/connector-icons/google-drive.svg +25 -0
  113. package/dist/gateway/static/root/connector-icons/google-sheets.svg +1 -0
  114. package/dist/gateway/static/root/connector-icons/hubspot.svg +142 -0
  115. package/dist/gateway/static/root/connector-icons/jira.svg +15 -0
  116. package/dist/gateway/static/root/connector-icons/linear.svg +5 -0
  117. package/dist/gateway/static/root/connector-icons/memory.svg +5 -0
  118. package/dist/gateway/static/root/connector-icons/microsoft-teams.svg +33 -0
  119. package/dist/gateway/static/root/connector-icons/notion.svg +5 -0
  120. package/dist/gateway/static/root/connector-icons/one-drive.svg +13 -0
  121. package/dist/gateway/static/root/connector-icons/outlook.svg +76 -0
  122. package/dist/gateway/static/root/connector-icons/playwright.svg +9 -0
  123. package/dist/gateway/static/root/connector-icons/salesforce.svg +17 -0
  124. package/dist/gateway/static/root/connector-icons/sequential-thinking.svg +8 -0
  125. package/dist/gateway/static/root/connector-icons/shopify.svg +5 -0
  126. package/dist/gateway/static/root/connector-icons/slack.svg +9 -0
  127. package/dist/gateway/static/root/connector-icons/spotify.svg +43 -0
  128. package/dist/gateway/static/root/connector-icons/stripe.svg +11 -0
  129. package/dist/gateway/static/root/connector-icons/telegram.svg +130 -0
  130. package/dist/gateway/static/root/connector-icons/time.svg +6 -0
  131. package/dist/gateway/static/root/connector-icons/todoist.svg +277 -0
  132. package/dist/gateway/static/root/connector-icons/trello.svg +19 -0
  133. package/dist/gateway/static/root/connector-icons/twitter.svg +128 -0
  134. package/dist/gateway/static/root/connector-icons/whatsapp.svg +61 -0
  135. package/dist/gateway/static/root/connector-icons/youtube.svg +11 -0
  136. package/dist/gateway/static/root/index.html +10 -7
  137. package/dist/package.js +1 -1
  138. package/dist/src/activity/emitter.js +1 -1
  139. package/dist/src/agent/agent-manager.d.ts +2 -0
  140. package/dist/src/agent/agent-manager.js +12 -4
  141. package/dist/src/agent/agent-manager.js.map +1 -1
  142. package/dist/src/agent/background-review/prompts.d.ts +1 -1
  143. package/dist/src/agent/background-review/prompts.js +3 -2
  144. package/dist/src/agent/background-review/prompts.js.map +1 -1
  145. package/dist/src/agent/code-intelligence/binary.js +1 -1
  146. package/dist/src/agent/context/project-context.js +2 -2
  147. package/dist/src/agent/context/workspace-seed.js +2 -2
  148. package/dist/src/agent/embedded/run-for-session.js +1 -1
  149. package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
  150. package/dist/src/agent/embedded/xopc-tools-bridge.d.ts +9 -0
  151. package/dist/src/agent/embedded/xopc-tools-bridge.js +71 -3
  152. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
  153. package/dist/src/agent/goals/post-turn.js +7 -6
  154. package/dist/src/agent/goals/post-turn.js.map +1 -1
  155. package/dist/src/agent/ipc/bus.js +1 -1
  156. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  157. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  158. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  159. package/dist/src/agent/mcp/mcp-transport.js +5 -2
  160. package/dist/src/agent/mcp/mcp-transport.js.map +1 -1
  161. package/dist/src/agent/memory/context/planner.d.ts +1 -0
  162. package/dist/src/agent/memory/context/planner.js +60 -14
  163. package/dist/src/agent/memory/context/planner.js.map +1 -1
  164. package/dist/src/agent/memory/context/types.d.ts +3 -1
  165. package/dist/src/agent/memory/lifecycle.d.ts +11 -0
  166. package/dist/src/agent/memory/lifecycle.js +50 -0
  167. package/dist/src/agent/memory/lifecycle.js.map +1 -0
  168. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  169. package/dist/src/agent/memory/source-origin.d.ts +3 -0
  170. package/dist/src/agent/memory/source-origin.js +19 -0
  171. package/dist/src/agent/memory/source-origin.js.map +1 -0
  172. package/dist/src/agent/memory/understanding/service.js +5 -0
  173. package/dist/src/agent/memory/understanding/service.js.map +1 -1
  174. package/dist/src/agent/memory/user-context-coordinator.js +7 -2
  175. package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
  176. package/dist/src/agent/models/manager.js +1 -1
  177. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  178. package/dist/src/agent/prompt/sections/behavior.d.ts +2 -0
  179. package/dist/src/agent/prompt/sections/behavior.js +30 -1
  180. package/dist/src/agent/prompt/sections/behavior.js.map +1 -1
  181. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  182. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  183. package/dist/src/agent/prompt/service-prompt-builder.js +8 -1
  184. package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
  185. package/dist/src/agent/prompt/system-prompt.d.ts +2 -0
  186. package/dist/src/agent/prompt/system-prompt.js +6 -3
  187. package/dist/src/agent/prompt/system-prompt.js.map +1 -1
  188. package/dist/src/agent/service/process-direct-streaming.js +22 -0
  189. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  190. package/dist/src/agent/service.d.ts +2 -0
  191. package/dist/src/agent/service.js +12 -6
  192. package/dist/src/agent/service.js.map +1 -1
  193. package/dist/src/agent/session/session-inspector.js +2 -2
  194. package/dist/src/agent/skills/hub-pull.js +1 -1
  195. package/dist/src/agent/starter-agents.js +1 -1
  196. package/dist/src/agent/starter-agents.js.map +1 -1
  197. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  198. package/dist/src/agent/tool-manuals/xopc-use.js +1 -1
  199. package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -1
  200. package/dist/src/agent/tools/composio-tool.d.ts +18 -5
  201. package/dist/src/agent/tools/composio-tool.js +252 -35
  202. package/dist/src/agent/tools/composio-tool.js.map +1 -1
  203. package/dist/src/agent/tools/factory.js +7 -3
  204. package/dist/src/agent/tools/factory.js.map +1 -1
  205. package/dist/src/agent/tools/goal-tool.js +2 -2
  206. package/dist/src/agent/tools/index.d.ts +1 -1
  207. package/dist/src/agent/tools/index.js +2 -2
  208. package/dist/src/agent/tools/workflow-tool.d.ts +0 -1
  209. package/dist/src/agent/tools/workflow-tool.js +4 -17
  210. package/dist/src/agent/tools/workflow-tool.js.map +1 -1
  211. package/dist/src/agent/tools/xopc-use-tool.js +1 -1
  212. package/dist/src/agent/workflow/builtins/index.d.ts +2 -28
  213. package/dist/src/agent/workflow/builtins/index.js +226 -41
  214. package/dist/src/agent/workflow/builtins/index.js.map +1 -1
  215. package/dist/src/agent/workflow/catalog.d.ts +32 -34
  216. package/dist/src/agent/workflow/catalog.js +158 -154
  217. package/dist/src/agent/workflow/catalog.js.map +1 -1
  218. package/dist/src/agent/workflow/index.d.ts +4 -6
  219. package/dist/src/agent/workflow/index.js +2 -5
  220. package/dist/src/agent/workflow/snapshot.d.ts +2 -2
  221. package/dist/src/agent/workflow/snapshot.js +2 -2
  222. package/dist/src/agent/workflow/snapshot.js.map +1 -1
  223. package/dist/src/agent/workflow/structured-output-tool.d.ts +2 -2
  224. package/dist/src/agent/workflow/structured-output-tool.js +2 -2
  225. package/dist/src/agent/workflow/structured-output-tool.js.map +1 -1
  226. package/dist/src/agent/workflow/subagent-runner.js +1 -1
  227. package/dist/src/agent/workflow/types.d.ts +31 -26
  228. package/dist/src/agent/workspace-runtime/registry.js +2 -2
  229. package/dist/src/agent-manifest/index.d.ts +1 -0
  230. package/dist/src/agent-manifest/index.js +3 -1
  231. package/dist/src/agent-manifest/index.js.map +1 -1
  232. package/dist/src/agent-manifest/preset-chain.d.ts +10 -0
  233. package/dist/src/agent-manifest/preset-chain.js +32 -0
  234. package/dist/src/agent-manifest/preset-chain.js.map +1 -0
  235. package/dist/src/agent-manifest/resolver.js +3 -10
  236. package/dist/src/agent-manifest/resolver.js.map +1 -1
  237. package/dist/src/agent-manifest/schema.d.ts +4 -4
  238. package/dist/src/automations/api/routes.js +14 -2
  239. package/dist/src/automations/api/routes.js.map +1 -1
  240. package/dist/src/automations/domain/validation.d.ts +14 -14
  241. package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
  242. package/dist/src/automations/service/action-executor.js +2 -2
  243. package/dist/src/browser/cdp-local-launcher.js +1 -1
  244. package/dist/src/browser/providers/browser-ext-install.d.ts +11 -1
  245. package/dist/src/browser/providers/browser-ext-install.js +42 -17
  246. package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
  247. package/dist/src/browser/providers/cloakbrowser.js +2 -2
  248. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  249. package/dist/src/browser/stealth.js +1 -1
  250. package/dist/src/capabilities/store-connector.d.ts +0 -1
  251. package/dist/src/capabilities/store-connector.js +4 -6
  252. package/dist/src/capabilities/store-connector.js.map +1 -1
  253. package/dist/src/chat-commands/agent-edit.js +1 -1
  254. package/dist/src/chat-commands/builtins/config.js +1 -1
  255. package/dist/src/chat-commands/builtins/goal.js +2 -2
  256. package/dist/src/chat-commands/builtins/review.js +72 -73
  257. package/dist/src/chat-commands/builtins/review.js.map +1 -1
  258. package/dist/src/chat-commands/builtins/workflow.js +9 -54
  259. package/dist/src/chat-commands/builtins/workflow.js.map +1 -1
  260. package/dist/src/chat-commands/context.js +1 -1
  261. package/dist/src/cli/commands/agent.js +1 -1
  262. package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -2
  263. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  264. package/dist/src/cli/commands/extension-create.js +2 -2
  265. package/dist/src/cli/commands/extension-create.js.map +1 -1
  266. package/dist/src/cli/commands/extension-marketplace.js +43 -37
  267. package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
  268. package/dist/src/cli/commands/extension-pack.d.ts +6 -0
  269. package/dist/src/cli/commands/extension-pack.js +4 -3
  270. package/dist/src/cli/commands/extension-pack.js.map +1 -1
  271. package/dist/src/cli/commands/goal.js +2 -2
  272. package/dist/src/cli/commands/init.js +1 -1
  273. package/dist/src/cli/commands/project.js +3 -3
  274. package/dist/src/commands/agents.config.d.ts +1 -0
  275. package/dist/src/commands/agents.config.js +1 -0
  276. package/dist/src/commands/agents.config.js.map +1 -1
  277. package/dist/src/config/gateway-bind.js +1 -1
  278. package/dist/src/config/index.js +1 -1
  279. package/dist/src/config/loader.js +1 -1
  280. package/dist/src/config/models-json.js +1 -1
  281. package/dist/src/config/schema.d.ts +6 -6
  282. package/dist/src/config/schema.js +6 -22
  283. package/dist/src/config/schema.js.map +1 -1
  284. package/dist/src/config/web-patch.d.ts +1 -1
  285. package/dist/src/connectors/approval.d.ts +2 -0
  286. package/dist/src/connectors/approval.js +33 -0
  287. package/dist/src/connectors/approval.js.map +1 -0
  288. package/dist/src/connectors/auth-provider-registry.d.ts +9 -0
  289. package/dist/src/connectors/auth-provider-registry.js +17 -0
  290. package/dist/src/connectors/auth-provider-registry.js.map +1 -0
  291. package/dist/src/connectors/builtin-catalog.js +55 -116
  292. package/dist/src/connectors/builtin-catalog.js.map +1 -1
  293. package/dist/src/connectors/catalog.js +7 -2
  294. package/dist/src/connectors/catalog.js.map +1 -1
  295. package/dist/src/connectors/composio-catalog.d.ts +19 -0
  296. package/dist/src/connectors/composio-catalog.js +237 -0
  297. package/dist/src/connectors/composio-catalog.js.map +1 -0
  298. package/dist/src/connectors/composio-logo.d.ts +1 -0
  299. package/dist/src/connectors/composio-logo.js +51 -0
  300. package/dist/src/connectors/composio-logo.js.map +1 -0
  301. package/dist/src/connectors/composio-sessions.d.ts +116 -0
  302. package/dist/src/connectors/composio-sessions.js +296 -0
  303. package/dist/src/connectors/composio-sessions.js.map +1 -0
  304. package/dist/src/connectors/composio-triggers.d.ts +17 -0
  305. package/dist/src/connectors/composio-triggers.js +48 -5
  306. package/dist/src/connectors/composio-triggers.js.map +1 -1
  307. package/dist/src/connectors/composio.d.ts +31 -2
  308. package/dist/src/connectors/composio.js +374 -151
  309. package/dist/src/connectors/composio.js.map +1 -1
  310. package/dist/src/connectors/connector-memory-sync.d.ts +15 -0
  311. package/dist/src/connectors/connector-memory-sync.js +90 -0
  312. package/dist/src/connectors/connector-memory-sync.js.map +1 -0
  313. package/dist/src/connectors/install.js +35 -92
  314. package/dist/src/connectors/install.js.map +1 -1
  315. package/dist/src/connectors/instances.js +6 -2
  316. package/dist/src/connectors/instances.js.map +1 -1
  317. package/dist/src/connectors/integration-strategy.d.ts +3 -0
  318. package/dist/src/connectors/integration-strategy.js +29 -0
  319. package/dist/src/connectors/integration-strategy.js.map +1 -0
  320. package/dist/src/connectors/policy.d.ts +13 -0
  321. package/dist/src/connectors/policy.js +48 -0
  322. package/dist/src/connectors/policy.js.map +1 -0
  323. package/dist/src/connectors/providers.js +1 -1
  324. package/dist/src/connectors/runtime-adapter-registry.d.ts +25 -0
  325. package/dist/src/connectors/runtime-adapter-registry.js +154 -0
  326. package/dist/src/connectors/runtime-adapter-registry.js.map +1 -0
  327. package/dist/src/connectors/types.d.ts +113 -4
  328. package/dist/src/connectors/workflow-preflight.d.ts +20 -0
  329. package/dist/src/connectors/workflow-preflight.js +70 -0
  330. package/dist/src/connectors/workflow-preflight.js.map +1 -0
  331. package/dist/src/daemon/launchd.js +1 -1
  332. package/dist/src/daemon/systemd.js +1 -1
  333. package/dist/src/extensions/discover-extensions.js +1 -1
  334. package/dist/src/extensions/install-transaction.d.ts +16 -0
  335. package/dist/src/extensions/install-transaction.js +76 -0
  336. package/dist/src/extensions/install-transaction.js.map +1 -0
  337. package/dist/src/extensions/install.d.ts +2 -0
  338. package/dist/src/extensions/install.js +23 -1
  339. package/dist/src/extensions/install.js.map +1 -1
  340. package/dist/src/extensions/loader.js +2 -2
  341. package/dist/src/gateway/agents-admin.d.ts +2 -0
  342. package/dist/src/gateway/agents-admin.js +7 -0
  343. package/dist/src/gateway/agents-admin.js.map +1 -1
  344. package/dist/src/gateway/capability-presets-admin.d.ts +11 -0
  345. package/dist/src/gateway/capability-presets-admin.js +11 -4
  346. package/dist/src/gateway/capability-presets-admin.js.map +1 -1
  347. package/dist/src/gateway/chat-stream/mapper.js +17 -0
  348. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  349. package/dist/src/gateway/chat-stream/protocol.d.ts +18 -1
  350. package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -3
  351. package/dist/src/gateway/hono/lib/static-ui.js +1 -1
  352. package/dist/src/gateway/hono/routes/agents.js +3 -0
  353. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  354. package/dist/src/gateway/hono/routes/capability-presets.js +19 -1
  355. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
  356. package/dist/src/gateway/hono/routes/connectors.js +188 -25
  357. package/dist/src/gateway/hono/routes/connectors.js.map +1 -1
  358. package/dist/src/gateway/hono/routes/goals.js +22 -3
  359. package/dist/src/gateway/hono/routes/goals.js.map +1 -1
  360. package/dist/src/gateway/hono/routes/home.d.ts +60 -1
  361. package/dist/src/gateway/hono/routes/home.js +244 -18
  362. package/dist/src/gateway/hono/routes/home.js.map +1 -1
  363. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  364. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  365. package/dist/src/gateway/hono/routes/memory.js +17 -4
  366. package/dist/src/gateway/hono/routes/memory.js.map +1 -1
  367. package/dist/src/gateway/hono/routes/projects.js +106 -5
  368. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  369. package/dist/src/gateway/hono/routes/public-gateway.js +93 -0
  370. package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
  371. package/dist/src/gateway/hono/routes/workflows.js +137 -22
  372. package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
  373. package/dist/src/gateway/hono/routes/you.d.ts +23 -0
  374. package/dist/src/gateway/hono/routes/you.js +538 -0
  375. package/dist/src/gateway/hono/routes/you.js.map +1 -0
  376. package/dist/src/gateway/hono/sse.d.ts +2 -1
  377. package/dist/src/gateway/hono/sse.js +2 -1
  378. package/dist/src/gateway/hono/sse.js.map +1 -1
  379. package/dist/src/gateway/lock.js +1 -1
  380. package/dist/src/gateway/ports.js +1 -1
  381. package/dist/src/gateway/service/marketplace-service.d.ts +13 -1
  382. package/dist/src/gateway/service/marketplace-service.js +96 -40
  383. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  384. package/dist/src/gateway/service.d.ts +2 -0
  385. package/dist/src/gateway/service.js +13 -7
  386. package/dist/src/gateway/service.js.map +1 -1
  387. package/dist/src/goals/goal-service.d.ts +7 -5
  388. package/dist/src/goals/goal-service.js +25 -13
  389. package/dist/src/goals/goal-service.js.map +1 -1
  390. package/dist/src/goals/goal-store.js +46 -7
  391. package/dist/src/goals/goal-store.js.map +1 -1
  392. package/dist/src/goals/goal-workflow-judge.js +1 -1
  393. package/dist/src/goals/types.d.ts +24 -0
  394. package/dist/src/infra/ports.js +1 -1
  395. package/dist/src/infra/ssh-tunnel.js +1 -1
  396. package/dist/src/infra/update-check.js +1 -1
  397. package/dist/src/migrations/runner.js +1 -1
  398. package/dist/src/notes/service.js +3 -3
  399. package/dist/src/notes/store.js +1 -1
  400. package/dist/src/projects/project-service.js +1 -1
  401. package/dist/src/projects/workspace.js +1 -1
  402. package/dist/src/routing/agent-session-key.js +1 -1
  403. package/dist/src/routing/resolve-route.js +1 -1
  404. package/dist/src/routing/resolve-tui-session-key.js +1 -1
  405. package/dist/src/session/init-session-turn.js +1 -1
  406. package/dist/src/session/resolve-session.js +1 -1
  407. package/dist/src/session/session-title.js +2 -2
  408. package/dist/src/session/store.js +1 -1
  409. package/dist/src/storage/sqlite/connection.js +1 -1
  410. package/dist/src/storage/sqlite/connector-repository.d.ts +49 -0
  411. package/dist/src/storage/sqlite/connector-repository.js +385 -0
  412. package/dist/src/storage/sqlite/connector-repository.js.map +1 -0
  413. package/dist/src/storage/sqlite/index.d.ts +3 -0
  414. package/dist/src/storage/sqlite/index.js +4 -1
  415. package/dist/src/storage/sqlite/migrations/030_connectors.sql +94 -0
  416. package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +24 -0
  417. package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +15 -0
  418. package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +6 -0
  419. package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +14 -0
  420. package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +7 -0
  421. package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +12 -0
  422. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  423. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  424. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  425. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  426. package/dist/src/storage/sqlite/row-mappers.js +1 -1
  427. package/dist/src/storage/sqlite/schema.js +1 -1
  428. package/dist/src/storage/sqlite/user-profile-setup-repository.d.ts +3 -0
  429. package/dist/src/storage/sqlite/user-profile-setup-repository.js +34 -0
  430. package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +1 -0
  431. package/dist/src/storage/sqlite/user-trust-repository.d.ts +3 -0
  432. package/dist/src/storage/sqlite/user-trust-repository.js +34 -0
  433. package/dist/src/storage/sqlite/user-trust-repository.js.map +1 -0
  434. package/dist/src/tui/backends/embedded-backend.js +4 -4
  435. package/dist/src/tui/clipboard-image.js +1 -1
  436. package/dist/src/tui/components/assistant-message.js +15 -0
  437. package/dist/src/tui/components/assistant-message.js.map +1 -1
  438. package/dist/src/tui/tui-agent-events.js +85 -1
  439. package/dist/src/tui/tui-agent-events.js.map +1 -1
  440. package/dist/src/tui/tui-command-formatters.js +9 -9
  441. package/dist/src/tui/tui-command-formatters.js.map +1 -1
  442. package/dist/src/tui/tui-commands.js +4 -4
  443. package/dist/src/tui/tui-startup-resources.js +1 -1
  444. package/dist/src/tui/tui.js +1 -1
  445. package/dist/src/user-context/import.d.ts +12 -0
  446. package/dist/src/user-context/import.js +48 -0
  447. package/dist/src/user-context/import.js.map +1 -0
  448. package/dist/src/user-context/profile.d.ts +37 -0
  449. package/dist/src/user-context/profile.js +165 -0
  450. package/dist/src/user-context/profile.js.map +1 -0
  451. package/dist/src/user-context/projection.d.ts +54 -0
  452. package/dist/src/user-context/projection.js +121 -0
  453. package/dist/src/user-context/projection.js.map +1 -0
  454. package/dist/src/user-context/source-recommendations.d.ts +13 -0
  455. package/dist/src/user-context/source-recommendations.js +86 -0
  456. package/dist/src/user-context/source-recommendations.js.map +1 -0
  457. package/dist/src/user-context/trust-policy.d.ts +11 -0
  458. package/dist/src/user-context/trust-policy.js +31 -0
  459. package/dist/src/user-context/trust-policy.js.map +1 -0
  460. package/dist/src/utils/index.js +1 -1
  461. package/dist/src/utils/logger/index.js +1 -1
  462. package/dist/src/utils/logger.js +1 -1
  463. package/dist/src/work-items/work-item-service.js +1 -1
  464. package/dist/src/workflows/authoring/index.d.ts +1 -0
  465. package/dist/src/workflows/authoring/index.js +2 -0
  466. package/dist/src/workflows/authoring/workflow-draft-store.d.ts +33 -0
  467. package/dist/src/workflows/authoring/workflow-draft-store.js +74 -0
  468. package/dist/src/workflows/authoring/workflow-draft-store.js.map +1 -0
  469. package/dist/src/workflows/domain/definition-utils.d.ts +6 -4
  470. package/dist/src/workflows/domain/definition-utils.js +28 -26
  471. package/dist/src/workflows/domain/definition-utils.js.map +1 -1
  472. package/dist/src/workflows/domain/definition.d.ts +79 -6
  473. package/dist/src/workflows/domain/event.d.ts +18 -2
  474. package/dist/src/workflows/domain/index.js +3 -3
  475. package/dist/src/workflows/domain/run.d.ts +16 -2
  476. package/dist/src/workflows/domain/run.js.map +1 -1
  477. package/dist/src/workflows/domain/validation.d.ts +9 -5
  478. package/dist/src/workflows/domain/validation.js +183 -40
  479. package/dist/src/workflows/domain/validation.js.map +1 -1
  480. package/dist/src/workflows/draft/workflow-draft-prompt.d.ts +2 -3
  481. package/dist/src/workflows/draft/workflow-draft-prompt.js +31 -73
  482. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +1 -1
  483. package/dist/src/workflows/draft/workflow-draft-service.js +5 -9
  484. package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -1
  485. package/dist/src/workflows/draft/workflow-draft-validator.js +29 -37
  486. package/dist/src/workflows/draft/workflow-draft-validator.js.map +1 -1
  487. package/dist/src/workflows/draft/workflow-draft.types.d.ts +4 -4
  488. package/dist/src/workflows/engine/projector.js +43 -1
  489. package/dist/src/workflows/engine/projector.js.map +1 -1
  490. package/dist/src/workflows/engine/workflow-engine.d.ts +2 -3
  491. package/dist/src/workflows/engine/workflow-engine.js +24 -4
  492. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  493. package/dist/src/workflows/index.js +4 -7
  494. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +1 -9
  495. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -1
  496. package/dist/src/workflows/runtime/graph-workflow-runtime.d.ts +10 -0
  497. package/dist/src/workflows/runtime/graph-workflow-runtime.js +295 -0
  498. package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +1 -0
  499. package/dist/src/workflows/runtime/index.d.ts +1 -2
  500. package/dist/src/workflows/runtime/index.js +2 -5
  501. package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +5 -8
  502. package/dist/src/workflows/service/workflow-run-service.js +15 -1
  503. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  504. package/dist/src/workflows/service/workflow-run-service.types.d.ts +2 -1
  505. package/dist/src/workflows/service/workflow-session-bridge.js +3 -3
  506. package/package.json +5 -4
  507. package/dist/gateway/static/root/assets/agents-CyvCIHnB.js +0 -2
  508. package/dist/gateway/static/root/assets/apps-page-DK_Vx6nl.js +0 -1
  509. package/dist/gateway/static/root/assets/automation-suggestion-card-B1LV3YYv.js +0 -1
  510. package/dist/gateway/static/root/assets/automations-page-fzrovqhv.js +0 -4
  511. package/dist/gateway/static/root/assets/block-editor-Dhj5f4Bx.js +0 -184
  512. package/dist/gateway/static/root/assets/browser-settings-page-BDn-n-UB.js +0 -8
  513. package/dist/gateway/static/root/assets/capability-presets-settings-panel-Co5ipo_Q.js +0 -1
  514. package/dist/gateway/static/root/assets/channels-settings-BWlpaxg9.js +0 -1
  515. package/dist/gateway/static/root/assets/channels-status-swr-D_jkIZLV.js +0 -1
  516. package/dist/gateway/static/root/assets/connectors-page-BcekbW4q.js +0 -2
  517. package/dist/gateway/static/root/assets/desktop-pet-settings-BJCUuL8Y.js +0 -1
  518. package/dist/gateway/static/root/assets/dist-Mys7eFJ5.js +0 -1
  519. package/dist/gateway/static/root/assets/dreaming-settings-BN1Z2mIo.js +0 -3
  520. package/dist/gateway/static/root/assets/extension-page-B-1KxvVy.js +0 -1
  521. package/dist/gateway/static/root/assets/extension-settings-page-BF9NACI3.js +0 -1
  522. package/dist/gateway/static/root/assets/gateway-settings-DN9sNREz.js +0 -1
  523. package/dist/gateway/static/root/assets/goal-create-dialog-BpoQW8cD.js +0 -1
  524. package/dist/gateway/static/root/assets/goal-detail-page-CBRSPd0b.js +0 -4
  525. package/dist/gateway/static/root/assets/goals-page-BCcBi407.js +0 -2
  526. package/dist/gateway/static/root/assets/goals-settings-pkTXzXkh.js +0 -1
  527. package/dist/gateway/static/root/assets/heartbeat-settings-ezsufgLQ.js +0 -1
  528. package/dist/gateway/static/root/assets/index-B8s8Pq5U.css +0 -1
  529. package/dist/gateway/static/root/assets/index-DcUaXYeb.js +0 -262
  530. package/dist/gateway/static/root/assets/logs-page-DQtTRXtj.js +0 -7
  531. package/dist/gateway/static/root/assets/messages-BXNELNBa.js +0 -3
  532. package/dist/gateway/static/root/assets/models-hub-panel-BP2M9n6Q.js +0 -2
  533. package/dist/gateway/static/root/assets/notes-page-CspveYaO.js +0 -1
  534. package/dist/gateway/static/root/assets/notes-workbench-BHwzJ0OC.js +0 -2
  535. package/dist/gateway/static/root/assets/project-detail-page-Dy3rsobs.js +0 -1
  536. package/dist/gateway/static/root/assets/projects-page-CWKpPE0L.js +0 -1
  537. package/dist/gateway/static/root/assets/remote-access-hub-CqNRyXEo.js +0 -1
  538. package/dist/gateway/static/root/assets/sessions-page-MEME7ivF.js +0 -1
  539. package/dist/gateway/static/root/assets/settings-advanced-gate-JVd0qaSF.js +0 -1
  540. package/dist/gateway/static/root/assets/settings-page-DYEbB1EV.js +0 -1
  541. package/dist/gateway/static/root/assets/setup-status-panel-dWN8BJ3z.js +0 -1
  542. package/dist/gateway/static/root/assets/share-preview-page-D8foINzP.js +0 -2
  543. package/dist/gateway/static/root/assets/shares-settings-Tgbv1s7G.js +0 -1
  544. package/dist/gateway/static/root/assets/skill-reload-api-D_YK0b_Z.js +0 -1
  545. package/dist/gateway/static/root/assets/skills-page-DGytfoZK.js +0 -2
  546. package/dist/gateway/static/root/assets/toast-z0toXu32.js +0 -1
  547. package/dist/gateway/static/root/assets/user-profile-settings-panel-8YtygcJp.js +0 -1
  548. package/dist/gateway/static/root/assets/voice-api-key-field-BVH71EFf.js +0 -1
  549. package/dist/gateway/static/root/assets/work-item-detail-page-JeTE7XNM.js +0 -1
  550. package/dist/gateway/static/root/assets/workflow-start-dialog-_u8Uc1ze.js +0 -1
  551. package/dist/gateway/static/root/assets/workflows-page-ixgk_y1l.js +0 -18
  552. package/dist/src/agent/workflow/builtins/audit-repo.d.ts +0 -13
  553. package/dist/src/agent/workflow/builtins/audit-repo.js +0 -183
  554. package/dist/src/agent/workflow/builtins/audit-repo.js.map +0 -1
  555. package/dist/src/agent/workflow/builtins/client-proposal.d.ts +0 -12
  556. package/dist/src/agent/workflow/builtins/client-proposal.js +0 -164
  557. package/dist/src/agent/workflow/builtins/client-proposal.js.map +0 -1
  558. package/dist/src/agent/workflow/builtins/competitor-scan.d.ts +0 -12
  559. package/dist/src/agent/workflow/builtins/competitor-scan.js +0 -164
  560. package/dist/src/agent/workflow/builtins/competitor-scan.js.map +0 -1
  561. package/dist/src/agent/workflow/builtins/content-draft.d.ts +0 -13
  562. package/dist/src/agent/workflow/builtins/content-draft.js +0 -159
  563. package/dist/src/agent/workflow/builtins/content-draft.js.map +0 -1
  564. package/dist/src/agent/workflow/builtins/content-repurpose.d.ts +0 -11
  565. package/dist/src/agent/workflow/builtins/content-repurpose.js +0 -146
  566. package/dist/src/agent/workflow/builtins/content-repurpose.js.map +0 -1
  567. package/dist/src/agent/workflow/builtins/debug-incident.d.ts +0 -13
  568. package/dist/src/agent/workflow/builtins/debug-incident.js +0 -177
  569. package/dist/src/agent/workflow/builtins/debug-incident.js.map +0 -1
  570. package/dist/src/agent/workflow/builtins/decision-compare.d.ts +0 -13
  571. package/dist/src/agent/workflow/builtins/decision-compare.js +0 -187
  572. package/dist/src/agent/workflow/builtins/decision-compare.js.map +0 -1
  573. package/dist/src/agent/workflow/builtins/implementation-plan.d.ts +0 -12
  574. package/dist/src/agent/workflow/builtins/implementation-plan.js +0 -185
  575. package/dist/src/agent/workflow/builtins/implementation-plan.js.map +0 -1
  576. package/dist/src/agent/workflow/builtins/inbox-triage.d.ts +0 -11
  577. package/dist/src/agent/workflow/builtins/inbox-triage.js +0 -158
  578. package/dist/src/agent/workflow/builtins/inbox-triage.js.map +0 -1
  579. package/dist/src/agent/workflow/builtins/meeting-prep.d.ts +0 -12
  580. package/dist/src/agent/workflow/builtins/meeting-prep.js +0 -152
  581. package/dist/src/agent/workflow/builtins/meeting-prep.js.map +0 -1
  582. package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +0 -14
  583. package/dist/src/agent/workflow/builtins/multi-perspective-review.js +0 -171
  584. package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +0 -1
  585. package/dist/src/agent/workflow/builtins/offer-design.d.ts +0 -12
  586. package/dist/src/agent/workflow/builtins/offer-design.js +0 -170
  587. package/dist/src/agent/workflow/builtins/offer-design.js.map +0 -1
  588. package/dist/src/agent/workflow/builtins/pr-review.d.ts +0 -12
  589. package/dist/src/agent/workflow/builtins/pr-review.js +0 -178
  590. package/dist/src/agent/workflow/builtins/pr-review.js.map +0 -1
  591. package/dist/src/agent/workflow/builtins/release-check.d.ts +0 -11
  592. package/dist/src/agent/workflow/builtins/release-check.js +0 -174
  593. package/dist/src/agent/workflow/builtins/release-check.js.map +0 -1
  594. package/dist/src/agent/workflow/builtins/research.d.ts +0 -13
  595. package/dist/src/agent/workflow/builtins/research.js +0 -188
  596. package/dist/src/agent/workflow/builtins/research.js.map +0 -1
  597. package/dist/src/agent/workflow/builtins/weekly-review.d.ts +0 -12
  598. package/dist/src/agent/workflow/builtins/weekly-review.js +0 -139
  599. package/dist/src/agent/workflow/builtins/weekly-review.js.map +0 -1
  600. package/dist/src/agent/workflow/last-run-memory.d.ts +0 -42
  601. package/dist/src/agent/workflow/last-run-memory.js +0 -60
  602. package/dist/src/agent/workflow/last-run-memory.js.map +0 -1
  603. package/dist/src/agent/workflow/lint.d.ts +0 -38
  604. package/dist/src/agent/workflow/lint.js +0 -74
  605. package/dist/src/agent/workflow/lint.js.map +0 -1
  606. package/dist/src/agent/workflow/meta-locale.d.ts +0 -12
  607. package/dist/src/agent/workflow/meta-locale.js +0 -62
  608. package/dist/src/agent/workflow/meta-locale.js.map +0 -1
  609. package/dist/src/agent/workflow/parser.d.ts +0 -20
  610. package/dist/src/agent/workflow/parser.js +0 -152
  611. package/dist/src/agent/workflow/parser.js.map +0 -1
  612. package/dist/src/agent/workflow/runtime.d.ts +0 -34
  613. package/dist/src/agent/workflow/runtime.js +0 -402
  614. package/dist/src/agent/workflow/runtime.js.map +0 -1
  615. package/dist/src/connectors/oauth.d.ts +0 -22
  616. package/dist/src/connectors/oauth.js +0 -99
  617. package/dist/src/connectors/oauth.js.map +0 -1
  618. package/dist/src/workflows/runtime/script-runtime.d.ts +0 -3
  619. package/dist/src/workflows/runtime/script-runtime.js +0 -3
  620. package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +0 -5
  621. package/dist/src/workflows/runtime/script-workflow-runtime.js +0 -15
  622. package/dist/src/workflows/runtime/script-workflow-runtime.js.map +0 -1
@@ -0,0 +1 @@
1
+ export * from './workflow-draft-store.js';
@@ -0,0 +1,2 @@
1
+ import { WorkflowDraftConflictError, WorkflowDraftStore } from "./workflow-draft-store.js";
2
+ export { WorkflowDraftConflictError, WorkflowDraftStore };
@@ -0,0 +1,33 @@
1
+ import type { WorkflowDefinitionManifest, WorkflowGraph } from '../domain/definition.js';
2
+ export interface WorkflowAuthoringDraft {
3
+ id: string;
4
+ workflowName: string;
5
+ graph: WorkflowGraph;
6
+ manifest: WorkflowDefinitionManifest;
7
+ baseRevision: number;
8
+ createdAtMs: number;
9
+ updatedAtMs: number;
10
+ }
11
+ export interface SaveWorkflowAuthoringDraftInput {
12
+ id?: string;
13
+ workflowName: string;
14
+ graph: WorkflowGraph;
15
+ manifest?: WorkflowDefinitionManifest;
16
+ baseRevision?: number;
17
+ expectedUpdatedAtMs?: number;
18
+ }
19
+ export declare class WorkflowDraftStore {
20
+ private readonly draftsDir;
21
+ constructor(options?: {
22
+ userDir?: string;
23
+ });
24
+ list(workflowName?: string): WorkflowAuthoringDraft[];
25
+ get(id: string): WorkflowAuthoringDraft | null;
26
+ save(input: SaveWorkflowAuthoringDraftInput): WorkflowAuthoringDraft;
27
+ remove(id: string): boolean;
28
+ private readFile;
29
+ }
30
+ export declare class WorkflowDraftConflictError extends Error {
31
+ readonly currentUpdatedAtMs?: number;
32
+ constructor(currentUpdatedAtMs?: number);
33
+ }
@@ -0,0 +1,74 @@
1
+ import { defaultUserDir } from "../../agent/workflow/catalog.js";
2
+ import { join } from "node:path";
3
+ import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
4
+ import { randomUUID } from "node:crypto";
5
+ //#region src/workflows/authoring/workflow-draft-store.ts
6
+ var WorkflowDraftStore = class {
7
+ draftsDir;
8
+ constructor(options = {}) {
9
+ this.draftsDir = join(options.userDir ?? defaultUserDir(), ".drafts");
10
+ }
11
+ list(workflowName) {
12
+ if (!existsSync(this.draftsDir)) return [];
13
+ return readdirSync(this.draftsDir).filter((file) => file.endsWith(".json")).map((file) => this.readFile(join(this.draftsDir, file))).filter((draft) => Boolean(draft) && (!workflowName || draft.workflowName === workflowName)).sort((left, right) => right.updatedAtMs - left.updatedAtMs);
14
+ }
15
+ get(id) {
16
+ requireDraftId(id);
17
+ return this.readFile(join(this.draftsDir, `${id}.json`));
18
+ }
19
+ save(input) {
20
+ if (!input.graph || input.graph.schemaVersion !== 1 || !Array.isArray(input.graph.nodes) || !Array.isArray(input.graph.edges)) throw new Error("workflow draft graph is invalid");
21
+ const id = input.id ?? randomUUID();
22
+ requireDraftId(id);
23
+ const existing = this.get(id);
24
+ if (input.expectedUpdatedAtMs !== void 0 && input.expectedUpdatedAtMs !== existing?.updatedAtMs) throw new WorkflowDraftConflictError(existing?.updatedAtMs);
25
+ const now = Math.max(Date.now(), (existing?.updatedAtMs ?? 0) + 1);
26
+ const draft = {
27
+ id,
28
+ workflowName: input.workflowName.trim(),
29
+ graph: structuredClone(input.graph),
30
+ manifest: structuredClone(input.manifest ?? {}),
31
+ baseRevision: input.baseRevision ?? existing?.baseRevision ?? 0,
32
+ createdAtMs: existing?.createdAtMs ?? now,
33
+ updatedAtMs: now
34
+ };
35
+ if (!draft.workflowName) throw new Error("workflowName is required");
36
+ mkdirSync(this.draftsDir, { recursive: true });
37
+ writeJsonAtomic(join(this.draftsDir, `${id}.json`), draft);
38
+ return draft;
39
+ }
40
+ remove(id) {
41
+ requireDraftId(id);
42
+ const path = join(this.draftsDir, `${id}.json`);
43
+ if (!existsSync(path)) return false;
44
+ unlinkSync(path);
45
+ return true;
46
+ }
47
+ readFile(path) {
48
+ try {
49
+ const value = JSON.parse(readFileSync(path, "utf-8"));
50
+ return value && typeof value.id === "string" && value.graph?.schemaVersion === 1 ? value : null;
51
+ } catch {
52
+ return null;
53
+ }
54
+ }
55
+ };
56
+ var WorkflowDraftConflictError = class extends Error {
57
+ constructor(currentUpdatedAtMs) {
58
+ super("workflow draft was changed by another editor");
59
+ this.currentUpdatedAtMs = currentUpdatedAtMs;
60
+ this.name = "WorkflowDraftConflictError";
61
+ }
62
+ };
63
+ function requireDraftId(id) {
64
+ if (!/^[a-zA-Z0-9_-]+$/.test(id)) throw new Error("invalid workflow draft id");
65
+ }
66
+ function writeJsonAtomic(path, value) {
67
+ const temporaryPath = `${path}.${randomUUID()}.tmp`;
68
+ writeFileSync(temporaryPath, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
69
+ renameSync(temporaryPath, path);
70
+ }
71
+ //#endregion
72
+ export { WorkflowDraftConflictError, WorkflowDraftStore };
73
+
74
+ //# sourceMappingURL=workflow-draft-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-draft-store.js","names":[],"sources":["../../../../src/workflows/authoring/workflow-draft-store.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\nimport { defaultUserDir } from '../../agent/workflow/catalog.js';\nimport type { WorkflowDefinitionManifest, WorkflowGraph } from '../domain/definition.js';\n\nexport interface WorkflowAuthoringDraft {\n id: string;\n workflowName: string;\n graph: WorkflowGraph;\n manifest: WorkflowDefinitionManifest;\n baseRevision: number;\n createdAtMs: number;\n updatedAtMs: number;\n}\n\nexport interface SaveWorkflowAuthoringDraftInput {\n id?: string;\n workflowName: string;\n graph: WorkflowGraph;\n manifest?: WorkflowDefinitionManifest;\n baseRevision?: number;\n expectedUpdatedAtMs?: number;\n}\n\nexport class WorkflowDraftStore {\n private readonly draftsDir: string;\n\n constructor(options: { userDir?: string } = {}) {\n this.draftsDir = join(options.userDir ?? defaultUserDir(), '.drafts');\n }\n\n list(workflowName?: string): WorkflowAuthoringDraft[] {\n if (!existsSync(this.draftsDir)) return [];\n return readdirSync(this.draftsDir)\n .filter((file) => file.endsWith('.json'))\n .map((file) => this.readFile(join(this.draftsDir, file)))\n .filter((draft): draft is WorkflowAuthoringDraft => Boolean(draft) && (!workflowName || draft.workflowName === workflowName))\n .sort((left, right) => right.updatedAtMs - left.updatedAtMs);\n }\n\n get(id: string): WorkflowAuthoringDraft | null {\n requireDraftId(id);\n return this.readFile(join(this.draftsDir, `${id}.json`));\n }\n\n save(input: SaveWorkflowAuthoringDraftInput): WorkflowAuthoringDraft {\n if (!input.graph || input.graph.schemaVersion !== 1 || !Array.isArray(input.graph.nodes) || !Array.isArray(input.graph.edges)) {\n throw new Error('workflow draft graph is invalid');\n }\n const id = input.id ?? randomUUID();\n requireDraftId(id);\n const existing = this.get(id);\n if (input.expectedUpdatedAtMs !== undefined && input.expectedUpdatedAtMs !== existing?.updatedAtMs) {\n throw new WorkflowDraftConflictError(existing?.updatedAtMs);\n }\n const now = Math.max(Date.now(), (existing?.updatedAtMs ?? 0) + 1);\n const draft: WorkflowAuthoringDraft = {\n id,\n workflowName: input.workflowName.trim(),\n graph: structuredClone(input.graph),\n manifest: structuredClone(input.manifest ?? {}),\n baseRevision: input.baseRevision ?? existing?.baseRevision ?? 0,\n createdAtMs: existing?.createdAtMs ?? now,\n updatedAtMs: now,\n };\n if (!draft.workflowName) throw new Error('workflowName is required');\n mkdirSync(this.draftsDir, { recursive: true });\n writeJsonAtomic(join(this.draftsDir, `${id}.json`), draft);\n return draft;\n }\n\n remove(id: string): boolean {\n requireDraftId(id);\n const path = join(this.draftsDir, `${id}.json`);\n if (!existsSync(path)) return false;\n unlinkSync(path);\n return true;\n }\n\n private readFile(path: string): WorkflowAuthoringDraft | null {\n try {\n const value = JSON.parse(readFileSync(path, 'utf-8')) as WorkflowAuthoringDraft;\n return value && typeof value.id === 'string' && value.graph?.schemaVersion === 1 ? value : null;\n } catch {\n return null;\n }\n }\n}\n\nexport class WorkflowDraftConflictError extends Error {\n constructor(readonly currentUpdatedAtMs?: number) {\n super('workflow draft was changed by another editor');\n this.name = 'WorkflowDraftConflictError';\n }\n}\n\nfunction requireDraftId(id: string): void {\n if (!/^[a-zA-Z0-9_-]+$/.test(id)) throw new Error('invalid workflow draft id');\n}\n\nfunction writeJsonAtomic(path: string, value: unknown): void {\n const temporaryPath = `${path}.${randomUUID()}.tmp`;\n writeFileSync(temporaryPath, `${JSON.stringify(value, null, 2)}\\n`, 'utf-8');\n renameSync(temporaryPath, path);\n}\n"],"mappings":";;;;;AA0BA,IAAa,qBAAb,MAAgC;CAC9B;CAEA,YAAY,UAAgC,EAAE,EAAE;AAC9C,OAAK,YAAY,KAAK,QAAQ,WAAW,gBAAgB,EAAE,UAAU;;CAGvE,KAAK,cAAiD;AACpD,MAAI,CAAC,WAAW,KAAK,UAAU,CAAE,QAAO,EAAE;AAC1C,SAAO,YAAY,KAAK,UAAU,CAC/B,QAAQ,SAAS,KAAK,SAAS,QAAQ,CAAC,CACxC,KAAK,SAAS,KAAK,SAAS,KAAK,KAAK,WAAW,KAAK,CAAC,CAAC,CACxD,QAAQ,UAA2C,QAAQ,MAAM,KAAK,CAAC,gBAAgB,MAAM,iBAAiB,cAAc,CAC5H,MAAM,MAAM,UAAU,MAAM,cAAc,KAAK,YAAY;;CAGhE,IAAI,IAA2C;AAC7C,iBAAe,GAAG;AAClB,SAAO,KAAK,SAAS,KAAK,KAAK,WAAW,GAAG,GAAG,OAAO,CAAC;;CAG1D,KAAK,OAAgE;AACnE,MAAI,CAAC,MAAM,SAAS,MAAM,MAAM,kBAAkB,KAAK,CAAC,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI,CAAC,MAAM,QAAQ,MAAM,MAAM,MAAM,CAC3H,OAAM,IAAI,MAAM,kCAAkC;EAEpD,MAAM,KAAK,MAAM,MAAM,YAAY;AACnC,iBAAe,GAAG;EAClB,MAAM,WAAW,KAAK,IAAI,GAAG;AAC7B,MAAI,MAAM,wBAAwB,KAAA,KAAa,MAAM,wBAAwB,UAAU,YACrF,OAAM,IAAI,2BAA2B,UAAU,YAAY;EAE7D,MAAM,MAAM,KAAK,IAAI,KAAK,KAAK,GAAG,UAAU,eAAe,KAAK,EAAE;EAClE,MAAM,QAAgC;GACpC;GACA,cAAc,MAAM,aAAa,MAAM;GACvC,OAAO,gBAAgB,MAAM,MAAM;GACnC,UAAU,gBAAgB,MAAM,YAAY,EAAE,CAAC;GAC/C,cAAc,MAAM,gBAAgB,UAAU,gBAAgB;GAC9D,aAAa,UAAU,eAAe;GACtC,aAAa;GACd;AACD,MAAI,CAAC,MAAM,aAAc,OAAM,IAAI,MAAM,2BAA2B;AACpE,YAAU,KAAK,WAAW,EAAE,WAAW,MAAM,CAAC;AAC9C,kBAAgB,KAAK,KAAK,WAAW,GAAG,GAAG,OAAO,EAAE,MAAM;AAC1D,SAAO;;CAGT,OAAO,IAAqB;AAC1B,iBAAe,GAAG;EAClB,MAAM,OAAO,KAAK,KAAK,WAAW,GAAG,GAAG,OAAO;AAC/C,MAAI,CAAC,WAAW,KAAK,CAAE,QAAO;AAC9B,aAAW,KAAK;AAChB,SAAO;;CAGT,SAAiB,MAA6C;AAC5D,MAAI;GACF,MAAM,QAAQ,KAAK,MAAM,aAAa,MAAM,QAAQ,CAAC;AACrD,UAAO,SAAS,OAAO,MAAM,OAAO,YAAY,MAAM,OAAO,kBAAkB,IAAI,QAAQ;UACrF;AACN,UAAO;;;;AAKb,IAAa,6BAAb,cAAgD,MAAM;CACpD,YAAY,oBAAsC;AAChD,QAAM,+CAA+C;AADlC,OAAA,qBAAA;AAEnB,OAAK,OAAO;;;AAIhB,SAAS,eAAe,IAAkB;AACxC,KAAI,CAAC,mBAAmB,KAAK,GAAG,CAAE,OAAM,IAAI,MAAM,4BAA4B;;AAGhF,SAAS,gBAAgB,MAAc,OAAsB;CAC3D,MAAM,gBAAgB,GAAG,KAAK,GAAG,YAAY,CAAC;AAC9C,eAAc,eAAe,GAAG,KAAK,UAAU,OAAO,MAAM,EAAE,CAAC,KAAK,QAAQ;AAC5E,YAAW,eAAe,KAAK"}
@@ -1,16 +1,18 @@
1
- import type { WorkflowMeta } from '../../agent/workflow/types.js';
2
- import type { WorkflowDefinition, WorkflowDefinitionManifest } from './definition.js';
1
+ import type { WorkflowDefinition, WorkflowDefinitionManifest, WorkflowGraph, WorkflowPhaseDefinition } from './definition.js';
3
2
  export declare const DEFAULT_WORKFLOW_CONCURRENCY = 4;
4
3
  export declare const DEFAULT_WORKFLOW_TIMEOUT_SEC: number;
5
4
  export declare const DEFAULT_WORKFLOW_MAX_SUBAGENTS = 100;
6
5
  export interface WorkflowDefinitionBuildInput {
7
6
  name: string;
8
7
  source: 'builtin' | 'user';
9
- script: string;
10
- meta: WorkflowMeta;
8
+ graph: WorkflowGraph;
11
9
  manifest?: WorkflowDefinitionManifest;
10
+ phases?: WorkflowPhaseDefinition[];
11
+ revision?: number;
12
+ createdAtMs?: number;
12
13
  }
13
14
  export declare function buildWorkflowDefinition(input: WorkflowDefinitionBuildInput): WorkflowDefinition;
15
+ export declare function deriveWorkflowPhases(graph: WorkflowGraph): WorkflowPhaseDefinition[];
14
16
  export declare function hashWorkflowStableValue(value: unknown): string;
15
17
  export declare function normalizeWorkflowDefinitionId(value: string): string;
16
18
  export declare function toWorkflowDefinitionTitle(value: string): string;
@@ -5,66 +5,68 @@ const DEFAULT_WORKFLOW_TIMEOUT_SEC = 1800;
5
5
  const DEFAULT_WORKFLOW_MAX_SUBAGENTS = 100;
6
6
  function buildWorkflowDefinition(input) {
7
7
  const nowMs = Date.now();
8
- const phases = input.meta.phases?.map((phase, index) => ({
9
- id: normalizeWorkflowDefinitionId(phase.title) || `phase-${index + 1}`,
10
- title: phase.title,
11
- description: phase.detail
12
- })) ?? [];
13
8
  const manifest = input.manifest;
14
9
  const manifestDefaults = manifest?.defaults ?? {};
15
- const runtimeHash = hashWorkflowStableValue(input.script);
10
+ const phases = input.phases ?? deriveWorkflowPhases(input.graph);
11
+ const graphHash = hashWorkflowStableValue(input.graph);
16
12
  const base = {
17
13
  id: input.name,
18
14
  name: input.name,
19
15
  title: manifest?.title ?? toWorkflowDefinitionTitle(input.name),
20
- description: manifest?.description ?? input.meta.description,
16
+ description: manifest?.description ?? "",
21
17
  version: manifest?.version ?? "1.0.0",
18
+ revision: input.revision ?? 1,
22
19
  inputSchema: manifest?.inputSchema,
23
20
  outputSchema: manifest?.outputSchema,
24
21
  phases,
25
- runtime: {
26
- kind: "script",
27
- source: input.script
28
- },
22
+ graph: structuredClone(input.graph),
29
23
  defaults: {
30
24
  concurrency: normalizePositiveInt(manifestDefaults.concurrency, 4),
31
25
  timeoutSec: normalizePositiveInt(manifestDefaults.timeoutSec, DEFAULT_WORKFLOW_TIMEOUT_SEC),
32
- maxSubagents: normalizePositiveInt(manifestDefaults.maxSubagents, input.meta.estimatedAgents?.max ?? 100)
26
+ maxSubagents: normalizePositiveInt(manifestDefaults.maxSubagents, 100)
33
27
  },
34
28
  permissions: manifest?.permissions,
35
29
  resources: manifest?.resources,
30
+ connectors: manifest?.connectors,
36
31
  metadata: {
37
- tags: manifest?.tags ?? input.meta.tags ?? [],
32
+ tags: manifest?.tags ?? [],
38
33
  builtIn: input.source === "builtin",
39
34
  source: input.source,
40
- whenToUse: manifest?.whenToUse ?? input.meta.whenToUse,
41
- estimatedAgents: input.meta.estimatedAgents,
42
- examplePrompts: input.meta.examplePrompts,
43
- i18n: input.meta.i18n,
44
- createdAtMs: nowMs,
35
+ whenToUse: manifest?.whenToUse,
36
+ estimatedAgents: manifest?.estimatedAgents,
37
+ examplePrompts: manifest?.examplePrompts,
38
+ i18n: manifest?.i18n,
39
+ createdAtMs: input.createdAtMs ?? nowMs,
45
40
  updatedAtMs: nowMs
46
41
  }
47
42
  };
48
43
  return {
49
44
  ...base,
50
- runtimeHash,
51
45
  contentHash: hashWorkflowStableValue({
52
- id: base.id,
53
46
  name: base.name,
54
47
  title: base.title,
55
48
  description: base.description,
56
49
  version: base.version,
57
- inputSchema: base.inputSchema,
58
- outputSchema: base.outputSchema,
59
- phases: base.phases,
60
- runtimeHash,
50
+ revision: base.revision,
51
+ graphHash,
61
52
  defaults: base.defaults,
62
53
  permissions: base.permissions,
63
54
  resources: base.resources,
64
- tags: base.metadata.tags
55
+ connectors: base.connectors
65
56
  })
66
57
  };
67
58
  }
59
+ function deriveWorkflowPhases(graph) {
60
+ const phases = /* @__PURE__ */ new Map();
61
+ for (const node of graph.nodes) {
62
+ if (!node.phaseId || phases.has(node.phaseId)) continue;
63
+ phases.set(node.phaseId, {
64
+ id: node.phaseId,
65
+ title: toWorkflowDefinitionTitle(node.phaseId)
66
+ });
67
+ }
68
+ return [...phases.values()];
69
+ }
68
70
  function hashWorkflowStableValue(value) {
69
71
  return createHash("sha256").update(stableStringify(value)).digest("hex");
70
72
  }
@@ -85,6 +87,6 @@ function toWorkflowDefinitionTitle(value) {
85
87
  return value.split(/[_-]+/g).filter(Boolean).map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join(" ");
86
88
  }
87
89
  //#endregion
88
- export { DEFAULT_WORKFLOW_CONCURRENCY, DEFAULT_WORKFLOW_MAX_SUBAGENTS, DEFAULT_WORKFLOW_TIMEOUT_SEC, buildWorkflowDefinition, hashWorkflowStableValue, normalizeWorkflowDefinitionId, toWorkflowDefinitionTitle };
90
+ export { DEFAULT_WORKFLOW_CONCURRENCY, DEFAULT_WORKFLOW_MAX_SUBAGENTS, DEFAULT_WORKFLOW_TIMEOUT_SEC, buildWorkflowDefinition, deriveWorkflowPhases, hashWorkflowStableValue, normalizeWorkflowDefinitionId, toWorkflowDefinitionTitle };
89
91
 
90
92
  //# sourceMappingURL=definition-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition-utils.js","names":[],"sources":["../../../../src/workflows/domain/definition-utils.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\n\nimport type { WorkflowMeta } from '../../agent/workflow/types.js';\n\nimport type { WorkflowDefinition, WorkflowDefinitionManifest } from './definition.js';\n\nexport const DEFAULT_WORKFLOW_CONCURRENCY = 4;\nexport const DEFAULT_WORKFLOW_TIMEOUT_SEC = 30 * 60;\nexport const DEFAULT_WORKFLOW_MAX_SUBAGENTS = 100;\n\nexport interface WorkflowDefinitionBuildInput {\n name: string;\n source: 'builtin' | 'user';\n script: string;\n meta: WorkflowMeta;\n manifest?: WorkflowDefinitionManifest;\n}\n\nexport function buildWorkflowDefinition(input: WorkflowDefinitionBuildInput): WorkflowDefinition {\n const nowMs = Date.now();\n const phases = input.meta.phases?.map((phase, index) => ({\n id: normalizeWorkflowDefinitionId(phase.title) || `phase-${index + 1}`,\n title: phase.title,\n description: phase.detail,\n })) ?? [];\n\n const manifest = input.manifest;\n const manifestDefaults = manifest?.defaults ?? {};\n\n const runtimeHash = hashWorkflowStableValue(input.script);\n const base = {\n id: input.name,\n name: input.name,\n title: manifest?.title ?? toWorkflowDefinitionTitle(input.name),\n description: manifest?.description ?? input.meta.description,\n version: manifest?.version ?? '1.0.0',\n inputSchema: manifest?.inputSchema,\n outputSchema: manifest?.outputSchema,\n phases,\n runtime: {\n kind: 'script' as const,\n source: input.script,\n },\n defaults: {\n concurrency: normalizePositiveInt(manifestDefaults.concurrency, DEFAULT_WORKFLOW_CONCURRENCY),\n timeoutSec: normalizePositiveInt(manifestDefaults.timeoutSec, DEFAULT_WORKFLOW_TIMEOUT_SEC),\n maxSubagents: normalizePositiveInt(\n manifestDefaults.maxSubagents,\n input.meta.estimatedAgents?.max ?? DEFAULT_WORKFLOW_MAX_SUBAGENTS,\n ),\n },\n permissions: manifest?.permissions,\n resources: manifest?.resources,\n metadata: {\n tags: manifest?.tags ?? input.meta.tags ?? [],\n builtIn: input.source === 'builtin',\n source: input.source,\n whenToUse: manifest?.whenToUse ?? input.meta.whenToUse,\n estimatedAgents: input.meta.estimatedAgents,\n examplePrompts: input.meta.examplePrompts,\n i18n: input.meta.i18n,\n createdAtMs: nowMs,\n updatedAtMs: nowMs,\n },\n };\n\n return {\n ...base,\n runtimeHash,\n contentHash: hashWorkflowStableValue({\n id: base.id,\n name: base.name,\n title: base.title,\n description: base.description,\n version: base.version,\n inputSchema: base.inputSchema,\n outputSchema: base.outputSchema,\n phases: base.phases,\n runtimeHash,\n defaults: base.defaults,\n permissions: base.permissions,\n resources: base.resources,\n tags: base.metadata.tags,\n }),\n };\n}\n\nexport function hashWorkflowStableValue(value: unknown): string {\n return createHash('sha256').update(stableStringify(value)).digest('hex');\n}\n\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value);\n if (Array.isArray(value)) return `[${value.map((item) => stableStringify(item)).join(',')}]`;\n const record = value as Record<string, unknown>;\n return `{${Object.keys(record)\n .filter((key) => record[key] !== undefined)\n .sort()\n .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)\n .join(',')}}`;\n}\n\nfunction normalizePositiveInt(value: number | undefined, fallback: number): number {\n if (typeof value !== 'number' || !Number.isFinite(value) || value < 1) {\n return fallback;\n }\n return Math.floor(value);\n}\n\nexport function normalizeWorkflowDefinitionId(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nexport function toWorkflowDefinitionTitle(value: string): string {\n return value\n .split(/[_-]+/g)\n .filter(Boolean)\n .map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`)\n .join(' ');\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"definition-utils.js","names":[],"sources":["../../../../src/workflows/domain/definition-utils.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\n\nimport type {\n WorkflowDefinition,\n WorkflowDefinitionManifest,\n WorkflowGraph,\n WorkflowPhaseDefinition,\n} from './definition.js';\n\nexport const DEFAULT_WORKFLOW_CONCURRENCY = 4;\nexport const DEFAULT_WORKFLOW_TIMEOUT_SEC = 30 * 60;\nexport const DEFAULT_WORKFLOW_MAX_SUBAGENTS = 100;\n\nexport interface WorkflowDefinitionBuildInput {\n name: string;\n source: 'builtin' | 'user';\n graph: WorkflowGraph;\n manifest?: WorkflowDefinitionManifest;\n phases?: WorkflowPhaseDefinition[];\n revision?: number;\n createdAtMs?: number;\n}\n\nexport function buildWorkflowDefinition(input: WorkflowDefinitionBuildInput): WorkflowDefinition {\n const nowMs = Date.now();\n const manifest = input.manifest;\n const manifestDefaults = manifest?.defaults ?? {};\n const phases = input.phases ?? deriveWorkflowPhases(input.graph);\n const graphHash = hashWorkflowStableValue(input.graph);\n const base = {\n id: input.name,\n name: input.name,\n title: manifest?.title ?? toWorkflowDefinitionTitle(input.name),\n description: manifest?.description ?? '',\n version: manifest?.version ?? '1.0.0',\n revision: input.revision ?? 1,\n inputSchema: manifest?.inputSchema,\n outputSchema: manifest?.outputSchema,\n phases,\n graph: structuredClone(input.graph),\n defaults: {\n concurrency: normalizePositiveInt(manifestDefaults.concurrency, DEFAULT_WORKFLOW_CONCURRENCY),\n timeoutSec: normalizePositiveInt(manifestDefaults.timeoutSec, DEFAULT_WORKFLOW_TIMEOUT_SEC),\n maxSubagents: normalizePositiveInt(manifestDefaults.maxSubagents, DEFAULT_WORKFLOW_MAX_SUBAGENTS),\n },\n permissions: manifest?.permissions,\n resources: manifest?.resources,\n connectors: manifest?.connectors,\n metadata: {\n tags: manifest?.tags ?? [],\n builtIn: input.source === 'builtin',\n source: input.source,\n whenToUse: manifest?.whenToUse,\n estimatedAgents: manifest?.estimatedAgents,\n examplePrompts: manifest?.examplePrompts,\n i18n: manifest?.i18n,\n createdAtMs: input.createdAtMs ?? nowMs,\n updatedAtMs: nowMs,\n },\n } satisfies Omit<WorkflowDefinition, 'contentHash'>;\n\n return {\n ...base,\n contentHash: hashWorkflowStableValue({\n name: base.name,\n title: base.title,\n description: base.description,\n version: base.version,\n revision: base.revision,\n graphHash,\n defaults: base.defaults,\n permissions: base.permissions,\n resources: base.resources,\n connectors: base.connectors,\n }),\n };\n}\n\nexport function deriveWorkflowPhases(graph: WorkflowGraph): WorkflowPhaseDefinition[] {\n const phases = new Map<string, WorkflowPhaseDefinition>();\n for (const node of graph.nodes) {\n if (!node.phaseId || phases.has(node.phaseId)) continue;\n phases.set(node.phaseId, {\n id: node.phaseId,\n title: toWorkflowDefinitionTitle(node.phaseId),\n });\n }\n return [...phases.values()];\n}\n\nexport function hashWorkflowStableValue(value: unknown): string {\n return createHash('sha256').update(stableStringify(value)).digest('hex');\n}\n\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value);\n if (Array.isArray(value)) return `[${value.map((item) => stableStringify(item)).join(',')}]`;\n const record = value as Record<string, unknown>;\n return `{${Object.keys(record)\n .filter((key) => record[key] !== undefined)\n .sort()\n .map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`)\n .join(',')}}`;\n}\n\nfunction normalizePositiveInt(value: number | undefined, fallback: number): number {\n if (typeof value !== 'number' || !Number.isFinite(value) || value < 1) return fallback;\n return Math.floor(value);\n}\n\nexport function normalizeWorkflowDefinitionId(value: string): string {\n return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '');\n}\n\nexport function toWorkflowDefinitionTitle(value: string): string {\n return value\n .split(/[_-]+/g)\n .filter(Boolean)\n .map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`)\n .join(' ');\n}\n"],"mappings":"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"}
@@ -9,21 +9,87 @@ export interface JsonSchema {
9
9
  description?: string;
10
10
  [key: string]: unknown;
11
11
  }
12
+ export type WorkflowNodeKind = 'input' | 'agent' | 'decision' | 'merge' | 'output';
13
+ export interface WorkflowCanvasPosition {
14
+ x: number;
15
+ y: number;
16
+ }
17
+ export interface WorkflowGraphNodeBase {
18
+ id: string;
19
+ kind: WorkflowNodeKind;
20
+ title: string;
21
+ description?: string;
22
+ phaseId?: string;
23
+ position: WorkflowCanvasPosition;
24
+ }
25
+ export interface WorkflowInputNode extends WorkflowGraphNodeBase {
26
+ kind: 'input';
27
+ config: {
28
+ schema?: JsonSchema;
29
+ };
30
+ }
31
+ export interface WorkflowAgentNode extends WorkflowGraphNodeBase {
32
+ kind: 'agent';
33
+ config: {
34
+ prompt: string;
35
+ model?: string;
36
+ toolset?: string[];
37
+ maxIterations?: number;
38
+ outputSchema?: JsonSchema;
39
+ };
40
+ }
41
+ export interface WorkflowDecisionRule {
42
+ path: string;
43
+ operator: 'exists' | 'equals' | 'not_equals' | 'contains';
44
+ value?: unknown;
45
+ }
46
+ export interface WorkflowDecisionNode extends WorkflowGraphNodeBase {
47
+ kind: 'decision';
48
+ config: {
49
+ rule: WorkflowDecisionRule;
50
+ };
51
+ }
52
+ export interface WorkflowMergeNode extends WorkflowGraphNodeBase {
53
+ kind: 'merge';
54
+ config: {
55
+ mode: 'array' | 'object';
56
+ };
57
+ }
58
+ export interface WorkflowOutputNode extends WorkflowGraphNodeBase {
59
+ kind: 'output';
60
+ config: {
61
+ summary?: string;
62
+ title?: string;
63
+ };
64
+ }
65
+ export type WorkflowGraphNode = WorkflowInputNode | WorkflowAgentNode | WorkflowDecisionNode | WorkflowMergeNode | WorkflowOutputNode;
66
+ export interface WorkflowGraphEdge {
67
+ id: string;
68
+ source: string;
69
+ target: string;
70
+ sourcePort?: 'true' | 'false' | 'default';
71
+ }
72
+ export interface WorkflowGraph {
73
+ schemaVersion: 1;
74
+ nodes: WorkflowGraphNode[];
75
+ edges: WorkflowGraphEdge[];
76
+ }
12
77
  export interface WorkflowDefinition {
13
78
  id: string;
14
79
  name: string;
15
80
  title: string;
16
81
  description: string;
17
82
  version: string;
83
+ revision: number;
18
84
  contentHash?: string;
19
- runtimeHash?: string;
20
85
  inputSchema?: JsonSchema;
21
86
  outputSchema?: JsonSchema;
22
87
  phases: WorkflowPhaseDefinition[];
23
- runtime: WorkflowRuntimeDefinition;
88
+ graph: WorkflowGraph;
24
89
  defaults: WorkflowDefinitionDefaults;
25
90
  permissions?: WorkflowPermissionPolicy;
26
91
  resources?: WorkflowResourceRefs;
92
+ connectors?: WorkflowConnectorRequirement[];
27
93
  metadata: WorkflowDefinitionMetadata;
28
94
  }
29
95
  export interface WorkflowDefinitionManifest {
@@ -35,8 +101,19 @@ export interface WorkflowDefinitionManifest {
35
101
  defaults?: Partial<WorkflowDefinitionDefaults>;
36
102
  tags?: string[];
37
103
  whenToUse?: string;
104
+ estimatedAgents?: WorkflowDefinitionEstimatedAgents;
105
+ examplePrompts?: WorkflowDefinitionExamplePrompt[];
106
+ i18n?: Record<string, WorkflowDefinitionLocale>;
38
107
  permissions?: WorkflowPermissionPolicy;
39
108
  resources?: WorkflowResourceRefs;
109
+ connectors?: WorkflowConnectorRequirement[];
110
+ }
111
+ export interface WorkflowConnectorRequirement {
112
+ connectorId: string;
113
+ scope?: 'read' | 'write' | 'admin';
114
+ connectionRequired?: boolean;
115
+ optional?: boolean;
116
+ reason?: string;
40
117
  }
41
118
  export interface WorkflowPermissionPolicy {
42
119
  tools?: string[];
@@ -54,10 +131,6 @@ export interface WorkflowPhaseDefinition {
54
131
  title: string;
55
132
  description?: string;
56
133
  }
57
- export interface WorkflowRuntimeDefinition {
58
- kind: 'script';
59
- source: string;
60
- }
61
134
  export interface WorkflowDefinitionDefaults {
62
135
  concurrency: number;
63
136
  timeoutSec: number;
@@ -1,6 +1,6 @@
1
1
  import type { WorkflowArtifactRef, WorkflowResultEnvelope } from './result.js';
2
2
  import type { WorkflowAgentInvocationSnapshot, WorkflowRun, WorkflowRunError } from './run.js';
3
- export type WorkflowEventType = 'run_queued' | 'run_started' | 'phase_started' | 'phase_completed' | 'agent_queued' | 'agent_started' | 'agent_step_started' | 'agent_step_completed' | 'agent_completed' | 'log_appended' | 'artifact_created' | 'run_completed' | 'run_failed' | 'run_cancelled';
3
+ export type WorkflowEventType = 'run_queued' | 'run_started' | 'phase_started' | 'phase_completed' | 'node_started' | 'node_completed' | 'agent_queued' | 'agent_started' | 'agent_step_started' | 'agent_step_completed' | 'agent_completed' | 'log_appended' | 'artifact_created' | 'run_completed' | 'run_failed' | 'run_cancelled';
4
4
  export interface WorkflowEventEnvelope<T = WorkflowEventPayload> {
5
5
  id: string;
6
6
  runId: string;
@@ -9,7 +9,7 @@ export interface WorkflowEventEnvelope<T = WorkflowEventPayload> {
9
9
  payload: T;
10
10
  createdAtMs: number;
11
11
  }
12
- export type WorkflowEventPayload = RunQueuedPayload | RunStartedPayload | PhaseStartedPayload | PhaseCompletedPayload | AgentQueuedPayload | AgentStartedPayload | AgentStepStartedPayload | AgentStepCompletedPayload | AgentCompletedPayload | LogAppendedPayload | ArtifactCreatedPayload | RunCompletedPayload | RunFailedPayload | RunCancelledPayload;
12
+ export type WorkflowEventPayload = RunQueuedPayload | RunStartedPayload | PhaseStartedPayload | PhaseCompletedPayload | NodeStartedPayload | NodeCompletedPayload | AgentQueuedPayload | AgentStartedPayload | AgentStepStartedPayload | AgentStepCompletedPayload | AgentCompletedPayload | LogAppendedPayload | ArtifactCreatedPayload | RunCompletedPayload | RunFailedPayload | RunCancelledPayload;
13
13
  export interface RunQueuedPayload {
14
14
  run: WorkflowRun;
15
15
  }
@@ -23,8 +23,22 @@ export interface PhaseStartedPayload {
23
23
  export interface PhaseCompletedPayload {
24
24
  phaseId: string;
25
25
  }
26
+ export interface NodeStartedPayload {
27
+ nodeId: string;
28
+ kind: string;
29
+ title: string;
30
+ }
31
+ export interface NodeCompletedPayload {
32
+ nodeId: string;
33
+ kind: string;
34
+ title: string;
35
+ status: 'done' | 'error' | 'skipped';
36
+ resultPreview?: string;
37
+ error?: string;
38
+ }
26
39
  export interface AgentQueuedPayload {
27
40
  agentId: string;
41
+ nodeId: string;
28
42
  label: string;
29
43
  phaseId?: string;
30
44
  prompt?: string;
@@ -33,6 +47,7 @@ export interface AgentQueuedPayload {
33
47
  }
34
48
  export interface AgentStartedPayload {
35
49
  agentId: string;
50
+ nodeId?: string;
36
51
  }
37
52
  export interface AgentStepStartedPayload {
38
53
  agentId: string;
@@ -51,6 +66,7 @@ export interface AgentStepCompletedPayload {
51
66
  }
52
67
  export interface AgentCompletedPayload {
53
68
  agentId: string;
69
+ nodeId?: string;
54
70
  status: 'done' | 'error' | 'skipped';
55
71
  resultPreview?: string;
56
72
  error?: string;
@@ -1,5 +1,5 @@
1
- import { DEFAULT_WORKFLOW_CONCURRENCY, DEFAULT_WORKFLOW_MAX_SUBAGENTS, DEFAULT_WORKFLOW_TIMEOUT_SEC, buildWorkflowDefinition, hashWorkflowStableValue, normalizeWorkflowDefinitionId, toWorkflowDefinitionTitle } from "./definition-utils.js";
1
+ import { DEFAULT_WORKFLOW_CONCURRENCY, DEFAULT_WORKFLOW_MAX_SUBAGENTS, DEFAULT_WORKFLOW_TIMEOUT_SEC, buildWorkflowDefinition, deriveWorkflowPhases, hashWorkflowStableValue, normalizeWorkflowDefinitionId, toWorkflowDefinitionTitle } from "./definition-utils.js";
2
+ import { validateWorkflowDefinitionInput, validateWorkflowGraph } from "./validation.js";
2
3
  import { validateWorkflowJsonSchema } from "./schema-validation.js";
3
4
  import { isTerminalWorkflowRunStatus } from "./run.js";
4
- import { validateWorkflowDefinitionInput } from "./validation.js";
5
- export { DEFAULT_WORKFLOW_CONCURRENCY, DEFAULT_WORKFLOW_MAX_SUBAGENTS, DEFAULT_WORKFLOW_TIMEOUT_SEC, buildWorkflowDefinition, hashWorkflowStableValue, isTerminalWorkflowRunStatus, normalizeWorkflowDefinitionId, toWorkflowDefinitionTitle, validateWorkflowDefinitionInput, validateWorkflowJsonSchema };
5
+ export { DEFAULT_WORKFLOW_CONCURRENCY, DEFAULT_WORKFLOW_MAX_SUBAGENTS, DEFAULT_WORKFLOW_TIMEOUT_SEC, buildWorkflowDefinition, deriveWorkflowPhases, hashWorkflowStableValue, isTerminalWorkflowRunStatus, normalizeWorkflowDefinitionId, toWorkflowDefinitionTitle, validateWorkflowDefinitionInput, validateWorkflowGraph, validateWorkflowJsonSchema };
@@ -1,4 +1,4 @@
1
- import type { WorkflowDefinitionDefaults, WorkflowDefinitionEstimatedAgents, WorkflowPermissionPolicy, WorkflowResourceRefs } from './definition.js';
1
+ import type { WorkflowDefinitionDefaults, WorkflowDefinitionEstimatedAgents, WorkflowGraph, WorkflowPermissionPolicy, WorkflowResourceRefs } from './definition.js';
2
2
  import type { WorkflowArtifactRef, WorkflowResultEnvelope } from './result.js';
3
3
  export type WorkflowRunStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'cancelled' | 'timeout';
4
4
  export declare function isTerminalWorkflowRunStatus(status: WorkflowRunStatus): boolean;
@@ -91,7 +91,8 @@ export interface WorkflowRunDefinitionSnapshot {
91
91
  title: string;
92
92
  version: string;
93
93
  contentHash?: string;
94
- runtimeHash?: string;
94
+ revision: number;
95
+ graph: WorkflowGraph;
95
96
  source: 'builtin' | 'user';
96
97
  tags: string[];
97
98
  phaseCount: number;
@@ -160,11 +161,22 @@ export interface WorkflowRunView {
160
161
  run: WorkflowRun;
161
162
  phases: WorkflowPhaseView[];
162
163
  agents: WorkflowAgentView[];
164
+ nodes: WorkflowNodeView[];
163
165
  logs: WorkflowLogEntry[];
164
166
  artifacts: WorkflowArtifactRef[];
165
167
  timeline: WorkflowTimelineItem[];
166
168
  controls: WorkflowRunControls;
167
169
  }
170
+ export interface WorkflowNodeView {
171
+ id: string;
172
+ kind: string;
173
+ title: string;
174
+ status: 'pending' | 'running' | 'done' | 'error' | 'skipped';
175
+ resultPreview?: string;
176
+ error?: string;
177
+ startedAtMs?: number;
178
+ completedAtMs?: number;
179
+ }
168
180
  export type WorkflowPhaseStatus = 'pending' | 'running' | 'completed' | 'failed';
169
181
  export interface WorkflowPhaseView {
170
182
  id: string;
@@ -177,6 +189,7 @@ export interface WorkflowPhaseView {
177
189
  export type WorkflowAgentStatus = 'queued' | 'running' | 'done' | 'error' | 'skipped';
178
190
  export interface WorkflowAgentView {
179
191
  id: string;
192
+ nodeId?: string;
180
193
  label: string;
181
194
  phaseId?: string;
182
195
  status: WorkflowAgentStatus;
@@ -192,6 +205,7 @@ export interface WorkflowAgentView {
192
205
  steps: WorkflowAgentStepView[];
193
206
  }
194
207
  export interface WorkflowAgentInvocationSnapshot {
208
+ nodeId?: string;
195
209
  prompt: string;
196
210
  label: string;
197
211
  phase?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","names":[],"sources":["../../../../src/workflows/domain/run.ts"],"sourcesContent":["import type { WorkflowDefinitionDefaults, WorkflowDefinitionEstimatedAgents, WorkflowPermissionPolicy, WorkflowResourceRefs } from './definition.js';\nimport type { WorkflowArtifactRef, WorkflowResultEnvelope } from './result.js';\n\nexport type WorkflowRunStatus =\n | 'queued'\n | 'running'\n | 'succeeded'\n | 'failed'\n | 'cancelled'\n | 'timeout';\n\nconst TERMINAL_WORKFLOW_RUN_STATUSES = new Set<WorkflowRunStatus>([\n 'succeeded',\n 'failed',\n 'cancelled',\n 'timeout',\n]);\n\nexport function isTerminalWorkflowRunStatus(status: WorkflowRunStatus): boolean {\n return TERMINAL_WORKFLOW_RUN_STATUSES.has(status);\n}\n\nexport interface WorkflowRun {\n id: string;\n definitionId: string;\n definitionVersion: string;\n title: string;\n goal: string;\n input: unknown;\n status: WorkflowRunStatus;\n source: WorkflowRunSource;\n metadata?: WorkflowRunMetadata;\n result?: WorkflowResultEnvelope;\n error?: WorkflowRunError;\n metrics: WorkflowRunMetrics;\n createdAtMs: number;\n startedAtMs?: number;\n completedAtMs?: number;\n}\n\nexport interface WorkflowRunMetadata {\n sessionKey: string;\n triggerSource: WorkflowRunSource['kind'];\n agentId?: string;\n projectId?: string;\n workItemId?: string;\n contextRefs?: WorkflowRunContextRef[];\n writebackPolicy?: WorkflowRunWritebackPolicy;\n retryOfRunId?: string;\n replay?: WorkflowRunReplayMetadata;\n definition: WorkflowRunDefinitionSnapshot;\n input?: WorkflowRunInputEnvelope;\n correlation?: WorkflowRunCorrelation;\n origin?: WorkflowRunOrigin;\n schedule?: WorkflowRunScheduleMetadata;\n goalId?: string;\n}\n\nexport type WorkflowRunReplayScope = 'failed_agents' | 'failed_phases';\n\nexport interface WorkflowRunContextRef {\n kind: 'project' | 'goal' | 'work_item' | 'session' | 'attachment' | 'memory';\n id: string;\n role?: string;\n title?: string;\n}\n\nexport interface WorkflowRunWritebackPolicy {\n targets: WorkflowRunWritebackTarget[];\n}\n\nexport interface WorkflowRunWritebackTarget {\n kind: 'project' | 'goal' | 'work_item';\n id: string;\n mode: 'record' | 'suggest' | 'evaluate';\n}\n\nexport interface WorkflowRunReplayMetadata {\n sourceRunId: string;\n scope: WorkflowRunReplayScope;\n phaseIds?: string[];\n agentIds: string[];\n targetCount: number;\n createdAtMs: number;\n}\n\nexport interface WorkflowRunInputEnvelope {\n payload: unknown;\n goal?: string;\n variables?: Record<string, unknown>;\n context?: Record<string, unknown>;\n}\n\nexport interface WorkflowRunCorrelation {\n idempotencyKey?: string;\n requestId?: string;\n traceId?: string;\n parentRunId?: string;\n}\n\nexport interface WorkflowRunOrigin {\n channel: string;\n sessionKey?: string;\n chatId?: string;\n messageId?: string;\n automationId?: string;\n runId?: string;\n requestId?: string;\n}\n\nexport interface WorkflowRunScheduleMetadata {\n automationId: string;\n runId?: string;\n scheduledAtMs?: number;\n}\n\nexport interface WorkflowRunDefinitionSnapshot {\n id: string;\n name: string;\n title: string;\n version: string;\n contentHash?: string;\n runtimeHash?: string;\n source: 'builtin' | 'user';\n tags: string[];\n phaseCount: number;\n defaults?: WorkflowDefinitionDefaults;\n permissions?: WorkflowPermissionPolicy;\n resources?: WorkflowResourceRefs;\n estimatedAgents?: WorkflowDefinitionEstimatedAgents;\n}\n\nexport type WorkflowRunSource =\n | { kind: 'chat'; sessionKey: string; messageId?: string }\n | { kind: 'webui'; sessionKey?: string; requestId?: string }\n | { kind: 'automation'; automationId: string; runId?: string; scheduledAtMs?: number }\n | { kind: 'api'; requestId?: string; idempotencyKey?: string }\n | { kind: 'im'; channel: string; chatId: string; messageId?: string; userId?: string };\n\nexport interface WorkflowRunMetrics {\n agentCount: number;\n doneAgentCount: number;\n errorAgentCount: number;\n skippedAgentCount: number;\n artifactCount: number;\n durationMs?: number;\n}\n\nexport interface WorkflowRunError {\n code: WorkflowRunErrorCode;\n message: string;\n detail?: string;\n recoverable: boolean;\n}\n\nexport type WorkflowRunErrorCode =\n | 'definition_not_found'\n | 'invalid_input'\n | 'runtime_error'\n | 'timeout'\n | 'cancelled'\n | 'result_validation_failed'\n | 'agent_quota_exceeded';\n\nexport interface WorkflowRunControls {\n canCancel: boolean;\n canRetry: boolean;\n canArchive: boolean;\n}\n\nexport interface WorkflowRunSummary {\n id: string;\n definitionId: string;\n title: string;\n status: WorkflowRunStatus;\n source: WorkflowRunSource;\n metadata?: WorkflowRunMetadata;\n createdAtMs: number;\n startedAtMs?: number;\n completedAtMs?: number;\n metrics: WorkflowRunMetrics;\n}\n\nexport interface WorkflowRunView {\n run: WorkflowRun;\n phases: WorkflowPhaseView[];\n agents: WorkflowAgentView[];\n logs: WorkflowLogEntry[];\n artifacts: WorkflowArtifactRef[];\n timeline: WorkflowTimelineItem[];\n controls: WorkflowRunControls;\n}\n\nexport type WorkflowPhaseStatus = 'pending' | 'running' | 'completed' | 'failed';\n\nexport interface WorkflowPhaseView {\n id: string;\n title: string;\n status: WorkflowPhaseStatus;\n startedAtMs?: number;\n completedAtMs?: number;\n agentIds: string[];\n}\n\nexport type WorkflowAgentStatus = 'queued' | 'running' | 'done' | 'error' | 'skipped';\n\nexport interface WorkflowAgentView {\n id: string;\n label: string;\n phaseId?: string;\n status: WorkflowAgentStatus;\n prompt?: string;\n invocation?: WorkflowAgentInvocationSnapshot;\n sessionKey: string;\n transcriptMessageCount: number;\n currentStep?: string;\n resultPreview?: string;\n error?: string;\n startedAtMs?: number;\n completedAtMs?: number;\n steps: WorkflowAgentStepView[];\n}\n\nexport interface WorkflowAgentInvocationSnapshot {\n prompt: string;\n label: string;\n phase?: string;\n modelRef?: string;\n resolvedModelRef?: string;\n schema?: unknown;\n toolset?: string[];\n maxIterations?: number;\n}\n\nexport type WorkflowAgentStepStatus = 'running' | 'done' | 'error';\n\nexport interface WorkflowAgentStepView {\n id: string;\n label: string;\n kind: 'tool' | 'llm' | 'thinking';\n toolName?: string;\n detail?: string;\n status: WorkflowAgentStepStatus;\n resultPreview?: string;\n error?: string;\n startedAtMs?: number;\n completedAtMs?: number;\n}\n\nexport interface WorkflowLogEntry {\n sequence: number;\n message: string;\n createdAtMs: number;\n}\n\nexport interface WorkflowTimelineItem {\n sequence: number;\n type: string;\n title: string;\n createdAtMs: number;\n}\n"],"mappings":";AAWA,MAAM,iCAAiC,IAAI,IAAuB;CAChE;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAgB,4BAA4B,QAAoC;AAC9E,QAAO,+BAA+B,IAAI,OAAO"}
1
+ {"version":3,"file":"run.js","names":[],"sources":["../../../../src/workflows/domain/run.ts"],"sourcesContent":["import type { WorkflowDefinitionDefaults, WorkflowDefinitionEstimatedAgents, WorkflowGraph, WorkflowPermissionPolicy, WorkflowResourceRefs } from './definition.js';\nimport type { WorkflowArtifactRef, WorkflowResultEnvelope } from './result.js';\n\nexport type WorkflowRunStatus =\n | 'queued'\n | 'running'\n | 'succeeded'\n | 'failed'\n | 'cancelled'\n | 'timeout';\n\nconst TERMINAL_WORKFLOW_RUN_STATUSES = new Set<WorkflowRunStatus>([\n 'succeeded',\n 'failed',\n 'cancelled',\n 'timeout',\n]);\n\nexport function isTerminalWorkflowRunStatus(status: WorkflowRunStatus): boolean {\n return TERMINAL_WORKFLOW_RUN_STATUSES.has(status);\n}\n\nexport interface WorkflowRun {\n id: string;\n definitionId: string;\n definitionVersion: string;\n title: string;\n goal: string;\n input: unknown;\n status: WorkflowRunStatus;\n source: WorkflowRunSource;\n metadata?: WorkflowRunMetadata;\n result?: WorkflowResultEnvelope;\n error?: WorkflowRunError;\n metrics: WorkflowRunMetrics;\n createdAtMs: number;\n startedAtMs?: number;\n completedAtMs?: number;\n}\n\nexport interface WorkflowRunMetadata {\n sessionKey: string;\n triggerSource: WorkflowRunSource['kind'];\n agentId?: string;\n projectId?: string;\n workItemId?: string;\n contextRefs?: WorkflowRunContextRef[];\n writebackPolicy?: WorkflowRunWritebackPolicy;\n retryOfRunId?: string;\n replay?: WorkflowRunReplayMetadata;\n definition: WorkflowRunDefinitionSnapshot;\n input?: WorkflowRunInputEnvelope;\n correlation?: WorkflowRunCorrelation;\n origin?: WorkflowRunOrigin;\n schedule?: WorkflowRunScheduleMetadata;\n goalId?: string;\n}\n\nexport type WorkflowRunReplayScope = 'failed_agents' | 'failed_phases';\n\nexport interface WorkflowRunContextRef {\n kind: 'project' | 'goal' | 'work_item' | 'session' | 'attachment' | 'memory';\n id: string;\n role?: string;\n title?: string;\n}\n\nexport interface WorkflowRunWritebackPolicy {\n targets: WorkflowRunWritebackTarget[];\n}\n\nexport interface WorkflowRunWritebackTarget {\n kind: 'project' | 'goal' | 'work_item';\n id: string;\n mode: 'record' | 'suggest' | 'evaluate';\n}\n\nexport interface WorkflowRunReplayMetadata {\n sourceRunId: string;\n scope: WorkflowRunReplayScope;\n phaseIds?: string[];\n agentIds: string[];\n targetCount: number;\n createdAtMs: number;\n}\n\nexport interface WorkflowRunInputEnvelope {\n payload: unknown;\n goal?: string;\n variables?: Record<string, unknown>;\n context?: Record<string, unknown>;\n}\n\nexport interface WorkflowRunCorrelation {\n idempotencyKey?: string;\n requestId?: string;\n traceId?: string;\n parentRunId?: string;\n}\n\nexport interface WorkflowRunOrigin {\n channel: string;\n sessionKey?: string;\n chatId?: string;\n messageId?: string;\n automationId?: string;\n runId?: string;\n requestId?: string;\n}\n\nexport interface WorkflowRunScheduleMetadata {\n automationId: string;\n runId?: string;\n scheduledAtMs?: number;\n}\n\nexport interface WorkflowRunDefinitionSnapshot {\n id: string;\n name: string;\n title: string;\n version: string;\n contentHash?: string;\n revision: number;\n graph: WorkflowGraph;\n source: 'builtin' | 'user';\n tags: string[];\n phaseCount: number;\n defaults?: WorkflowDefinitionDefaults;\n permissions?: WorkflowPermissionPolicy;\n resources?: WorkflowResourceRefs;\n estimatedAgents?: WorkflowDefinitionEstimatedAgents;\n}\n\nexport type WorkflowRunSource =\n | { kind: 'chat'; sessionKey: string; messageId?: string }\n | { kind: 'webui'; sessionKey?: string; requestId?: string }\n | { kind: 'automation'; automationId: string; runId?: string; scheduledAtMs?: number }\n | { kind: 'api'; requestId?: string; idempotencyKey?: string }\n | { kind: 'im'; channel: string; chatId: string; messageId?: string; userId?: string };\n\nexport interface WorkflowRunMetrics {\n agentCount: number;\n doneAgentCount: number;\n errorAgentCount: number;\n skippedAgentCount: number;\n artifactCount: number;\n durationMs?: number;\n}\n\nexport interface WorkflowRunError {\n code: WorkflowRunErrorCode;\n message: string;\n detail?: string;\n recoverable: boolean;\n}\n\nexport type WorkflowRunErrorCode =\n | 'definition_not_found'\n | 'invalid_input'\n | 'runtime_error'\n | 'timeout'\n | 'cancelled'\n | 'result_validation_failed'\n | 'agent_quota_exceeded';\n\nexport interface WorkflowRunControls {\n canCancel: boolean;\n canRetry: boolean;\n canArchive: boolean;\n}\n\nexport interface WorkflowRunSummary {\n id: string;\n definitionId: string;\n title: string;\n status: WorkflowRunStatus;\n source: WorkflowRunSource;\n metadata?: WorkflowRunMetadata;\n createdAtMs: number;\n startedAtMs?: number;\n completedAtMs?: number;\n metrics: WorkflowRunMetrics;\n}\n\nexport interface WorkflowRunView {\n run: WorkflowRun;\n phases: WorkflowPhaseView[];\n agents: WorkflowAgentView[];\n nodes: WorkflowNodeView[];\n logs: WorkflowLogEntry[];\n artifacts: WorkflowArtifactRef[];\n timeline: WorkflowTimelineItem[];\n controls: WorkflowRunControls;\n}\n\nexport interface WorkflowNodeView {\n id: string;\n kind: string;\n title: string;\n status: 'pending' | 'running' | 'done' | 'error' | 'skipped';\n resultPreview?: string;\n error?: string;\n startedAtMs?: number;\n completedAtMs?: number;\n}\n\nexport type WorkflowPhaseStatus = 'pending' | 'running' | 'completed' | 'failed';\n\nexport interface WorkflowPhaseView {\n id: string;\n title: string;\n status: WorkflowPhaseStatus;\n startedAtMs?: number;\n completedAtMs?: number;\n agentIds: string[];\n}\n\nexport type WorkflowAgentStatus = 'queued' | 'running' | 'done' | 'error' | 'skipped';\n\nexport interface WorkflowAgentView {\n id: string;\n nodeId?: string;\n label: string;\n phaseId?: string;\n status: WorkflowAgentStatus;\n prompt?: string;\n invocation?: WorkflowAgentInvocationSnapshot;\n sessionKey: string;\n transcriptMessageCount: number;\n currentStep?: string;\n resultPreview?: string;\n error?: string;\n startedAtMs?: number;\n completedAtMs?: number;\n steps: WorkflowAgentStepView[];\n}\n\nexport interface WorkflowAgentInvocationSnapshot {\n nodeId?: string;\n prompt: string;\n label: string;\n phase?: string;\n modelRef?: string;\n resolvedModelRef?: string;\n schema?: unknown;\n toolset?: string[];\n maxIterations?: number;\n}\n\nexport type WorkflowAgentStepStatus = 'running' | 'done' | 'error';\n\nexport interface WorkflowAgentStepView {\n id: string;\n label: string;\n kind: 'tool' | 'llm' | 'thinking';\n toolName?: string;\n detail?: string;\n status: WorkflowAgentStepStatus;\n resultPreview?: string;\n error?: string;\n startedAtMs?: number;\n completedAtMs?: number;\n}\n\nexport interface WorkflowLogEntry {\n sequence: number;\n message: string;\n createdAtMs: number;\n}\n\nexport interface WorkflowTimelineItem {\n sequence: number;\n type: string;\n title: string;\n createdAtMs: number;\n}\n"],"mappings":";AAWA,MAAM,iCAAiC,IAAI,IAAuB;CAChE;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAgB,4BAA4B,QAAoC;AAC9E,QAAO,+BAA+B,IAAI,OAAO"}
@@ -1,10 +1,11 @@
1
- import type { WorkflowDefinition } from './definition.js';
2
- export type WorkflowDefinitionValidationIssueCode = 'name_required' | 'script_required' | 'parse_failed' | 'meta_name_mismatch' | 'unknown_error';
1
+ import type { WorkflowDefinition, WorkflowGraph } from './definition.js';
2
+ export type WorkflowDefinitionValidationIssueCode = 'name_required' | 'invalid_name' | 'graph_required' | 'invalid_schema_version' | 'duplicate_node' | 'missing_input' | 'multiple_inputs' | 'missing_output' | 'multiple_outputs' | 'unknown_edge_node' | 'duplicate_edge' | 'self_edge' | 'cycle_detected' | 'unreachable_node' | 'dead_end_node' | 'missing_prompt' | 'invalid_node_config';
3
3
  export interface WorkflowDefinitionValidationIssue {
4
4
  code: WorkflowDefinitionValidationIssueCode;
5
5
  message: string;
6
- line?: number;
7
- column?: number;
6
+ nodeId?: string;
7
+ edgeId?: string;
8
+ field?: string;
8
9
  }
9
10
  export interface WorkflowDefinitionValidationResult {
10
11
  valid: boolean;
@@ -14,6 +15,9 @@ export interface WorkflowDefinitionValidationResult {
14
15
  }
15
16
  export interface ValidateWorkflowDefinitionInput {
16
17
  name?: string;
17
- script?: string;
18
+ graph?: WorkflowGraph;
19
+ title?: string;
20
+ description?: string;
18
21
  }
19
22
  export declare function validateWorkflowDefinitionInput(input: ValidateWorkflowDefinitionInput): WorkflowDefinitionValidationResult;
23
+ export declare function validateWorkflowGraph(graph: WorkflowGraph, errors?: WorkflowDefinitionValidationIssue[], warnings?: WorkflowDefinitionValidationIssue[]): WorkflowDefinitionValidationResult;