@xopcai/xopc 0.0.142 → 0.0.143

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 (543) hide show
  1. package/README.md +1 -1
  2. package/dist/browser-ext/manifest.json +1 -1
  3. package/dist/extensions/telegram/xopc.extension.json +1 -1
  4. package/dist/gateway/static/root/assets/activity-center-store-jITiX2vJ.js +1 -0
  5. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BawPxiu5.js → agent-avatar-dicebear-DiME9u_P.js} +1 -1
  6. package/dist/gateway/static/root/assets/agents-DzBXhZXO.js +2 -0
  7. package/dist/gateway/static/root/assets/{app-management-settings-panel-81xd1p9R.js → app-management-settings-panel-Cuo7SbUP.js} +1 -1
  8. package/dist/gateway/static/root/assets/{appearance-settings-DYeQsYU8.js → appearance-settings-DUfdNQqk.js} +1 -1
  9. package/dist/gateway/static/root/assets/apps-page-CKuKK5AU.js +1 -0
  10. package/dist/gateway/static/root/assets/{archive-plugin-D_oa7oti.js → archive-plugin-B-Qk6cGr.js} +1 -1
  11. package/dist/gateway/static/root/assets/{attachment-load-Cd-bwI2N.js → attachment-load-Di6EEbQX.js} +1 -1
  12. package/dist/gateway/static/root/assets/automation-suggestion-card-DGxvRxtO.js +1 -0
  13. package/dist/gateway/static/root/assets/automations-page-D-FF_WKV.js +4 -0
  14. package/dist/gateway/static/root/assets/{binary-plugins-O8svLKWw.js → binary-plugins-ZaOZDH2I.js} +1 -1
  15. package/dist/gateway/static/root/assets/block-editor-BTFhjWfg.js +184 -0
  16. package/dist/gateway/static/root/assets/browser-settings-page-BvKLdEQt.js +8 -0
  17. package/dist/gateway/static/root/assets/{capability-presets-api-dJy1Eqgx.js → capability-presets-api-BU-pVZiZ.js} +1 -1
  18. package/dist/gateway/static/root/assets/capability-presets-settings-panel-DgyeEwzh.js +2 -0
  19. package/dist/gateway/static/root/assets/{channel-recipient-api-Bfuhp2ty.js → channel-recipient-api-DuulnhIj.js} +1 -1
  20. package/dist/gateway/static/root/assets/channels-settings-BbVsdD_I.js +1 -0
  21. package/dist/gateway/static/root/assets/channels-status-swr-B5lVrUsN.js +1 -0
  22. package/dist/gateway/static/root/assets/check-BODqo66o.js +1 -0
  23. package/dist/gateway/static/root/assets/chunk-QUQL4437-DXsxWP7r.js +4 -0
  24. package/dist/gateway/static/root/assets/circle-alert-RzVebuX2.js +1 -0
  25. package/dist/gateway/static/root/assets/connectors-page-B8QqVy3I.js +2 -0
  26. package/dist/gateway/static/root/assets/{desktop-pet-DFMfIb5F.js → desktop-pet---yzVxVR.js} +1 -1
  27. package/dist/gateway/static/root/assets/desktop-pet-settings-Dc3gqBJE.js +1 -0
  28. package/dist/gateway/static/root/assets/{directory-picker-path-field-BrYt1gAr.js → directory-picker-path-field-DCmOGLtK.js} +1 -1
  29. package/dist/gateway/static/root/assets/dreaming-settings-BgT5KZVe.js +3 -0
  30. package/dist/gateway/static/root/assets/{extension-debug-page-Bh630pLD.js → extension-debug-page-ByaKTTq4.js} +1 -1
  31. package/dist/gateway/static/root/assets/extension-page-BmRzHAZr.js +1 -0
  32. package/dist/gateway/static/root/assets/extension-settings-page-JUtwIhbF.js +1 -0
  33. package/dist/gateway/static/root/assets/{fetch-B1WtuprY.js → fetch-8QNN25Sh.js} +1 -1
  34. package/dist/gateway/static/root/assets/{gateway-config-api-De2N821l.js → gateway-config-api-CxicF50_.js} +1 -1
  35. package/dist/gateway/static/root/assets/gateway-settings-Bz2I_EO5.js +1 -0
  36. package/dist/gateway/static/root/assets/{gateway-startup-retry-nEujFSDj.js → gateway-startup-retry-5YBnS9Fj.js} +1 -1
  37. package/dist/gateway/static/root/assets/goal-create-dialog-VcoyuZGN.js +1 -0
  38. package/dist/gateway/static/root/assets/goal-detail-page-Cilkap2G.js +4 -0
  39. package/dist/gateway/static/root/assets/{goals-config-api-DUy3eEse.js → goals-config-api-CwcHRdC0.js} +1 -1
  40. package/dist/gateway/static/root/assets/goals-page-C6eoni4z.js +2 -0
  41. package/dist/gateway/static/root/assets/goals-settings-o4i-qAOS.js +1 -0
  42. package/dist/gateway/static/root/assets/heartbeat-settings-DQQkETX8.js +1 -0
  43. package/dist/gateway/static/root/assets/index-BKRqeRHm.js +257 -0
  44. package/dist/gateway/static/root/assets/index-CphxClbs.css +1 -0
  45. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CVIwwM15.js → keyboard-shortcuts-settings-LT6qB-ua.js} +1 -1
  46. package/dist/gateway/static/root/assets/logs-page-Dli2e3fS.js +7 -0
  47. package/dist/gateway/static/root/assets/{markdown-split-B_6us9j7.js → markdown-split-Dw-yE2-y.js} +1 -1
  48. package/dist/gateway/static/root/assets/{media-plugins-D_fryIyj.js → media-plugins-D9NNNUgE.js} +1 -1
  49. package/dist/gateway/static/root/assets/messages-CzKxM6I4.js +5 -0
  50. package/dist/gateway/static/root/assets/models-hub-panel-DVn2Q1Ik.js +2 -0
  51. package/dist/gateway/static/root/assets/notes-page-CRgbJGgk.js +1 -0
  52. package/dist/gateway/static/root/assets/notes-workbench-BxZRHLWx.js +2 -0
  53. package/dist/gateway/static/root/assets/{page-tabs-D_8jGlqx.js → page-tabs-D4hkWVt_.js} +1 -1
  54. package/dist/gateway/static/root/assets/{preview-open-alternatives-BBLMK8Mp.js → preview-open-alternatives-CIckv0uy.js} +1 -1
  55. package/dist/gateway/static/root/assets/project-detail-page-Doz53xLn.js +1 -0
  56. package/dist/gateway/static/root/assets/projects-page-DoMtcRLg.js +1 -0
  57. package/dist/gateway/static/root/assets/remote-access-hub-BeHVEgrm.js +1 -0
  58. package/dist/gateway/static/root/assets/{save-bar-controls-DVS3FR5r.js → save-bar-controls-B0b42kB2.js} +1 -1
  59. package/dist/gateway/static/root/assets/{schedule-field-D6vKd6-T.js → schedule-field-BtjEkczK.js} +1 -1
  60. package/dist/gateway/static/root/assets/{schema-form-BPy4lbIh.js → schema-form-Bf0bk3i6.js} +1 -1
  61. package/dist/gateway/static/root/assets/sessions-page-Bk4bQsBe.js +1 -0
  62. package/dist/gateway/static/root/assets/settings-advanced-gate-DdFyaRMm.js +1 -0
  63. package/dist/gateway/static/root/assets/{settings-collapsible-section-WzdikxPt.js → settings-collapsible-section-BTKTdTNX.js} +1 -1
  64. package/dist/gateway/static/root/assets/{settings-form-section-CvfzhBV-.js → settings-form-section-DL4P0sAj.js} +1 -1
  65. package/dist/gateway/static/root/assets/{settings-loading-skeleton-BxR-Ulhi.js → settings-loading-skeleton-BV6KFNj4.js} +1 -1
  66. package/dist/gateway/static/root/assets/settings-page-B_4DsX5W.js +1 -0
  67. package/dist/gateway/static/root/assets/{settings-page-layout-CKefvbYi.js → settings-page-layout-CyGlrInB.js} +1 -1
  68. package/dist/gateway/static/root/assets/setup-status-panel-DJ1_MLgX.js +1 -0
  69. package/dist/gateway/static/root/assets/share-preview-page-BQBV7YrV.js +2 -0
  70. package/dist/gateway/static/root/assets/shares-settings-0VuFLBeU.js +1 -0
  71. package/dist/gateway/static/root/assets/skill-reload-api-DO87Ckeo.js +1 -0
  72. package/dist/gateway/static/root/assets/skills-page-D3VdtxAn.js +2 -0
  73. package/dist/gateway/static/root/assets/{system-settings-panel-BokgAgf7.js → system-settings-panel-D85fBBuI.js} +1 -1
  74. package/dist/gateway/static/root/assets/{typed-models-lib-BwHlNL3L.js → typed-models-lib-CwEuYrHX.js} +1 -1
  75. package/dist/gateway/static/root/assets/{use-channel-catalog-DR11ap3A.js → use-channel-catalog-COXIfXcl.js} +1 -1
  76. package/dist/gateway/static/root/assets/user-context-page-m9JVQ73F.js +1 -0
  77. package/dist/gateway/static/root/assets/user-profile-fields-editor-DtQiuY7E.js +1 -0
  78. package/dist/gateway/static/root/assets/user-profile-settings-panel-CWM0fEpb.js +1 -0
  79. package/dist/gateway/static/root/assets/{utils-BKUWB-TT.js → utils--BO6xT3u.js} +1 -1
  80. package/dist/gateway/static/root/assets/voice-api-key-field-LoT3wgZ9.js +1 -0
  81. package/dist/gateway/static/root/assets/with-selector-aYPsXwdl.js +1 -0
  82. package/dist/gateway/static/root/assets/work-item-detail-page-DSTMz_mO.js +1 -0
  83. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CL_rnAUB.js → workflow-run-setup-panel-B35lJzvm.js} +2 -2
  84. package/dist/gateway/static/root/assets/workflows-page-BfSm9oR8.js +11 -0
  85. package/dist/gateway/static/root/assets/workflows-page-DLioOiRN.css +1 -0
  86. package/dist/gateway/static/root/connector-icons/README.md +11 -0
  87. package/dist/gateway/static/root/connector-icons/airtable.svg +13 -0
  88. package/dist/gateway/static/root/connector-icons/asana.svg +15 -0
  89. package/dist/gateway/static/root/connector-icons/brave-search.svg +1 -0
  90. package/dist/gateway/static/root/connector-icons/clickup.svg +19 -0
  91. package/dist/gateway/static/root/connector-icons/composio.svg +266 -0
  92. package/dist/gateway/static/root/connector-icons/discord.svg +15 -0
  93. package/dist/gateway/static/root/connector-icons/dropbox.svg +152 -0
  94. package/dist/gateway/static/root/connector-icons/excel.svg +56 -0
  95. package/dist/gateway/static/root/connector-icons/fetch.svg +6 -0
  96. package/dist/gateway/static/root/connector-icons/figma.svg +178 -0
  97. package/dist/gateway/static/root/connector-icons/filesystem.svg +6 -0
  98. package/dist/gateway/static/root/connector-icons/github.svg +10 -0
  99. package/dist/gateway/static/root/connector-icons/gmail.svg +3 -0
  100. package/dist/gateway/static/root/connector-icons/google-calendar.svg +3 -0
  101. package/dist/gateway/static/root/connector-icons/google-docs.svg +25 -0
  102. package/dist/gateway/static/root/connector-icons/google-drive.svg +25 -0
  103. package/dist/gateway/static/root/connector-icons/google-sheets.svg +1 -0
  104. package/dist/gateway/static/root/connector-icons/hubspot.svg +142 -0
  105. package/dist/gateway/static/root/connector-icons/jira.svg +15 -0
  106. package/dist/gateway/static/root/connector-icons/linear.svg +5 -0
  107. package/dist/gateway/static/root/connector-icons/memory.svg +5 -0
  108. package/dist/gateway/static/root/connector-icons/microsoft-teams.svg +33 -0
  109. package/dist/gateway/static/root/connector-icons/notion.svg +5 -0
  110. package/dist/gateway/static/root/connector-icons/one-drive.svg +13 -0
  111. package/dist/gateway/static/root/connector-icons/outlook.svg +76 -0
  112. package/dist/gateway/static/root/connector-icons/playwright.svg +9 -0
  113. package/dist/gateway/static/root/connector-icons/salesforce.svg +17 -0
  114. package/dist/gateway/static/root/connector-icons/sequential-thinking.svg +8 -0
  115. package/dist/gateway/static/root/connector-icons/shopify.svg +5 -0
  116. package/dist/gateway/static/root/connector-icons/slack.svg +9 -0
  117. package/dist/gateway/static/root/connector-icons/spotify.svg +43 -0
  118. package/dist/gateway/static/root/connector-icons/stripe.svg +11 -0
  119. package/dist/gateway/static/root/connector-icons/telegram.svg +130 -0
  120. package/dist/gateway/static/root/connector-icons/time.svg +6 -0
  121. package/dist/gateway/static/root/connector-icons/todoist.svg +277 -0
  122. package/dist/gateway/static/root/connector-icons/trello.svg +19 -0
  123. package/dist/gateway/static/root/connector-icons/twitter.svg +128 -0
  124. package/dist/gateway/static/root/connector-icons/whatsapp.svg +61 -0
  125. package/dist/gateway/static/root/connector-icons/youtube.svg +11 -0
  126. package/dist/gateway/static/root/index.html +9 -6
  127. package/dist/package.js +1 -1
  128. package/dist/src/agent/agent-manager.d.ts +2 -0
  129. package/dist/src/agent/agent-manager.js +8 -0
  130. package/dist/src/agent/agent-manager.js.map +1 -1
  131. package/dist/src/agent/background-review/prompts.d.ts +1 -1
  132. package/dist/src/agent/background-review/prompts.js +3 -2
  133. package/dist/src/agent/background-review/prompts.js.map +1 -1
  134. package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
  135. package/dist/src/agent/embedded/xopc-tools-bridge.d.ts +9 -0
  136. package/dist/src/agent/embedded/xopc-tools-bridge.js +71 -3
  137. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +1 -1
  138. package/dist/src/agent/goals/post-turn.js +5 -4
  139. package/dist/src/agent/goals/post-turn.js.map +1 -1
  140. package/dist/src/agent/mcp/mcp-transport.js +4 -1
  141. package/dist/src/agent/mcp/mcp-transport.js.map +1 -1
  142. package/dist/src/agent/memory/context/planner.d.ts +1 -0
  143. package/dist/src/agent/memory/context/planner.js +60 -14
  144. package/dist/src/agent/memory/context/planner.js.map +1 -1
  145. package/dist/src/agent/memory/context/types.d.ts +3 -1
  146. package/dist/src/agent/memory/lifecycle.d.ts +11 -0
  147. package/dist/src/agent/memory/lifecycle.js +50 -0
  148. package/dist/src/agent/memory/lifecycle.js.map +1 -0
  149. package/dist/src/agent/memory/source-origin.d.ts +3 -0
  150. package/dist/src/agent/memory/source-origin.js +19 -0
  151. package/dist/src/agent/memory/source-origin.js.map +1 -0
  152. package/dist/src/agent/memory/understanding/service.js +5 -0
  153. package/dist/src/agent/memory/understanding/service.js.map +1 -1
  154. package/dist/src/agent/memory/user-context-coordinator.js +7 -2
  155. package/dist/src/agent/memory/user-context-coordinator.js.map +1 -1
  156. package/dist/src/agent/prompt/sections/behavior.d.ts +2 -0
  157. package/dist/src/agent/prompt/sections/behavior.js +30 -1
  158. package/dist/src/agent/prompt/sections/behavior.js.map +1 -1
  159. package/dist/src/agent/prompt/sections/tooling.js +1 -1
  160. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  161. package/dist/src/agent/prompt/service-prompt-builder.js +8 -1
  162. package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
  163. package/dist/src/agent/prompt/system-prompt.d.ts +2 -0
  164. package/dist/src/agent/prompt/system-prompt.js +6 -3
  165. package/dist/src/agent/prompt/system-prompt.js.map +1 -1
  166. package/dist/src/agent/service/process-direct-streaming.js +22 -0
  167. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  168. package/dist/src/agent/service.d.ts +2 -0
  169. package/dist/src/agent/service.js +9 -3
  170. package/dist/src/agent/service.js.map +1 -1
  171. package/dist/src/agent/starter-agents.js +1 -1
  172. package/dist/src/agent/starter-agents.js.map +1 -1
  173. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  174. package/dist/src/agent/tool-manuals/xopc-use.js +1 -1
  175. package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -1
  176. package/dist/src/agent/tools/composio-tool.d.ts +18 -5
  177. package/dist/src/agent/tools/composio-tool.js +252 -35
  178. package/dist/src/agent/tools/composio-tool.js.map +1 -1
  179. package/dist/src/agent/tools/factory.js +7 -3
  180. package/dist/src/agent/tools/factory.js.map +1 -1
  181. package/dist/src/agent/tools/index.d.ts +1 -1
  182. package/dist/src/agent/tools/index.js +2 -2
  183. package/dist/src/agent/tools/workflow-tool.d.ts +0 -1
  184. package/dist/src/agent/tools/workflow-tool.js +3 -16
  185. package/dist/src/agent/tools/workflow-tool.js.map +1 -1
  186. package/dist/src/agent/workflow/builtins/index.d.ts +2 -28
  187. package/dist/src/agent/workflow/builtins/index.js +226 -41
  188. package/dist/src/agent/workflow/builtins/index.js.map +1 -1
  189. package/dist/src/agent/workflow/catalog.d.ts +32 -34
  190. package/dist/src/agent/workflow/catalog.js +158 -154
  191. package/dist/src/agent/workflow/catalog.js.map +1 -1
  192. package/dist/src/agent/workflow/index.d.ts +4 -6
  193. package/dist/src/agent/workflow/index.js +2 -5
  194. package/dist/src/agent/workflow/snapshot.d.ts +2 -2
  195. package/dist/src/agent/workflow/snapshot.js +2 -2
  196. package/dist/src/agent/workflow/snapshot.js.map +1 -1
  197. package/dist/src/agent/workflow/structured-output-tool.d.ts +2 -2
  198. package/dist/src/agent/workflow/structured-output-tool.js +2 -2
  199. package/dist/src/agent/workflow/structured-output-tool.js.map +1 -1
  200. package/dist/src/agent/workflow/subagent-runner.js +1 -1
  201. package/dist/src/agent/workflow/types.d.ts +31 -26
  202. package/dist/src/agent-manifest/index.d.ts +1 -0
  203. package/dist/src/agent-manifest/index.js +3 -1
  204. package/dist/src/agent-manifest/index.js.map +1 -1
  205. package/dist/src/agent-manifest/preset-chain.d.ts +10 -0
  206. package/dist/src/agent-manifest/preset-chain.js +32 -0
  207. package/dist/src/agent-manifest/preset-chain.js.map +1 -0
  208. package/dist/src/agent-manifest/resolver.js +3 -10
  209. package/dist/src/agent-manifest/resolver.js.map +1 -1
  210. package/dist/src/agent-manifest/schema.d.ts +4 -4
  211. package/dist/src/automations/api/routes.js +13 -1
  212. package/dist/src/automations/api/routes.js.map +1 -1
  213. package/dist/src/automations/domain/validation.d.ts +14 -14
  214. package/dist/src/automations/draft/automation-draft-validator.d.ts +3 -3
  215. package/dist/src/browser/providers/browser-ext-install.d.ts +11 -1
  216. package/dist/src/browser/providers/browser-ext-install.js +39 -14
  217. package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
  218. package/dist/src/capabilities/store-connector.d.ts +0 -1
  219. package/dist/src/capabilities/store-connector.js +3 -5
  220. package/dist/src/capabilities/store-connector.js.map +1 -1
  221. package/dist/src/chat-commands/builtins/review.js +72 -73
  222. package/dist/src/chat-commands/builtins/review.js.map +1 -1
  223. package/dist/src/chat-commands/builtins/workflow.js +9 -54
  224. package/dist/src/chat-commands/builtins/workflow.js.map +1 -1
  225. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  226. package/dist/src/cli/commands/extension-create.js +2 -2
  227. package/dist/src/cli/commands/extension-create.js.map +1 -1
  228. package/dist/src/cli/commands/extension-marketplace.js +42 -36
  229. package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
  230. package/dist/src/cli/commands/extension-pack.d.ts +6 -0
  231. package/dist/src/cli/commands/extension-pack.js +3 -2
  232. package/dist/src/cli/commands/extension-pack.js.map +1 -1
  233. package/dist/src/commands/agents.config.d.ts +1 -0
  234. package/dist/src/commands/agents.config.js +1 -0
  235. package/dist/src/commands/agents.config.js.map +1 -1
  236. package/dist/src/config/schema.d.ts +6 -6
  237. package/dist/src/config/schema.js +6 -22
  238. package/dist/src/config/schema.js.map +1 -1
  239. package/dist/src/config/web-patch.d.ts +1 -1
  240. package/dist/src/connectors/approval.d.ts +2 -0
  241. package/dist/src/connectors/approval.js +33 -0
  242. package/dist/src/connectors/approval.js.map +1 -0
  243. package/dist/src/connectors/auth-provider-registry.d.ts +9 -0
  244. package/dist/src/connectors/auth-provider-registry.js +17 -0
  245. package/dist/src/connectors/auth-provider-registry.js.map +1 -0
  246. package/dist/src/connectors/builtin-catalog.js +55 -116
  247. package/dist/src/connectors/builtin-catalog.js.map +1 -1
  248. package/dist/src/connectors/catalog.js +7 -2
  249. package/dist/src/connectors/catalog.js.map +1 -1
  250. package/dist/src/connectors/composio-catalog.d.ts +19 -0
  251. package/dist/src/connectors/composio-catalog.js +237 -0
  252. package/dist/src/connectors/composio-catalog.js.map +1 -0
  253. package/dist/src/connectors/composio-logo.d.ts +1 -0
  254. package/dist/src/connectors/composio-logo.js +51 -0
  255. package/dist/src/connectors/composio-logo.js.map +1 -0
  256. package/dist/src/connectors/composio-sessions.d.ts +116 -0
  257. package/dist/src/connectors/composio-sessions.js +296 -0
  258. package/dist/src/connectors/composio-sessions.js.map +1 -0
  259. package/dist/src/connectors/composio-triggers.d.ts +17 -0
  260. package/dist/src/connectors/composio-triggers.js +48 -5
  261. package/dist/src/connectors/composio-triggers.js.map +1 -1
  262. package/dist/src/connectors/composio.d.ts +31 -2
  263. package/dist/src/connectors/composio.js +374 -151
  264. package/dist/src/connectors/composio.js.map +1 -1
  265. package/dist/src/connectors/connector-memory-sync.d.ts +15 -0
  266. package/dist/src/connectors/connector-memory-sync.js +90 -0
  267. package/dist/src/connectors/connector-memory-sync.js.map +1 -0
  268. package/dist/src/connectors/install.js +35 -92
  269. package/dist/src/connectors/install.js.map +1 -1
  270. package/dist/src/connectors/instances.js +6 -2
  271. package/dist/src/connectors/instances.js.map +1 -1
  272. package/dist/src/connectors/integration-strategy.d.ts +3 -0
  273. package/dist/src/connectors/integration-strategy.js +29 -0
  274. package/dist/src/connectors/integration-strategy.js.map +1 -0
  275. package/dist/src/connectors/policy.d.ts +13 -0
  276. package/dist/src/connectors/policy.js +48 -0
  277. package/dist/src/connectors/policy.js.map +1 -0
  278. package/dist/src/connectors/providers.js +1 -1
  279. package/dist/src/connectors/runtime-adapter-registry.d.ts +25 -0
  280. package/dist/src/connectors/runtime-adapter-registry.js +154 -0
  281. package/dist/src/connectors/runtime-adapter-registry.js.map +1 -0
  282. package/dist/src/connectors/types.d.ts +113 -4
  283. package/dist/src/connectors/workflow-preflight.d.ts +20 -0
  284. package/dist/src/connectors/workflow-preflight.js +70 -0
  285. package/dist/src/connectors/workflow-preflight.js.map +1 -0
  286. package/dist/src/extensions/install-transaction.d.ts +16 -0
  287. package/dist/src/extensions/install-transaction.js +76 -0
  288. package/dist/src/extensions/install-transaction.js.map +1 -0
  289. package/dist/src/extensions/install.d.ts +2 -0
  290. package/dist/src/extensions/install.js +23 -1
  291. package/dist/src/extensions/install.js.map +1 -1
  292. package/dist/src/gateway/agents-admin.d.ts +2 -0
  293. package/dist/src/gateway/agents-admin.js +7 -0
  294. package/dist/src/gateway/agents-admin.js.map +1 -1
  295. package/dist/src/gateway/capability-presets-admin.d.ts +11 -0
  296. package/dist/src/gateway/capability-presets-admin.js +11 -4
  297. package/dist/src/gateway/capability-presets-admin.js.map +1 -1
  298. package/dist/src/gateway/chat-stream/mapper.js +17 -0
  299. package/dist/src/gateway/chat-stream/mapper.js.map +1 -1
  300. package/dist/src/gateway/chat-stream/protocol.d.ts +18 -1
  301. package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -3
  302. package/dist/src/gateway/hono/routes/agents.js +3 -0
  303. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  304. package/dist/src/gateway/hono/routes/capability-presets.js +19 -1
  305. package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -1
  306. package/dist/src/gateway/hono/routes/connectors.js +188 -25
  307. package/dist/src/gateway/hono/routes/connectors.js.map +1 -1
  308. package/dist/src/gateway/hono/routes/goals.js +22 -3
  309. package/dist/src/gateway/hono/routes/goals.js.map +1 -1
  310. package/dist/src/gateway/hono/routes/home.d.ts +60 -1
  311. package/dist/src/gateway/hono/routes/home.js +244 -18
  312. package/dist/src/gateway/hono/routes/home.js.map +1 -1
  313. package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
  314. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  315. package/dist/src/gateway/hono/routes/memory.js +14 -1
  316. package/dist/src/gateway/hono/routes/memory.js.map +1 -1
  317. package/dist/src/gateway/hono/routes/projects.js +103 -2
  318. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  319. package/dist/src/gateway/hono/routes/public-gateway.js +93 -0
  320. package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
  321. package/dist/src/gateway/hono/routes/workflows.js +137 -22
  322. package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
  323. package/dist/src/gateway/hono/routes/you.d.ts +23 -0
  324. package/dist/src/gateway/hono/routes/you.js +538 -0
  325. package/dist/src/gateway/hono/routes/you.js.map +1 -0
  326. package/dist/src/gateway/hono/sse.d.ts +2 -1
  327. package/dist/src/gateway/hono/sse.js +2 -1
  328. package/dist/src/gateway/hono/sse.js.map +1 -1
  329. package/dist/src/gateway/service/marketplace-service.d.ts +13 -1
  330. package/dist/src/gateway/service/marketplace-service.js +96 -40
  331. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  332. package/dist/src/gateway/service.d.ts +2 -0
  333. package/dist/src/gateway/service.js +7 -1
  334. package/dist/src/gateway/service.js.map +1 -1
  335. package/dist/src/goals/goal-service.d.ts +7 -5
  336. package/dist/src/goals/goal-service.js +25 -13
  337. package/dist/src/goals/goal-service.js.map +1 -1
  338. package/dist/src/goals/goal-store.js +46 -7
  339. package/dist/src/goals/goal-store.js.map +1 -1
  340. package/dist/src/goals/types.d.ts +24 -0
  341. package/dist/src/storage/sqlite/connector-repository.d.ts +49 -0
  342. package/dist/src/storage/sqlite/connector-repository.js +385 -0
  343. package/dist/src/storage/sqlite/connector-repository.js.map +1 -0
  344. package/dist/src/storage/sqlite/index.d.ts +3 -0
  345. package/dist/src/storage/sqlite/index.js +4 -1
  346. package/dist/src/storage/sqlite/migrations/030_connectors.sql +94 -0
  347. package/dist/src/storage/sqlite/migrations/031_connector_approvals.sql +24 -0
  348. package/dist/src/storage/sqlite/migrations/032_connector_webhook_deliveries.sql +15 -0
  349. package/dist/src/storage/sqlite/migrations/033_user_trust_policies.sql +6 -0
  350. package/dist/src/storage/sqlite/migrations/034_allow_global_auto_trust.sql +14 -0
  351. package/dist/src/storage/sqlite/migrations/035_user_profile_prompt_state.sql +7 -0
  352. package/dist/src/storage/sqlite/migrations/036_goal_outcome_metric.sql +12 -0
  353. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  354. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  355. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  356. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  357. package/dist/src/storage/sqlite/schema.js +1 -1
  358. package/dist/src/storage/sqlite/user-profile-setup-repository.d.ts +3 -0
  359. package/dist/src/storage/sqlite/user-profile-setup-repository.js +34 -0
  360. package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +1 -0
  361. package/dist/src/storage/sqlite/user-trust-repository.d.ts +3 -0
  362. package/dist/src/storage/sqlite/user-trust-repository.js +34 -0
  363. package/dist/src/storage/sqlite/user-trust-repository.js.map +1 -0
  364. package/dist/src/tui/components/assistant-message.js +15 -0
  365. package/dist/src/tui/components/assistant-message.js.map +1 -1
  366. package/dist/src/tui/tui-agent-events.js +85 -1
  367. package/dist/src/tui/tui-agent-events.js.map +1 -1
  368. package/dist/src/tui/tui-command-formatters.js +7 -7
  369. package/dist/src/tui/tui-command-formatters.js.map +1 -1
  370. package/dist/src/tui/tui-commands.js +1 -1
  371. package/dist/src/tui/tui-startup-resources.js +1 -1
  372. package/dist/src/user-context/import.d.ts +12 -0
  373. package/dist/src/user-context/import.js +48 -0
  374. package/dist/src/user-context/import.js.map +1 -0
  375. package/dist/src/user-context/profile.d.ts +37 -0
  376. package/dist/src/user-context/profile.js +165 -0
  377. package/dist/src/user-context/profile.js.map +1 -0
  378. package/dist/src/user-context/projection.d.ts +54 -0
  379. package/dist/src/user-context/projection.js +121 -0
  380. package/dist/src/user-context/projection.js.map +1 -0
  381. package/dist/src/user-context/source-recommendations.d.ts +13 -0
  382. package/dist/src/user-context/source-recommendations.js +86 -0
  383. package/dist/src/user-context/source-recommendations.js.map +1 -0
  384. package/dist/src/user-context/trust-policy.d.ts +11 -0
  385. package/dist/src/user-context/trust-policy.js +31 -0
  386. package/dist/src/user-context/trust-policy.js.map +1 -0
  387. package/dist/src/workflows/authoring/index.d.ts +1 -0
  388. package/dist/src/workflows/authoring/index.js +2 -0
  389. package/dist/src/workflows/authoring/workflow-draft-store.d.ts +33 -0
  390. package/dist/src/workflows/authoring/workflow-draft-store.js +74 -0
  391. package/dist/src/workflows/authoring/workflow-draft-store.js.map +1 -0
  392. package/dist/src/workflows/domain/definition-utils.d.ts +6 -4
  393. package/dist/src/workflows/domain/definition-utils.js +28 -26
  394. package/dist/src/workflows/domain/definition-utils.js.map +1 -1
  395. package/dist/src/workflows/domain/definition.d.ts +79 -6
  396. package/dist/src/workflows/domain/event.d.ts +18 -2
  397. package/dist/src/workflows/domain/index.js +3 -3
  398. package/dist/src/workflows/domain/run.d.ts +16 -2
  399. package/dist/src/workflows/domain/run.js.map +1 -1
  400. package/dist/src/workflows/domain/validation.d.ts +9 -5
  401. package/dist/src/workflows/domain/validation.js +183 -40
  402. package/dist/src/workflows/domain/validation.js.map +1 -1
  403. package/dist/src/workflows/draft/workflow-draft-prompt.d.ts +2 -3
  404. package/dist/src/workflows/draft/workflow-draft-prompt.js +31 -73
  405. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +1 -1
  406. package/dist/src/workflows/draft/workflow-draft-service.js +4 -8
  407. package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -1
  408. package/dist/src/workflows/draft/workflow-draft-validator.js +29 -37
  409. package/dist/src/workflows/draft/workflow-draft-validator.js.map +1 -1
  410. package/dist/src/workflows/draft/workflow-draft.types.d.ts +4 -4
  411. package/dist/src/workflows/engine/projector.js +43 -1
  412. package/dist/src/workflows/engine/projector.js.map +1 -1
  413. package/dist/src/workflows/engine/workflow-engine.d.ts +2 -3
  414. package/dist/src/workflows/engine/workflow-engine.js +24 -4
  415. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  416. package/dist/src/workflows/index.js +4 -7
  417. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +1 -9
  418. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -1
  419. package/dist/src/workflows/runtime/graph-workflow-runtime.d.ts +10 -0
  420. package/dist/src/workflows/runtime/graph-workflow-runtime.js +295 -0
  421. package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +1 -0
  422. package/dist/src/workflows/runtime/index.d.ts +1 -2
  423. package/dist/src/workflows/runtime/index.js +2 -5
  424. package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +5 -8
  425. package/dist/src/workflows/service/workflow-run-service.js +15 -1
  426. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  427. package/dist/src/workflows/service/workflow-run-service.types.d.ts +2 -1
  428. package/package.json +4 -3
  429. package/dist/gateway/static/root/assets/agents-CyvCIHnB.js +0 -2
  430. package/dist/gateway/static/root/assets/apps-page-DK_Vx6nl.js +0 -1
  431. package/dist/gateway/static/root/assets/automation-suggestion-card-B1LV3YYv.js +0 -1
  432. package/dist/gateway/static/root/assets/automations-page-fzrovqhv.js +0 -4
  433. package/dist/gateway/static/root/assets/block-editor-Dhj5f4Bx.js +0 -184
  434. package/dist/gateway/static/root/assets/browser-settings-page-BDn-n-UB.js +0 -8
  435. package/dist/gateway/static/root/assets/capability-presets-settings-panel-Co5ipo_Q.js +0 -1
  436. package/dist/gateway/static/root/assets/channels-settings-BWlpaxg9.js +0 -1
  437. package/dist/gateway/static/root/assets/channels-status-swr-D_jkIZLV.js +0 -1
  438. package/dist/gateway/static/root/assets/connectors-page-BcekbW4q.js +0 -2
  439. package/dist/gateway/static/root/assets/desktop-pet-settings-BJCUuL8Y.js +0 -1
  440. package/dist/gateway/static/root/assets/dreaming-settings-BN1Z2mIo.js +0 -3
  441. package/dist/gateway/static/root/assets/extension-page-B-1KxvVy.js +0 -1
  442. package/dist/gateway/static/root/assets/extension-settings-page-BF9NACI3.js +0 -1
  443. package/dist/gateway/static/root/assets/gateway-settings-DN9sNREz.js +0 -1
  444. package/dist/gateway/static/root/assets/goal-create-dialog-BpoQW8cD.js +0 -1
  445. package/dist/gateway/static/root/assets/goal-detail-page-CBRSPd0b.js +0 -4
  446. package/dist/gateway/static/root/assets/goals-page-BCcBi407.js +0 -2
  447. package/dist/gateway/static/root/assets/goals-settings-pkTXzXkh.js +0 -1
  448. package/dist/gateway/static/root/assets/heartbeat-settings-ezsufgLQ.js +0 -1
  449. package/dist/gateway/static/root/assets/index-B8s8Pq5U.css +0 -1
  450. package/dist/gateway/static/root/assets/index-DcUaXYeb.js +0 -262
  451. package/dist/gateway/static/root/assets/logs-page-DQtTRXtj.js +0 -7
  452. package/dist/gateway/static/root/assets/messages-BXNELNBa.js +0 -3
  453. package/dist/gateway/static/root/assets/models-hub-panel-BP2M9n6Q.js +0 -2
  454. package/dist/gateway/static/root/assets/notes-page-CspveYaO.js +0 -1
  455. package/dist/gateway/static/root/assets/notes-workbench-BHwzJ0OC.js +0 -2
  456. package/dist/gateway/static/root/assets/project-detail-page-Dy3rsobs.js +0 -1
  457. package/dist/gateway/static/root/assets/projects-page-CWKpPE0L.js +0 -1
  458. package/dist/gateway/static/root/assets/remote-access-hub-CqNRyXEo.js +0 -1
  459. package/dist/gateway/static/root/assets/sessions-page-MEME7ivF.js +0 -1
  460. package/dist/gateway/static/root/assets/settings-advanced-gate-JVd0qaSF.js +0 -1
  461. package/dist/gateway/static/root/assets/settings-page-DYEbB1EV.js +0 -1
  462. package/dist/gateway/static/root/assets/setup-status-panel-dWN8BJ3z.js +0 -1
  463. package/dist/gateway/static/root/assets/share-preview-page-D8foINzP.js +0 -2
  464. package/dist/gateway/static/root/assets/shares-settings-Tgbv1s7G.js +0 -1
  465. package/dist/gateway/static/root/assets/skill-reload-api-D_YK0b_Z.js +0 -1
  466. package/dist/gateway/static/root/assets/skills-page-DGytfoZK.js +0 -2
  467. package/dist/gateway/static/root/assets/toast-z0toXu32.js +0 -1
  468. package/dist/gateway/static/root/assets/user-profile-settings-panel-8YtygcJp.js +0 -1
  469. package/dist/gateway/static/root/assets/voice-api-key-field-BVH71EFf.js +0 -1
  470. package/dist/gateway/static/root/assets/work-item-detail-page-JeTE7XNM.js +0 -1
  471. package/dist/gateway/static/root/assets/workflow-start-dialog-_u8Uc1ze.js +0 -1
  472. package/dist/gateway/static/root/assets/workflows-page-ixgk_y1l.js +0 -18
  473. package/dist/src/agent/workflow/builtins/audit-repo.d.ts +0 -13
  474. package/dist/src/agent/workflow/builtins/audit-repo.js +0 -183
  475. package/dist/src/agent/workflow/builtins/audit-repo.js.map +0 -1
  476. package/dist/src/agent/workflow/builtins/client-proposal.d.ts +0 -12
  477. package/dist/src/agent/workflow/builtins/client-proposal.js +0 -164
  478. package/dist/src/agent/workflow/builtins/client-proposal.js.map +0 -1
  479. package/dist/src/agent/workflow/builtins/competitor-scan.d.ts +0 -12
  480. package/dist/src/agent/workflow/builtins/competitor-scan.js +0 -164
  481. package/dist/src/agent/workflow/builtins/competitor-scan.js.map +0 -1
  482. package/dist/src/agent/workflow/builtins/content-draft.d.ts +0 -13
  483. package/dist/src/agent/workflow/builtins/content-draft.js +0 -159
  484. package/dist/src/agent/workflow/builtins/content-draft.js.map +0 -1
  485. package/dist/src/agent/workflow/builtins/content-repurpose.d.ts +0 -11
  486. package/dist/src/agent/workflow/builtins/content-repurpose.js +0 -146
  487. package/dist/src/agent/workflow/builtins/content-repurpose.js.map +0 -1
  488. package/dist/src/agent/workflow/builtins/debug-incident.d.ts +0 -13
  489. package/dist/src/agent/workflow/builtins/debug-incident.js +0 -177
  490. package/dist/src/agent/workflow/builtins/debug-incident.js.map +0 -1
  491. package/dist/src/agent/workflow/builtins/decision-compare.d.ts +0 -13
  492. package/dist/src/agent/workflow/builtins/decision-compare.js +0 -187
  493. package/dist/src/agent/workflow/builtins/decision-compare.js.map +0 -1
  494. package/dist/src/agent/workflow/builtins/implementation-plan.d.ts +0 -12
  495. package/dist/src/agent/workflow/builtins/implementation-plan.js +0 -185
  496. package/dist/src/agent/workflow/builtins/implementation-plan.js.map +0 -1
  497. package/dist/src/agent/workflow/builtins/inbox-triage.d.ts +0 -11
  498. package/dist/src/agent/workflow/builtins/inbox-triage.js +0 -158
  499. package/dist/src/agent/workflow/builtins/inbox-triage.js.map +0 -1
  500. package/dist/src/agent/workflow/builtins/meeting-prep.d.ts +0 -12
  501. package/dist/src/agent/workflow/builtins/meeting-prep.js +0 -152
  502. package/dist/src/agent/workflow/builtins/meeting-prep.js.map +0 -1
  503. package/dist/src/agent/workflow/builtins/multi-perspective-review.d.ts +0 -14
  504. package/dist/src/agent/workflow/builtins/multi-perspective-review.js +0 -171
  505. package/dist/src/agent/workflow/builtins/multi-perspective-review.js.map +0 -1
  506. package/dist/src/agent/workflow/builtins/offer-design.d.ts +0 -12
  507. package/dist/src/agent/workflow/builtins/offer-design.js +0 -170
  508. package/dist/src/agent/workflow/builtins/offer-design.js.map +0 -1
  509. package/dist/src/agent/workflow/builtins/pr-review.d.ts +0 -12
  510. package/dist/src/agent/workflow/builtins/pr-review.js +0 -178
  511. package/dist/src/agent/workflow/builtins/pr-review.js.map +0 -1
  512. package/dist/src/agent/workflow/builtins/release-check.d.ts +0 -11
  513. package/dist/src/agent/workflow/builtins/release-check.js +0 -174
  514. package/dist/src/agent/workflow/builtins/release-check.js.map +0 -1
  515. package/dist/src/agent/workflow/builtins/research.d.ts +0 -13
  516. package/dist/src/agent/workflow/builtins/research.js +0 -188
  517. package/dist/src/agent/workflow/builtins/research.js.map +0 -1
  518. package/dist/src/agent/workflow/builtins/weekly-review.d.ts +0 -12
  519. package/dist/src/agent/workflow/builtins/weekly-review.js +0 -139
  520. package/dist/src/agent/workflow/builtins/weekly-review.js.map +0 -1
  521. package/dist/src/agent/workflow/last-run-memory.d.ts +0 -42
  522. package/dist/src/agent/workflow/last-run-memory.js +0 -60
  523. package/dist/src/agent/workflow/last-run-memory.js.map +0 -1
  524. package/dist/src/agent/workflow/lint.d.ts +0 -38
  525. package/dist/src/agent/workflow/lint.js +0 -74
  526. package/dist/src/agent/workflow/lint.js.map +0 -1
  527. package/dist/src/agent/workflow/meta-locale.d.ts +0 -12
  528. package/dist/src/agent/workflow/meta-locale.js +0 -62
  529. package/dist/src/agent/workflow/meta-locale.js.map +0 -1
  530. package/dist/src/agent/workflow/parser.d.ts +0 -20
  531. package/dist/src/agent/workflow/parser.js +0 -152
  532. package/dist/src/agent/workflow/parser.js.map +0 -1
  533. package/dist/src/agent/workflow/runtime.d.ts +0 -34
  534. package/dist/src/agent/workflow/runtime.js +0 -402
  535. package/dist/src/agent/workflow/runtime.js.map +0 -1
  536. package/dist/src/connectors/oauth.d.ts +0 -22
  537. package/dist/src/connectors/oauth.js +0 -99
  538. package/dist/src/connectors/oauth.js.map +0 -1
  539. package/dist/src/workflows/runtime/script-runtime.d.ts +0 -3
  540. package/dist/src/workflows/runtime/script-runtime.js +0 -3
  541. package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +0 -5
  542. package/dist/src/workflows/runtime/script-workflow-runtime.js +0 -15
  543. package/dist/src/workflows/runtime/script-workflow-runtime.js.map +0 -1
