@superblocksteam/gateway 2.0.174 → 2.0.175-next.0

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 (212) hide show
  1. package/README.md +43 -18
  2. package/dist/agents/resolve-orchestrator-url.d.ts +1 -0
  3. package/dist/agents/resolve-orchestrator-url.d.ts.map +1 -0
  4. package/dist/capabilities/integration-metadata.d.ts +1 -0
  5. package/dist/capabilities/integration-metadata.d.ts.map +1 -0
  6. package/dist/capabilities/lifecycle.d.ts +2 -0
  7. package/dist/capabilities/lifecycle.d.ts.map +1 -0
  8. package/dist/capabilities/lifecycle.js +10 -6
  9. package/dist/capabilities/lifecycle.js.map +1 -1
  10. package/dist/capabilities/live-state-attaches.d.ts +1 -0
  11. package/dist/capabilities/live-state-attaches.d.ts.map +1 -0
  12. package/dist/capabilities/query-integration.d.ts +1 -0
  13. package/dist/capabilities/query-integration.d.ts.map +1 -0
  14. package/dist/capabilities/source-files-archive.d.ts +1 -0
  15. package/dist/capabilities/source-files-archive.d.ts.map +1 -0
  16. package/dist/capabilities/tool-permission-reply.d.ts +1 -0
  17. package/dist/capabilities/tool-permission-reply.d.ts.map +1 -0
  18. package/dist/capabilities/types.d.ts +1 -0
  19. package/dist/capabilities/types.d.ts.map +1 -0
  20. package/dist/capture/browser-contract.d.ts +1 -0
  21. package/dist/capture/browser-contract.d.ts.map +1 -0
  22. package/dist/capture/browser-instructions.d.ts +1 -0
  23. package/dist/capture/browser-instructions.d.ts.map +1 -0
  24. package/dist/capture/capture-library-probe.d.ts +1 -0
  25. package/dist/capture/capture-library-probe.d.ts.map +1 -0
  26. package/dist/capture/capture-library.d.ts +1 -0
  27. package/dist/capture/capture-library.d.ts.map +1 -0
  28. package/dist/capture/classify-library-paint.d.ts +1 -0
  29. package/dist/capture/classify-library-paint.d.ts.map +1 -0
  30. package/dist/capture/cowork-editor-url.d.ts +1 -0
  31. package/dist/capture/cowork-editor-url.d.ts.map +1 -0
  32. package/dist/capture/host-mcp-scan.d.ts +1 -0
  33. package/dist/capture/host-mcp-scan.d.ts.map +1 -0
  34. package/dist/capture/library-parent-script.d.ts +1 -0
  35. package/dist/capture/library-parent-script.d.ts.map +1 -0
  36. package/dist/capture/mode.d.ts +1 -0
  37. package/dist/capture/mode.d.ts.map +1 -0
  38. package/dist/config.d.ts +7 -0
  39. package/dist/config.d.ts.map +1 -0
  40. package/dist/config.js +1 -0
  41. package/dist/config.js.map +1 -1
  42. package/dist/deadline.d.ts +1 -0
  43. package/dist/deadline.d.ts.map +1 -0
  44. package/dist/debug.d.ts +1 -0
  45. package/dist/debug.d.ts.map +1 -0
  46. package/dist/deps.d.ts +4 -3
  47. package/dist/deps.d.ts.map +1 -0
  48. package/dist/health/readiness.d.ts +1 -0
  49. package/dist/health/readiness.d.ts.map +1 -0
  50. package/dist/http/main.d.ts +3 -0
  51. package/dist/http/main.d.ts.map +1 -0
  52. package/dist/http/main.js +8 -0
  53. package/dist/http/main.js.map +1 -0
  54. package/dist/http/serve.d.ts +26 -0
  55. package/dist/http/serve.d.ts.map +1 -0
  56. package/dist/http/serve.js +255 -0
  57. package/dist/http/serve.js.map +1 -0
  58. package/dist/index.d.ts +1 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/integrations/filters.d.ts +1 -0
  61. package/dist/integrations/filters.d.ts.map +1 -0
  62. package/dist/integrations/filters.js +1 -16
  63. package/dist/integrations/filters.js.map +1 -1
  64. package/dist/integrations/map.d.ts +10 -4
  65. package/dist/integrations/map.d.ts.map +1 -0
  66. package/dist/integrations/map.js +8 -6
  67. package/dist/integrations/map.js.map +1 -1
  68. package/dist/integrations/profile-key.d.ts +1 -0
  69. package/dist/integrations/profile-key.d.ts.map +1 -0
  70. package/dist/integrations/read-only-postgres-query.d.ts +1 -0
  71. package/dist/integrations/read-only-postgres-query.d.ts.map +1 -0
  72. package/dist/integrations/resolve-profile.d.ts +1 -0
  73. package/dist/integrations/resolve-profile.d.ts.map +1 -0
  74. package/dist/main.d.ts +1 -0
  75. package/dist/main.d.ts.map +1 -0
  76. package/dist/orchestrator/client.d.ts +1 -0
  77. package/dist/orchestrator/client.d.ts.map +1 -0
  78. package/dist/playwright/ensure-chromium.d.ts +1 -0
  79. package/dist/playwright/ensure-chromium.d.ts.map +1 -0
  80. package/dist/preview/capture-screenshot.d.ts +1 -0
  81. package/dist/preview/capture-screenshot.d.ts.map +1 -0
  82. package/dist/preview/capture-screenshot.js +1 -1
  83. package/dist/preview/capture-screenshot.js.map +1 -1
  84. package/dist/preview/viewer-url.d.ts +1 -0
  85. package/dist/preview/viewer-url.d.ts.map +1 -0
  86. package/dist/process/fault-barrier.d.ts +1 -0
  87. package/dist/process/fault-barrier.d.ts.map +1 -0
  88. package/dist/sabs/agent-facing-text.d.ts +1 -0
  89. package/dist/sabs/agent-facing-text.d.ts.map +1 -0
  90. package/dist/sabs/app-state.d.ts +3 -0
  91. package/dist/sabs/app-state.d.ts.map +1 -0
  92. package/dist/sabs/app-state.js +5 -0
  93. package/dist/sabs/app-state.js.map +1 -1
  94. package/dist/sabs/awaited-decision.d.ts +1 -0
  95. package/dist/sabs/awaited-decision.d.ts.map +1 -0
  96. package/dist/sabs/browser-context.d.ts +1 -0
  97. package/dist/sabs/browser-context.d.ts.map +1 -0
  98. package/dist/sabs/editor-client-methods.d.ts +1 -0
  99. package/dist/sabs/editor-client-methods.d.ts.map +1 -0
  100. package/dist/sabs/editor-client-methods.js +5 -3
  101. package/dist/sabs/editor-client-methods.js.map +1 -1
  102. package/dist/sabs/editor-socket.d.ts +1 -0
  103. package/dist/sabs/editor-socket.d.ts.map +1 -0
  104. package/dist/sabs/recent-tool-runs.d.ts +1 -0
  105. package/dist/sabs/recent-tool-runs.d.ts.map +1 -0
  106. package/dist/sabs/session-peer.d.ts +8 -0
  107. package/dist/sabs/session-peer.d.ts.map +1 -0
  108. package/dist/sabs/streamed-reply.d.ts +1 -0
  109. package/dist/sabs/streamed-reply.d.ts.map +1 -0
  110. package/dist/sabs/turn-collector.d.ts +1 -0
  111. package/dist/sabs/turn-collector.d.ts.map +1 -0
  112. package/dist/sabs/websocket-session-peer.d.ts +2 -0
  113. package/dist/sabs/websocket-session-peer.d.ts.map +1 -0
  114. package/dist/sabs/websocket-session-peer.js +5 -0
  115. package/dist/sabs/websocket-session-peer.js.map +1 -1
  116. package/dist/security/constant-time.d.ts +1 -0
  117. package/dist/security/constant-time.d.ts.map +1 -0
  118. package/dist/server/client.d.ts +10 -0
  119. package/dist/server/client.d.ts.map +1 -0
  120. package/dist/server/client.js +9 -0
  121. package/dist/server/client.js.map +1 -1
  122. package/dist/server/identity-reads.d.ts +1 -0
  123. package/dist/server/identity-reads.d.ts.map +1 -0
  124. package/dist/start.d.ts +6 -1
  125. package/dist/start.d.ts.map +1 -0
  126. package/dist/start.js +22 -9
  127. package/dist/start.js.map +1 -1
  128. package/dist/stores/memory.d.ts +1 -0
  129. package/dist/stores/memory.d.ts.map +1 -0
  130. package/dist/stores/types.d.ts +1 -0
  131. package/dist/stores/types.d.ts.map +1 -0
  132. package/dist/telemetry/mcp-client.d.ts +1 -0
  133. package/dist/telemetry/mcp-client.d.ts.map +1 -0
  134. package/dist/telemetry/mcp-usage.d.ts +22 -0
  135. package/dist/telemetry/mcp-usage.d.ts.map +1 -0
  136. package/dist/telemetry/mcp-usage.js +102 -0
  137. package/dist/telemetry/mcp-usage.js.map +1 -0
  138. package/dist/telemetry/metrics.d.ts +4 -0
  139. package/dist/telemetry/metrics.d.ts.map +1 -0
  140. package/dist/telemetry/metrics.js +11 -0
  141. package/dist/telemetry/metrics.js.map +1 -1
  142. package/dist/telemetry/runtime.d.ts +3 -1
  143. package/dist/telemetry/runtime.d.ts.map +1 -0
  144. package/dist/telemetry/runtime.js +12 -5
  145. package/dist/telemetry/runtime.js.map +1 -1
  146. package/dist/transports/mcp/admin-tools.d.ts +4 -7
  147. package/dist/transports/mcp/admin-tools.d.ts.map +1 -0
  148. package/dist/transports/mcp/admin-tools.js +5 -51
  149. package/dist/transports/mcp/admin-tools.js.map +1 -1
  150. package/dist/transports/mcp/app-status-html.d.ts +1 -0
  151. package/dist/transports/mcp/app-status-html.d.ts.map +1 -0
  152. package/dist/transports/mcp/client-presentation.d.ts +1 -0
  153. package/dist/transports/mcp/client-presentation.d.ts.map +1 -0
  154. package/dist/transports/mcp/decision-card-html.d.ts +1 -0
  155. package/dist/transports/mcp/decision-card-html.d.ts.map +1 -0
  156. package/dist/transports/mcp/decision-elicitation.d.ts +1 -0
  157. package/dist/transports/mcp/decision-elicitation.d.ts.map +1 -0
  158. package/dist/transports/mcp/dispatch-probe.d.ts +1 -0
  159. package/dist/transports/mcp/dispatch-probe.d.ts.map +1 -0
  160. package/dist/transports/mcp/editor-document-probe.d.ts +1 -0
  161. package/dist/transports/mcp/editor-document-probe.d.ts.map +1 -0
  162. package/dist/transports/mcp/editor-integration-setup-url.d.ts +1 -0
  163. package/dist/transports/mcp/editor-integration-setup-url.d.ts.map +1 -0
  164. package/dist/transports/mcp/format-tool-content.d.ts +1 -0
  165. package/dist/transports/mcp/format-tool-content.d.ts.map +1 -0
  166. package/dist/transports/mcp/instructions/index.d.ts +1 -0
  167. package/dist/transports/mcp/instructions/index.d.ts.map +1 -0
  168. package/dist/transports/mcp/instructions/result.d.ts +1 -0
  169. package/dist/transports/mcp/instructions/result.d.ts.map +1 -0
  170. package/dist/transports/mcp/instructions/tools/ask-user.d.ts +1 -0
  171. package/dist/transports/mcp/instructions/tools/ask-user.d.ts.map +1 -0
  172. package/dist/transports/mcp/instructions/tools/build-app.d.ts +1 -0
  173. package/dist/transports/mcp/instructions/tools/build-app.d.ts.map +1 -0
  174. package/dist/transports/mcp/instructions/tools/check-app-progress.d.ts +1 -0
  175. package/dist/transports/mcp/instructions/tools/check-app-progress.d.ts.map +1 -0
  176. package/dist/transports/mcp/instructions/tools/check-publish-progress.d.ts +1 -0
  177. package/dist/transports/mcp/instructions/tools/check-publish-progress.d.ts.map +1 -0
  178. package/dist/transports/mcp/instructions/tools/copy.d.ts +1 -0
  179. package/dist/transports/mcp/instructions/tools/copy.d.ts.map +1 -0
  180. package/dist/transports/mcp/instructions/tools/create-integration.d.ts +1 -0
  181. package/dist/transports/mcp/instructions/tools/create-integration.d.ts.map +1 -0
  182. package/dist/transports/mcp/instructions/tools/edit-app.d.ts +1 -0
  183. package/dist/transports/mcp/instructions/tools/edit-app.d.ts.map +1 -0
  184. package/dist/transports/mcp/instructions/tools/get-app.d.ts +1 -0
  185. package/dist/transports/mcp/instructions/tools/get-app.d.ts.map +1 -0
  186. package/dist/transports/mcp/instructions/tools/get-integration-metadata.d.ts +1 -0
  187. package/dist/transports/mcp/instructions/tools/get-integration-metadata.d.ts.map +1 -0
  188. package/dist/transports/mcp/instructions/tools/index.d.ts +1 -0
  189. package/dist/transports/mcp/instructions/tools/index.d.ts.map +1 -0
  190. package/dist/transports/mcp/instructions/tools/publish-app.d.ts +1 -0
  191. package/dist/transports/mcp/instructions/tools/publish-app.d.ts.map +1 -0
  192. package/dist/transports/mcp/instructions/tools/start-app.d.ts +1 -0
  193. package/dist/transports/mcp/instructions/tools/start-app.d.ts.map +1 -0
  194. package/dist/transports/mcp/instructions/tools/upload-artifact.d.ts +1 -0
  195. package/dist/transports/mcp/instructions/tools/upload-artifact.d.ts.map +1 -0
  196. package/dist/transports/mcp/mcp-app-brand-css.d.ts +1 -0
  197. package/dist/transports/mcp/mcp-app-brand-css.d.ts.map +1 -0
  198. package/dist/transports/mcp/mount.d.ts +3 -13
  199. package/dist/transports/mcp/mount.d.ts.map +1 -0
  200. package/dist/transports/mcp/mount.js +73 -38
  201. package/dist/transports/mcp/mount.js.map +1 -1
  202. package/dist/transports/mcp/native-browser-presence.d.ts +1 -0
  203. package/dist/transports/mcp/native-browser-presence.d.ts.map +1 -0
  204. package/dist/transports/mcp/plan-approval.d.ts +1 -0
  205. package/dist/transports/mcp/plan-approval.d.ts.map +1 -0
  206. package/dist/transports/mcp/progress-notifier.d.ts +1 -0
  207. package/dist/transports/mcp/progress-notifier.d.ts.map +1 -0
  208. package/dist/transports/mcp/session-directory.d.ts +1 -0
  209. package/dist/transports/mcp/session-directory.d.ts.map +1 -0
  210. package/dist/transports/mcp/tool-names.d.ts +1 -0
  211. package/dist/transports/mcp/tool-names.d.ts.map +1 -0
  212. package/package.json +22 -19
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-contract.d.ts","sourceRoot":"","sources":["../../src/capture/browser-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,EAAG,iBAA0B,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAG,SAAkB,CAAC;AAE7D,MAAM,MAAM,gBAAgB,GACxB,OAAO,yBAAyB,GAChC,OAAO,0BAA0B,CAAC;AAEtC,eAAO,MAAM,oBAAoB,iGAC+D,CAAC;AAEjG,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAEhE,eAAO,MAAM,4BAA4B,0OACgM,CAAC;AAE1O;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,+BAA+B,CAAC;KACpD,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,CAAC;AAEF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,qBAAqB,CAcxB;AAED,wBAAgB,uBAAuB,IAAI;IACzC,IAAI,EAAE,OAAO,yBAAyB,CAAC;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA"}
@@ -8,3 +8,4 @@
8
8
  * concern; these lines only steer when the tools exist.
