@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
@@ -1,7 +1,7 @@
1
+ import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
1
2
  import { isXopcDatabaseOpen } from "../storage/sqlite/connection.js";
2
3
  import { getSessionMetadata } from "../storage/sqlite/session-repository.js";
3
4
  import "../storage/sqlite/index.js";
4
- import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
5
5
  import { projectWorkspacePath } from "../session/session-workspace.js";
6
6
  import { ProjectStore } from "./project-store.js";
7
7
  //#region src/projects/workspace.ts
@@ -1,6 +1,6 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
- import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../utils/string-coerce.js";
3
2
  import { DEFAULT_ACCOUNT_ID, init_account_id, normalizeAccountId, normalizeOptionalAccountId } from "./account-id.js";
3
+ import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../utils/string-coerce.js";
4
4
  import { getSubagentDepth, init_session_key_utils, isAcpSessionKey, isCronSessionKey, isSubagentSessionKey, parseAgentSessionKey, parseThreadSessionSuffix } from "./session-key-utils.js";
5
5
  //#region src/routing/agent-session-key.ts
6
6
  function normalizeToken(value) {
@@ -1,7 +1,7 @@
1
1
  import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
2
+ import { init_agent_scope, resolveDefaultAgentId } from "../agent/agent-scope.js";
2
3
  import { init_account_id, normalizeAccountId } from "./account-id.js";
3
4
  import { buildAgentMainSessionKey, buildAgentPeerSessionKey, init_agent_session_key, normalizeSessionKey } from "./agent-session-key.js";
4
- import { init_agent_scope, resolveDefaultAgentId } from "../agent/agent-scope.js";
5
5
  import { buildSessionKey, init_session_key, parseSessionKey } from "./session-key.js";
6
6
  import { init_bindings, parseBindingRules, resolveRoute as resolveRoute$1 } from "./bindings.js";
7
7
  //#region src/routing/resolve-route.ts
@@ -1,7 +1,7 @@
1
+ import { init_agent_scope, listAgentEntries, resolveAgentIdByWorkspacePath, resolveDefaultAgentId } from "../agent/agent-scope.js";
1
2
  import { init_string_coerce, normalizeLowercaseStringOrEmpty } from "../utils/string-coerce.js";
2
3
  import { parseAgentSessionKey } from "./session-key-utils.js";
3
4
  import { buildAgentMainSessionKey, init_agent_session_key, normalizeAgentId, normalizeMainKey } from "./agent-session-key.js";
4
- import { init_agent_scope, listAgentEntries, resolveAgentIdByWorkspacePath, resolveDefaultAgentId } from "../agent/agent-scope.js";
5
5
  import { randomUUID } from "node:crypto";
6
6
  //#region src/routing/resolve-tui-session-key.ts
7
7
  init_agent_scope();
@@ -1,8 +1,8 @@
1
+ import { SessionConfigSchema, init_schema } from "../config/schema.js";
1
2
  import { createLogger } from "../utils/logger/index.js";
2
3
  import { init_logger } from "../utils/logger.js";
3
4
  import { requireXopcDatabase } from "../storage/sqlite/connection.js";
4
5
  import "../storage/sqlite/index.js";
5
- import { SessionConfigSchema, init_schema } from "../config/schema.js";
6
6
  import { evaluateSessionFreshness, resolveSessionResetPolicy } from "./reset-policy.js";
7
7
  import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
8
8
  import { resolveSessionLifecycleTimestamps } from "./lifecycle-timestamps.js";
@@ -1,9 +1,9 @@
1
+ import { SessionConfigSchema, init_schema } from "../config/schema.js";
1
2
  import { createLogger } from "../utils/logger/index.js";
2
3
  import { init_logger } from "../utils/logger.js";
3
4
  import { requireXopcDatabase } from "../storage/sqlite/connection.js";
4
5
  import { findSessionKeyBySessionId, getSessionMetadata, getSessionPersistedLevels } from "../storage/sqlite/session-repository.js";
5
6
  import "../storage/sqlite/index.js";
6
- import { SessionConfigSchema, init_schema } from "../config/schema.js";
7
7
  import { normalizeThinkLevel, normalizeVerboseLevel } from "../agent/transcript/thinking-types.js";
8
8
  import { evaluateSessionFreshness, resolveSessionResetPolicy } from "./reset-policy.js";
9
9
  import { resolveChannelResetConfig, resolveSessionResetType } from "./reset-type.js";
@@ -1,7 +1,7 @@
1
- import { createLogger } from "../utils/logger/index.js";
2
- import { init_logger } from "../utils/logger.js";
3
1
  import { isCronSessionKey } from "../routing/session-key-utils.js";
4
2
  import { init_session_key, parseSessionKey } from "../routing/session-key.js";
3
+ import { createLogger } from "../utils/logger/index.js";
4
+ import { init_logger } from "../utils/logger.js";
5
5
  import { init_providers, resolveModel } from "../providers/index.js";
6
6
  import { completeWithResolvedCredentials } from "../providers/model-call.js";
7
7
  import { readAgentMessageContent } from "../agent/memory/agent-message-access.js";
@@ -1,4 +1,5 @@
1
1
  import { init_paths_state, resolveStateDir } from "../config/paths-state.js";
2
+ import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
2
3
  import { createLogger } from "../utils/logger/index.js";
3
4
  import { init_logger } from "../utils/logger.js";
4
5
  import { requireXopcDatabase } from "../storage/sqlite/connection.js";
@@ -8,7 +9,6 @@ import { estimateTokensFromMessages } from "../storage/sqlite/row-mappers.js";
8
9
  import { deleteSessionRecord, ensureSessionRecord, findSessionKeyBySessionId, getGlobalSessionStats, getSessionMetadata, listSessionMetadata, listSessionsByAgent, patchSessionMetadata, resetSessionRecord } from "../storage/sqlite/session-repository.js";
9
10
  import { appendTranscriptEntry, captureCompactionCheckpoint, getCompactionCheckpointDetail, listCompactionCheckpoints, loadCheckpointRows, loadLlmMessagesForSession, loadTranscriptRowsForSession, paginateTranscriptMessages, replaceTranscriptRows, restoreCompactionCheckpoint } from "../storage/sqlite/transcript-repository.js";
10
11
  import "../storage/sqlite/index.js";
11
- import { resolveEffectiveAgentProfileForSession } from "../config/agent-profile.js";
12
12
  import { readPostCompactionContext } from "../agent/reply/post-compaction-context.js";
13
13
  import { SessionCompactor } from "../agent/memory/compaction.js";
14
14
  import { SlidingWindow } from "../agent/memory/window.js";
@@ -1,9 +1,9 @@
1
1
  import { resolveXopcDatabasePath } from "../../config/paths-state.js";
2
2
  import { createLogger } from "../../utils/logger/index.js";
3
3
  import { init_logger } from "../../utils/logger.js";
4
- import { ensureXopcDatabaseSchema } from "./schema.js";
5
4
  import { requireNodeSqlite } from "../../infra/node-sqlite.js";
6
5
  import { installSqliteTransientRejectionHandler } from "../../infra/unhandled-rejections.js";
6
+ import { ensureXopcDatabaseSchema } from "./schema.js";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs";
9
9
  import childProcess from "node:child_process";
@@ -0,0 +1,49 @@
1
+ import type { ConnectorActionMetadata, ConnectorApprovalRecord, ConnectorConnection, ConnectorDefinition, ConnectorExecutionAuditRecord, ConnectorInstallationPolicy } from '../../connectors/types.js';
2
+ export type CachedConnectorCatalogEntry = {
3
+ connectorId: string;
4
+ provider: string;
5
+ definition: ConnectorDefinition;
6
+ fetchedAt: string;
7
+ expiresAt?: string;
8
+ };
9
+ export declare function createConnectorApproval(input: Omit<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'> & Partial<Pick<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'>>): ConnectorApprovalRecord;
10
+ export declare function getConnectorApproval(id: string): ConnectorApprovalRecord | undefined;
11
+ export declare function listConnectorApprovals(options?: {
12
+ principalId?: string;
13
+ sessionKey?: string;
14
+ status?: ConnectorApprovalRecord['status'];
15
+ limit?: number;
16
+ }): ConnectorApprovalRecord[];
17
+ export declare function decideConnectorApproval(id: string, decision: 'approved' | 'denied', now?: Date): ConnectorApprovalRecord | undefined;
18
+ export declare function consumeConnectorApproval(id: string, argumentsHash: string, now?: Date): ConnectorApprovalRecord | undefined;
19
+ export declare function upsertConnectorCatalogEntry(input: CachedConnectorCatalogEntry): CachedConnectorCatalogEntry;
20
+ export declare function getCachedConnectorCatalogEntry(connectorId: string): CachedConnectorCatalogEntry | undefined;
21
+ export declare function listCachedConnectorCatalogEntries(provider?: string): CachedConnectorCatalogEntry[];
22
+ export declare function upsertConnectorInstallation(input: Omit<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'>>): ConnectorInstallationPolicy;
23
+ export declare function getConnectorInstallation(id: string): ConnectorInstallationPolicy | undefined;
24
+ export declare function listConnectorInstallations(principalId?: string): ConnectorInstallationPolicy[];
25
+ export declare function deleteConnectorInstallation(id: string): boolean;
26
+ export declare function upsertConnectorConnection(input: Omit<ConnectorConnection, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorConnection, 'createdAt' | 'updatedAt'>>): ConnectorConnection;
27
+ export declare function getConnectorConnection(id: string): ConnectorConnection | undefined;
28
+ export declare function listConnectorConnections(options?: {
29
+ principalId?: string;
30
+ connectorId?: string;
31
+ }): ConnectorConnection[];
32
+ export declare function deleteConnectorConnection(id: string): boolean;
33
+ export declare function upsertConnectorActionMetadata(input: ConnectorActionMetadata): ConnectorActionMetadata;
34
+ export declare function listConnectorActionMetadata(connectorId: string): ConnectorActionMetadata[];
35
+ export declare function appendConnectorExecutionAudit(input: Omit<ConnectorExecutionAuditRecord, 'id' | 'createdAt'> & Partial<Pick<ConnectorExecutionAuditRecord, 'id' | 'createdAt'>>): ConnectorExecutionAuditRecord;
36
+ export declare function listConnectorExecutionAudit(options?: {
37
+ principalId?: string;
38
+ connectorId?: string;
39
+ limit?: number;
40
+ }): ConnectorExecutionAuditRecord[];
41
+ export declare function claimConnectorWebhookDelivery(input: {
42
+ id: string;
43
+ provider: string;
44
+ payloadHash: string;
45
+ now?: Date;
46
+ leaseMs?: number;
47
+ }): 'claimed' | 'processed' | 'in_flight';
48
+ export declare function completeConnectorWebhookDelivery(id: string, now?: Date): void;
49
+ export declare function releaseConnectorWebhookDelivery(id: string, error: unknown): void;
@@ -0,0 +1,385 @@
1
+ import { getSqliteDatabase, runSqliteWriteTransaction } from "./transaction.js";
2
+ import { randomUUID } from "node:crypto";
3
+ //#region src/storage/sqlite/connector-repository.ts
4
+ function parseStringArray(value) {
5
+ try {
6
+ const parsed = JSON.parse(value);
7
+ return Array.isArray(parsed) ? parsed.filter((item) => typeof item === "string") : [];
8
+ } catch {
9
+ return [];
10
+ }
11
+ }
12
+ function parseObject(value) {
13
+ try {
14
+ const parsed = JSON.parse(value);
15
+ return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
16
+ } catch {
17
+ return {};
18
+ }
19
+ }
20
+ function installationFromRow(row) {
21
+ return {
22
+ id: row.id,
23
+ connectorId: row.connector_id,
24
+ principalId: row.principal_id,
25
+ enabled: row.enabled === 1,
26
+ allowedAgentIds: parseStringArray(row.allowed_agent_ids_json),
27
+ maxScope: row.max_scope,
28
+ confirmationPolicy: row.confirmation_policy,
29
+ selectedConnectionIds: parseStringArray(row.selected_connection_ids_json),
30
+ createdAt: row.created_at,
31
+ updatedAt: row.updated_at
32
+ };
33
+ }
34
+ function connectionFromRow(row) {
35
+ return {
36
+ id: row.id,
37
+ installationId: row.installation_id ?? void 0,
38
+ connectorId: row.connector_id,
39
+ provider: row.provider,
40
+ principalId: row.principal_id,
41
+ providerConnectionId: row.provider_connection_id,
42
+ alias: row.alias ?? void 0,
43
+ identity: parseObject(row.identity_json),
44
+ status: row.status,
45
+ isDefault: row.is_default === 1,
46
+ connectedAt: row.connected_at ?? void 0,
47
+ expiresAt: row.expires_at ?? void 0,
48
+ lastError: row.last_error ?? void 0,
49
+ metadata: parseObject(row.metadata_json),
50
+ createdAt: row.created_at,
51
+ updatedAt: row.updated_at
52
+ };
53
+ }
54
+ function actionFromRow(row) {
55
+ return {
56
+ connectorId: row.connector_id,
57
+ actionId: row.action_id,
58
+ toolkit: row.toolkit ?? void 0,
59
+ scope: row.scope,
60
+ curated: row.curated === 1,
61
+ inputSchema: row.input_schema_json == null ? void 0 : JSON.parse(row.input_schema_json),
62
+ schemaVersion: row.schema_version ?? void 0,
63
+ cachedAt: row.cached_at
64
+ };
65
+ }
66
+ function auditFromRow(row) {
67
+ return {
68
+ id: row.id,
69
+ installationId: row.installation_id ?? void 0,
70
+ connectionId: row.connection_id ?? void 0,
71
+ connectorId: row.connector_id,
72
+ principalId: row.principal_id,
73
+ agentId: row.agent_id ?? void 0,
74
+ sessionKey: row.session_key ?? void 0,
75
+ actionId: row.action_id,
76
+ scope: row.scope,
77
+ decision: row.decision,
78
+ resultStatus: row.result_status,
79
+ durationMs: row.duration_ms ?? void 0,
80
+ errorCode: row.error_code ?? void 0,
81
+ createdAt: row.created_at
82
+ };
83
+ }
84
+ function catalogFromRow(row) {
85
+ try {
86
+ const definition = JSON.parse(row.definition_json);
87
+ if (!definition || typeof definition !== "object" || definition.id !== row.connector_id) return void 0;
88
+ return {
89
+ connectorId: row.connector_id,
90
+ provider: row.provider,
91
+ definition,
92
+ fetchedAt: row.fetched_at,
93
+ expiresAt: row.expires_at ?? void 0
94
+ };
95
+ } catch {
96
+ return;
97
+ }
98
+ }
99
+ function approvalFromRow(row) {
100
+ return {
101
+ id: row.id,
102
+ principalId: row.principal_id,
103
+ connectorId: row.connector_id,
104
+ connectionId: row.connection_id ?? void 0,
105
+ agentId: row.agent_id ?? void 0,
106
+ sessionKey: row.session_key ?? void 0,
107
+ actionId: row.action_id,
108
+ scope: row.scope,
109
+ argumentsHash: row.arguments_hash,
110
+ argumentsPreview: parseObject(row.arguments_preview_json),
111
+ status: row.status,
112
+ expiresAt: row.expires_at,
113
+ createdAt: row.created_at,
114
+ decidedAt: row.decided_at ?? void 0,
115
+ consumedAt: row.consumed_at ?? void 0
116
+ };
117
+ }
118
+ function createConnectorApproval(input) {
119
+ const record = {
120
+ ...input,
121
+ id: input.id ?? randomUUID(),
122
+ status: input.status ?? "pending",
123
+ createdAt: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
124
+ };
125
+ runSqliteWriteTransaction((db) => {
126
+ db.prepare(`
127
+ INSERT INTO connector_approvals (
128
+ id, principal_id, connector_id, connection_id, agent_id, session_key, action_id,
129
+ scope, arguments_hash, arguments_preview_json, status, expires_at, created_at,
130
+ decided_at, consumed_at
131
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
132
+ `).run(record.id, record.principalId, record.connectorId, record.connectionId ?? null, record.agentId ?? null, record.sessionKey ?? null, record.actionId, record.scope, record.argumentsHash, JSON.stringify(record.argumentsPreview), record.status, record.expiresAt, record.createdAt, record.decidedAt ?? null, record.consumedAt ?? null);
133
+ });
134
+ return record;
135
+ }
136
+ function getConnectorApproval(id) {
137
+ const row = getSqliteDatabase().prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id);
138
+ return row ? approvalFromRow(row) : void 0;
139
+ }
140
+ function listConnectorApprovals(options = {}) {
141
+ const clauses = [];
142
+ const values = [];
143
+ if (options.principalId) {
144
+ clauses.push("principal_id = ?");
145
+ values.push(options.principalId);
146
+ }
147
+ if (options.sessionKey) {
148
+ clauses.push("session_key = ?");
149
+ values.push(options.sessionKey);
150
+ }
151
+ if (options.status) {
152
+ clauses.push("status = ?");
153
+ values.push(options.status);
154
+ }
155
+ const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
156
+ values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));
157
+ return getSqliteDatabase().prepare(`SELECT * FROM connector_approvals${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`).all(...values).map(approvalFromRow);
158
+ }
159
+ function decideConnectorApproval(id, decision, now = /* @__PURE__ */ new Date()) {
160
+ return runSqliteWriteTransaction((db) => {
161
+ const current = db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id);
162
+ if (!current) return void 0;
163
+ if (current.status !== "pending" || Date.parse(current.expires_at) <= now.getTime()) {
164
+ if (current.status === "pending") db.prepare("UPDATE connector_approvals SET status = 'expired', decided_at = ? WHERE id = ?").run(now.toISOString(), id);
165
+ return approvalFromRow(db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id));
166
+ }
167
+ db.prepare("UPDATE connector_approvals SET status = ?, decided_at = ? WHERE id = ?").run(decision, now.toISOString(), id);
168
+ return approvalFromRow(db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id));
169
+ });
170
+ }
171
+ function consumeConnectorApproval(id, argumentsHash, now = /* @__PURE__ */ new Date()) {
172
+ return runSqliteWriteTransaction((db) => {
173
+ const current = db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id);
174
+ if (!current || current.arguments_hash !== argumentsHash) return void 0;
175
+ if (current.status !== "approved" || Date.parse(current.expires_at) <= now.getTime()) {
176
+ if (current.status === "approved" && Date.parse(current.expires_at) <= now.getTime()) db.prepare("UPDATE connector_approvals SET status = 'expired' WHERE id = ?").run(id);
177
+ return;
178
+ }
179
+ db.prepare("UPDATE connector_approvals SET status = 'consumed', consumed_at = ? WHERE id = ? AND status = 'approved'").run(now.toISOString(), id);
180
+ return approvalFromRow(db.prepare("SELECT * FROM connector_approvals WHERE id = ?").get(id));
181
+ });
182
+ }
183
+ function upsertConnectorCatalogEntry(input) {
184
+ runSqliteWriteTransaction((db) => {
185
+ db.prepare(`
186
+ INSERT INTO connector_catalog_entries (connector_id, provider, definition_json, fetched_at, expires_at)
187
+ VALUES (?, ?, ?, ?, ?)
188
+ ON CONFLICT(connector_id) DO UPDATE SET
189
+ provider = excluded.provider,
190
+ definition_json = excluded.definition_json,
191
+ fetched_at = excluded.fetched_at,
192
+ expires_at = excluded.expires_at
193
+ `).run(input.connectorId, input.provider, JSON.stringify(input.definition), input.fetchedAt, input.expiresAt ?? null);
194
+ });
195
+ return input;
196
+ }
197
+ function getCachedConnectorCatalogEntry(connectorId) {
198
+ const row = getSqliteDatabase().prepare("SELECT * FROM connector_catalog_entries WHERE connector_id = ?").get(connectorId);
199
+ return row ? catalogFromRow(row) : void 0;
200
+ }
201
+ function listCachedConnectorCatalogEntries(provider) {
202
+ return (provider ? getSqliteDatabase().prepare("SELECT * FROM connector_catalog_entries WHERE provider = ? ORDER BY connector_id").all(provider) : getSqliteDatabase().prepare("SELECT * FROM connector_catalog_entries ORDER BY provider, connector_id").all()).flatMap((row) => {
203
+ const entry = catalogFromRow(row);
204
+ return entry ? [entry] : [];
205
+ });
206
+ }
207
+ function upsertConnectorInstallation(input) {
208
+ const now = (/* @__PURE__ */ new Date()).toISOString();
209
+ return runSqliteWriteTransaction((db) => {
210
+ db.prepare(`
211
+ INSERT INTO connector_installations (
212
+ id, connector_id, principal_id, enabled, allowed_agent_ids_json, max_scope,
213
+ confirmation_policy, selected_connection_ids_json, created_at, updated_at
214
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
215
+ ON CONFLICT(id) DO UPDATE SET
216
+ connector_id = excluded.connector_id,
217
+ principal_id = excluded.principal_id,
218
+ enabled = excluded.enabled,
219
+ allowed_agent_ids_json = excluded.allowed_agent_ids_json,
220
+ max_scope = excluded.max_scope,
221
+ confirmation_policy = excluded.confirmation_policy,
222
+ selected_connection_ids_json = excluded.selected_connection_ids_json,
223
+ updated_at = excluded.updated_at
224
+ `).run(input.id, input.connectorId, input.principalId, input.enabled ? 1 : 0, JSON.stringify(input.allowedAgentIds), input.maxScope, input.confirmationPolicy, JSON.stringify(input.selectedConnectionIds), input.createdAt ?? now, input.updatedAt ?? now);
225
+ return getConnectorInstallation(input.id);
226
+ });
227
+ }
228
+ function getConnectorInstallation(id) {
229
+ const row = getSqliteDatabase().prepare("SELECT * FROM connector_installations WHERE id = ?").get(id);
230
+ return row ? installationFromRow(row) : void 0;
231
+ }
232
+ function listConnectorInstallations(principalId) {
233
+ return (principalId ? getSqliteDatabase().prepare("SELECT * FROM connector_installations WHERE principal_id = ? ORDER BY connector_id").all(principalId) : getSqliteDatabase().prepare("SELECT * FROM connector_installations ORDER BY principal_id, connector_id").all()).map(installationFromRow);
234
+ }
235
+ function deleteConnectorInstallation(id) {
236
+ return runSqliteWriteTransaction((db) => db.prepare("DELETE FROM connector_installations WHERE id = ?").run(id).changes > 0);
237
+ }
238
+ function upsertConnectorConnection(input) {
239
+ const now = (/* @__PURE__ */ new Date()).toISOString();
240
+ return runSqliteWriteTransaction((db) => {
241
+ if (input.isDefault) db.prepare("UPDATE connector_connections SET is_default = 0 WHERE principal_id = ? AND connector_id = ? AND id <> ?").run(input.principalId, input.connectorId, input.id);
242
+ db.prepare(`
243
+ INSERT INTO connector_connections (
244
+ id, installation_id, connector_id, provider, principal_id, provider_connection_id,
245
+ alias, identity_json, status, is_default, connected_at, expires_at, last_error,
246
+ metadata_json, created_at, updated_at
247
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
248
+ ON CONFLICT(id) DO UPDATE SET
249
+ installation_id = excluded.installation_id,
250
+ connector_id = excluded.connector_id,
251
+ provider = excluded.provider,
252
+ principal_id = excluded.principal_id,
253
+ provider_connection_id = excluded.provider_connection_id,
254
+ alias = excluded.alias,
255
+ identity_json = excluded.identity_json,
256
+ status = excluded.status,
257
+ is_default = excluded.is_default,
258
+ connected_at = excluded.connected_at,
259
+ expires_at = excluded.expires_at,
260
+ last_error = excluded.last_error,
261
+ metadata_json = excluded.metadata_json,
262
+ updated_at = excluded.updated_at
263
+ `).run(input.id, input.installationId ?? null, input.connectorId, input.provider, input.principalId, input.providerConnectionId, input.alias ?? null, JSON.stringify(input.identity), input.status, input.isDefault ? 1 : 0, input.connectedAt ?? null, input.expiresAt ?? null, input.lastError ?? null, JSON.stringify(input.metadata), input.createdAt ?? now, input.updatedAt ?? now);
264
+ return getConnectorConnection(input.id);
265
+ });
266
+ }
267
+ function getConnectorConnection(id) {
268
+ const row = getSqliteDatabase().prepare("SELECT * FROM connector_connections WHERE id = ?").get(id);
269
+ return row ? connectionFromRow(row) : void 0;
270
+ }
271
+ function listConnectorConnections(options = {}) {
272
+ const clauses = [];
273
+ const values = [];
274
+ if (options.principalId) {
275
+ clauses.push("principal_id = ?");
276
+ values.push(options.principalId);
277
+ }
278
+ if (options.connectorId) {
279
+ clauses.push("connector_id = ?");
280
+ values.push(options.connectorId);
281
+ }
282
+ const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
283
+ return getSqliteDatabase().prepare(`SELECT * FROM connector_connections${where} ORDER BY is_default DESC, updated_at DESC`).all(...values).map(connectionFromRow);
284
+ }
285
+ function deleteConnectorConnection(id) {
286
+ return runSqliteWriteTransaction((db) => db.prepare("DELETE FROM connector_connections WHERE id = ?").run(id).changes > 0);
287
+ }
288
+ function upsertConnectorActionMetadata(input) {
289
+ return runSqliteWriteTransaction((db) => {
290
+ db.prepare(`
291
+ INSERT INTO connector_action_metadata (
292
+ connector_id, action_id, toolkit, scope, curated, input_schema_json, schema_version, cached_at
293
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
294
+ ON CONFLICT(connector_id, action_id) DO UPDATE SET
295
+ toolkit = excluded.toolkit,
296
+ scope = excluded.scope,
297
+ curated = excluded.curated,
298
+ input_schema_json = excluded.input_schema_json,
299
+ schema_version = excluded.schema_version,
300
+ cached_at = excluded.cached_at
301
+ `).run(input.connectorId, input.actionId, input.toolkit ?? null, input.scope, input.curated ? 1 : 0, input.inputSchema === void 0 ? null : JSON.stringify(input.inputSchema), input.schemaVersion ?? null, input.cachedAt);
302
+ return input;
303
+ });
304
+ }
305
+ function listConnectorActionMetadata(connectorId) {
306
+ return getSqliteDatabase().prepare("SELECT * FROM connector_action_metadata WHERE connector_id = ? ORDER BY action_id").all(connectorId).map(actionFromRow);
307
+ }
308
+ function appendConnectorExecutionAudit(input) {
309
+ const record = {
310
+ ...input,
311
+ id: input.id ?? randomUUID(),
312
+ createdAt: input.createdAt ?? (/* @__PURE__ */ new Date()).toISOString()
313
+ };
314
+ runSqliteWriteTransaction((db) => {
315
+ db.prepare(`
316
+ INSERT INTO connector_execution_audit (
317
+ id, installation_id, connection_id, connector_id, principal_id, agent_id,
318
+ session_key, action_id, scope, decision, result_status, duration_ms, error_code, created_at
319
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
320
+ `).run(record.id, record.installationId ?? null, record.connectionId ?? null, record.connectorId, record.principalId, record.agentId ?? null, record.sessionKey ?? null, record.actionId, record.scope, record.decision, record.resultStatus, record.durationMs ?? null, record.errorCode ?? null, record.createdAt);
321
+ });
322
+ return record;
323
+ }
324
+ function listConnectorExecutionAudit(options = {}) {
325
+ const clauses = [];
326
+ const values = [];
327
+ if (options.principalId) {
328
+ clauses.push("principal_id = ?");
329
+ values.push(options.principalId);
330
+ }
331
+ if (options.connectorId) {
332
+ clauses.push("connector_id = ?");
333
+ values.push(options.connectorId);
334
+ }
335
+ const where = clauses.length > 0 ? ` WHERE ${clauses.join(" AND ")}` : "";
336
+ values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));
337
+ return getSqliteDatabase().prepare(`SELECT * FROM connector_execution_audit${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`).all(...values).map(auditFromRow);
338
+ }
339
+ function claimConnectorWebhookDelivery(input) {
340
+ const now = input.now ?? /* @__PURE__ */ new Date();
341
+ return runSqliteWriteTransaction((db) => {
342
+ const current = db.prepare("SELECT status, processing_at, payload_hash FROM connector_webhook_deliveries WHERE id = ?").get(input.id);
343
+ if (!current) {
344
+ db.prepare(`
345
+ INSERT INTO connector_webhook_deliveries (
346
+ id, provider, payload_hash, status, attempts, received_at, processing_at
347
+ ) VALUES (?, ?, ?, 'processing', 1, ?, ?)
348
+ `).run(input.id, input.provider, input.payloadHash, now.toISOString(), now.toISOString());
349
+ return "claimed";
350
+ }
351
+ if (current.payload_hash !== input.payloadHash) throw new Error("Webhook delivery id was reused with a different payload.");
352
+ if (current.status === "processed") return "processed";
353
+ const leaseMs = input.leaseMs ?? 5 * 6e4;
354
+ if (current.status === "processing" && current.processing_at && Date.parse(current.processing_at) + leaseMs > now.getTime()) return "in_flight";
355
+ db.prepare(`
356
+ UPDATE connector_webhook_deliveries
357
+ SET status = 'processing', attempts = attempts + 1, processing_at = ?, last_error = NULL
358
+ WHERE id = ?
359
+ `).run(now.toISOString(), input.id);
360
+ return "claimed";
361
+ });
362
+ }
363
+ function completeConnectorWebhookDelivery(id, now = /* @__PURE__ */ new Date()) {
364
+ runSqliteWriteTransaction((db) => {
365
+ db.prepare(`
366
+ UPDATE connector_webhook_deliveries
367
+ SET status = 'processed', processed_at = ?, processing_at = NULL, last_error = NULL
368
+ WHERE id = ?
369
+ `).run(now.toISOString(), id);
370
+ });
371
+ }
372
+ function releaseConnectorWebhookDelivery(id, error) {
373
+ const message = error instanceof Error ? error.message : String(error);
374
+ runSqliteWriteTransaction((db) => {
375
+ db.prepare(`
376
+ UPDATE connector_webhook_deliveries
377
+ SET status = 'pending', processing_at = NULL, last_error = ?
378
+ WHERE id = ? AND status = 'processing'
379
+ `).run(message.slice(0, 500), id);
380
+ });
381
+ }
382
+ //#endregion
383
+ export { appendConnectorExecutionAudit, claimConnectorWebhookDelivery, completeConnectorWebhookDelivery, consumeConnectorApproval, createConnectorApproval, decideConnectorApproval, deleteConnectorConnection, deleteConnectorInstallation, getCachedConnectorCatalogEntry, getConnectorApproval, getConnectorConnection, getConnectorInstallation, listCachedConnectorCatalogEntries, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, releaseConnectorWebhookDelivery, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation };
384
+
385
+ //# sourceMappingURL=connector-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector-repository.js","names":[],"sources":["../../../../src/storage/sqlite/connector-repository.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport type {\n ConnectorActionMetadata,\n ConnectorApprovalRecord,\n ConnectorConnection,\n ConnectorDefinition,\n ConnectorExecutionAuditRecord,\n ConnectorInstallationPolicy,\n} from '../../connectors/types.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\ntype InstallationRow = {\n id: string;\n connector_id: string;\n principal_id: string;\n enabled: number;\n allowed_agent_ids_json: string;\n max_scope: ConnectorInstallationPolicy['maxScope'];\n confirmation_policy: ConnectorInstallationPolicy['confirmationPolicy'];\n selected_connection_ids_json: string;\n created_at: string;\n updated_at: string;\n};\n\ntype ConnectionRow = {\n id: string;\n installation_id: string | null;\n connector_id: string;\n provider: string;\n principal_id: string;\n provider_connection_id: string;\n alias: string | null;\n identity_json: string;\n status: ConnectorConnection['status'];\n is_default: number;\n connected_at: string | null;\n expires_at: string | null;\n last_error: string | null;\n metadata_json: string;\n created_at: string;\n updated_at: string;\n};\n\ntype ActionRow = {\n connector_id: string;\n action_id: string;\n toolkit: string | null;\n scope: ConnectorActionMetadata['scope'];\n curated: number;\n input_schema_json: string | null;\n schema_version: string | null;\n cached_at: string;\n};\n\ntype AuditRow = {\n id: string;\n installation_id: string | null;\n connection_id: string | null;\n connector_id: string;\n principal_id: string;\n agent_id: string | null;\n session_key: string | null;\n action_id: string;\n scope: ConnectorExecutionAuditRecord['scope'];\n decision: ConnectorExecutionAuditRecord['decision'];\n result_status: ConnectorExecutionAuditRecord['resultStatus'];\n duration_ms: number | null;\n error_code: string | null;\n created_at: string;\n};\n\ntype CatalogRow = {\n connector_id: string;\n provider: string;\n definition_json: string;\n fetched_at: string;\n expires_at: string | null;\n};\n\ntype ApprovalRow = {\n id: string;\n principal_id: string;\n connector_id: string;\n connection_id: string | null;\n agent_id: string | null;\n session_key: string | null;\n action_id: string;\n scope: ConnectorApprovalRecord['scope'];\n arguments_hash: string;\n arguments_preview_json: string;\n status: ConnectorApprovalRecord['status'];\n expires_at: string;\n created_at: string;\n decided_at: string | null;\n consumed_at: string | null;\n};\n\nexport type CachedConnectorCatalogEntry = {\n connectorId: string;\n provider: string;\n definition: ConnectorDefinition;\n fetchedAt: string;\n expiresAt?: string;\n};\n\nfunction parseStringArray(value: string): string[] {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : [];\n } catch {\n return [];\n }\n}\n\nfunction parseObject(value: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(value);\n return parsed && typeof parsed === 'object' && !Array.isArray(parsed)\n ? parsed as Record<string, unknown>\n : {};\n } catch {\n return {};\n }\n}\n\nfunction installationFromRow(row: InstallationRow): ConnectorInstallationPolicy {\n return {\n id: row.id,\n connectorId: row.connector_id,\n principalId: row.principal_id,\n enabled: row.enabled === 1,\n allowedAgentIds: parseStringArray(row.allowed_agent_ids_json),\n maxScope: row.max_scope,\n confirmationPolicy: row.confirmation_policy,\n selectedConnectionIds: parseStringArray(row.selected_connection_ids_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction connectionFromRow(row: ConnectionRow): ConnectorConnection {\n return {\n id: row.id,\n installationId: row.installation_id ?? undefined,\n connectorId: row.connector_id,\n provider: row.provider,\n principalId: row.principal_id,\n providerConnectionId: row.provider_connection_id,\n alias: row.alias ?? undefined,\n identity: parseObject(row.identity_json),\n status: row.status,\n isDefault: row.is_default === 1,\n connectedAt: row.connected_at ?? undefined,\n expiresAt: row.expires_at ?? undefined,\n lastError: row.last_error ?? undefined,\n metadata: parseObject(row.metadata_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction actionFromRow(row: ActionRow): ConnectorActionMetadata {\n return {\n connectorId: row.connector_id,\n actionId: row.action_id,\n toolkit: row.toolkit ?? undefined,\n scope: row.scope,\n curated: row.curated === 1,\n inputSchema: row.input_schema_json == null ? undefined : JSON.parse(row.input_schema_json),\n schemaVersion: row.schema_version ?? undefined,\n cachedAt: row.cached_at,\n };\n}\n\nfunction auditFromRow(row: AuditRow): ConnectorExecutionAuditRecord {\n return {\n id: row.id,\n installationId: row.installation_id ?? undefined,\n connectionId: row.connection_id ?? undefined,\n connectorId: row.connector_id,\n principalId: row.principal_id,\n agentId: row.agent_id ?? undefined,\n sessionKey: row.session_key ?? undefined,\n actionId: row.action_id,\n scope: row.scope,\n decision: row.decision,\n resultStatus: row.result_status,\n durationMs: row.duration_ms ?? undefined,\n errorCode: row.error_code ?? undefined,\n createdAt: row.created_at,\n };\n}\n\nfunction catalogFromRow(row: CatalogRow): CachedConnectorCatalogEntry | undefined {\n try {\n const definition = JSON.parse(row.definition_json) as ConnectorDefinition;\n if (!definition || typeof definition !== 'object' || definition.id !== row.connector_id) return undefined;\n return {\n connectorId: row.connector_id,\n provider: row.provider,\n definition,\n fetchedAt: row.fetched_at,\n expiresAt: row.expires_at ?? undefined,\n };\n } catch {\n return undefined;\n }\n}\n\nfunction approvalFromRow(row: ApprovalRow): ConnectorApprovalRecord {\n return {\n id: row.id,\n principalId: row.principal_id,\n connectorId: row.connector_id,\n connectionId: row.connection_id ?? undefined,\n agentId: row.agent_id ?? undefined,\n sessionKey: row.session_key ?? undefined,\n actionId: row.action_id,\n scope: row.scope,\n argumentsHash: row.arguments_hash,\n argumentsPreview: parseObject(row.arguments_preview_json),\n status: row.status,\n expiresAt: row.expires_at,\n createdAt: row.created_at,\n decidedAt: row.decided_at ?? undefined,\n consumedAt: row.consumed_at ?? undefined,\n };\n}\n\nexport function createConnectorApproval(\n input: Omit<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'> & Partial<Pick<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'>>,\n): ConnectorApprovalRecord {\n const record: ConnectorApprovalRecord = {\n ...input,\n id: input.id ?? randomUUID(),\n status: input.status ?? 'pending',\n createdAt: input.createdAt ?? new Date().toISOString(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_approvals (\n id, principal_id, connector_id, connection_id, agent_id, session_key, action_id,\n scope, arguments_hash, arguments_preview_json, status, expires_at, created_at,\n decided_at, consumed_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `).run(\n record.id,\n record.principalId,\n record.connectorId,\n record.connectionId ?? null,\n record.agentId ?? null,\n record.sessionKey ?? null,\n record.actionId,\n record.scope,\n record.argumentsHash,\n JSON.stringify(record.argumentsPreview),\n record.status,\n record.expiresAt,\n record.createdAt,\n record.decidedAt ?? null,\n record.consumedAt ?? null,\n );\n });\n return record;\n}\n\nexport function getConnectorApproval(id: string): ConnectorApprovalRecord | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n return row ? approvalFromRow(row) : undefined;\n}\n\nexport function listConnectorApprovals(options: {\n principalId?: string;\n sessionKey?: string;\n status?: ConnectorApprovalRecord['status'];\n limit?: number;\n} = {}): ConnectorApprovalRecord[] {\n const clauses: string[] = [];\n const values: Array<string | number> = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.sessionKey) {\n clauses.push('session_key = ?');\n values.push(options.sessionKey);\n }\n if (options.status) {\n clauses.push('status = ?');\n values.push(options.status);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM connector_approvals${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`,\n ).all(...values) as ApprovalRow[];\n return rows.map(approvalFromRow);\n}\n\nexport function decideConnectorApproval(id: string, decision: 'approved' | 'denied', now = new Date()): ConnectorApprovalRecord | undefined {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n if (!current) return undefined;\n if (current.status !== 'pending' || Date.parse(current.expires_at) <= now.getTime()) {\n if (current.status === 'pending') {\n db.prepare(\"UPDATE connector_approvals SET status = 'expired', decided_at = ? WHERE id = ?\")\n .run(now.toISOString(), id);\n }\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n }\n db.prepare('UPDATE connector_approvals SET status = ?, decided_at = ? WHERE id = ?')\n .run(decision, now.toISOString(), id);\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n });\n}\n\nexport function consumeConnectorApproval(id: string, argumentsHash: string, now = new Date()): ConnectorApprovalRecord | undefined {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n if (!current || current.arguments_hash !== argumentsHash) return undefined;\n if (current.status !== 'approved' || Date.parse(current.expires_at) <= now.getTime()) {\n if (current.status === 'approved' && Date.parse(current.expires_at) <= now.getTime()) {\n db.prepare(\"UPDATE connector_approvals SET status = 'expired' WHERE id = ?\").run(id);\n }\n return undefined;\n }\n db.prepare(\"UPDATE connector_approvals SET status = 'consumed', consumed_at = ? WHERE id = ? AND status = 'approved'\")\n .run(now.toISOString(), id);\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n });\n}\n\nexport function upsertConnectorCatalogEntry(input: CachedConnectorCatalogEntry): CachedConnectorCatalogEntry {\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_catalog_entries (connector_id, provider, definition_json, fetched_at, expires_at)\n VALUES (?, ?, ?, ?, ?)\n ON CONFLICT(connector_id) DO UPDATE SET\n provider = excluded.provider,\n definition_json = excluded.definition_json,\n fetched_at = excluded.fetched_at,\n expires_at = excluded.expires_at\n `).run(\n input.connectorId,\n input.provider,\n JSON.stringify(input.definition),\n input.fetchedAt,\n input.expiresAt ?? null,\n );\n });\n return input;\n}\n\nexport function getCachedConnectorCatalogEntry(connectorId: string): CachedConnectorCatalogEntry | undefined {\n const row = getSqliteDatabase().prepare(\n 'SELECT * FROM connector_catalog_entries WHERE connector_id = ?',\n ).get(connectorId) as CatalogRow | undefined;\n return row ? catalogFromRow(row) : undefined;\n}\n\nexport function listCachedConnectorCatalogEntries(provider?: string): CachedConnectorCatalogEntry[] {\n const rows = (provider\n ? getSqliteDatabase().prepare('SELECT * FROM connector_catalog_entries WHERE provider = ? ORDER BY connector_id').all(provider)\n : getSqliteDatabase().prepare('SELECT * FROM connector_catalog_entries ORDER BY provider, connector_id').all()) as CatalogRow[];\n return rows.flatMap((row) => {\n const entry = catalogFromRow(row);\n return entry ? [entry] : [];\n });\n}\n\nexport function upsertConnectorInstallation(\n input: Omit<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'>>,\n): ConnectorInstallationPolicy {\n const now = new Date().toISOString();\n return runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_installations (\n id, connector_id, principal_id, enabled, allowed_agent_ids_json, max_scope,\n confirmation_policy, selected_connection_ids_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n connector_id = excluded.connector_id,\n principal_id = excluded.principal_id,\n enabled = excluded.enabled,\n allowed_agent_ids_json = excluded.allowed_agent_ids_json,\n max_scope = excluded.max_scope,\n confirmation_policy = excluded.confirmation_policy,\n selected_connection_ids_json = excluded.selected_connection_ids_json,\n updated_at = excluded.updated_at\n `).run(\n input.id,\n input.connectorId,\n input.principalId,\n input.enabled ? 1 : 0,\n JSON.stringify(input.allowedAgentIds),\n input.maxScope,\n input.confirmationPolicy,\n JSON.stringify(input.selectedConnectionIds),\n input.createdAt ?? now,\n input.updatedAt ?? now,\n );\n return getConnectorInstallation(input.id)!;\n });\n}\n\nexport function getConnectorInstallation(id: string): ConnectorInstallationPolicy | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_installations WHERE id = ?').get(id) as InstallationRow | undefined;\n return row ? installationFromRow(row) : undefined;\n}\n\nexport function listConnectorInstallations(principalId?: string): ConnectorInstallationPolicy[] {\n const rows = (principalId\n ? getSqliteDatabase().prepare('SELECT * FROM connector_installations WHERE principal_id = ? ORDER BY connector_id').all(principalId)\n : getSqliteDatabase().prepare('SELECT * FROM connector_installations ORDER BY principal_id, connector_id').all()) as InstallationRow[];\n return rows.map(installationFromRow);\n}\n\nexport function deleteConnectorInstallation(id: string): boolean {\n return runSqliteWriteTransaction((db) => db.prepare('DELETE FROM connector_installations WHERE id = ?').run(id).changes > 0);\n}\n\nexport function upsertConnectorConnection(\n input: Omit<ConnectorConnection, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorConnection, 'createdAt' | 'updatedAt'>>,\n): ConnectorConnection {\n const now = new Date().toISOString();\n return runSqliteWriteTransaction((db) => {\n if (input.isDefault) {\n db.prepare('UPDATE connector_connections SET is_default = 0 WHERE principal_id = ? AND connector_id = ? AND id <> ?')\n .run(input.principalId, input.connectorId, input.id);\n }\n db.prepare(`\n INSERT INTO connector_connections (\n id, installation_id, connector_id, provider, principal_id, provider_connection_id,\n alias, identity_json, status, is_default, connected_at, expires_at, last_error,\n metadata_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n installation_id = excluded.installation_id,\n connector_id = excluded.connector_id,\n provider = excluded.provider,\n principal_id = excluded.principal_id,\n provider_connection_id = excluded.provider_connection_id,\n alias = excluded.alias,\n identity_json = excluded.identity_json,\n status = excluded.status,\n is_default = excluded.is_default,\n connected_at = excluded.connected_at,\n expires_at = excluded.expires_at,\n last_error = excluded.last_error,\n metadata_json = excluded.metadata_json,\n updated_at = excluded.updated_at\n `).run(\n input.id,\n input.installationId ?? null,\n input.connectorId,\n input.provider,\n input.principalId,\n input.providerConnectionId,\n input.alias ?? null,\n JSON.stringify(input.identity),\n input.status,\n input.isDefault ? 1 : 0,\n input.connectedAt ?? null,\n input.expiresAt ?? null,\n input.lastError ?? null,\n JSON.stringify(input.metadata),\n input.createdAt ?? now,\n input.updatedAt ?? now,\n );\n return getConnectorConnection(input.id)!;\n });\n}\n\nexport function getConnectorConnection(id: string): ConnectorConnection | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_connections WHERE id = ?').get(id) as ConnectionRow | undefined;\n return row ? connectionFromRow(row) : undefined;\n}\n\nexport function listConnectorConnections(options: { principalId?: string; connectorId?: string } = {}): ConnectorConnection[] {\n const clauses: string[] = [];\n const values: string[] = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.connectorId) {\n clauses.push('connector_id = ?');\n values.push(options.connectorId);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n const rows = getSqliteDatabase().prepare(`SELECT * FROM connector_connections${where} ORDER BY is_default DESC, updated_at DESC`).all(...values) as ConnectionRow[];\n return rows.map(connectionFromRow);\n}\n\nexport function deleteConnectorConnection(id: string): boolean {\n return runSqliteWriteTransaction((db) => db.prepare('DELETE FROM connector_connections WHERE id = ?').run(id).changes > 0);\n}\n\nexport function upsertConnectorActionMetadata(input: ConnectorActionMetadata): ConnectorActionMetadata {\n return runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_action_metadata (\n connector_id, action_id, toolkit, scope, curated, input_schema_json, schema_version, cached_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(connector_id, action_id) DO UPDATE SET\n toolkit = excluded.toolkit,\n scope = excluded.scope,\n curated = excluded.curated,\n input_schema_json = excluded.input_schema_json,\n schema_version = excluded.schema_version,\n cached_at = excluded.cached_at\n `).run(\n input.connectorId,\n input.actionId,\n input.toolkit ?? null,\n input.scope,\n input.curated ? 1 : 0,\n input.inputSchema === undefined ? null : JSON.stringify(input.inputSchema),\n input.schemaVersion ?? null,\n input.cachedAt,\n );\n return input;\n });\n}\n\nexport function listConnectorActionMetadata(connectorId: string): ConnectorActionMetadata[] {\n const rows = getSqliteDatabase().prepare(\n 'SELECT * FROM connector_action_metadata WHERE connector_id = ? ORDER BY action_id',\n ).all(connectorId) as ActionRow[];\n return rows.map(actionFromRow);\n}\n\nexport function appendConnectorExecutionAudit(\n input: Omit<ConnectorExecutionAuditRecord, 'id' | 'createdAt'> & Partial<Pick<ConnectorExecutionAuditRecord, 'id' | 'createdAt'>>,\n): ConnectorExecutionAuditRecord {\n const record: ConnectorExecutionAuditRecord = {\n ...input,\n id: input.id ?? randomUUID(),\n createdAt: input.createdAt ?? new Date().toISOString(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_execution_audit (\n id, installation_id, connection_id, connector_id, principal_id, agent_id,\n session_key, action_id, scope, decision, result_status, duration_ms, error_code, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `).run(\n record.id,\n record.installationId ?? null,\n record.connectionId ?? null,\n record.connectorId,\n record.principalId,\n record.agentId ?? null,\n record.sessionKey ?? null,\n record.actionId,\n record.scope,\n record.decision,\n record.resultStatus,\n record.durationMs ?? null,\n record.errorCode ?? null,\n record.createdAt,\n );\n });\n return record;\n}\n\nexport function listConnectorExecutionAudit(options: { principalId?: string; connectorId?: string; limit?: number } = {}): ConnectorExecutionAuditRecord[] {\n const clauses: string[] = [];\n const values: Array<string | number> = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.connectorId) {\n clauses.push('connector_id = ?');\n values.push(options.connectorId);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM connector_execution_audit${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`,\n ).all(...values) as AuditRow[];\n return rows.map(auditFromRow);\n}\n\nexport function claimConnectorWebhookDelivery(input: {\n id: string;\n provider: string;\n payloadHash: string;\n now?: Date;\n leaseMs?: number;\n}): 'claimed' | 'processed' | 'in_flight' {\n const now = input.now ?? new Date();\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT status, processing_at, payload_hash FROM connector_webhook_deliveries WHERE id = ?')\n .get(input.id) as { status: string; processing_at: string | null; payload_hash: string } | undefined;\n if (!current) {\n db.prepare(`\n INSERT INTO connector_webhook_deliveries (\n id, provider, payload_hash, status, attempts, received_at, processing_at\n ) VALUES (?, ?, ?, 'processing', 1, ?, ?)\n `).run(input.id, input.provider, input.payloadHash, now.toISOString(), now.toISOString());\n return 'claimed';\n }\n if (current.payload_hash !== input.payloadHash) throw new Error('Webhook delivery id was reused with a different payload.');\n if (current.status === 'processed') return 'processed';\n const leaseMs = input.leaseMs ?? 5 * 60_000;\n if (current.status === 'processing' && current.processing_at && Date.parse(current.processing_at) + leaseMs > now.getTime()) {\n return 'in_flight';\n }\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'processing', attempts = attempts + 1, processing_at = ?, last_error = NULL\n WHERE id = ?\n `).run(now.toISOString(), input.id);\n return 'claimed';\n });\n}\n\nexport function completeConnectorWebhookDelivery(id: string, now = new Date()): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'processed', processed_at = ?, processing_at = NULL, last_error = NULL\n WHERE id = ?\n `).run(now.toISOString(), id);\n });\n}\n\nexport function releaseConnectorWebhookDelivery(id: string, error: unknown): void {\n const message = error instanceof Error ? error.message : String(error);\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'pending', processing_at = NULL, last_error = ?\n WHERE id = ? AND status = 'processing'\n `).run(message.slice(0, 500), id);\n });\n}\n"],"mappings":"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"}
@@ -16,3 +16,6 @@ export { appendMemorySignal, appendMemoryTraceEvent, deleteMemoryRecord, findLat
16
16
  export { attachMemoryEvidence, finishKnowledgeSyncRun, getKnowledgeSourceCursor, getKnowledgeSourceItem, listKnowledgeSourceItems, listKnowledgeSyncRuns, listMemoryEvidence, setKnowledgeSourceItemSynthesisStatus, setKnowledgeSourceCursor, startKnowledgeSyncRun, upsertKnowledgeSourceItems, } from './knowledge-repository.js';
17
17
  export { deleteSessionConfig, getSessionConfig, hasSessionConfig, setSessionConfig, updateSessionConfig, } from './config-repository.js';
18
18
  export { createObjectLinkRecord, getActivityEventRecord, listActivityRecords, listObjectActivityRecords, listObjectLinkRecords, listProjectActivityRecords, recordActivityEvent, } from './activity-repository.js';
19
+ export { appendConnectorExecutionAudit, claimConnectorWebhookDelivery, completeConnectorWebhookDelivery, consumeConnectorApproval, createConnectorApproval, decideConnectorApproval, deleteConnectorConnection, deleteConnectorInstallation, getConnectorConnection, getConnectorApproval, getConnectorInstallation, getCachedConnectorCatalogEntry, listCachedConnectorCatalogEntries, listConnectorActionMetadata, listConnectorApprovals, listConnectorConnections, listConnectorExecutionAudit, listConnectorInstallations, releaseConnectorWebhookDelivery, upsertConnectorActionMetadata, upsertConnectorCatalogEntry, upsertConnectorConnection, upsertConnectorInstallation, type CachedConnectorCatalogEntry, } from './connector-repository.js';
20
+ export { getUserTrustPolicy, setUserTrustPolicy, } from './user-trust-repository.js';
21
+ export { getUserProfilePromptState, setUserProfilePromptState, } from './user-profile-setup-repository.js';