@agent-native/core 0.7.4 → 0.7.7

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 (250) hide show
  1. package/README.md +6 -5
  2. package/dist/agent/engine/anthropic-engine.d.ts.map +1 -1
  3. package/dist/agent/engine/anthropic-engine.js +8 -4
  4. package/dist/agent/engine/anthropic-engine.js.map +1 -1
  5. package/dist/agent/engine/types.d.ts +1 -1
  6. package/dist/agent/engine/types.d.ts.map +1 -1
  7. package/dist/agent/production-agent.d.ts +7 -0
  8. package/dist/agent/production-agent.d.ts.map +1 -1
  9. package/dist/agent/production-agent.js +153 -118
  10. package/dist/agent/production-agent.js.map +1 -1
  11. package/dist/agent/run-manager.d.ts +4 -0
  12. package/dist/agent/run-manager.d.ts.map +1 -1
  13. package/dist/agent/run-manager.js +46 -25
  14. package/dist/agent/run-manager.js.map +1 -1
  15. package/dist/agent/run-store.d.ts +12 -3
  16. package/dist/agent/run-store.d.ts.map +1 -1
  17. package/dist/agent/run-store.js +25 -4
  18. package/dist/agent/run-store.js.map +1 -1
  19. package/dist/chat-threads/store.d.ts +13 -0
  20. package/dist/chat-threads/store.d.ts.map +1 -1
  21. package/dist/chat-threads/store.js +66 -10
  22. package/dist/chat-threads/store.js.map +1 -1
  23. package/dist/cli/create.d.ts.map +1 -1
  24. package/dist/cli/create.js +8 -1
  25. package/dist/cli/create.js.map +1 -1
  26. package/dist/cli/index.js +8 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/cli/info.d.ts +2 -0
  29. package/dist/cli/info.d.ts.map +1 -0
  30. package/dist/cli/info.js +103 -0
  31. package/dist/cli/info.js.map +1 -0
  32. package/dist/client/AssistantChat.d.ts.map +1 -1
  33. package/dist/client/AssistantChat.js +249 -85
  34. package/dist/client/AssistantChat.js.map +1 -1
  35. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  36. package/dist/client/agent-chat-adapter.js +12 -1
  37. package/dist/client/agent-chat-adapter.js.map +1 -1
  38. package/dist/client/composer/TiptapComposer.d.ts +3 -1
  39. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  40. package/dist/client/composer/TiptapComposer.js +46 -2
  41. package/dist/client/composer/TiptapComposer.js.map +1 -1
  42. package/dist/client/composer/VoiceButton.d.ts +21 -0
  43. package/dist/client/composer/VoiceButton.d.ts.map +1 -0
  44. package/dist/client/composer/VoiceButton.js +51 -0
  45. package/dist/client/composer/VoiceButton.js.map +1 -0
  46. package/dist/client/composer/useVoiceDictation.d.ts +38 -0
  47. package/dist/client/composer/useVoiceDictation.d.ts.map +1 -0
  48. package/dist/client/composer/useVoiceDictation.js +398 -0
  49. package/dist/client/composer/useVoiceDictation.js.map +1 -0
  50. package/dist/client/onboarding/OnboardingPanel.js +2 -2
  51. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  52. package/dist/client/org/OrgSwitcher.d.ts +5 -4
  53. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  54. package/dist/client/org/OrgSwitcher.js +90 -24
  55. package/dist/client/org/OrgSwitcher.js.map +1 -1
  56. package/dist/client/resources/McpServerDetail.d.ts +15 -0
  57. package/dist/client/resources/McpServerDetail.d.ts.map +1 -0
  58. package/dist/client/resources/McpServerDetail.js +65 -0
  59. package/dist/client/resources/McpServerDetail.js.map +1 -0
  60. package/dist/client/resources/ResourceEditor.js +1 -1
  61. package/dist/client/resources/ResourceEditor.js.map +1 -1
  62. package/dist/client/resources/ResourceTree.d.ts +6 -1
  63. package/dist/client/resources/ResourceTree.d.ts.map +1 -1
  64. package/dist/client/resources/ResourceTree.js +18 -7
  65. package/dist/client/resources/ResourceTree.js.map +1 -1
  66. package/dist/client/resources/ResourcesPanel.d.ts.map +1 -1
  67. package/dist/client/resources/ResourcesPanel.js +191 -20
  68. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  69. package/dist/client/resources/use-mcp-servers.d.ts +68 -0
  70. package/dist/client/resources/use-mcp-servers.d.ts.map +1 -0
  71. package/dist/client/resources/use-mcp-servers.js +83 -0
  72. package/dist/client/resources/use-mcp-servers.js.map +1 -0
  73. package/dist/client/resources/use-resources.d.ts +39 -1
  74. package/dist/client/resources/use-resources.d.ts.map +1 -1
  75. package/dist/client/resources/use-resources.js +102 -0
  76. package/dist/client/resources/use-resources.js.map +1 -1
  77. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  78. package/dist/client/settings/SettingsPanel.js +3 -2
  79. package/dist/client/settings/SettingsPanel.js.map +1 -1
  80. package/dist/client/settings/VoiceTranscriptionSection.d.ts +14 -0
  81. package/dist/client/settings/VoiceTranscriptionSection.d.ts.map +1 -0
  82. package/dist/client/settings/VoiceTranscriptionSection.js +111 -0
  83. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -0
  84. package/dist/client/sharing/ShareButton.d.ts +6 -4
  85. package/dist/client/sharing/ShareButton.d.ts.map +1 -1
  86. package/dist/client/sharing/ShareButton.js +299 -34
  87. package/dist/client/sharing/ShareButton.js.map +1 -1
  88. package/dist/client/sharing/ShareDialog.d.ts +22 -4
  89. package/dist/client/sharing/ShareDialog.d.ts.map +1 -1
  90. package/dist/client/sharing/ShareDialog.js +170 -148
  91. package/dist/client/sharing/ShareDialog.js.map +1 -1
  92. package/dist/client/sharing/VisibilityBadge.d.ts.map +1 -1
  93. package/dist/client/sharing/VisibilityBadge.js +1 -2
  94. package/dist/client/sharing/VisibilityBadge.js.map +1 -1
  95. package/dist/client/use-action.d.ts.map +1 -1
  96. package/dist/client/use-action.js +20 -1
  97. package/dist/client/use-action.js.map +1 -1
  98. package/dist/db/migrations.d.ts +18 -3
  99. package/dist/db/migrations.d.ts.map +1 -1
  100. package/dist/db/migrations.js +25 -3
  101. package/dist/db/migrations.js.map +1 -1
  102. package/dist/deploy/workspace-core.js +2 -2
  103. package/dist/mcp-client/config.d.ts +20 -1
  104. package/dist/mcp-client/config.d.ts.map +1 -1
  105. package/dist/mcp-client/config.js +28 -11
  106. package/dist/mcp-client/config.js.map +1 -1
  107. package/dist/mcp-client/hub-client.d.ts +38 -0
  108. package/dist/mcp-client/hub-client.d.ts.map +1 -0
  109. package/dist/mcp-client/hub-client.js +147 -0
  110. package/dist/mcp-client/hub-client.js.map +1 -0
  111. package/dist/mcp-client/hub-routes.d.ts +42 -0
  112. package/dist/mcp-client/hub-routes.d.ts.map +1 -0
  113. package/dist/mcp-client/hub-routes.js +114 -0
  114. package/dist/mcp-client/hub-routes.js.map +1 -0
  115. package/dist/mcp-client/index.d.ts +15 -0
  116. package/dist/mcp-client/index.d.ts.map +1 -1
  117. package/dist/mcp-client/index.js +35 -0
  118. package/dist/mcp-client/index.js.map +1 -1
  119. package/dist/mcp-client/manager.d.ts +54 -8
  120. package/dist/mcp-client/manager.d.ts.map +1 -1
  121. package/dist/mcp-client/manager.js +276 -59
  122. package/dist/mcp-client/manager.js.map +1 -1
  123. package/dist/mcp-client/remote-store.d.ts +102 -0
  124. package/dist/mcp-client/remote-store.d.ts.map +1 -0
  125. package/dist/mcp-client/remote-store.js +200 -0
  126. package/dist/mcp-client/remote-store.js.map +1 -0
  127. package/dist/mcp-client/routes.d.ts +55 -0
  128. package/dist/mcp-client/routes.d.ts.map +1 -0
  129. package/dist/mcp-client/routes.js +384 -0
  130. package/dist/mcp-client/routes.js.map +1 -0
  131. package/dist/mcp-client/visibility.d.ts +16 -0
  132. package/dist/mcp-client/visibility.d.ts.map +1 -0
  133. package/dist/mcp-client/visibility.js +45 -0
  134. package/dist/mcp-client/visibility.js.map +1 -0
  135. package/dist/org/context.js +2 -2
  136. package/dist/org/context.js.map +1 -1
  137. package/dist/org/handlers.js +2 -2
  138. package/dist/org/handlers.js.map +1 -1
  139. package/dist/resources/handlers.d.ts.map +1 -1
  140. package/dist/resources/handlers.js +30 -0
  141. package/dist/resources/handlers.js.map +1 -1
  142. package/dist/secrets/register-framework-secrets.d.ts +13 -0
  143. package/dist/secrets/register-framework-secrets.d.ts.map +1 -0
  144. package/dist/secrets/register-framework-secrets.js +59 -0
  145. package/dist/secrets/register-framework-secrets.js.map +1 -0
  146. package/dist/secrets/register.d.ts.map +1 -1
  147. package/dist/secrets/register.js +8 -1
  148. package/dist/secrets/register.js.map +1 -1
  149. package/dist/server/action-routes.d.ts.map +1 -1
  150. package/dist/server/action-routes.js +22 -2
  151. package/dist/server/action-routes.js.map +1 -1
  152. package/dist/server/agent-chat-plugin.d.ts +16 -0
  153. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  154. package/dist/server/agent-chat-plugin.js +237 -70
  155. package/dist/server/agent-chat-plugin.js.map +1 -1
  156. package/dist/server/app-url.d.ts.map +1 -1
  157. package/dist/server/app-url.js +11 -3
  158. package/dist/server/app-url.js.map +1 -1
  159. package/dist/server/auth.d.ts.map +1 -1
  160. package/dist/server/auth.js +50 -0
  161. package/dist/server/auth.js.map +1 -1
  162. package/dist/server/better-auth-instance.d.ts.map +1 -1
  163. package/dist/server/better-auth-instance.js +99 -4
  164. package/dist/server/better-auth-instance.js.map +1 -1
  165. package/dist/server/core-routes-plugin.d.ts.map +1 -1
  166. package/dist/server/core-routes-plugin.js +44 -0
  167. package/dist/server/core-routes-plugin.js.map +1 -1
  168. package/dist/server/create-server.d.ts.map +1 -1
  169. package/dist/server/create-server.js +6 -0
  170. package/dist/server/create-server.js.map +1 -1
  171. package/dist/server/date-utils.d.ts +15 -0
  172. package/dist/server/date-utils.d.ts.map +1 -0
  173. package/dist/server/date-utils.js +41 -0
  174. package/dist/server/date-utils.js.map +1 -0
  175. package/dist/server/index.d.ts +2 -1
  176. package/dist/server/index.d.ts.map +1 -1
  177. package/dist/server/index.js +2 -1
  178. package/dist/server/index.js.map +1 -1
  179. package/dist/server/onboarding-html.d.ts +3 -0
  180. package/dist/server/onboarding-html.d.ts.map +1 -1
  181. package/dist/server/onboarding-html.js +13 -3
  182. package/dist/server/onboarding-html.js.map +1 -1
  183. package/dist/server/request-context.d.ts +9 -0
  184. package/dist/server/request-context.d.ts.map +1 -1
  185. package/dist/server/request-context.js +10 -0
  186. package/dist/server/request-context.js.map +1 -1
  187. package/dist/server/transcribe-voice.d.ts +26 -0
  188. package/dist/server/transcribe-voice.d.ts.map +1 -0
  189. package/dist/server/transcribe-voice.js +143 -0
  190. package/dist/server/transcribe-voice.js.map +1 -0
  191. package/dist/styles/agent-native.css +111 -0
  192. package/dist/tailwind.preset.d.ts +2 -2
  193. package/dist/tailwind.preset.d.ts.map +1 -1
  194. package/dist/tailwind.preset.js +27 -7
  195. package/dist/tailwind.preset.js.map +1 -1
  196. package/dist/templates/default/app/global.css +65 -68
  197. package/dist/templates/default/components.json +1 -1
  198. package/dist/templates/default/package.json +2 -4
  199. package/dist/templates/default/vite.config.ts +3 -0
  200. package/dist/templates/workspace-core/package.json +1 -4
  201. package/dist/templates/workspace-core/src/index.ts +1 -1
  202. package/dist/templates/workspace-core/styles/tokens.css +22 -0
  203. package/dist/templates/workspace-core/tsconfig.json +1 -1
  204. package/dist/vite/client.d.ts +6 -0
  205. package/dist/vite/client.d.ts.map +1 -1
  206. package/dist/vite/client.js +18 -1
  207. package/dist/vite/client.js.map +1 -1
  208. package/docs/content/actions.md +169 -74
  209. package/docs/content/agent-teams.md +139 -0
  210. package/docs/content/cloneable-saas.md +98 -0
  211. package/docs/content/creating-templates.md +9 -11
  212. package/docs/content/deployment.md +2 -9
  213. package/docs/content/drop-in-agent.md +200 -0
  214. package/docs/content/enterprise-workspace.md +22 -10
  215. package/docs/content/getting-started.md +34 -19
  216. package/docs/content/integrations.md +3 -3
  217. package/docs/content/key-concepts.md +50 -23
  218. package/docs/content/mcp-clients.md +71 -0
  219. package/docs/content/pure-agent-apps.md +69 -0
  220. package/docs/content/recurring-jobs.md +123 -0
  221. package/docs/content/skills-guide.md +8 -0
  222. package/docs/content/template-analytics.md +190 -0
  223. package/docs/content/template-calendar.md +151 -0
  224. package/docs/content/template-clips.md +55 -0
  225. package/docs/content/template-content.md +141 -0
  226. package/docs/content/template-dispatch.md +58 -0
  227. package/docs/content/template-forms.md +51 -0
  228. package/docs/content/template-mail.md +169 -0
  229. package/docs/content/template-slides.md +218 -0
  230. package/docs/content/template-starter.md +68 -0
  231. package/docs/content/template-video.md +162 -0
  232. package/docs/content/voice-input.md +59 -0
  233. package/docs/content/what-is-agent-native.md +142 -45
  234. package/docs/content/workspace-management.md +1 -0
  235. package/docs/content/{resources.md → workspace.md} +94 -42
  236. package/package.json +9 -16
  237. package/src/templates/default/app/global.css +65 -68
  238. package/src/templates/default/components.json +1 -1
  239. package/src/templates/default/package.json +2 -4
  240. package/src/templates/default/vite.config.ts +3 -0
  241. package/src/templates/workspace-core/package.json +1 -4
  242. package/src/templates/workspace-core/src/index.ts +1 -1
  243. package/src/templates/workspace-core/styles/tokens.css +22 -0
  244. package/src/templates/workspace-core/tsconfig.json +1 -1
  245. package/dist/templates/default/postcss.config.js +0 -6
  246. package/dist/templates/default/tailwind.config.ts +0 -7
  247. package/dist/templates/workspace-core/tailwind.preset.ts +0 -34
  248. package/src/templates/default/postcss.config.js +0 -6
  249. package/src/templates/default/tailwind.config.ts +0 -7
  250. package/src/templates/workspace-core/tailwind.preset.ts +0 -34
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * An enterprise can sit many agent-native apps in one monorepo alongside a
5
5
  * private "workspace core" package that provides shared plugins, skills,