9
9
  */
10
10
  export declare const BROWSER_DRIVER_INSTRUCTIONS = "Browser capture (MUST):\n1. Prefer host browser tools (Playwright MCP, chrome-devtools, agent-browser) over opening Superblocks URLs yourself. Honor the structured \"browser\" field on start_app / get_app / idp_step_up; do not paraphrase it into a different URL.\n2. When canvas.openWhileBuilding is \"claude_cowork_side_panel_only\", open canvas.editUrl while status is \"building\" only for a Claude Cowork task whose built-in browser is available, and use its embedded side panel. Every other host MUST NOT open it mid-build because that can steal the live-edit turn.\n3. NEVER paste tokens, JWTs, or API keys into browser evaluate or fill. Tokens are not in tool JSON; do not invent them.\n4. Playwright MCP MUST NOT use --isolated for Superblocks IdP. Cookies must survive the session.\n5. MUST NOT call browser_close until the Superblocks task is done (see driver.mustNotCloseUntil).\n6. agent-browser MUST always pass --profile and a stable --session for the same Superblocks origin.\n7. Claude-in-Chrome is not a mid-turn canvas. Do not use it to screenshot the live Vite app while a Gateway turn is held.";
11
+ //# sourceMappingURL=browser-instructions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-instructions.d.ts","sourceRoot":"","sources":["../../src/capture/browser-instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,8lCAOkF,CAAC"}
@@ -53,3 +53,4 @@ export declare function attachLibraryCaptureProbe(page: ProbePage, collector: Ca
53
53
  export declare function shouldLogCaptureProbe(summary: CaptureProbeSummary): boolean;
54
54
  export declare function logCaptureProbe(summary: CaptureProbeSummary): void;
55
55
  export {};
56
+ //# sourceMappingURL=capture-library-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-library-probe.d.ts","sourceRoot":"","sources":["../../src/capture/capture-library-probe.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD;AAMD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAI5E;AAUD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,iBAAiB,GACvB,mBAAmB,CAmCrB;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,CAAC;CAC9D,CAAC;AAkDF,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,qBAAqB,GAC/B,IAAI,CAsDN;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAW3E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAKlE"}
@@ -50,3 +50,4 @@ export declare function readLibraryCaptureParentEvents(view?: {
50
50
  */
51
51
  export type CaptureLibraryScreenshot = (input: CaptureLibraryScreenshotInput) => Promise<LibraryScreenshot | undefined>;
52
52
  export declare function captureLibraryScreenshotWithPlaywright(input: CaptureLibraryScreenshotInput): Promise<LibraryScreenshot | undefined>;
53
+ //# sourceMappingURL=capture-library.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-library.d.ts","sourceRoot":"","sources":["../../src/capture/capture-library.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAKL,KAAK,kBAAkB,EAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,oBAAoB,GAAG;IACjE,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAoEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,mBAAmB,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE;QACR,IAAI,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;QAClC,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;KAC9C,CAAC;IACF,gBAAgB,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK;QAClD,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,YAAY,CA4B5E;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,CAAC,EAAE;IACpD,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,GAAG,kBAAkB,EAAE,CAkBvB;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,6BAA6B,KACjC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;AAE5C,wBAAsB,sCAAsC,CAC1D,KAAK,EAAE,6BAA6B,GACnC,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA6KxC"}
@@ -19,3 +19,4 @@ export type LibraryPaintVerdict = {
19
19
  reason: "preview_sign_in";
20
20
  };
21
21
  export declare function classifyLibraryPaint(paint: LibraryPaint): LibraryPaintVerdict;
22
+ //# sourceMappingURL=classify-library-paint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify-library-paint.d.ts","sourceRoot":"","sources":["../../src/capture/classify-library-paint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAKhD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAK7E"}
@@ -4,3 +4,4 @@
4
4
  * navigation, the canvas it may open mid-build, and a publish's details page.
5
5
  */
6
6
  export declare function withCoworkEditorHost(url: string): string;
7
+ //# sourceMappingURL=cowork-editor-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cowork-editor-url.d.ts","sourceRoot":"","sources":["../../src/capture/cowork-editor-url.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIxD"}
@@ -14,3 +14,4 @@ export type HostBrowserMcpScan = {
14
14
  * skipped so a self-scan cannot count as a host browser.
15
15
  */
16
16
  export declare function scanHostBrowserMcp(config: unknown): HostBrowserMcpScan;
17
+ //# sourceMappingURL=host-mcp-scan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-mcp-scan.d.ts","sourceRoot":"","sources":["../../src/capture/host-mcp-scan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AA2BF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB,CA2BtE"}
@@ -33,3 +33,4 @@ export type LibraryParentPayload = {
33
33
  initData: LibraryParentInitData;
34
34
  };
35
35
  export declare function buildLibraryParentScript(payload: LibraryParentPayload): string;
36
+ //# sourceMappingURL=library-parent-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-parent-script.d.ts","sourceRoot":"","sources":["../../src/capture/library-parent-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,EAAE,qBAAqB,CAAC;CACjC,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,oBAAoB,GAC5B,MAAM,CAuER"}
@@ -27,3 +27,4 @@ export declare function formatCaptureModeUserSummary(input: {
27
27
  isolated: boolean;
28
28
  mode: CaptureMode;
29
29
  }): string | undefined;
30
+ //# sourceMappingURL=mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/capture/mode.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,aAAa,mEAIhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,GAAG,WAAW,CAQd;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB,GAAG,MAAM,CAyBT;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB,GAAG,MAAM,GAAG,SAAS,CAsBrB"}
package/dist/config.d.ts CHANGED
@@ -9,6 +9,12 @@ export type GatewayConfig = {
9
9
  * screenshots and a live-edit session it never opens on this machine.
10
10
  */
11
11
  adminToolsOnly: boolean;
12
+ /**
13
+ * Served over HTTP from AgentCore Runtime instead of the CLI's stdio. The
14
+ * host filesystem is the microVM's, not the user's, so `upload_artifact`
15
+ * takes no `filePath`. Set by the HTTP entrypoint, never from an env var.
16
+ */
17
+ hosted: boolean;
12
18
  /**
13
19
  * Where `upload_artifact` looks when it was handed only a file name or a
14
20
  * sandbox path that does not exist on this host.
@@ -138,3 +144,4 @@ export type GatewayConfig = {
138
144
  gatewayChromiumPresent?: boolean;
139
145
  };
140
146
  export declare function loadConfig(env?: NodeJS.ProcessEnv): GatewayConfig;
147
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG;IAC1B,yBAAyB,EAAE,MAAM,CAAC;IAClC,sEAAsE;IACtE,cAAc,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;;OAOG;IACH,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,6BAA6B,EAAE,MAAM,CAAC;IACtC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;;;;;OAQG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC;;;OAGG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC;;;;OAIG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAiEF,wBAAgB,UAAU,CACxB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,CAgGf"}
package/dist/config.js CHANGED
@@ -70,6 +70,7 @@ export function loadConfig(env = process.env) {
70
70
  deploymentEnvironmentName,
71
71
  localAgentMode,
72
72
  adminToolsOnly,
73
+ hosted: false,
73
74
  importSearchDirs: resolveImportSearchDirs(env),
74
75
  beatLostGraceMs: Number(readEnv(env, "GATEWAY_BEAT_LOST_GRACE_MS") ?? String(60_000)),
75
76
  heldSessionIdleMs: Number(readEnv(env, "GATEWAY_HELD_SESSION_IDLE_MS") ?? String(30 * 60 * 1000)),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@
4
4
  * work that fails after the deadline answered stays handled.
5
5
  */
6
6
  export declare function withDeadline<T>(work: Promise<T>, deadlineMs: number, onDeadline: () => T): Promise<T>;
7
+ //# sourceMappingURL=deadline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deadline.d.ts","sourceRoot":"","sources":["../src/deadline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,CAAC,GAClB,OAAO,CAAC,CAAC,CAAC,CAeZ"}
package/dist/debug.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export declare const gatewayDebug: import("util").DebugLogger;
2
2
  export declare function gatewayDebugStack(message: string, attributes?: Record<string, unknown>): void;
3
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,4BAAsB,CAAC;AAEhD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACvC,IAAI,CAKN"}
package/dist/deps.d.ts CHANGED
@@ -5,9 +5,9 @@ import type { SuperblocksServerClient } from "./server/client.js";
5
5
  import type { ProgressStore, RecentAppStore, StepUpTurnStore } from "./stores/types.js";
6
6
  import type { McpClientTelemetry } from "./telemetry/mcp-client.js";
7
7
  /**
8
- * Runtime collaborators for one Gateway process. Stdio MCP is the only
9
- * production transport; tests build the same bag and connect an in-memory
10
- * client.
8
+ * Runtime collaborators for one Gateway process, served over the CLI's stdio
9
+ * or over HTTP on AgentCore Runtime. Tests build the same bag and connect an
10
+ * in-memory client.
11
11
  */
12
12
  export type AppDeps = {
13
13
  /** Per-application facts shared by the session peer and the capabilities. */
@@ -43,3 +43,4 @@ export type AppDeps = {
43
43
  sessionPeer: SessionPeer;
44
44
  stepUpTurns: StepUpTurnStore;
45
45
  };
46
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,6EAA6E;IAC7E,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,YAAY,CAAC,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,KACjB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,wEAAwE;IACxE,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,mBAAmB,CAAC,CAAC;IACzE,MAAM,EAAE,uBAAuB,CAAC;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,eAAe,CAAC;CAC9B,CAAC"}
@@ -97,3 +97,4 @@ export declare class GatewayReadiness {
97
97
  private log;
98
98
  private probeUpstream;
99
99
  }
100
+ //# sourceMappingURL=readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readiness.d.ts","sourceRoot":"","sources":["../../src/health/readiness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAUhE;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAEzD,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AASF;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,aAAa,CAehB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,OAAO,EAAE,uBAAuB;IAI5C;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAI5C;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAMhC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAIrC,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;YAI9B,OAAO;IAqBrB;;;;OAIG;YACW,KAAK;YAYL,QAAQ;YAUR,aAAa;IA6C3B,OAAO,CAAC,GAAG;YAOG,aAAa;CAW5B"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/http/main.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import { startHttpGateway } from "./serve.js";
3
+ const gateway = await startHttpGateway();
4
+ // Close on a stop signal so the last telemetry batch is sent.
5
+ process.once("SIGTERM", () => {
6
+ void gateway.close().finally(() => process.exit(0));
7
+ });
8
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/http/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;AACzC,8DAA8D;AAC9D,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;IAC3B,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** AgentCore Runtime passes the caller's token through in this header. */
2
+ export declare const USER_TOKEN_HEADER = "x-amzn-bedrock-agentcore-runtime-custom-user-token";
3
+ export type StartedHttpGateway = {
4
+ close: () => Promise<void>;
5
+ port: number;
6
+ };
7
+ /**
8
+ * Serves the Platform MCP on AgentCore Runtime's MCP contract: streamable HTTP
9
+ * on `/mcp` and a health check on `/ping`.
10
+ *
11
+ * One process is one microVM, which AgentCore gives to one user. It can still
12
+ * see more than one MCP session (AgentCore's own handshake, then the client's),
13
+ * so each session gets its own MCP server over one shared runtime.
14
+ */
15
+ export declare function startHttpGateway({ host, port, }?: {
16
+ host?: string;
17
+ port?: number;
18
+ }): Promise<StartedHttpGateway>;
19
+ /** The token background work may use, or why it may not. */
20
+ export declare function usableToken(token: string | undefined): string;
21
+ /**
22
+ * Whether a JWT's `exp` has passed. A personal access token is not a JWT and
23
+ * has no expiry we can read, so it never counts as expired here.
24
+ */
25
+ export declare function jwtExpired(token: string, now?: number): boolean;
26
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/http/serve.ts"],"names":[],"mappings":"AAgBA,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,uDACwB,CAAC;AAWvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,IAAgB,EAChB,IAAW,GACZ,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8KrE;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAU7D;AAgBD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,OAAO,CASnE"}
@@ -0,0 +1,255 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { createServer, } from "node:http";
3
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
+ import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
5
+ import { installFaultBarrier } from "../process/fault-barrier.js";
6
+ import { HttpSuperblocksServerClient } from "../server/client.js";
7
+ import { IdentityUnavailableError } from "../server/identity-reads.js";
8
+ import { createRuntime } from "../start.js";
9
+ import { createMcpServer } from "../transports/mcp/mount.js";
10
+ /** AgentCore Runtime passes the caller's token through in this header. */
11
+ export const USER_TOKEN_HEADER = "x-amzn-bedrock-agentcore-runtime-custom-user-token";
12
+ /**
13
+ * AgentCore sends its own `initialize` to every microVM before any user is
14
+ * assigned to it, so that handshake comes without a token. Nothing else may.
15
+ */
16
+ const TOKENLESS_METHODS = new Set(["initialize", "notifications/initialized"]);
17
+ // Bodies read here are handshakes, which are tiny. Larger ones go to the SDK.
18
+ const HANDSHAKE_BODY_LIMIT_BYTES = 64 * 1024;
19
+ /**
20
+ * Serves the Platform MCP on AgentCore Runtime's MCP contract: streamable HTTP
21
+ * on `/mcp` and a health check on `/ping`.
22
+ *
23
+ * One process is one microVM, which AgentCore gives to one user. It can still
24
+ * see more than one MCP session (AgentCore's own handshake, then the client's),
25
+ * so each session gets its own MCP server over one shared runtime.
26
+ */
27
+ export async function startHttpGateway({ host = "0.0.0.0", port = 8000, } = {}) {
28
+ let latestToken;
29
+ let pinnedUserId;
30
+ const runtime = await createRuntime({
31
+ apiKey: "",
32
+ // Background work (live edit, Clark calling back, prompt-start reads) runs
33
+ // after the request that started it, on whatever token came in last.
34
+ getAccessToken: async () => usableToken(latestToken),
35
+ hosted: true,
36
+ // Keys the plan approval directory, which only this microVM can see.
37
+ sessionKey: "hosted",
38
+ });
39
+ // The runtime's client sends the latest token, not the one being checked.
40
+ const identities = new HttpSuperblocksServerClient(runtime.config.serverUrl);
41
+ const sessions = new Map();
42
+ // Sessions opened without a token. A request without a token reaches only these.
43
+ const tokenlessSessions = new Set();
44
+ const handleMcp = async (req, res) => {
45
+ const header = req.headers[USER_TOKEN_HEADER];
46
+ const token = (Array.isArray(header) ? header[0] : header)
47
+ ?.replace(/^Bearer\s+/i, "")
48
+ .trim();
49
+ const sessionId = req.headers["mcp-session-id"];
50
+ let body;
51
+ if (token) {
52
+ let userId;
53
+ try {
54
+ userId = (await identities.validateApiKey(token))?.userId;
55
+ }
56
+ catch (error) {
57
+ if (!(error instanceof IdentityUnavailableError))
58
+ throw error;
59
+ return reject(res, 503, "Superblocks could not check this token.");
60
+ }
61
+ // The identity read is cached, so it can still accept a JWT that just expired.
62
+ if (!userId || jwtExpired(token)) {
63
+ return reject(res, 401, "Superblocks refused this token.");
64
+ }
65
+ if (!pinnedUserId) {
66
+ pinnedUserId = userId;
67
+ console.error("gateway http pinned this server to a user", { userId });
68
+ }
69
+ if (userId !== pinnedUserId) {
70
+ return reject(res, 403, "This session belongs to another user.");
71
+ }
72
+ latestToken = token;
73
+ }
74
+ else {
75
+ body = req.method === "POST" ? await readJson(req) : undefined;
76
+ if (!isTokenlessHandshake(body) ||
77
+ (typeof sessionId === "string" && !tokenlessSessions.has(sessionId))) {
78
+ // Shows whether AgentCore sends anything tokenless beyond the handshake.
79
+ console.error("gateway http refused a request without a token", {
80
+ method: req.method,
81
+ rpcMethod: jsonRpcMethod(body)?.slice(0, 100),
82
+ });
83
+ return reject(res, 401, `Missing ${USER_TOKEN_HEADER} header.`);
84
+ }
85
+ }
86
+ if (typeof sessionId === "string") {
87
+ const transport = sessions.get(sessionId);
88
+ if (!transport)
89
+ return reject(res, 404, "Session not found.");
90
+ return transport.handleRequest(req, res, body);
91
+ }
92
+ body ??= req.method === "POST" ? await readJson(req) : undefined;
93
+ if (!isInitializeRequest(body)) {
94
+ return reject(res, 400, "Start a session with initialize.");
95
+ }
96
+ const transport = new StreamableHTTPServerTransport({
97
+ sessionIdGenerator: () => randomUUID(),
98
+ onsessioninitialized: (id) => {
99
+ sessions.set(id, transport);
100
+ if (!token)
101
+ tokenlessSessions.add(id);
102
+ },
103
+ });
104
+ const server = createMcpServer(runtime.deps);
105
+ transport.onclose = () => {
106
+ if (!transport.sessionId)
107
+ return;
108
+ sessions.delete(transport.sessionId);
109
+ tokenlessSessions.delete(transport.sessionId);
110
+ };
111
+ await server.connect(transport);
112
+ await transport.handleRequest(req, res, body);
113
+ };
114
+ // AgentCore stops an idle session only once /ping says Healthy and
115
+ // time_of_last_update stops moving, so the time moves only when the status
116
+ // flips.
117
+ let requestsInFlight = 0;
118
+ let status = "Healthy";
119
+ let timeOfLastUpdate = Math.floor(Date.now() / 1000);
120
+ // Called on each request start and end too, so a tool call that fits
121
+ // between two pings still moves the time.
122
+ const updateStatus = () => {
123
+ const turnRunning = runtime.deps.sessionPeer.anyTurnRunning();
124
+ const next = requestsInFlight > 0 || turnRunning ? "HealthyBusy" : "Healthy";
125
+ if (next === status)
126
+ return;
127
+ // Explains after the fact why AgentCore did or did not stop this microVM.
128
+ console.error("gateway http ping status changed", {
129
+ from: status,
130
+ requestsInFlight,
131
+ to: next,
132
+ turnRunning,
133
+ });
134
+ status = next;
135
+ timeOfLastUpdate = Math.floor(Date.now() / 1000);
136
+ };
137
+ const httpServer = createServer((req, res) => {
138
+ const path = new URL(req.url ?? "/", "http://localhost").pathname;
139
+ if (path === "/ping" && req.method === "GET") {
140
+ updateStatus();
141
+ res.writeHead(200, { "content-type": "application/json" });
142
+ res.end(JSON.stringify({ status, time_of_last_update: timeOfLastUpdate }));
143
+ return;
144
+ }
145
+ if (path !== "/mcp") {
146
+ res.writeHead(404).end();
147
+ return;
148
+ }
149
+ // Not GET: that is the client's notification stream, which stays open
150
+ // while the user is idle.
151
+ if (req.method === "POST") {
152
+ requestsInFlight++;
153
+ updateStatus();
154
+ res.on("close", () => {
155
+ requestsInFlight--;
156
+ updateStatus();
157
+ });
158
+ }
159
+ handleMcp(req, res).catch((error) => {
160
+ if (res.headersSent) {
161
+ console.error("gateway http request failed", error);
162
+ res.end();
163
+ }
164
+ else if (error instanceof SyntaxError ||
165
+ error instanceof BodyTooLargeError) {
166
+ reject(res, 400, error.message);
167
+ }
168
+ else {
169
+ console.error("gateway http request failed", error);
170
+ reject(res, 500, "Internal error.");
171
+ }
172
+ });
173
+ });
174
+ await new Promise((resolve) => httpServer.listen(port, host, resolve));
175
+ const disposeFaultBarrier = installFaultBarrier({
176
+ onFault: () => undefined,
177
+ shutdown: () => runtime.close(),
178
+ });
179
+ const address = httpServer.address();
180
+ const boundPort = typeof address === "object" && address ? address.port : port;
181
+ console.error("gateway MCP listening on http", { host, port: boundPort });
182
+ return {
183
+ port: boundPort,
184
+ close: async () => {
185
+ disposeFaultBarrier();
186
+ await Promise.all([...sessions.values()].map((t) => t.close()));
187
+ httpServer.closeAllConnections();
188
+ await new Promise((resolve) => httpServer.close(() => resolve()));
189
+ await runtime.close();
190
+ },
191
+ };
192
+ }
193
+ /** The token background work may use, or why it may not. */
194
+ export function usableToken(token) {
195
+ if (!token) {
196
+ throw new Error("No Superblocks token has reached this server yet.");
197
+ }
198
+ if (jwtExpired(token)) {
199
+ throw new Error("The Superblocks sign-in for this session expired while this step was running. Send a new request to continue.");
200
+ }
201
+ return token;
202
+ }
203
+ function isTokenlessHandshake(body) {
204
+ const method = jsonRpcMethod(body);
205
+ return method !== undefined && TOKENLESS_METHODS.has(method);
206
+ }
207
+ function jsonRpcMethod(body) {
208
+ return typeof body === "object" &&
209
+ body !== null &&
210
+ "method" in body &&
211
+ typeof body.method === "string"
212
+ ? body.method
213
+ : undefined;
214
+ }
215
+ /**
216
+ * Whether a JWT's `exp` has passed. A personal access token is not a JWT and
217
+ * has no expiry we can read, so it never counts as expired here.
218
+ */
219
+ export function jwtExpired(token, now = Date.now()) {
220
+ const [, payload, signature] = token.split(".");
221
+ if (!payload || signature === undefined)
222
+ return false;
223
+ try {
224
+ const { exp } = JSON.parse(Buffer.from(payload, "base64url").toString());
225
+ return typeof exp === "number" && exp * 1000 <= now;
226
+ }
227
+ catch {
228
+ return false;
229
+ }
230
+ }
231
+ class BodyTooLargeError extends Error {
232
+ }
233
+ async function readJson(req) {
234
+ const chunks = [];
235
+ let size = 0;
236
+ for await (const chunk of req) {
237
+ size += chunk.length;
238
+ if (size > HANDSHAKE_BODY_LIMIT_BYTES) {
239
+ throw new BodyTooLargeError("Request body too large.");
240
+ }
241
+ chunks.push(Buffer.from(chunk));
242
+ }
243
+ return JSON.parse(Buffer.concat(chunks).toString("utf8"));
244
+ }
245
+ function reject(res, status, message) {
246
+ // Only the status: a JSON parse error message can quote the request body.
247
+ console.error("gateway http refused a request", { status });
248
+ res.writeHead(status, { "content-type": "application/json" });
249
+ res.end(JSON.stringify({
250
+ jsonrpc: "2.0",
251
+ error: { code: -32000, message },
252
+ id: null,
253
+ }));
254
+ }
255
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/http/serve.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export { GATEWAY_FAULT_EXIT_CODE } from "./process/fault-barrier.js";
6
6
  export { startStdioGateway } from "./start.js";
7
7
  export type { StartGatewayOptions, StartedGateway } from "./start.js";
8
8
  export { ensurePlaywrightChromium, playwrightChromiumPresent, } from "./playwright/ensure-chromium.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,OAAO,EACP,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC"}
@@ -6,3 +6,4 @@
6
6
  * `graphqlintegration` stay.
7
7
  */
8
8
  export declare function integrationIsToolSupported(pluginId: string, sdkApiEnabled?: boolean): boolean;
9
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/integrations/filters.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,aAAa,UAAO,GACnB,OAAO,CAQT"}
@@ -1,19 +1,4 @@
1
- /**
2
- * Plugin ids Clark cannot use as tools. Mirrored from the UI's
3
- * `integration-filters` so this package does not depend on `packages/ui`.
4
- */
5
- const UNSUPPORTED_INTEGRATION_TYPES = new Set([
6
- "confluent",
7
- "email",
8
- "gsheets",
9
- "kafka",
10
- "kinesis",
11
- "openai",
12
- "redis",
13
- "redpanda",
14
- "superblocks-ocr",
15
- "workflow",
16
- ]);
1
+ import { UNSUPPORTED_INTEGRATION_TYPES } from "@superblocksteam/shared";
17
2
  /** Ad-hoc types filtered out for SDK-enabled (fullstack) apps. */
18
3
  const AD_HOC_INTEGRATION_TYPES = new Set([
19
4
  "graphql",
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/integrations/filters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAC;IAC5C,WAAW;IACX,OAAO;IACP,SAAS;IACT,OAAO;IACP,SAAS;IACT,QAAQ;IACR,OAAO;IACP,UAAU;IACV,iBAAiB;IACjB,UAAU;CACX,CAAC,CAAC;AAEH,kEAAkE;AAClE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,aAAa,GAAG,IAAI;IAEpB,IAAI,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,aAAa,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/integrations/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,kEAAkE;AAClE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,SAAS;CACV,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAgB,EAChB,aAAa,GAAG,IAAI;IAEpB,IAAI,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,aAAa,IAAI,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { PromptContextIntegration } from "@superblocksteam/library-shared/types";
2
2
  /** Minimal fields needed from `GET /api/v1/integrations/superset`. */
3
3
  export type SupersetIntegrationRow = {
4
+ applicationId?: string | null;
4
5
  configurations?: Array<{
5
6
  configuration?: {
6
7
  openApiSpecRef?: string;
@@ -10,6 +11,7 @@ export type SupersetIntegrationRow = {
10
11
  id: string;
11
12
  managedBy?: string | null;
12
13
  name: string;
14
+ ownerApplicationName?: string;
13
15
  permissions?: string[];
14
16
  pluginId: string;
15
17
  readOnly?: boolean;
@@ -17,11 +19,15 @@ export type SupersetIntegrationRow = {
17
19
  export declare function hasBuildPermission(row: SupersetIntegrationRow): boolean;
18
20
  /**
19
21
  * Maps a superset row to the shape Clark expects on `aiGetIntegrations`
20
- * (no metadata).
22
+ * (no metadata). `applicationId` is the app Clark is building.
21
23
  */
22
- export declare function toPromptContextIntegrationSummary(row: SupersetIntegrationRow): Omit<PromptContextIntegration, "metadata">;
24
+ export declare function toPromptContextIntegrationSummary(row: SupersetIntegrationRow, applicationId?: string): Omit<PromptContextIntegration, "metadata">;
23
25
  /**
24
26
  * BUILD-filtered, tool-supported integrations for Clark's discovery list.
25
27
  */
26
- export declare function listIntegrationsForClark(rows: SupersetIntegrationRow[], sdkApiEnabled?: boolean): Omit<PromptContextIntegration, "metadata">[];
27
- export declare function toPromptContextIntegration(row: SupersetIntegrationRow, metadata?: Record<string, unknown>): PromptContextIntegration;
28
+ export declare function listIntegrationsForClark(rows: SupersetIntegrationRow[], { applicationId, sdkApiEnabled, }?: {
29
+ applicationId?: string;
30
+ sdkApiEnabled?: boolean;
31
+ }): Omit<PromptContextIntegration, "metadata">[];
32
+ export declare function toPromptContextIntegration(row: SupersetIntegrationRow, metadata?: Record<string, unknown>, applicationId?: string): PromptContextIntegration;
33
+ //# sourceMappingURL=map.d.ts.map