@@ -1,47 +1,18 @@
1
1
  //#region src/connectors/builtin-catalog.ts
2
- function remoteMcpConnector(params) {
2
+ const BUILTIN_CONNECTOR_BACKGROUNDS = {
3
+ "brave-search": "#FFF4ED",
4
+ fetch: "#E8F3FF",
5
+ filesystem: "#FFF7E6",
6
+ memory: "#F3E8FF",
7
+ playwright: "#FFFFFF",
8
+ "sequential-thinking": "#ECFDF5",
9
+ time: "#ECFEFF"
10
+ };
11
+ function builtinBranding(id) {
3
12
  return {
4
- id: params.id,
5
- version: "1.0.0",
6
- displayName: params.displayName,
7
- description: params.description,
8
- category: params.category,
9
- kind: "mcp",
13
+ logoUrl: `/connector-icons/${id}.svg`,
10
14
  source: "builtin",
11
- capabilities: [
12
- "tools",
13
- "resources",
14
- "prompts",
15
- "auth.apiKey",
16
- "runtime.mcp.streamableHttp"
17
- ],
18
- tags: params.tags,
19
- auth: { mode: "apiKey" },
20
- setup: {
21
- secrets: [{
22
- key: "AUTHORIZATION_HEADER",
23
- label: "Authorization header value",
24
- description: "Full Authorization header value for the remote MCP endpoint, for example \"Bearer ...\".",
25
- required: true
26
- }],
27
- config: [{
28
- key: "url",
29
- label: "MCP endpoint URL",
30
- type: "string",
31
- required: true,
32
- placeholder: "https://example.com/mcp",
33
- description: "Streamable HTTP MCP endpoint exposed by your provider or gateway."
34
- }]
35
- },
36
- runtime: {
37
- type: "mcp",
38
- serverId: params.id,
39
- serverTemplate: {
40
- url: "{{config.url}}",
41
- transport: "streamable-http",
42
- headers: { Authorization: "{{secrets.AUTHORIZATION_HEADER}}" }
43
- }
44
- }
15
+ backgroundColor: BUILTIN_CONNECTOR_BACKGROUNDS[id] ?? "#FFFFFF"
45
16
  };
46
17
  }
47
18
  const BUILTIN_CONNECTORS = [
@@ -53,6 +24,7 @@ const BUILTIN_CONNECTORS = [
53
24
  category: "docs",
54
25
  kind: "mcp",
55
26
  source: "builtin",
27
+ branding: builtinBranding("fetch"),
56
28
  capabilities: ["tools", "runtime.mcp.stdio"],
57
29
  tags: [
58
30
  "web",
@@ -68,6 +40,11 @@ const BUILTIN_CONNECTORS = [
68
40
  command: "uvx",
69
41
  args: ["mcp-server-fetch"]
70
42
  }
43
+ },
44
+ integrationStrategy: {
45
+ lane: "mcp",
46
+ workload: "high_frequency",
47
+ preferred: true
71
48
  }
72
49
  },
73
50
  {
@@ -78,6 +55,7 @@ const BUILTIN_CONNECTORS = [
78
55
  category: "docs",
79
56
  kind: "mcp",
80
57
  source: "builtin",
58
+ branding: builtinBranding("filesystem"),
81
59
  capabilities: [
82
60
  "tools",
83
61
  "resources",
@@ -108,6 +86,11 @@ const BUILTIN_CONNECTORS = [
108
86
  "{{config.rootPath}}"
109
87
  ]
110
88
  }
89
+ },
90
+ integrationStrategy: {
91
+ lane: "mcp",
92
+ workload: "high_frequency",
93
+ preferred: true
111
94
  }
112
95
  },
113
96
  {
@@ -118,6 +101,7 @@ const BUILTIN_CONNECTORS = [
118
101
  category: "automation",
119
102
  kind: "mcp",
120
103
  source: "builtin",
104
+ branding: builtinBranding("time"),
121
105
  capabilities: ["tools", "runtime.mcp.stdio"],
122
106
  tags: [
123
107
  "time",
@@ -133,6 +117,11 @@ const BUILTIN_CONNECTORS = [
133
117
  command: "uvx",
134
118
  args: ["mcp-server-time"]
135
119
  }
120
+ },
121
+ integrationStrategy: {
122
+ lane: "mcp",
123
+ workload: "high_frequency",
124
+ preferred: true
136
125
  }
137
126
  },
138
127
  {
@@ -143,6 +132,7 @@ const BUILTIN_CONNECTORS = [
143
132
  category: "browser",
144
133
  kind: "mcp",
145
134
  source: "builtin",
135
+ branding: builtinBranding("playwright"),
146
136
  capabilities: ["tools", "runtime.mcp.stdio"],
147
137
  tags: [
148
138
  "browser",
@@ -158,36 +148,11 @@ const BUILTIN_CONNECTORS = [
158
148
  command: "npx",
159
149
  args: ["-y", "@playwright/mcp@latest"]
160
150
  }
161
- }
162
- },
163
- {
164
- id: "github",
165
- version: "1.0.0",
166
- displayName: "GitHub",
167
- description: "Work with GitHub repositories, issues, pull requests, and code search.",
168
- category: "code",
169
- kind: "mcp",
170
- source: "builtin",
171
- capabilities: [
172
- "tools",
173
- "auth.oauth",
174
- "runtime.mcp.stdio"
175
- ],
176
- tags: [
177
- "code",
178
- "repository",
179
- "issues"
180
- ],
181
- auth: { mode: "oauth" },
182
- setup: {},
183
- runtime: {
184
- type: "mcp",
185
- serverId: "github",
186
- serverTemplate: {
187
- command: "npx",
188
- args: ["-y", "@modelcontextprotocol/server-github"],
189
- env: { GITHUB_PERSONAL_ACCESS_TOKEN: "{{secrets.GITHUB_PERSONAL_ACCESS_TOKEN}}" }
190
- }
151
+ },
152
+ integrationStrategy: {
153
+ lane: "mcp",
154
+ workload: "high_frequency",
155
+ preferred: true
191
156
  }
192
157
  },
193
158
  {
@@ -198,6 +163,7 @@ const BUILTIN_CONNECTORS = [
198
163
  category: "data",
199
164
  kind: "mcp",
200
165
  source: "builtin",
166
+ branding: builtinBranding("memory"),
201
167
  capabilities: [
202
168
  "tools",
203
169
  "resources",
@@ -218,6 +184,11 @@ const BUILTIN_CONNECTORS = [
218
184
  command: "npx",
219
185
  args: ["-y", "@modelcontextprotocol/server-memory"]
220
186
  }
187
+ },
188
+ integrationStrategy: {
189
+ lane: "mcp",
190
+ workload: "high_frequency",
191
+ preferred: true
221
192
  }
222
193
  },
223
194
  {
@@ -228,6 +199,7 @@ const BUILTIN_CONNECTORS = [
228
199
  category: "automation",
229
200
  kind: "mcp",
230
201
  source: "builtin",
202
+ branding: builtinBranding("sequential-thinking"),
231
203
  capabilities: ["tools", "runtime.mcp.stdio"],
232
204
  tags: [
233
205
  "reasoning",
@@ -243,6 +215,11 @@ const BUILTIN_CONNECTORS = [
243
215
  command: "npx",
244
216
  args: ["-y", "@modelcontextprotocol/server-sequential-thinking"]
245
217
  }
218
+ },
219
+ integrationStrategy: {
220
+ lane: "mcp",
221
+ workload: "high_frequency",
222
+ preferred: true
246
223
  }
247
224
  },
248
225
  {
@@ -253,6 +230,7 @@ const BUILTIN_CONNECTORS = [
253
230
  category: "docs",
254
231
  kind: "mcp",
255
232
  source: "builtin",
233
+ branding: builtinBranding("brave-search"),
256
234
  capabilities: [
257
235
  "tools",
258
236
  "auth.apiKey",
@@ -278,52 +256,13 @@ const BUILTIN_CONNECTORS = [
278
256
  args: ["-y", "@modelcontextprotocol/server-brave-search"],
279
257
  env: { BRAVE_API_KEY: "{{secrets.BRAVE_API_KEY}}" }
280
258
  }
259
+ },
260
+ integrationStrategy: {
261
+ lane: "mcp",
262
+ workload: "high_frequency",
263
+ preferred: true
281
264
  }
282
- },
283
- remoteMcpConnector({
284
- id: "notion",
285
- displayName: "Notion",
286
- description: "Connect a Notion-compatible remote MCP endpoint for pages, databases, and workspace context.",
287
- category: "docs",
288
- tags: [
289
- "notion",
290
- "docs",
291
- "workspace"
292
- ]
293
- }),
294
- remoteMcpConnector({
295
- id: "slack",
296
- displayName: "Slack",
297
- description: "Connect a Slack-compatible remote MCP endpoint for workspace messages and actions.",
298
- category: "automation",
299
- tags: [
300
- "slack",
301
- "messages",
302
- "work"
303
- ]
304
- }),
305
- remoteMcpConnector({
306
- id: "linear",
307
- displayName: "Linear",
308
- description: "Connect a Linear-compatible remote MCP endpoint for issues, projects, and triage workflows.",
309
- category: "code",
310
- tags: [
311
- "linear",
312
- "issues",
313
- "work"
314
- ]
315
- }),
316
- remoteMcpConnector({
317
- id: "google-drive",
318
- displayName: "Google Drive",
319
- description: "Connect a Google Drive-compatible remote MCP endpoint for documents and shared files.",
320
- category: "docs",
321
- tags: [
322
- "google",
323
- "drive",
324
- "docs"
325
- ]
326
- })
265
+ }
327
266
  ];
328
267
  //#endregion
329
268
  export { BUILTIN_CONNECTORS };
@@ -1 +1 @@
1
- {"version":3,"file":"builtin-catalog.js","names":[],"sources":["../../../src/connectors/builtin-catalog.ts"],"sourcesContent":["import type { ConnectorDefinition } from './types.js';\n\nfunction remoteMcpConnector(params: {\n id: string;\n displayName: string;\n description: string;\n category: ConnectorDefinition['category'];\n tags: string[];\n}): ConnectorDefinition {\n return {\n id: params.id,\n version: '1.0.0',\n displayName: params.displayName,\n description: params.description,\n category: params.category,\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'resources', 'prompts', 'auth.apiKey', 'runtime.mcp.streamableHttp'],\n tags: params.tags,\n auth: { mode: 'apiKey' },\n setup: {\n secrets: [\n {\n key: 'AUTHORIZATION_HEADER',\n label: 'Authorization header value',\n description: 'Full Authorization header value for the remote MCP endpoint, for example \"Bearer ...\".',\n required: true,\n },\n ],\n config: [\n {\n key: 'url',\n label: 'MCP endpoint URL',\n type: 'string',\n required: true,\n placeholder: 'https://example.com/mcp',\n description: 'Streamable HTTP MCP endpoint exposed by your provider or gateway.',\n },\n ],\n },\n runtime: {\n type: 'mcp',\n serverId: params.id,\n serverTemplate: {\n url: '{{config.url}}',\n transport: 'streamable-http',\n headers: {\n Authorization: '{{secrets.AUTHORIZATION_HEADER}}',\n },\n },\n },\n };\n}\n\nexport const BUILTIN_CONNECTORS: readonly ConnectorDefinition[] = [\n {\n id: 'fetch',\n version: '1.0.0',\n displayName: 'Fetch',\n description: 'Fetch and read web pages through the official MCP fetch server.',\n category: 'docs',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['web', 'docs', 'http'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'fetch',\n serverTemplate: {\n command: 'uvx',\n args: ['mcp-server-fetch'],\n },\n },\n },\n {\n id: 'filesystem',\n version: '1.0.0',\n displayName: 'Filesystem',\n description: 'Read and search files from an explicitly selected local directory.',\n category: 'docs',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'resources', 'runtime.mcp.stdio'],\n tags: ['files', 'local', 'docs'],\n auth: { mode: 'none' },\n setup: {\n config: [\n {\n key: 'rootPath',\n label: 'Allowed directory',\n type: 'path',\n required: true,\n placeholder: '/Users/you/project',\n description: 'The only directory this connector can expose to the MCP runtime.',\n },\n ],\n },\n runtime: {\n type: 'mcp',\n serverId: 'filesystem',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-filesystem', '{{config.rootPath}}'],\n },\n },\n },\n {\n id: 'time',\n version: '1.0.0',\n displayName: 'Time',\n description: 'Convert time zones and answer current-time questions through an MCP time server.',\n category: 'automation',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['time', 'timezone', 'utility'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'time',\n serverTemplate: {\n command: 'uvx',\n args: ['mcp-server-time'],\n },\n },\n },\n {\n id: 'playwright',\n version: '1.0.0',\n displayName: 'Playwright',\n description: 'Automate and inspect browser pages through the official Playwright MCP server.',\n category: 'browser',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['browser', 'automation', 'testing'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'playwright',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@playwright/mcp@latest'],\n },\n },\n },\n {\n id: 'github',\n version: '1.0.0',\n displayName: 'GitHub',\n description: 'Work with GitHub repositories, issues, pull requests, and code search.',\n category: 'code',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'auth.oauth', 'runtime.mcp.stdio'],\n tags: ['code', 'repository', 'issues'],\n auth: { mode: 'oauth' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'github',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-github'],\n env: {\n GITHUB_PERSONAL_ACCESS_TOKEN: '{{secrets.GITHUB_PERSONAL_ACCESS_TOKEN}}',\n },\n },\n },\n },\n {\n id: 'memory',\n version: '1.0.0',\n displayName: 'Memory',\n description: 'Give the agent a simple MCP knowledge graph memory store.',\n category: 'data',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'resources', 'runtime.mcp.stdio', 'memory_source'],\n tags: ['memory', 'knowledge', 'personalization'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'memory',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-memory'],\n },\n },\n },\n {\n id: 'sequential-thinking',\n version: '1.0.0',\n displayName: 'Sequential Thinking',\n description: 'Add a structured reasoning scratchpad MCP server for multi-step tasks.',\n category: 'automation',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['reasoning', 'planning', 'utility'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'sequential-thinking',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-sequential-thinking'],\n },\n },\n },\n {\n id: 'brave-search',\n version: '1.0.0',\n displayName: 'Brave Search',\n description: 'Search the web through the Brave Search MCP server.',\n category: 'docs',\n kind: 'mcp',\n source: 'builtin',\n capabilities: ['tools', 'auth.apiKey', 'runtime.mcp.stdio'],\n tags: ['search', 'web', 'research'],\n auth: { mode: 'apiKey' },\n setup: {\n secrets: [\n {\n key: 'BRAVE_API_KEY',\n label: 'Brave API key',\n description: 'Stored in the xopc credential store and passed to the MCP server at runtime.',\n required: true,\n },\n ],\n },\n runtime: {\n type: 'mcp',\n serverId: 'brave-search',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-brave-search'],\n env: {\n BRAVE_API_KEY: '{{secrets.BRAVE_API_KEY}}',\n },\n },\n },\n },\n remoteMcpConnector({\n id: 'notion',\n displayName: 'Notion',\n description: 'Connect a Notion-compatible remote MCP endpoint for pages, databases, and workspace context.',\n category: 'docs',\n tags: ['notion', 'docs', 'workspace'],\n }),\n remoteMcpConnector({\n id: 'slack',\n displayName: 'Slack',\n description: 'Connect a Slack-compatible remote MCP endpoint for workspace messages and actions.',\n category: 'automation',\n tags: ['slack', 'messages', 'work'],\n }),\n remoteMcpConnector({\n id: 'linear',\n displayName: 'Linear',\n description: 'Connect a Linear-compatible remote MCP endpoint for issues, projects, and triage workflows.',\n category: 'code',\n tags: ['linear', 'issues', 'work'],\n }),\n remoteMcpConnector({\n id: 'google-drive',\n displayName: 'Google Drive',\n description: 'Connect a Google Drive-compatible remote MCP endpoint for documents and shared files.',\n category: 'docs',\n tags: ['google', 'drive', 'docs'],\n }),\n];\n"],"mappings":"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"}
1
+ {"version":3,"file":"builtin-catalog.js","names":[],"sources":["../../../src/connectors/builtin-catalog.ts"],"sourcesContent":["import type { ConnectorDefinition } from './types.js';\n\nconst BUILTIN_CONNECTOR_BACKGROUNDS: Record<string, string> = {\n 'brave-search': '#FFF4ED',\n fetch: '#E8F3FF',\n filesystem: '#FFF7E6',\n memory: '#F3E8FF',\n playwright: '#FFFFFF',\n 'sequential-thinking': '#ECFDF5',\n time: '#ECFEFF',\n};\n\nfunction builtinBranding(id: string): NonNullable<ConnectorDefinition['branding']> {\n return {\n logoUrl: `/connector-icons/${id}.svg`,\n source: 'builtin',\n backgroundColor: BUILTIN_CONNECTOR_BACKGROUNDS[id] ?? '#FFFFFF',\n };\n}\n\nexport const BUILTIN_CONNECTORS: readonly ConnectorDefinition[] = [\n {\n id: 'fetch',\n version: '1.0.0',\n displayName: 'Fetch',\n description: 'Fetch and read web pages through the official MCP fetch server.',\n category: 'docs',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('fetch'),\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['web', 'docs', 'http'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'fetch',\n serverTemplate: {\n command: 'uvx',\n args: ['mcp-server-fetch'],\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n {\n id: 'filesystem',\n version: '1.0.0',\n displayName: 'Filesystem',\n description: 'Read and search files from an explicitly selected local directory.',\n category: 'docs',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('filesystem'),\n capabilities: ['tools', 'resources', 'runtime.mcp.stdio'],\n tags: ['files', 'local', 'docs'],\n auth: { mode: 'none' },\n setup: {\n config: [\n {\n key: 'rootPath',\n label: 'Allowed directory',\n type: 'path',\n required: true,\n placeholder: '/Users/you/project',\n description: 'The only directory this connector can expose to the MCP runtime.',\n },\n ],\n },\n runtime: {\n type: 'mcp',\n serverId: 'filesystem',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-filesystem', '{{config.rootPath}}'],\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n {\n id: 'time',\n version: '1.0.0',\n displayName: 'Time',\n description: 'Convert time zones and answer current-time questions through an MCP time server.',\n category: 'automation',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('time'),\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['time', 'timezone', 'utility'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'time',\n serverTemplate: {\n command: 'uvx',\n args: ['mcp-server-time'],\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n {\n id: 'playwright',\n version: '1.0.0',\n displayName: 'Playwright',\n description: 'Automate and inspect browser pages through the official Playwright MCP server.',\n category: 'browser',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('playwright'),\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['browser', 'automation', 'testing'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'playwright',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@playwright/mcp@latest'],\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n {\n id: 'memory',\n version: '1.0.0',\n displayName: 'Memory',\n description: 'Give the agent a simple MCP knowledge graph memory store.',\n category: 'data',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('memory'),\n capabilities: ['tools', 'resources', 'runtime.mcp.stdio', 'memory_source'],\n tags: ['memory', 'knowledge', 'personalization'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'memory',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-memory'],\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n {\n id: 'sequential-thinking',\n version: '1.0.0',\n displayName: 'Sequential Thinking',\n description: 'Add a structured reasoning scratchpad MCP server for multi-step tasks.',\n category: 'automation',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('sequential-thinking'),\n capabilities: ['tools', 'runtime.mcp.stdio'],\n tags: ['reasoning', 'planning', 'utility'],\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId: 'sequential-thinking',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-sequential-thinking'],\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n {\n id: 'brave-search',\n version: '1.0.0',\n displayName: 'Brave Search',\n description: 'Search the web through the Brave Search MCP server.',\n category: 'docs',\n kind: 'mcp',\n source: 'builtin',\n branding: builtinBranding('brave-search'),\n capabilities: ['tools', 'auth.apiKey', 'runtime.mcp.stdio'],\n tags: ['search', 'web', 'research'],\n auth: { mode: 'apiKey' },\n setup: {\n secrets: [\n {\n key: 'BRAVE_API_KEY',\n label: 'Brave API key',\n description: 'Stored in the xopc credential store and passed to the MCP server at runtime.',\n required: true,\n },\n ],\n },\n runtime: {\n type: 'mcp',\n serverId: 'brave-search',\n serverTemplate: {\n command: 'npx',\n args: ['-y', '@modelcontextprotocol/server-brave-search'],\n env: {\n BRAVE_API_KEY: '{{secrets.BRAVE_API_KEY}}',\n },\n },\n },\n integrationStrategy: { lane: 'mcp', workload: 'high_frequency', preferred: true },\n },\n];\n"],"mappings":"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"}
@@ -1,11 +1,16 @@
1
+ import { isXopcDatabaseOpen } from "../storage/sqlite/connection.js";
2
+ import { getCachedConnectorCatalogEntry, listCachedConnectorCatalogEntries } from "../storage/sqlite/connector-repository.js";
1
3
  import { listConnectorProviderDefinitions, listConnectorProviders } from "./providers.js";
2
4
  //#region src/connectors/catalog.ts
3
5
  const CONNECTOR_BY_ID = new Map(listConnectorProviderDefinitions().map((connector) => [connector.id, connector]));
4
6
  function listConnectorCatalog() {
5
- return listConnectorProviderDefinitions().sort((left, right) => left.displayName.localeCompare(right.displayName));
7
+ const definitions = [...isXopcDatabaseOpen() ? listCachedConnectorCatalogEntries().map((entry) => entry.definition) : [], ...listConnectorProviderDefinitions()];
8
+ return [...new Map(definitions.map((connector) => [connector.id, connector])).values()].sort((left, right) => left.displayName.localeCompare(right.displayName));
6
9
  }
7
10
  function getConnectorDefinition(connectorId) {
8
- return CONNECTOR_BY_ID.get(connectorId);
11
+ const providerDefinition = CONNECTOR_BY_ID.get(connectorId);
12
+ if (providerDefinition || !isXopcDatabaseOpen()) return providerDefinition;
13
+ return getCachedConnectorCatalogEntry(connectorId)?.definition;
9
14
  }
10
15
  //#endregion
11
16
  export { getConnectorDefinition, listConnectorCatalog, listConnectorProviders };
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","names":[],"sources":["../../../src/connectors/catalog.ts"],"sourcesContent":["import { listConnectorProviderDefinitions, listConnectorProviders } from './providers.js';\nimport type { ConnectorDefinition } from './types.js';\n\nconst CONNECTOR_BY_ID = new Map(listConnectorProviderDefinitions().map((connector) => [connector.id, connector]));\n\nexport function listConnectorCatalog(): ConnectorDefinition[] {\n return listConnectorProviderDefinitions().sort((left, right) => left.displayName.localeCompare(right.displayName));\n}\n\nexport function getConnectorDefinition(connectorId: string): ConnectorDefinition | undefined {\n return CONNECTOR_BY_ID.get(connectorId);\n}\n\nexport { listConnectorProviders };\n"],"mappings":";;AAGA,MAAM,kBAAkB,IAAI,IAAI,kCAAkC,CAAC,KAAK,cAAc,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;AAEjH,SAAgB,uBAA8C;AAC5D,QAAO,kCAAkC,CAAC,MAAM,MAAM,UAAU,KAAK,YAAY,cAAc,MAAM,YAAY,CAAC;;AAGpH,SAAgB,uBAAuB,aAAsD;AAC3F,QAAO,gBAAgB,IAAI,YAAY"}
1
+ {"version":3,"file":"catalog.js","names":[],"sources":["../../../src/connectors/catalog.ts"],"sourcesContent":["import { listConnectorProviderDefinitions, listConnectorProviders } from './providers.js';\nimport { getCachedConnectorCatalogEntry, listCachedConnectorCatalogEntries } from '../storage/sqlite/connector-repository.js';\nimport { isXopcDatabaseOpen } from '../storage/sqlite/connection.js';\nimport type { ConnectorDefinition } from './types.js';\n\nconst CONNECTOR_BY_ID = new Map(listConnectorProviderDefinitions().map((connector) => [connector.id, connector]));\n\nexport function listConnectorCatalog(): ConnectorDefinition[] {\n const cached = isXopcDatabaseOpen()\n ? listCachedConnectorCatalogEntries().map((entry) => entry.definition)\n : [];\n const definitions = [...cached, ...listConnectorProviderDefinitions()];\n return [...new Map(definitions.map((connector) => [connector.id, connector])).values()]\n .sort((left, right) => left.displayName.localeCompare(right.displayName));\n}\n\nexport function getConnectorDefinition(connectorId: string): ConnectorDefinition | undefined {\n const providerDefinition = CONNECTOR_BY_ID.get(connectorId);\n if (providerDefinition || !isXopcDatabaseOpen()) return providerDefinition;\n const cached = getCachedConnectorCatalogEntry(connectorId)?.definition;\n return cached;\n}\n\nexport { listConnectorProviders };\n"],"mappings":";;;;AAKA,MAAM,kBAAkB,IAAI,IAAI,kCAAkC,CAAC,KAAK,cAAc,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;AAEjH,SAAgB,uBAA8C;CAI5D,MAAM,cAAc,CAAC,GAHN,oBAAoB,GAC/B,mCAAmC,CAAC,KAAK,UAAU,MAAM,WAAW,GACpE,EAAE,EAC0B,GAAG,kCAAkC,CAAC;AACtE,QAAO,CAAC,GAAG,IAAI,IAAI,YAAY,KAAK,cAAc,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CACpF,MAAM,MAAM,UAAU,KAAK,YAAY,cAAc,MAAM,YAAY,CAAC;;AAG7E,SAAgB,uBAAuB,aAAsD;CAC3F,MAAM,qBAAqB,gBAAgB,IAAI,YAAY;AAC3D,KAAI,sBAAsB,CAAC,oBAAoB,CAAE,QAAO;AAExD,QADe,+BAA+B,YAAY,EAAE"}
@@ -0,0 +1,19 @@
1
+ import { ComposioSessionsAdapter, type ComposioToolkitCatalogItem } from './composio-sessions.js';
2
+ import type { ConnectorDefinition } from './types.js';
3
+ export declare const COMPOSIO_RECOMMENDED_TOOLKITS: readonly ["gmail", "googlecalendar", "googledrive", "notion", "slack", "github", "linear", "outlook", "microsoft_teams", "jira", "dropbox", "todoist"];
4
+ export declare const COMPOSIO_AGENT_READY_TOOLKITS: readonly ["gmail", "googlecalendar", "googledrive", "notion", "slack", "github", "linear", "outlook", "microsoft_teams", "jira", "dropbox", "todoist", "discord", "googledocs", "googlesheets", "trello", "asana", "clickup", "twitter", "spotify", "telegram", "whatsapp", "shopify", "stripe", "hubspot", "salesforce", "airtable", "figma", "youtube", "one_drive", "excel"];
5
+ export type ComposioAgentReadyToolkit = typeof COMPOSIO_AGENT_READY_TOOLKITS[number];
6
+ export declare const COMPOSIO_TOOLKIT_DISPLAY_NAMES: Record<ComposioAgentReadyToolkit, string>;
7
+ export declare function connectorDefinitionFromComposioToolkit(item: ComposioToolkitCatalogItem): ConnectorDefinition;
8
+ export type ComposioCatalogResult = {
9
+ connectors: ConnectorDefinition[];
10
+ source: 'live' | 'cache';
11
+ stale: boolean;
12
+ fetchedAt?: string;
13
+ };
14
+ export declare function listComposioConnectorCatalog(options?: {
15
+ principalId?: string;
16
+ refresh?: boolean;
17
+ adapter?: ComposioSessionsAdapter;
18
+ now?: number;
19
+ }): Promise<ComposioCatalogResult>;
@@ -0,0 +1,237 @@
1
+ import { listCachedConnectorCatalogEntries, upsertConnectorCatalogEntry } from "../storage/sqlite/connector-repository.js";
2
+ import { ComposioSessionsAdapter } from "./composio-sessions.js";
3
+ import { composioIntegrationStrategy } from "./integration-strategy.js";
4
+ //#region src/connectors/composio-catalog.ts
5
+ const CATALOG_CACHE_TTL_MS = 360 * 60 * 1e3;
6
+ const COMPOSIO_RECOMMENDED_TOOLKITS = [
7
+ "gmail",
8
+ "googlecalendar",
9
+ "googledrive",
10
+ "notion",
11
+ "slack",
12
+ "github",
13
+ "linear",
14
+ "outlook",
15
+ "microsoft_teams",
16
+ "jira",
17
+ "dropbox",
18
+ "todoist"
19
+ ];
20
+ const COMPOSIO_AGENT_READY_TOOLKITS = [
21
+ ...COMPOSIO_RECOMMENDED_TOOLKITS,
22
+ "discord",
23
+ "googledocs",
24
+ "googlesheets",
25
+ "trello",
26
+ "asana",
27
+ "clickup",
28
+ "twitter",
29
+ "spotify",
30
+ "telegram",
31
+ "whatsapp",
32
+ "shopify",
33
+ "stripe",
34
+ "hubspot",
35
+ "salesforce",
36
+ "airtable",
37
+ "figma",
38
+ "youtube",
39
+ "one_drive",
40
+ "excel"
41
+ ];
42
+ const COMPOSIO_TOOLKIT_DISPLAY_NAMES = {
43
+ gmail: "Gmail",
44
+ googlecalendar: "Google Calendar",
45
+ googledrive: "Google Drive",
46
+ notion: "Notion",
47
+ slack: "Slack",
48
+ github: "GitHub",
49
+ linear: "Linear via Composio",
50
+ outlook: "Outlook",
51
+ microsoft_teams: "Microsoft Teams",
52
+ jira: "Jira",
53
+ dropbox: "Dropbox",
54
+ todoist: "Todoist",
55
+ discord: "Discord",
56
+ googledocs: "Google Docs",
57
+ googlesheets: "Google Sheets",
58
+ trello: "Trello",
59
+ asana: "Asana",
60
+ clickup: "ClickUp",
61
+ twitter: "X (Twitter)",
62
+ spotify: "Spotify",
63
+ telegram: "Telegram",
64
+ whatsapp: "WhatsApp",
65
+ shopify: "Shopify",
66
+ stripe: "Stripe",
67
+ hubspot: "HubSpot",
68
+ salesforce: "Salesforce",
69
+ airtable: "Airtable",
70
+ figma: "Figma",
71
+ youtube: "YouTube",
72
+ one_drive: "OneDrive",
73
+ excel: "Microsoft Excel"
74
+ };
75
+ const RECOMMENDED = new Set(COMPOSIO_RECOMMENDED_TOOLKITS);
76
+ const AGENT_READY = new Set(COMPOSIO_AGENT_READY_TOOLKITS);
77
+ const LOCAL_TOOLKIT_LOGO_FILE_NAMES = {
78
+ googlecalendar: "google-calendar",
79
+ googledocs: "google-docs",
80
+ googledrive: "google-drive",
81
+ googlesheets: "google-sheets",
82
+ microsoft_teams: "microsoft-teams",
83
+ one_drive: "one-drive"
84
+ };
85
+ function composioLogoUrl(slug) {
86
+ if (AGENT_READY.has(slug)) return `/connector-icons/${LOCAL_TOOLKIT_LOGO_FILE_NAMES[slug] ?? slug}.svg`;
87
+ return `/connector-icons/composio/${encodeURIComponent(slug)}`;
88
+ }
89
+ const CONNECTOR_DESCRIPTIONS = {
90
+ gmail: "Find, draft, and send Gmail messages with explicit write confirmation.",
91
+ googlecalendar: "Find and manage Google Calendar events from conversations and workflows.",
92
+ googledrive: "Search and work with approved files in Google Drive.",
93
+ notion: "Search and update approved Notion pages and databases.",
94
+ slack: "Read conversations and send approved messages in Slack.",
95
+ github: "Work with repositories, issues, pull requests, and reviews on GitHub.",
96
+ linear: "Find and manage Linear issues and projects.",
97
+ outlook: "Read and send Outlook mail with account-level controls.",
98
+ microsoft_teams: "Read conversations and send approved Microsoft Teams messages.",
99
+ jira: "Find and manage Jira issues for an approved site.",
100
+ dropbox: "Search and work with approved Dropbox files.",
101
+ todoist: "Create and manage personal or team tasks in Todoist.",
102
+ discord: "Read conversations and send approved messages in Discord.",
103
+ googledocs: "Find, read, and update approved documents in Google Docs.",
104
+ googlesheets: "Read and update approved spreadsheets in Google Sheets.",
105
+ trello: "Find and manage Trello boards, lists, and cards.",
106
+ asana: "Find and manage Asana tasks and projects.",
107
+ clickup: "Find and manage ClickUp tasks, lists, and workspaces.",
108
+ twitter: "Search posts and publish approved updates on X.",
109
+ spotify: "Search Spotify and manage approved playlists and playback actions.",
110
+ telegram: "Read conversations and send approved Telegram messages.",
111
+ whatsapp: "Read conversations and send approved WhatsApp messages.",
112
+ shopify: "Work with Shopify products, customers, and orders.",
113
+ stripe: "Work with Stripe customers, payments, invoices, and subscriptions.",
114
+ hubspot: "Find and manage HubSpot contacts, companies, and deals.",
115
+ salesforce: "Find and manage approved Salesforce records and opportunities.",
116
+ airtable: "Read and update approved Airtable bases and records.",
117
+ figma: "Find Figma files, inspect project context, and manage comments.",
118
+ youtube: "Find and manage YouTube videos, channels, and playlists.",
119
+ one_drive: "Search and work with approved files in OneDrive.",
120
+ excel: "Read and update approved Microsoft Excel workbooks and tables."
121
+ };
122
+ const CODE_TOOLKITS = new Set([
123
+ "github",
124
+ "gitlab",
125
+ "bitbucket",
126
+ "linear",
127
+ "jira"
128
+ ]);
129
+ const DOC_TOOLKITS = new Set([
130
+ "notion",
131
+ "googledocs",
132
+ "figma"
133
+ ]);
134
+ const DATA_TOOLKITS = new Set([
135
+ "googledrive",
136
+ "dropbox",
137
+ "one_drive",
138
+ "googlesheets",
139
+ "excel",
140
+ "airtable"
141
+ ]);
142
+ function categoryForToolkit(slug) {
143
+ if (CODE_TOOLKITS.has(slug)) return "code";
144
+ if (DOC_TOOLKITS.has(slug)) return "docs";
145
+ if (DATA_TOOLKITS.has(slug)) return "data";
146
+ return "automation";
147
+ }
148
+ function verificationForToolkit(slug) {
149
+ if (RECOMMENDED.has(slug) || AGENT_READY.has(slug)) return "verified";
150
+ return "experimental";
151
+ }
152
+ function connectorDefinitionFromComposioToolkit(item) {
153
+ const slug = item.slug.trim().toLowerCase();
154
+ return {
155
+ id: `composio-${slug}`,
156
+ version: "sessions-v1",
157
+ displayName: item.name,
158
+ description: CONNECTOR_DESCRIPTIONS[slug] ?? `Connect ${item.name} so agents can use approved actions on your behalf.`,
159
+ category: categoryForToolkit(slug),
160
+ kind: "composio",
161
+ source: "builtin",
162
+ capabilities: item.isNoAuth ? [
163
+ "tools",
164
+ "events",
165
+ "workflows"
166
+ ] : [
167
+ "tools",
168
+ "auth.oauth",
169
+ "events",
170
+ "workflows"
171
+ ],
172
+ tags: [
173
+ "composio",
174
+ slug,
175
+ verificationForToolkit(slug)
176
+ ],
177
+ branding: {
178
+ logoUrl: composioLogoUrl(slug),
179
+ source: "composio-catalog",
180
+ fetchedAt: (/* @__PURE__ */ new Date()).toISOString()
181
+ },
182
+ verificationLevel: verificationForToolkit(slug),
183
+ auth: item.isNoAuth ? { mode: "none" } : {
184
+ mode: "oauth",
185
+ provider: "composio"
186
+ },
187
+ setup: {},
188
+ runtime: {
189
+ type: "composio",
190
+ toolkit: slug,
191
+ role: "toolkit"
192
+ },
193
+ integrationStrategy: composioIntegrationStrategy(slug)
194
+ };
195
+ }
196
+ async function listComposioConnectorCatalog(options = {}) {
197
+ const now = options.now ?? Date.now();
198
+ const cached = listCachedConnectorCatalogEntries("composio");
199
+ const freshCached = cached.filter((entry) => !entry.expiresAt || Date.parse(entry.expiresAt) > now);
200
+ if (!options.refresh && freshCached.length > 0) return {
201
+ connectors: freshCached.map((entry) => entry.definition),
202
+ source: "cache",
203
+ stale: false,
204
+ fetchedAt: freshCached[0]?.fetchedAt
205
+ };
206
+ try {
207
+ const toolkits = await (options.adapter ?? new ComposioSessionsAdapter()).listToolkitCatalog({ principalId: options.principalId ?? "local-owner" });
208
+ const fetchedAt = new Date(now).toISOString();
209
+ const expiresAt = new Date(now + CATALOG_CACHE_TTL_MS).toISOString();
210
+ const connectors = toolkits.map(connectorDefinitionFromComposioToolkit);
211
+ for (const definition of connectors) upsertConnectorCatalogEntry({
212
+ connectorId: definition.id,
213
+ provider: "composio",
214
+ definition,
215
+ fetchedAt,
216
+ expiresAt
217
+ });
218
+ return {
219
+ connectors,
220
+ source: "live",
221
+ stale: false,
222
+ fetchedAt
223
+ };
224
+ } catch (error) {
225
+ if (cached.length === 0) throw error;
226
+ return {
227
+ connectors: cached.map((entry) => entry.definition),
228
+ source: "cache",
229
+ stale: true,
230
+ fetchedAt: cached[0]?.fetchedAt
231
+ };
232
+ }
233
+ }
234
+ //#endregion
235
+ export { COMPOSIO_AGENT_READY_TOOLKITS, COMPOSIO_RECOMMENDED_TOOLKITS, COMPOSIO_TOOLKIT_DISPLAY_NAMES, connectorDefinitionFromComposioToolkit, listComposioConnectorCatalog };
236
+
237
+ //# sourceMappingURL=composio-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composio-catalog.js","names":[],"sources":["../../../src/connectors/composio-catalog.ts"],"sourcesContent":["import {\n listCachedConnectorCatalogEntries,\n upsertConnectorCatalogEntry,\n} from '../storage/sqlite/connector-repository.js';\nimport { ComposioSessionsAdapter, type ComposioToolkitCatalogItem } from './composio-sessions.js';\nimport { composioIntegrationStrategy } from './integration-strategy.js';\nimport type { ConnectorCategory, ConnectorDefinition, ConnectorVerificationLevel } from './types.js';\n\nconst CATALOG_CACHE_TTL_MS = 6 * 60 * 60 * 1000;\n\nexport const COMPOSIO_RECOMMENDED_TOOLKITS = [\n 'gmail',\n 'googlecalendar',\n 'googledrive',\n 'notion',\n 'slack',\n 'github',\n 'linear',\n 'outlook',\n 'microsoft_teams',\n 'jira',\n 'dropbox',\n 'todoist',\n] as const;\n\nexport const COMPOSIO_AGENT_READY_TOOLKITS = [\n ...COMPOSIO_RECOMMENDED_TOOLKITS,\n 'discord',\n 'googledocs',\n 'googlesheets',\n 'trello',\n 'asana',\n 'clickup',\n 'twitter',\n 'spotify',\n 'telegram',\n 'whatsapp',\n 'shopify',\n 'stripe',\n 'hubspot',\n 'salesforce',\n 'airtable',\n 'figma',\n 'youtube',\n 'one_drive',\n 'excel',\n] as const;\n\nexport type ComposioAgentReadyToolkit = typeof COMPOSIO_AGENT_READY_TOOLKITS[number];\n\nexport const COMPOSIO_TOOLKIT_DISPLAY_NAMES: Record<ComposioAgentReadyToolkit, string> = {\n gmail: 'Gmail',\n googlecalendar: 'Google Calendar',\n googledrive: 'Google Drive',\n notion: 'Notion',\n slack: 'Slack',\n github: 'GitHub',\n linear: 'Linear via Composio',\n outlook: 'Outlook',\n microsoft_teams: 'Microsoft Teams',\n jira: 'Jira',\n dropbox: 'Dropbox',\n todoist: 'Todoist',\n discord: 'Discord',\n googledocs: 'Google Docs',\n googlesheets: 'Google Sheets',\n trello: 'Trello',\n asana: 'Asana',\n clickup: 'ClickUp',\n twitter: 'X (Twitter)',\n spotify: 'Spotify',\n telegram: 'Telegram',\n whatsapp: 'WhatsApp',\n shopify: 'Shopify',\n stripe: 'Stripe',\n hubspot: 'HubSpot',\n salesforce: 'Salesforce',\n airtable: 'Airtable',\n figma: 'Figma',\n youtube: 'YouTube',\n one_drive: 'OneDrive',\n excel: 'Microsoft Excel',\n};\n\nconst RECOMMENDED = new Set<string>(COMPOSIO_RECOMMENDED_TOOLKITS);\nconst AGENT_READY = new Set<string>(COMPOSIO_AGENT_READY_TOOLKITS);\n\nconst LOCAL_TOOLKIT_LOGO_FILE_NAMES: Readonly<Record<string, string>> = {\n googlecalendar: 'google-calendar',\n googledocs: 'google-docs',\n googledrive: 'google-drive',\n googlesheets: 'google-sheets',\n microsoft_teams: 'microsoft-teams',\n one_drive: 'one-drive',\n};\n\nfunction composioLogoUrl(slug: string): string {\n if (AGENT_READY.has(slug)) {\n const fileName = LOCAL_TOOLKIT_LOGO_FILE_NAMES[slug] ?? slug;\n return `/connector-icons/${fileName}.svg`;\n }\n return `/connector-icons/composio/${encodeURIComponent(slug)}`;\n}\n\nconst CONNECTOR_DESCRIPTIONS: Record<string, string> = {\n gmail: 'Find, draft, and send Gmail messages with explicit write confirmation.',\n googlecalendar: 'Find and manage Google Calendar events from conversations and workflows.',\n googledrive: 'Search and work with approved files in Google Drive.',\n notion: 'Search and update approved Notion pages and databases.',\n slack: 'Read conversations and send approved messages in Slack.',\n github: 'Work with repositories, issues, pull requests, and reviews on GitHub.',\n linear: 'Find and manage Linear issues and projects.',\n outlook: 'Read and send Outlook mail with account-level controls.',\n microsoft_teams: 'Read conversations and send approved Microsoft Teams messages.',\n jira: 'Find and manage Jira issues for an approved site.',\n dropbox: 'Search and work with approved Dropbox files.',\n todoist: 'Create and manage personal or team tasks in Todoist.',\n discord: 'Read conversations and send approved messages in Discord.',\n googledocs: 'Find, read, and update approved documents in Google Docs.',\n googlesheets: 'Read and update approved spreadsheets in Google Sheets.',\n trello: 'Find and manage Trello boards, lists, and cards.',\n asana: 'Find and manage Asana tasks and projects.',\n clickup: 'Find and manage ClickUp tasks, lists, and workspaces.',\n twitter: 'Search posts and publish approved updates on X.',\n spotify: 'Search Spotify and manage approved playlists and playback actions.',\n telegram: 'Read conversations and send approved Telegram messages.',\n whatsapp: 'Read conversations and send approved WhatsApp messages.',\n shopify: 'Work with Shopify products, customers, and orders.',\n stripe: 'Work with Stripe customers, payments, invoices, and subscriptions.',\n hubspot: 'Find and manage HubSpot contacts, companies, and deals.',\n salesforce: 'Find and manage approved Salesforce records and opportunities.',\n airtable: 'Read and update approved Airtable bases and records.',\n figma: 'Find Figma files, inspect project context, and manage comments.',\n youtube: 'Find and manage YouTube videos, channels, and playlists.',\n one_drive: 'Search and work with approved files in OneDrive.',\n excel: 'Read and update approved Microsoft Excel workbooks and tables.',\n};\n\nconst CODE_TOOLKITS = new Set(['github', 'gitlab', 'bitbucket', 'linear', 'jira']);\nconst DOC_TOOLKITS = new Set(['notion', 'googledocs', 'figma']);\nconst DATA_TOOLKITS = new Set(['googledrive', 'dropbox', 'one_drive', 'googlesheets', 'excel', 'airtable']);\n\nfunction categoryForToolkit(slug: string): ConnectorCategory {\n if (CODE_TOOLKITS.has(slug)) return 'code';\n if (DOC_TOOLKITS.has(slug)) return 'docs';\n if (DATA_TOOLKITS.has(slug)) return 'data';\n return 'automation';\n}\n\nfunction verificationForToolkit(slug: string): ConnectorVerificationLevel {\n if (RECOMMENDED.has(slug) || AGENT_READY.has(slug)) return 'verified';\n return 'experimental';\n}\n\nexport function connectorDefinitionFromComposioToolkit(item: ComposioToolkitCatalogItem): ConnectorDefinition {\n const slug = item.slug.trim().toLowerCase();\n return {\n id: `composio-${slug}`,\n version: 'sessions-v1',\n displayName: item.name,\n description: CONNECTOR_DESCRIPTIONS[slug]\n ?? `Connect ${item.name} so agents can use approved actions on your behalf.`,\n category: categoryForToolkit(slug),\n kind: 'composio',\n source: 'builtin',\n capabilities: item.isNoAuth\n ? ['tools', 'events', 'workflows']\n : ['tools', 'auth.oauth', 'events', 'workflows'],\n tags: ['composio', slug, verificationForToolkit(slug)],\n branding: {\n logoUrl: composioLogoUrl(slug),\n source: 'composio-catalog',\n fetchedAt: new Date().toISOString(),\n },\n verificationLevel: verificationForToolkit(slug),\n auth: item.isNoAuth\n ? { mode: 'none' }\n : { mode: 'oauth', provider: 'composio' },\n setup: {},\n runtime: { type: 'composio', toolkit: slug, role: 'toolkit' },\n integrationStrategy: composioIntegrationStrategy(slug),\n };\n}\n\nexport type ComposioCatalogResult = {\n connectors: ConnectorDefinition[];\n source: 'live' | 'cache';\n stale: boolean;\n fetchedAt?: string;\n};\n\nexport async function listComposioConnectorCatalog(options: {\n principalId?: string;\n refresh?: boolean;\n adapter?: ComposioSessionsAdapter;\n now?: number;\n} = {}): Promise<ComposioCatalogResult> {\n const now = options.now ?? Date.now();\n const cached = listCachedConnectorCatalogEntries('composio');\n const freshCached = cached.filter((entry) => !entry.expiresAt || Date.parse(entry.expiresAt) > now);\n if (!options.refresh && freshCached.length > 0) {\n return {\n connectors: freshCached.map((entry) => entry.definition),\n source: 'cache',\n stale: false,\n fetchedAt: freshCached[0]?.fetchedAt,\n };\n }\n\n try {\n const adapter = options.adapter ?? new ComposioSessionsAdapter();\n const toolkits = await adapter.listToolkitCatalog({ principalId: options.principalId ?? 'local-owner' });\n const fetchedAt = new Date(now).toISOString();\n const expiresAt = new Date(now + CATALOG_CACHE_TTL_MS).toISOString();\n const connectors = toolkits.map(connectorDefinitionFromComposioToolkit);\n for (const definition of connectors) {\n upsertConnectorCatalogEntry({\n connectorId: definition.id,\n provider: 'composio',\n definition,\n fetchedAt,\n expiresAt,\n });\n }\n return { connectors, source: 'live', stale: false, fetchedAt };\n } catch (error) {\n if (cached.length === 0) throw error;\n return {\n connectors: cached.map((entry) => entry.definition),\n source: 'cache',\n stale: true,\n fetchedAt: cached[0]?.fetchedAt,\n };\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function composioLogoResponse(toolkit: string): Promise<Response>;