6
- * actions, AGENTS.md, and a tailwind preset. Apps inherit everything from
6
+ * actions, AGENTS.md, and shared Tailwind v4 design tokens. Apps inherit everything from
7
7
  * the workspace core without writing any boilerplate — this is the
8
8
  * middle layer of the three-layer inheritance model:
9
9
  *
@@ -22,7 +22,7 @@
22
22
  * actions/ (shared agent-callable actions)
23
23
  * skills/ (shared .agents/skills/<name>/SKILL.md)
24
24
  * AGENTS.md (enterprise-wide agent instructions)
25
- * tailwind.preset.ts (brand preset extending @agent-native/core/tailwind)
25
+ * styles/tokens.css (brand tokens `@import "@agent-native/core/styles/agent-native.css"` then your `@theme` overrides)
26
26
  */
27
27
  import path from "path";
28
28
  let _fs;
@@ -11,7 +11,12 @@
11
11
  * This module is Node-only — it reads the filesystem. `loadMcpConfig()` guards
12
12
  * every fs operation with `isNode()` so a non-Node bundle simply gets `null`.
13
13
  */
14
- export interface McpServerConfig {
14
+ /**
15
+ * Stdio transport — spawns a local binary and speaks MCP over its stdio.
16
+ * This is the default when no `type` field is set (backward compat).
17
+ */
18
+ export interface McpStdioServerConfig {
19
+ type?: "stdio";
15
20
  /** Executable or path to spawn over stdio */
16
21
  command: string;
17
22
  /** Arguments passed to the command */
@@ -23,6 +28,20 @@ export interface McpServerConfig {
23
28
  /** Human-readable description (optional, shown in /mcp/status) */
24
29
  description?: string;
25
30
  }
31
+ /**
32
+ * HTTP transport — connects to a remote MCP server over Streamable HTTP
33
+ * (the transport hosted providers like Zapier / Cloudflare / Composio use).
34
+ */
35
+ export interface McpHttpServerConfig {
36
+ type: "http";
37
+ /** Full URL of the remote MCP server's Streamable HTTP endpoint. */
38
+ url: string;
39
+ /** Extra headers to send with every request (e.g. Authorization). */
40
+ headers?: Record<string, string>;
41
+ /** Human-readable description (optional, shown in /mcp/status) */
42
+ description?: string;
43
+ }
44
+ export type McpServerConfig = McpStdioServerConfig | McpHttpServerConfig;
26
45
  export interface McpConfig {
27
46
  /** Map of server id → config */
28
47
  servers: Record<string, McpServerConfig>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/mcp-client/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA6CD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAcjE;AAiCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,GAAG,IAAI,CAyCtD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/mcp-client/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAEzE,MAAM,WAAW,SAAS;IACxB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA8DD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAcjE;AAiCD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,GAAG,IAAI,CA0CtD"}
@@ -35,17 +35,33 @@ function parseConfig(raw, source) {
35
35
  if (!cfg || typeof cfg !== "object")
36
36
  continue;
37
37
  const c = cfg;
38
- if (typeof c.command !== "string" || !c.command)
39
- continue;
40
- valid[id] = {
41
- command: c.command,
42
- args: Array.isArray(c.args) ? c.args.map(String) : undefined,
43
- env: c.env && typeof c.env === "object"
44
- ? Object.fromEntries(Object.entries(c.env).map(([k, v]) => [k, String(v)]))
45
- : undefined,
46
- cwd: typeof c.cwd === "string" ? c.cwd : undefined,
47
- description: typeof c.description === "string" ? c.description : undefined,
48
- };
38
+ const description = typeof c.description === "string" ? c.description : undefined;
39
+ if (c.type === "http") {
40
+ if (typeof c.url !== "string" || !c.url)
41
+ continue;
42
+ valid[id] = {
43
+ type: "http",
44
+ url: c.url,
45
+ headers: c.headers && typeof c.headers === "object"
46
+ ? Object.fromEntries(Object.entries(c.headers).map(([k, v]) => [k, String(v)]))
47
+ : undefined,
48
+ description,
49
+ };
50
+ }
51
+ else {
52
+ if (typeof c.command !== "string" || !c.command)
53
+ continue;
54
+ valid[id] = {
55
+ type: "stdio",
56
+ command: c.command,
57
+ args: Array.isArray(c.args) ? c.args.map(String) : undefined,
58
+ env: c.env && typeof c.env === "object"
59
+ ? Object.fromEntries(Object.entries(c.env).map(([k, v]) => [k, String(v)]))
60
+ : undefined,
61
+ cwd: typeof c.cwd === "string" ? c.cwd : undefined,
62
+ description,
63
+ };
64
+ }
49
65
  }
50
66
  if (Object.keys(valid).length === 0)
51
67
  return null;
@@ -135,6 +151,7 @@ export function autoDetectMcpConfig() {
135
151
  return {
136
152
  servers: {
137
153
  "claude-in-chrome": {
154
+ type: "stdio",
138
155
  command: candidate,
139
156
  description: "Auto-detected claude-in-chrome MCP server (Chrome automation)",
140
157
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/mcp-client/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/mcp-client/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Hub consume — fetches a remote agent-native app's org-scope MCP servers
3
+ * and projects them into the local MCP manager's config shape.
4
+ *
5
+ * Opt-in via env:
6
+ * AGENT_NATIVE_MCP_HUB_URL = https://dispatch.example.com
7
+ * AGENT_NATIVE_MCP_HUB_TOKEN = <shared secret, matches hub's token>
8
+ *
9
+ * Failures are non-fatal — if the hub is unreachable or the token is
10
+ * wrong, the app boots with just its local MCP config and logs a warning.
11
+ */
12
+ import type { McpServerConfig } from "./config.js";
13
+ export type HubFetchResult = {
14
+ state: "disabled";
15
+ } | {
16
+ state: "ok";
17
+ servers: Record<string, McpServerConfig>;
18
+ } | {
19
+ state: "unreachable";
20
+ /** Last-known-good servers if we have them, otherwise an empty map. */
21
+ servers: Record<string, McpServerConfig>;
22
+ error: string;
23
+ };
24
+ /**
25
+ * Fetch the remote hub's org-scope servers. Returns a tri-state so callers
26
+ * can distinguish "hub said empty" from "hub is unreachable" and keep the
27
+ * last-known-good set live across transient failures.
28
+ */
29
+ export declare function fetchHubServersDetailed(): Promise<HubFetchResult>;
30
+ /**
31
+ * Back-compat convenience that always returns a server map. On unreachable,
32
+ * callers get the last-known-good set (empty on first-fetch failure) so one
33
+ * flaky hub call can't wipe loaded servers from the running manager.
34
+ */
35
+ export declare function fetchHubServers(): Promise<Record<string, McpServerConfig>>;
36
+ /** Reset the in-memory cache. Exposed for tests only. */
37
+ export declare function _resetHubCacheForTests(): void;
38
+ //# sourceMappingURL=hub-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-client.d.ts","sourceRoot":"","sources":["../../src/mcp-client/hub-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,aAAa,CAAC;AA+BxE,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GACrB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GACzD;IACE,KAAK,EAAE,aAAa,CAAC;IACrB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEN;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,cAAc,CAAC,CAyFvE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAC9C,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAChC,CAIA;AAED,yDAAyD;AACzD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Hub consume — fetches a remote agent-native app's org-scope MCP servers
3
+ * and projects them into the local MCP manager's config shape.
4
+ *
5
+ * Opt-in via env:
6
+ * AGENT_NATIVE_MCP_HUB_URL = https://dispatch.example.com
7
+ * AGENT_NATIVE_MCP_HUB_TOKEN = <shared secret, matches hub's token>
8
+ *
9
+ * Failures are non-fatal — if the hub is unreachable or the token is
10
+ * wrong, the app boots with just its local MCP config and logs a warning.
11
+ */
12
+ import { isHubConsumeEnabled } from "./hub-routes.js";
13
+ const FETCH_TIMEOUT_MS = 5_000;
14
+ /**
15
+ * Normalize an orgId to the canonical form used by the visibility gate.
16
+ * Must match `isMcpToolAllowedForRequest()` in `visibility.ts` — otherwise
17
+ * a hub server published under "ACME-Corp" would build a key
18
+ * `hub_ACME-Corp_...` that can never match a request whose active org is
19
+ * normalized to "acme-corp", and the tool would be invisible to everyone.
20
+ */
21
+ function normalizeOrgId(orgId) {
22
+ return orgId.toLowerCase().replace(/[^a-z0-9-]/g, "-");
23
+ }
24
+ /** Merged-config key prefix for hub-sourced servers — avoids collision with
25
+ * the consuming app's own `org_<orgId>_<name>` entries. */
26
+ function hubMergedKey(orgId, name) {
27
+ return `hub_${normalizeOrgId(orgId)}_${name}`;
28
+ }
29
+ /**
30
+ * Last successful fetch, cached in-memory. A transient hub outage during a
31
+ * local reconfigure() call must NOT wipe loaded hub servers from the running
32
+ * MCP manager — we keep serving the last good snapshot until the hub is
33
+ * reachable again.
34
+ */
35
+ let lastGoodServers = null;
36
+ /**
37
+ * Fetch the remote hub's org-scope servers. Returns a tri-state so callers
38
+ * can distinguish "hub said empty" from "hub is unreachable" and keep the
39
+ * last-known-good set live across transient failures.
40
+ */
41
+ export async function fetchHubServersDetailed() {
42
+ if (!isHubConsumeEnabled())
43
+ return { state: "disabled" };
44
+ const base = process.env.AGENT_NATIVE_MCP_HUB_URL.trim();
45
+ const token = process.env.AGENT_NATIVE_MCP_HUB_TOKEN.trim();
46
+ const url = joinUrl(base, "/_agent-native/mcp/hub/servers");
47
+ const fallbackServers = lastGoodServers ?? {};
48
+ let res;
49
+ try {
50
+ const controller = typeof AbortController !== "undefined" ? new AbortController() : null;
51
+ const timeout = controller
52
+ ? setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS)
53
+ : null;
54
+ try {
55
+ res = await fetch(url, {
56
+ method: "GET",
57
+ headers: {
58
+ Authorization: `Bearer ${token}`,
59
+ Accept: "application/json",
60
+ },
61
+ signal: controller?.signal,
62
+ });
63
+ }
64
+ finally {
65
+ if (timeout)
66
+ clearTimeout(timeout);
67
+ }
68
+ }
69
+ catch (err) {
70
+ const msg = err?.message ?? String(err);
71
+ console.warn(`[mcp-client] hub fetch failed (${url}): ${msg}`);
72
+ return { state: "unreachable", servers: fallbackServers, error: msg };
73
+ }
74
+ if (!res.ok) {
75
+ const msg = `hub returned ${res.status}`;
76
+ // Auth / config errors (401 unauthorized, 403 forbidden, 404 misconfig)
77
+ // must NOT fall back to the cached set — if the hub is deliberately
78
+ // revoking access (e.g. a rotated token), keeping servers in the
79
+ // manager would leave revoked tools callable until process restart.
80
+ // Transient errors (408 timeout, 429 rate limit, 5xx) are retryable,
81
+ // so for those we keep serving the last-known-good set.
82
+ const isAuthOrConfigError = res.status === 401 ||
83
+ res.status === 403 ||
84
+ res.status === 404 ||
85
+ res.status === 410;
86
+ if (isAuthOrConfigError) {
87
+ console.warn(`[mcp-client] hub fetch returned ${res.status} from ${url} — clearing cached servers`);
88
+ lastGoodServers = null;
89
+ return { state: "unreachable", servers: {}, error: msg };
90
+ }
91
+ console.warn(`[mcp-client] hub fetch returned ${res.status} from ${url} — keeping last-known-good set`);
92
+ return { state: "unreachable", servers: fallbackServers, error: msg };
93
+ }
94
+ let body;
95
+ try {
96
+ body = (await res.json());
97
+ }
98
+ catch (err) {
99
+ const msg = err?.message ?? String(err);
100
+ console.warn(`[mcp-client] hub response was not JSON: ${msg}`);
101
+ return { state: "unreachable", servers: fallbackServers, error: msg };
102
+ }
103
+ if (!body || !Array.isArray(body.servers)) {
104
+ return {
105
+ state: "unreachable",
106
+ servers: fallbackServers,
107
+ error: "malformed hub response",
108
+ };
109
+ }
110
+ const out = {};
111
+ for (const s of body.servers) {
112
+ if (!s || typeof s.url !== "string" || !s.name || !s.orgId)
113
+ continue;
114
+ const cfg = {
115
+ type: "http",
116
+ url: s.url,
117
+ headers: s.headers && Object.keys(s.headers).length > 0 ? s.headers : undefined,
118
+ description: s.description,
119
+ };
120
+ out[hubMergedKey(s.orgId, s.name)] = cfg;
121
+ }
122
+ lastGoodServers = out;
123
+ return { state: "ok", servers: out };
124
+ }
125
+ /**
126
+ * Back-compat convenience that always returns a server map. On unreachable,
127
+ * callers get the last-known-good set (empty on first-fetch failure) so one
128
+ * flaky hub call can't wipe loaded servers from the running manager.
129
+ */
130
+ export async function fetchHubServers() {
131
+ const result = await fetchHubServersDetailed();
132
+ if (result.state === "disabled")
133
+ return {};
134
+ return result.servers;
135
+ }
136
+ /** Reset the in-memory cache. Exposed for tests only. */
137
+ export function _resetHubCacheForTests() {
138
+ lastGoodServers = null;
139
+ }
140
+ function joinUrl(base, path) {
141
+ if (base.endsWith("/"))
142
+ base = base.slice(0, -1);
143
+ if (!path.startsWith("/"))
144
+ path = `/${path}`;
145
+ return `${base}${path}`;
146
+ }
147
+ //# sourceMappingURL=hub-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-client.js","sourceRoot":"","sources":["../../src/mcp-client/hub-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Hub serve — exposes this app's org-scope MCP servers to other agent-native
3
+ * apps in the same workspace.
4
+ *
5
+ * An app becomes a hub by setting `AGENT_NATIVE_MCP_HUB_TOKEN=<secret>` in
6
+ * its environment. Consuming apps set the same token plus
7
+ * `AGENT_NATIVE_MCP_HUB_URL` pointing at the hub; at startup they pull the
8
+ * hub's org-scope server list (URL + headers + description) and merge it
9
+ * into their own running MCP manager.
10
+ *
11
+ * Convention: dispatch is the hub. Any template can consume from it.
12
+ *
13
+ * User-scope servers are intentionally NOT shared — personal credentials
14
+ * stay with the user who added them. Only `o:<orgId>:mcp-servers-remote`
15
+ * entries are returned.
16
+ */
17
+ export interface HubServerRecord {
18
+ /** `<orgId>-<name>` — unique within the hub response. */
19
+ id: string;
20
+ orgId: string;
21
+ name: string;
22
+ url: string;
23
+ headers?: Record<string, string>;
24
+ description?: string;
25
+ }
26
+ export interface HubServersResponse {
27
+ servers: HubServerRecord[];
28
+ generatedAt: number;
29
+ }
30
+ /** Is this process configured to serve as a hub for other apps? */
31
+ export declare function isHubServeEnabled(): boolean;
32
+ /** Is this process configured to consume from a remote hub? */
33
+ export declare function isHubConsumeEnabled(): boolean;
34
+ export declare function listHubServers(): Promise<HubServerRecord[]>;
35
+ export declare function mountMcpHubRoutes(nitroApp: any): void;
36
+ /** Status used by the UI to show a "hub mode" card. */
37
+ export declare function getHubStatus(): {
38
+ serving: boolean;
39
+ consuming: boolean;
40
+ hubUrl: string | null;
41
+ };
42
+ //# sourceMappingURL=hub-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-routes.d.ts","sourceRoot":"","sources":["../../src/mcp-client/hub-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAiBH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,+DAA+D;AAC/D,wBAAgB,mBAAmB,IAAI,OAAO,CAK7C;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAsBjE;AAmBD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAgCrD;AAED,uDAAuD;AACvD,wBAAgB,YAAY,IAAI;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAMA"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Hub serve — exposes this app's org-scope MCP servers to other agent-native
3
+ * apps in the same workspace.
4
+ *
5
+ * An app becomes a hub by setting `AGENT_NATIVE_MCP_HUB_TOKEN=<secret>` in
6
+ * its environment. Consuming apps set the same token plus
7
+ * `AGENT_NATIVE_MCP_HUB_URL` pointing at the hub; at startup they pull the
8
+ * hub's org-scope server list (URL + headers + description) and merge it
9
+ * into their own running MCP manager.
10
+ *
11
+ * Convention: dispatch is the hub. Any template can consume from it.
12
+ *
13
+ * User-scope servers are intentionally NOT shared — personal credentials
14
+ * stay with the user who added them. Only `o:<orgId>:mcp-servers-remote`
15
+ * entries are returned.
16
+ */
17
+ import { defineEventHandler, getMethod, getRequestHeader, setResponseHeader, setResponseStatus, } from "h3";
18
+ import { getH3App } from "../server/framework-request-handler.js";
19
+ import { getAllSettings } from "../settings/store.js";
20
+ /** Env var that enables hub-serve. Acts as the shared bearer secret. */
21
+ const TOKEN_ENV = "AGENT_NATIVE_MCP_HUB_TOKEN";
22
+ /** Is this process configured to serve as a hub for other apps? */
23
+ export function isHubServeEnabled() {
24
+ return !!process.env[TOKEN_ENV]?.trim();
25
+ }
26
+ /** Is this process configured to consume from a remote hub? */
27
+ export function isHubConsumeEnabled() {
28
+ return (!!process.env.AGENT_NATIVE_MCP_HUB_URL?.trim() &&
29
+ !!process.env.AGENT_NATIVE_MCP_HUB_TOKEN?.trim());
30
+ }
31
+ export async function listHubServers() {
32
+ const all = await getAllSettings().catch(() => ({}));
33
+ const out = [];
34
+ for (const [fullKey, value] of Object.entries(all)) {
35
+ const m = /^o:([^:]+):mcp-servers-remote$/.exec(fullKey);
36
+ if (!m)
37
+ continue;
38
+ const orgId = m[1];
39
+ const list = value.servers;
40
+ if (!Array.isArray(list))
41
+ continue;
42
+ for (const stored of list) {
43
+ if (!stored || typeof stored.url !== "string" || !stored.name)
44
+ continue;
45
+ out.push({
46
+ id: `${orgId}-${stored.name}`,
47
+ orgId,
48
+ name: stored.name,
49
+ url: stored.url,
50
+ headers: stored.headers,
51
+ description: stored.description,
52
+ });
53
+ }
54
+ }
55
+ return out;
56
+ }
57
+ function checkBearer(event) {
58
+ const expected = process.env[TOKEN_ENV]?.trim();
59
+ if (!expected)
60
+ return "Hub serve is not enabled on this app";
61
+ const header = getRequestHeader(event, "authorization") ?? "";
62
+ const match = /^Bearer\s+(.+)$/.exec(header);
63
+ if (!match)
64
+ return "Bearer token required";
65
+ // Constant-time compare to avoid timing leaks on the shared secret.
66
+ const provided = match[1].trim();
67
+ if (provided.length !== expected.length)
68
+ return "Invalid token";
69
+ let diff = 0;
70
+ for (let i = 0; i < provided.length; i++) {
71
+ diff |= provided.charCodeAt(i) ^ expected.charCodeAt(i);
72
+ }
73
+ if (diff !== 0)
74
+ return "Invalid token";
75
+ return null;
76
+ }
77
+ export function mountMcpHubRoutes(nitroApp) {
78
+ if (globalThis.__agentNativeMcpHubMounted)
79
+ return;
80
+ globalThis.__agentNativeMcpHubMounted = true;
81
+ try {
82
+ getH3App(nitroApp).use("/_agent-native/mcp/hub/servers", defineEventHandler(async (event) => {
83
+ if (getMethod(event) !== "GET") {
84
+ setResponseStatus(event, 405);
85
+ return { error: "Method not allowed" };
86
+ }
87
+ const authError = checkBearer(event);
88
+ if (authError) {
89
+ setResponseStatus(event, 401);
90
+ return { error: authError };
91
+ }
92
+ setResponseHeader(event, "Content-Type", "application/json");
93
+ setResponseHeader(event, "Cache-Control", "no-store");
94
+ const servers = await listHubServers();
95
+ const payload = {
96
+ servers,
97
+ generatedAt: Date.now(),
98
+ };
99
+ return payload;
100
+ }));
101
+ }
102
+ catch (err) {
103
+ console.warn(`[mcp-client] Failed to mount /_agent-native/mcp/hub/servers: ${err?.message ?? err}`);
104
+ }
105
+ }
106
+ /** Status used by the UI to show a "hub mode" card. */
107
+ export function getHubStatus() {
108
+ return {
109
+ serving: isHubServeEnabled(),
110
+ consuming: isHubConsumeEnabled(),
111
+ hubUrl: process.env.AGENT_NATIVE_MCP_HUB_URL?.trim() || null,
112
+ };
113
+ }
114
+ //# sourceMappingURL=hub-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub-routes.js","sourceRoot":"","sources":["../../src/mcp-client/hub-routes.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,11 @@
6
6
  */
7
7
  export { loadMcpConfig, autoDetectMcpConfig, type McpConfig, type McpServerConfig, } from "./config.js";
8
8
  export { McpClientManager, parseMcpToolName, MCP_TOOL_PREFIX, type McpTool, type McpClientManagerOptions, } from "./manager.js";
9
+ export { listRemoteServers, addRemoteServer, removeRemoteServer, validateRemoteUrl, normalizeServerName, mergedConfigKey, parseMergedKey, hashEmail, toHttpServerConfig, type RemoteMcpScope, type StoredRemoteMcpServer, } from "./remote-store.js";
10
+ export { mountMcpServersRoutes, buildMergedConfig } from "./routes.js";
11
+ export { mountMcpHubRoutes, listHubServers, getHubStatus, isHubServeEnabled, isHubConsumeEnabled, type HubServerRecord, type HubServersResponse, } from "./hub-routes.js";
12
+ export { fetchHubServers } from "./hub-client.js";
13
+ export { isMcpToolAllowedForRequest } from "./visibility.js";
9
14
  /**
10
15
  * Convert MCP tools into `ActionEntry` values suitable for registration in
11
16
  * the agent's action registry. Each tool is marked `http: false` so it's
@@ -14,4 +19,14 @@ export { McpClientManager, parseMcpToolName, MCP_TOOL_PREFIX, type McpTool, type
14
19
  import type { ActionEntry } from "../agent/production-agent.js";
15
20
  import type { McpClientManager } from "./manager.js";
16
21
  export declare function mcpToolsToActionEntries(manager: McpClientManager): Record<string, ActionEntry>;
22
+ /**
23
+ * Mutate a target action dict in place so it matches the current MCP tool set:
24
+ * - adds new `mcp__*` keys that aren't in target,
25
+ * - removes `mcp__*` keys that no longer exist in the manager,
26
+ * - leaves non-MCP keys untouched.
27
+ *
28
+ * Used by the agent-chat plugin to keep its `prodActions` / `devActions`
29
+ * registries in sync after `McpClientManager.reconfigure()` runs.
30
+ */
31
+ export declare function syncMcpActionEntries(manager: McpClientManager, target: Record<string, ActionEntry>): void;
17
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,KAAK,OAAO,EACZ,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC;AAEtB;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAW,MAAM,cAAc,CAAC;AAE9D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAM7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp-client/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,KAAK,OAAO,EACZ,KAAK,uBAAuB,GAC7B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAG7D;;;;GAIG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAW,MAAM,cAAc,CAAC;AAE9D,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAM7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAClC,IAAI,CAaN"}
@@ -6,6 +6,12 @@
6
6
  */
7
7
  export { loadMcpConfig, autoDetectMcpConfig, } from "./config.js";
8
8
  export { McpClientManager, parseMcpToolName, MCP_TOOL_PREFIX, } from "./manager.js";
9
+ export { listRemoteServers, addRemoteServer, removeRemoteServer, validateRemoteUrl, normalizeServerName, mergedConfigKey, parseMergedKey, hashEmail, toHttpServerConfig, } from "./remote-store.js";
10
+ export { mountMcpServersRoutes, buildMergedConfig } from "./routes.js";
11
+ export { mountMcpHubRoutes, listHubServers, getHubStatus, isHubServeEnabled, isHubConsumeEnabled, } from "./hub-routes.js";
12
+ export { fetchHubServers } from "./hub-client.js";
13
+ export { isMcpToolAllowedForRequest } from "./visibility.js";
14
+ import { isMcpToolAllowedForRequest } from "./visibility.js";
9
15
  export function mcpToolsToActionEntries(manager) {
10
16
  const entries = {};
11
17
  for (const tool of manager.getTools()) {
@@ -13,6 +19,29 @@ export function mcpToolsToActionEntries(manager) {
13
19
  }
14
20
  return entries;
15
21
  }
22
+ /**
23
+ * Mutate a target action dict in place so it matches the current MCP tool set:
24
+ * - adds new `mcp__*` keys that aren't in target,
25
+ * - removes `mcp__*` keys that no longer exist in the manager,
26
+ * - leaves non-MCP keys untouched.
27
+ *
28
+ * Used by the agent-chat plugin to keep its `prodActions` / `devActions`
29
+ * registries in sync after `McpClientManager.reconfigure()` runs.
30
+ */
31
+ export function syncMcpActionEntries(manager, target) {
32
+ const current = new Set();
33
+ for (const tool of manager.getTools()) {
34
+ current.add(tool.name);
35
+ if (!target[tool.name]) {
36
+ target[tool.name] = mcpToolToActionEntry(manager, tool);
37
+ }
38
+ }
39
+ for (const key of Object.keys(target)) {
40
+ if (key.startsWith("mcp__") && !current.has(key)) {
41
+ delete target[key];
42
+ }
43
+ }
44
+ }
16
45
  function mcpToolToActionEntry(manager, tool) {
17
46
  return {
18
47
  tool: {
@@ -21,6 +50,12 @@ function mcpToolToActionEntry(manager, tool) {
21
50
  },
22
51
  http: false,
23
52
  run: async (args) => {
53
+ // Defense-in-depth: even if a cross-scope MCP tool somehow makes it
54
+ // into the LLM's visible tool list, reject invocation here so we never
55
+ // execute a user's credentials on behalf of another user.
56
+ if (!isMcpToolAllowedForRequest(tool.name)) {
57
+ return `Error: MCP tool ${tool.name} is not available in the current request scope.`;
58
+ }
24
59
  try {
25
60
  const result = await manager.callTool(tool.name, args);
26
61
  // MCP tool results are typically `{ content: [{ type: "text", text: ... }], isError? }`.