@superblocksteam/gateway 2.0.0-SNAPSHOT.1d4c72c0ab174c21

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 (248) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +291 -0
  3. package/dist/agents/resolve-orchestrator-url.d.ts +22 -0
  4. package/dist/agents/resolve-orchestrator-url.js +38 -0
  5. package/dist/agents/resolve-orchestrator-url.js.map +1 -0
  6. package/dist/capabilities/integration-metadata.d.ts +28 -0
  7. package/dist/capabilities/integration-metadata.js +174 -0
  8. package/dist/capabilities/integration-metadata.js.map +1 -0
  9. package/dist/capabilities/lifecycle.d.ts +93 -0
  10. package/dist/capabilities/lifecycle.js +3450 -0
  11. package/dist/capabilities/lifecycle.js.map +1 -0
  12. package/dist/capabilities/query-integration.d.ts +14 -0
  13. package/dist/capabilities/query-integration.js +172 -0
  14. package/dist/capabilities/query-integration.js.map +1 -0
  15. package/dist/capabilities/source-files-archive.d.ts +11 -0
  16. package/dist/capabilities/source-files-archive.js +54 -0
  17. package/dist/capabilities/source-files-archive.js.map +1 -0
  18. package/dist/capabilities/types.d.ts +542 -0
  19. package/dist/capabilities/types.js +86 -0
  20. package/dist/capabilities/types.js.map +1 -0
  21. package/dist/capture/browser-contract.d.ts +46 -0
  22. package/dist/capture/browser-contract.js +34 -0
  23. package/dist/capture/browser-contract.js.map +1 -0
  24. package/dist/capture/browser-instructions.d.ts +10 -0
  25. package/dist/capture/browser-instructions.js +18 -0
  26. package/dist/capture/browser-instructions.js.map +1 -0
  27. package/dist/capture/capture-library-probe.d.ts +55 -0
  28. package/dist/capture/capture-library-probe.js +177 -0
  29. package/dist/capture/capture-library-probe.js.map +1 -0
  30. package/dist/capture/capture-library.d.ts +52 -0
  31. package/dist/capture/capture-library.js +249 -0
  32. package/dist/capture/capture-library.js.map +1 -0
  33. package/dist/capture/classify-library-paint.d.ts +21 -0
  34. package/dist/capture/classify-library-paint.js +13 -0
  35. package/dist/capture/classify-library-paint.js.map +1 -0
  36. package/dist/capture/host-mcp-scan.d.ts +16 -0
  37. package/dist/capture/host-mcp-scan.js +64 -0
  38. package/dist/capture/host-mcp-scan.js.map +1 -0
  39. package/dist/capture/library-parent-script.d.ts +35 -0
  40. package/dist/capture/library-parent-script.js +82 -0
  41. package/dist/capture/library-parent-script.js.map +1 -0
  42. package/dist/capture/mode.d.ts +29 -0
  43. package/dist/capture/mode.js +65 -0
  44. package/dist/capture/mode.js.map +1 -0
  45. package/dist/config.d.ts +148 -0
  46. package/dist/config.js +111 -0
  47. package/dist/config.js.map +1 -0
  48. package/dist/debug.d.ts +2 -0
  49. package/dist/debug.js +9 -0
  50. package/dist/debug.js.map +1 -0
  51. package/dist/deps.d.ts +38 -0
  52. package/dist/deps.js +2 -0
  53. package/dist/deps.js.map +1 -0
  54. package/dist/health/readiness.d.ts +99 -0
  55. package/dist/health/readiness.js +202 -0
  56. package/dist/health/readiness.js.map +1 -0
  57. package/dist/index.d.ts +8 -0
  58. package/dist/index.js +8 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/integrations/filters.d.ts +8 -0
  61. package/dist/integrations/filters.js +40 -0
  62. package/dist/integrations/filters.js.map +1 -0
  63. package/dist/integrations/map.d.ts +27 -0
  64. package/dist/integrations/map.js +43 -0
  65. package/dist/integrations/map.js.map +1 -0
  66. package/dist/integrations/profile-key.d.ts +19 -0
  67. package/dist/integrations/profile-key.js +35 -0
  68. package/dist/integrations/profile-key.js.map +1 -0
  69. package/dist/integrations/read-only-postgres-query.d.ts +2 -0
  70. package/dist/integrations/read-only-postgres-query.js +164 -0
  71. package/dist/integrations/read-only-postgres-query.js.map +1 -0
  72. package/dist/main.d.ts +2 -0
  73. package/dist/main.js +5 -0
  74. package/dist/main.js.map +1 -0
  75. package/dist/orchestrator/client.d.ts +62 -0
  76. package/dist/orchestrator/client.js +160 -0
  77. package/dist/orchestrator/client.js.map +1 -0
  78. package/dist/playwright/ensure-chromium.d.ts +24 -0
  79. package/dist/playwright/ensure-chromium.js +60 -0
  80. package/dist/playwright/ensure-chromium.js.map +1 -0
  81. package/dist/preview/capture-screenshot.d.ts +67 -0
  82. package/dist/preview/capture-screenshot.js +179 -0
  83. package/dist/preview/capture-screenshot.js.map +1 -0
  84. package/dist/preview/viewer-url.d.ts +82 -0
  85. package/dist/preview/viewer-url.js +130 -0
  86. package/dist/preview/viewer-url.js.map +1 -0
  87. package/dist/process/fault-barrier.d.ts +55 -0
  88. package/dist/process/fault-barrier.js +113 -0
  89. package/dist/process/fault-barrier.js.map +1 -0
  90. package/dist/sabs/agent-facing-text.d.ts +35 -0
  91. package/dist/sabs/agent-facing-text.js +165 -0
  92. package/dist/sabs/agent-facing-text.js.map +1 -0
  93. package/dist/sabs/app-state.d.ts +126 -0
  94. package/dist/sabs/app-state.js +332 -0
  95. package/dist/sabs/app-state.js.map +1 -0
  96. package/dist/sabs/awaited-decision.d.ts +47 -0
  97. package/dist/sabs/awaited-decision.js +124 -0
  98. package/dist/sabs/awaited-decision.js.map +1 -0
  99. package/dist/sabs/browser-context.d.ts +53 -0
  100. package/dist/sabs/browser-context.js +92 -0
  101. package/dist/sabs/browser-context.js.map +1 -0
  102. package/dist/sabs/editor-client-methods.d.ts +164 -0
  103. package/dist/sabs/editor-client-methods.js +750 -0
  104. package/dist/sabs/editor-client-methods.js.map +1 -0
  105. package/dist/sabs/editor-socket.d.ts +84 -0
  106. package/dist/sabs/editor-socket.js +64 -0
  107. package/dist/sabs/editor-socket.js.map +1 -0
  108. package/dist/sabs/recent-tool-runs.d.ts +14 -0
  109. package/dist/sabs/recent-tool-runs.js +61 -0
  110. package/dist/sabs/recent-tool-runs.js.map +1 -0
  111. package/dist/sabs/session-peer.d.ts +392 -0
  112. package/dist/sabs/session-peer.js +11 -0
  113. package/dist/sabs/session-peer.js.map +1 -0
  114. package/dist/sabs/streamed-reply.d.ts +42 -0
  115. package/dist/sabs/streamed-reply.js +110 -0
  116. package/dist/sabs/streamed-reply.js.map +1 -0
  117. package/dist/sabs/turn-collector.d.ts +169 -0
  118. package/dist/sabs/turn-collector.js +506 -0
  119. package/dist/sabs/turn-collector.js.map +1 -0
  120. package/dist/sabs/websocket-session-peer.d.ts +540 -0
  121. package/dist/sabs/websocket-session-peer.js +3289 -0
  122. package/dist/sabs/websocket-session-peer.js.map +1 -0
  123. package/dist/security/constant-time.d.ts +9 -0
  124. package/dist/security/constant-time.js +13 -0
  125. package/dist/security/constant-time.js.map +1 -0
  126. package/dist/server/client.d.ts +405 -0
  127. package/dist/server/client.js +684 -0
  128. package/dist/server/client.js.map +1 -0
  129. package/dist/server/identity-reads.d.ts +76 -0
  130. package/dist/server/identity-reads.js +209 -0
  131. package/dist/server/identity-reads.js.map +1 -0
  132. package/dist/start.d.ts +24 -0
  133. package/dist/start.js +81 -0
  134. package/dist/start.js.map +1 -0
  135. package/dist/stores/memory.d.ts +42 -0
  136. package/dist/stores/memory.js +121 -0
  137. package/dist/stores/memory.js.map +1 -0
  138. package/dist/stores/types.d.ts +74 -0
  139. package/dist/stores/types.js +11 -0
  140. package/dist/stores/types.js.map +1 -0
  141. package/dist/telemetry/mcp-client.d.ts +22 -0
  142. package/dist/telemetry/mcp-client.js +140 -0
  143. package/dist/telemetry/mcp-client.js.map +1 -0
  144. package/dist/telemetry/metrics.d.ts +41 -0
  145. package/dist/telemetry/metrics.js +103 -0
  146. package/dist/telemetry/metrics.js.map +1 -0
  147. package/dist/telemetry/runtime.d.ts +9 -0
  148. package/dist/telemetry/runtime.js +118 -0
  149. package/dist/telemetry/runtime.js.map +1 -0
  150. package/dist/transports/mcp/admin-tools.d.ts +56 -0
  151. package/dist/transports/mcp/admin-tools.js +252 -0
  152. package/dist/transports/mcp/admin-tools.js.map +1 -0
  153. package/dist/transports/mcp/app-status-html.d.ts +11 -0
  154. package/dist/transports/mcp/app-status-html.js +899 -0
  155. package/dist/transports/mcp/app-status-html.js.map +1 -0
  156. package/dist/transports/mcp/client-presentation.d.ts +16 -0
  157. package/dist/transports/mcp/client-presentation.js +13 -0
  158. package/dist/transports/mcp/client-presentation.js.map +1 -0
  159. package/dist/transports/mcp/cowork-editor-url.d.ts +6 -0
  160. package/dist/transports/mcp/cowork-editor-url.js +10 -0
  161. package/dist/transports/mcp/cowork-editor-url.js.map +1 -0
  162. package/dist/transports/mcp/decision-card-html.d.ts +26 -0
  163. package/dist/transports/mcp/decision-card-html.js +876 -0
  164. package/dist/transports/mcp/decision-card-html.js.map +1 -0
  165. package/dist/transports/mcp/decision-elicitation.d.ts +116 -0
  166. package/dist/transports/mcp/decision-elicitation.js +292 -0
  167. package/dist/transports/mcp/decision-elicitation.js.map +1 -0
  168. package/dist/transports/mcp/dispatch-probe.d.ts +24 -0
  169. package/dist/transports/mcp/dispatch-probe.js +48 -0
  170. package/dist/transports/mcp/dispatch-probe.js.map +1 -0
  171. package/dist/transports/mcp/editor-document-probe.d.ts +4 -0
  172. package/dist/transports/mcp/editor-document-probe.js +35 -0
  173. package/dist/transports/mcp/editor-document-probe.js.map +1 -0
  174. package/dist/transports/mcp/editor-integration-setup-url.d.ts +8 -0
  175. package/dist/transports/mcp/editor-integration-setup-url.js +23 -0
  176. package/dist/transports/mcp/editor-integration-setup-url.js.map +1 -0
  177. package/dist/transports/mcp/format-tool-content.d.ts +20 -0
  178. package/dist/transports/mcp/format-tool-content.js +89 -0
  179. package/dist/transports/mcp/format-tool-content.js.map +1 -0
  180. package/dist/transports/mcp/instructions/index.d.ts +23 -0
  181. package/dist/transports/mcp/instructions/index.js +81 -0
  182. package/dist/transports/mcp/instructions/index.js.map +1 -0
  183. package/dist/transports/mcp/instructions/result.d.ts +18 -0
  184. package/dist/transports/mcp/instructions/result.js +58 -0
  185. package/dist/transports/mcp/instructions/result.js.map +1 -0
  186. package/dist/transports/mcp/instructions/tools/ask-user.d.ts +2 -0
  187. package/dist/transports/mcp/instructions/tools/ask-user.js +17 -0
  188. package/dist/transports/mcp/instructions/tools/ask-user.js.map +1 -0
  189. package/dist/transports/mcp/instructions/tools/check-app-progress.d.ts +3 -0
  190. package/dist/transports/mcp/instructions/tools/check-app-progress.js +75 -0
  191. package/dist/transports/mcp/instructions/tools/check-app-progress.js.map +1 -0
  192. package/dist/transports/mcp/instructions/tools/check-publish-progress.d.ts +3 -0
  193. package/dist/transports/mcp/instructions/tools/check-publish-progress.js +23 -0
  194. package/dist/transports/mcp/instructions/tools/check-publish-progress.js.map +1 -0
  195. package/dist/transports/mcp/instructions/tools/copy.d.ts +14 -0
  196. package/dist/transports/mcp/instructions/tools/copy.js +35 -0
  197. package/dist/transports/mcp/instructions/tools/copy.js.map +1 -0
  198. package/dist/transports/mcp/instructions/tools/create-integration.d.ts +4 -0
  199. package/dist/transports/mcp/instructions/tools/create-integration.js +41 -0
  200. package/dist/transports/mcp/instructions/tools/create-integration.js.map +1 -0
  201. package/dist/transports/mcp/instructions/tools/edit-app.d.ts +2 -0
  202. package/dist/transports/mcp/instructions/tools/edit-app.js +18 -0
  203. package/dist/transports/mcp/instructions/tools/edit-app.js.map +1 -0
  204. package/dist/transports/mcp/instructions/tools/get-app.d.ts +3 -0
  205. package/dist/transports/mcp/instructions/tools/get-app.js +47 -0
  206. package/dist/transports/mcp/instructions/tools/get-app.js.map +1 -0
  207. package/dist/transports/mcp/instructions/tools/get-integration-metadata.d.ts +2 -0
  208. package/dist/transports/mcp/instructions/tools/get-integration-metadata.js +13 -0
  209. package/dist/transports/mcp/instructions/tools/get-integration-metadata.js.map +1 -0
  210. package/dist/transports/mcp/instructions/tools/index.d.ts +7 -0
  211. package/dist/transports/mcp/instructions/tools/index.js +26 -0
  212. package/dist/transports/mcp/instructions/tools/index.js.map +1 -0
  213. package/dist/transports/mcp/instructions/tools/preview-app.d.ts +3 -0
  214. package/dist/transports/mcp/instructions/tools/preview-app.js +14 -0
  215. package/dist/transports/mcp/instructions/tools/preview-app.js.map +1 -0
  216. package/dist/transports/mcp/instructions/tools/publish-app.d.ts +3 -0
  217. package/dist/transports/mcp/instructions/tools/publish-app.js +23 -0
  218. package/dist/transports/mcp/instructions/tools/publish-app.js.map +1 -0
  219. package/dist/transports/mcp/instructions/tools/start-app.d.ts +2 -0
  220. package/dist/transports/mcp/instructions/tools/start-app.js +22 -0
  221. package/dist/transports/mcp/instructions/tools/start-app.js.map +1 -0
  222. package/dist/transports/mcp/instructions/tools/upload-artifact.d.ts +2 -0
  223. package/dist/transports/mcp/instructions/tools/upload-artifact.js +13 -0
  224. package/dist/transports/mcp/instructions/tools/upload-artifact.js.map +1 -0
  225. package/dist/transports/mcp/mcp-app-brand-css.d.ts +1 -0
  226. package/dist/transports/mcp/mcp-app-brand-css.js +180 -0
  227. package/dist/transports/mcp/mcp-app-brand-css.js.map +1 -0
  228. package/dist/transports/mcp/mount.d.ts +22 -0
  229. package/dist/transports/mcp/mount.js +1040 -0
  230. package/dist/transports/mcp/mount.js.map +1 -0
  231. package/dist/transports/mcp/native-browser-presence.d.ts +45 -0
  232. package/dist/transports/mcp/native-browser-presence.js +158 -0
  233. package/dist/transports/mcp/native-browser-presence.js.map +1 -0
  234. package/dist/transports/mcp/plan-approval.d.ts +38 -0
  235. package/dist/transports/mcp/plan-approval.js +175 -0
  236. package/dist/transports/mcp/plan-approval.js.map +1 -0
  237. package/dist/transports/mcp/progress-notifier.d.ts +39 -0
  238. package/dist/transports/mcp/progress-notifier.js +52 -0
  239. package/dist/transports/mcp/progress-notifier.js.map +1 -0
  240. package/dist/transports/mcp/session-directory.d.ts +7 -0
  241. package/dist/transports/mcp/session-directory.js +18 -0
  242. package/dist/transports/mcp/session-directory.js.map +1 -0
  243. package/dist/transports/mcp/tool-names.d.ts +2 -0
  244. package/dist/transports/mcp/tool-names.js +2 -0
  245. package/dist/transports/mcp/tool-names.js.map +1 -0
  246. package/package.json +78 -0
  247. package/skills/superblocks-build/SKILL.md +59 -0
  248. package/skills/superblocks-import/SKILL.md +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-client-methods.js","sourceRoot":"","sources":["../../src/sabs/editor-client-methods.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import type { ServerMethods } from "@superblocksteam/library-shared/types";
2
+ type EditorMethods = ServerMethods["editor"];
3
+ /** The payload one `editor.*` method takes, as the protocol declares it. */
4
+ type ParamsOf<M extends keyof EditorMethods> = Parameters<EditorMethods[M]>[0];
5
+ /** What one `editor.*` method answers with, as the protocol declares it. */
6
+ type ResultOf<M extends keyof EditorMethods> = Awaited<ReturnType<EditorMethods[M]>>;
7
+ /**
8
+ * The field the session reads to decide which turn a call belongs to, sent on
9
+ * every call that makes up a turn's lifetime so a turn keeps reporting into
10
+ * this caller across a reattach.
11
+ *
12
+ * Spelled out here rather than widened away with an index signature: it is a
13
+ * gateway extension the shared protocol does not declare, and naming it is
14
+ * what keeps the declared fields checked alongside it.
15
+ */
16
+ type WithTurnCorrelator<Params> = (Params extends void ? Record<never, never> : Params) & {
17
+ headlessTurnId?: string;
18
+ };
19
+ /**
20
+ * The part of an ISocket client this needs: the untyped escape hatch that
21
+ * carries a per-call `authorization` header.
22
+ *
23
+ * The typed `call.editor.*` proxy cannot take one, and the gateway has to send
24
+ * the edit-scoped token on every request rather than once at construction, so
25
+ * the calls go through here and the types are put back on top.
26
+ */
27
+ export type TracingSocketClient = {
28
+ requestWithTracing<Params, Result>(method: string, params: Params, tracingHeaders: {
29
+ traceparent?: string;
30
+ tracestate?: string;
31
+ }, authorization?: string): Promise<Result>;
32
+ };
33
+ /**
34
+ * The `editor.*` calls the gateway makes, checked against the protocol.
35
+ *
36
+ * Every one of these used to be a bare string constant handed to
37
+ * `requestWithTracing<Record<string, unknown>, T>`, so nothing checked the
38
+ * payload built at the call site - a renamed or mistyped field reached a
39
+ * sandbox and failed there, if it failed loudly at all. Naming the methods
40
+ * once, against `ServerMethods`, is what moves that to compile time.
41
+ *
42
+ * Deliberately only the five methods a headless peer sends. The browser editor
43
+ * calls dozens more; a facade that mirrored all of them would be a second copy
44
+ * of the protocol to keep in step.
45
+ */
46
+ export declare class EditorSocket {
47
+ private readonly client;
48
+ private readonly authorization;
49
+ constructor(client: TracingSocketClient, authorization: () => string | undefined);
50
+ /**
51
+ * Start a Clark turn. This is the same call the editor makes when a user
52
+ * submits a prompt in the browser: the sandbox exposes no HTTP route that
53
+ * starts a generation.
54
+ */
55
+ aiGenerateWithQueue(params: WithTurnCorrelator<ParamsOf<"aiGenerateWithQueue">>): Promise<ResultOf<"aiGenerateWithQueue"> & {
56
+ headlessTurn?: {
57
+ turnId?: string;
58
+ };
59
+ }>;
60
+ /**
61
+ * Commit what Clark wrote as a draft and create the checkpoint. The browser
62
+ * editor fires this automatically once files are in sync; a headless peer
63
+ * that skips it leaves the app uncommitted, so the build only finishes when
64
+ * a human finally opens the edit URL.
65
+ */
66
+ aiAcceptDraft(params: WithTurnCorrelator<ParamsOf<"aiAcceptDraft">>): Promise<ResultOf<"aiAcceptDraft">>;
67
+ aiChatGetMessages(params: WithTurnCorrelator<ParamsOf<"aiChatGetMessages">>): Promise<ResultOf<"aiChatGetMessages">>;
68
+ aiRespondToToolPermission(params: WithTurnCorrelator<ParamsOf<"aiRespondToToolPermission">>): Promise<ResultOf<"aiRespondToToolPermission">>;
69
+ /**
70
+ * The cheapest authorized call there is, used as the gateway's liveness beat.
71
+ *
72
+ * Deliberately sent without `isUserActive`: the sandbox counts that as a
73
+ * person at a keyboard, and a headless peer is not one.
74
+ */
75
+ ping(params: {
76
+ headlessTurnId?: string;
77
+ }): Promise<ResultOf<"ping">>;
78
+ /**
79
+ * The name is checked against the protocol; the payload is checked by the
80
+ * public method above that built it.
81
+ */
82
+ private send;
83
+ }
84
+ export {};
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The `editor.*` calls the gateway makes, checked against the protocol.
3
+ *
4
+ * Every one of these used to be a bare string constant handed to
5
+ * `requestWithTracing<Record<string, unknown>, T>`, so nothing checked the
6
+ * payload built at the call site - a renamed or mistyped field reached a
7
+ * sandbox and failed there, if it failed loudly at all. Naming the methods
8
+ * once, against `ServerMethods`, is what moves that to compile time.
9
+ *
10
+ * Deliberately only the five methods a headless peer sends. The browser editor
11
+ * calls dozens more; a facade that mirrored all of them would be a second copy
12
+ * of the protocol to keep in step.
13
+ */
14
+ export class EditorSocket {
15
+ client;
16
+ authorization;
17
+ constructor(client, authorization) {
18
+ this.client = client;
19
+ this.authorization = authorization;
20
+ }
21
+ /**
22
+ * Start a Clark turn. This is the same call the editor makes when a user
23
+ * submits a prompt in the browser: the sandbox exposes no HTTP route that
24
+ * starts a generation.
25
+ */
26
+ async aiGenerateWithQueue(params) {
27
+ return await this.send("aiGenerateWithQueue", params);
28
+ }
29
+ /**
30
+ * Commit what Clark wrote as a draft and create the checkpoint. The browser
31
+ * editor fires this automatically once files are in sync; a headless peer
32
+ * that skips it leaves the app uncommitted, so the build only finishes when
33
+ * a human finally opens the edit URL.
34
+ */
35
+ async aiAcceptDraft(params) {
36
+ return await this.send("aiAcceptDraft", params);
37
+ }
38
+ async aiChatGetMessages(params) {
39
+ return await this.send("aiChatGetMessages", params);
40
+ }
41
+ async aiRespondToToolPermission(params) {
42
+ return await this.send("aiRespondToToolPermission", params);
43
+ }
44
+ /**
45
+ * The cheapest authorized call there is, used as the gateway's liveness beat.
46
+ *
47
+ * Deliberately sent without `isUserActive`: the sandbox counts that as a
48
+ * person at a keyboard, and a headless peer is not one.
49
+ */
50
+ async ping(params) {
51
+ // The protocol declares `void | { isUserActive: boolean }`. A headless peer
52
+ // sends neither - only the turn correlator - because `isUserActive` tells
53
+ // the sandbox a person is at a keyboard.
54
+ return await this.send("ping", params);
55
+ }
56
+ /**
57
+ * The name is checked against the protocol; the payload is checked by the
58
+ * public method above that built it.
59
+ */
60
+ async send(method, params) {
61
+ return await this.client.requestWithTracing(`editor.${String(method)}`, params, {}, this.authorization());
62
+ }
63
+ }
64
+ //# sourceMappingURL=editor-socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-socket.js","sourceRoot":"","sources":["../../src/sabs/editor-socket.ts"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,YAAY;IAEJ;IACA;IAFnB,YACmB,MAA2B,EAC3B,aAAuC;QADvC,WAAM,GAAN,MAAM,CAAqB;QAC3B,kBAAa,GAAb,aAAa,CAA0B;IACvD,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CACvB,MAA2D;QAI3D,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,aAAa,CACjB,MAAqD;QAErD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,MAAyD;QAEzD,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,MAAiE;QAEjE,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,MAAmC;QAC5C,4EAA4E;QAC5E,0EAA0E;QAC1E,yCAAyC;QACzC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,IAAI,CAChB,MAAS,EACT,MAAc;QAEd,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CACzC,UAAU,MAAM,CAAC,MAAM,CAAC,EAAE,EAC1B,MAAM,EACN,EAAE,EACF,IAAI,CAAC,aAAa,EAAE,CACrB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { RecentToolRun } from "../capabilities/types.js";
2
+ export declare const RECENT_TOOL_RUN_LIMIT = 8;
3
+ export declare const RECENT_TOOL_RUN_SUMMARY_MAX = 500;
4
+ export type ToolRunRecordInput = {
5
+ kind: RecentToolRun["kind"];
6
+ name: string;
7
+ success: boolean;
8
+ detail?: unknown;
9
+ };
10
+ /**
11
+ * Builds a bounded recent-run entry suitable for MCP tool results.
12
+ */
13
+ export declare function buildRecentToolRun(input: ToolRunRecordInput): RecentToolRun;
14
+ export declare function appendRecentToolRun(runs: RecentToolRun[], entry: RecentToolRun, limit?: number): RecentToolRun[];
@@ -0,0 +1,61 @@
1
+ import { sanitizeAgentFacingText } from "./agent-facing-text.js";
2
+ export const RECENT_TOOL_RUN_LIMIT = 8;
3
+ export const RECENT_TOOL_RUN_SUMMARY_MAX = 500;
4
+ /**
5
+ * Builds a bounded recent-run entry suitable for MCP tool results.
6
+ */
7
+ export function buildRecentToolRun(input) {
8
+ return {
9
+ at: new Date().toISOString(),
10
+ kind: input.kind,
11
+ name: input.name,
12
+ success: input.success,
13
+ summary: summarizeToolRunDetail(input.detail, input.success),
14
+ };
15
+ }
16
+ export function appendRecentToolRun(runs, entry, limit = RECENT_TOOL_RUN_LIMIT) {
17
+ const next = [...runs, entry];
18
+ return next.length > limit ? next.slice(next.length - limit) : next;
19
+ }
20
+ function summarizeToolRunDetail(detail, success) {
21
+ if (detail == null) {
22
+ return success ? "ok" : "failed";
23
+ }
24
+ if (typeof detail === "string") {
25
+ return truncate(detail);
26
+ }
27
+ if (typeof detail === "object") {
28
+ const record = detail;
29
+ if (typeof record.error === "string") {
30
+ return truncate(record.error);
31
+ }
32
+ if (record.error &&
33
+ typeof record.error === "object" &&
34
+ typeof record.error.message === "string") {
35
+ return truncate(record.error.message);
36
+ }
37
+ if ("output" in record) {
38
+ return truncate(stringifyCompact(record.output));
39
+ }
40
+ if ("response" in record && typeof record.response === "string") {
41
+ return truncate(record.response);
42
+ }
43
+ }
44
+ return truncate(stringifyCompact(detail));
45
+ }
46
+ function stringifyCompact(value) {
47
+ try {
48
+ return JSON.stringify(value);
49
+ }
50
+ catch {
51
+ return String(value);
52
+ }
53
+ }
54
+ function truncate(text, max = RECENT_TOOL_RUN_SUMMARY_MAX) {
55
+ const safe = sanitizeAgentFacingText(text);
56
+ if (safe.length <= max) {
57
+ return safe;
58
+ }
59
+ return `${safe.slice(0, max - 1)}…`;
60
+ }
61
+ //# sourceMappingURL=recent-tool-runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recent-tool-runs.js","sourceRoot":"","sources":["../../src/sabs/recent-tool-runs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,392 @@
1
+ import type { BrowserContext } from "@superblocksteam/library-shared/types";
2
+ import type { LiveEditStatus } from "../server/client.js";
3
+ import type { AppState } from "./app-state.js";
4
+ export declare class PromptNotSentError extends Error {
5
+ readonly recoveryAction: "start_new_app" | undefined;
6
+ readonly retryable: false | undefined;
7
+ constructor(message: string, cause?: unknown, options?: {
8
+ recoveryAction?: "start_new_app";
9
+ retryable?: false;
10
+ });
11
+ }
12
+ export type GenerationStatus = "cancelled" | "completed"
13
+ /**
14
+ * Clark took the prompt but pushes nothing to this peer, so the gateway
15
+ * cannot see the job it started. The job itself keeps running.
16
+ */
17
+ | "detached"
18
+ /**
19
+ * The turn never ran to an outcome because the live-edit session did not: it
20
+ * went away mid-flight (the sandbox was killed, lost its lock, or the socket
21
+ * died), or it never opened at all. Distinct from `timeout`: the turn did not
22
+ * run out of time, the thing that was to run it was not there. Mid-turn deaths
23
+ * are retryable. Failed opens can suppress that default when reconnecting
24
+ * cannot recover the session; only a just-created app is safe to recreate.
25
+ */
26
+ | "live_edit_terminated"
27
+ /** The job ended without writing a file or leaving a draft. */
28
+ | "no_changes" | "needs_decision" | "timeout";
29
+ export type ViewStatus = "ready" | "unknown";
30
+ export type AiMode = "BUILD" | "PLAN";
31
+ export type PlanAction = "approve" | "refine";
32
+ export type RetryAction = "retry_build";
33
+ export type RecoveryAction = "start_new_app";
34
+ export type CheckpointFailure = {
35
+ category: "authentication" | "conflict" | "downstream" | "timeout";
36
+ code?: number;
37
+ message: string;
38
+ status?: number;
39
+ };
40
+ export type CheckpointWarning = {
41
+ code: "draft_state_cleanup_failed";
42
+ message: string;
43
+ };
44
+ export type TurnDecision = {
45
+ integrations: Array<{
46
+ configuration: Record<string, unknown>;
47
+ /** The plugin's configuration form, so the host needs no lookup. */
48
+ configurationSchema?: Record<string, unknown>;
49
+ name?: string;
50
+ pluginId: string;
51
+ }>;
52
+ kind: "missing_integrations";
53
+ } | {
54
+ kind: "multi_choice";
55
+ messageId?: string;
56
+ options: string[];
57
+ question: string;
58
+ } | {
59
+ kind: "plan";
60
+ messageId?: string;
61
+ plan: string;
62
+ title?: string;
63
+ };
64
+ /**
65
+ * A turn read without consuming it: either still running, or how it ended.
66
+ * See {@link SessionPeer.turnState}.
67
+ */
68
+ export type TurnState = {
69
+ branch?: string;
70
+ checkpointCommitId?: string;
71
+ checkpointFailure?: CheckpointFailure;
72
+ checkpointWarning?: CheckpointWarning;
73
+ generationStatus: GenerationStatus;
74
+ phase: "finished";
75
+ recoveryAction?: RecoveryAction;
76
+ reply?: string;
77
+ retryAction?: RetryAction;
78
+ retryable?: false;
79
+ } | {
80
+ branch?: string;
81
+ phase: "running";
82
+ };
83
+ export type FinishedTurn = {
84
+ /**
85
+ * Commit the gateway created by accepting Clark's draft. Absent when
86
+ * Clark left nothing to commit, or when the checkpoint did not land.
87
+ */
88
+ checkpointCommitId?: string;
89
+ checkpointFailure?: CheckpointFailure;
90
+ checkpointWarning?: CheckpointWarning;
91
+ reply: string;
92
+ /** Present when generationStatus is needs_decision. */
93
+ decision?: TurnDecision;
94
+ generationStatus: GenerationStatus;
95
+ /** Mid-turn testApi / testIntegration outcomes collected on this turn. */
96
+ recentRuns?: Array<{
97
+ at: string;
98
+ kind: "test_api" | "test_integration";
99
+ name: string;
100
+ success: boolean;
101
+ summary: string;
102
+ }>;
103
+ recoveryAction?: RecoveryAction;
104
+ retryAction?: RetryAction;
105
+ retryable?: false;
106
+ viewStatus: ViewStatus;
107
+ };
108
+ /**
109
+ * Which live edit the prompt actually ran on.
110
+ *
111
+ * The prompt names one, but a connect that found that host no longer serving
112
+ * the session follows it to where it moved, and the events for this turn
113
+ * arrive under the id it moved to. Absent when nothing moved, or when the peer
114
+ * never learned an id for where it landed.
115
+ */
116
+ type RanOnLiveEdit = {
117
+ liveEditId?: string;
118
+ };
119
+ export type ForwardPromptResult = (FinishedTurn & RanOnLiveEdit & {
120
+ status: "accepted";
121
+ }) | {
122
+ message?: string;
123
+ status: "auth_required";
124
+ };
125
+ export type StartPromptResult = (RanOnLiveEdit & {
126
+ /** Clark activity already collected between the prompt and this return. */
127
+ activity: string[];
128
+ status: "accepted";
129
+ }) | {
130
+ message?: string;
131
+ status: "auth_required";
132
+ };
133
+ /**
134
+ * One poll of a turn that is running on the held session.
135
+ *
136
+ * `activity` carries only the lines this poll is the first to see, so a caller
137
+ * that relays them verbatim never repeats itself.
138
+ */
139
+ export type TurnUpdate = {
140
+ activity: string[];
141
+ branch?: string;
142
+ /** How long the turn has been running, so a quiet poll still has news. */
143
+ elapsedMs: number;
144
+ /** Mid-turn testApi / testIntegration outcomes collected so far. */
145
+ recentRuns?: FinishedTurn["recentRuns"];
146
+ /** Whether this turn has produced content the editor can render. */
147
+ viewStatus?: ViewStatus;
148
+ } & ({
149
+ status: "running";
150
+ } | ({
151
+ status: "finished";
152
+ } & FinishedTurn)
153
+ /** No turn is in flight for this application (or the gateway restarted). */
154
+ | {
155
+ status: "unknown";
156
+ });
157
+ /**
158
+ * Uploaded attachment references Clark can download via listAttachments /
159
+ * downloadAttachments. Shape matches library-shared UploadedAttachment.
160
+ */
161
+ export type PromptAttachment = {
162
+ applicationId?: string;
163
+ fileName?: string;
164
+ mediaType: string;
165
+ scopeType?: "app" | "org";
166
+ signedUrl?: string;
167
+ signedUrlExpiresAt?: string;
168
+ storageKey?: string;
169
+ type: "uploaded";
170
+ url: string;
171
+ };
172
+ export type PromptInput = {
173
+ applicationId: string;
174
+ /** Live-edit branch used for edit-mode SDK API execution. */
175
+ branch?: string;
176
+ /**
177
+ * Personal API key used for mid-turn server calls (integrations list) while
178
+ * the session socket is held.
179
+ */
180
+ apiKey?: string;
181
+ /** Archive (and other) attachments for Clark's migration / file tools. */
182
+ attachments?: PromptAttachment[];
183
+ /** Identifies the exact retry so older completions cannot clear newer state. */
184
+ idempotencyKey?: string;
185
+ /** Orders this attempt from before its live-edit session is opened. */
186
+ revision?: number;
187
+ /** Reject this start unless its exact acknowledged-start marker is current. */
188
+ pendingStartRequired?: boolean;
189
+ /** Opaque identity of the acknowledged background invocation. */
190
+ pendingStartToken?: number;
191
+ /**
192
+ * The live edit Clark is running on, as SABS names it on the events it
193
+ * relays. Without it the turn cannot be matched to its pushes, so it only
194
+ * hears Clark over the held socket.
195
+ */
196
+ liveEditId?: string;
197
+ liveEditUrl: string;
198
+ /** Reads the exact live edit from the control plane without ensuring one. */
199
+ getLiveEditStatus?: (input: {
200
+ liveEditId: string;
201
+ signal: AbortSignal;
202
+ }) => Promise<LiveEditStatus>;
203
+ /**
204
+ * Re-opens the live-edit session, for the case where {@link liveEditUrl} no
205
+ * longer serves it.
206
+ *
207
+ * `liveEditUrl` is resolved once, before the prompt, and a session can move
208
+ * hosts between then and the socket being opened - or have been resolved
209
+ * from a binding that was already stale. Without this the prompt is stuck
210
+ * with the host it was given, and the only way to reach the new one is for
211
+ * the caller to fail and try again. Absent leaves that behavior unchanged.
212
+ */
213
+ resolveLiveEdit?: () => Promise<{
214
+ liveEditId?: string;
215
+ liveEditUrl: string;
216
+ }>;
217
+ /**
218
+ * Optional refresh of the live-edit session (e.g. connectLiveEdit) while
219
+ * the session socket is held, so local AppManager idle reaping does not
220
+ * kill the sandbox under a quiet Claude turn.
221
+ */
222
+ keepalive?: () => Promise<void>;
223
+ /**
224
+ * Clark generation mode. Defaults to PLAN so headless callers match the
225
+ * editor after feature flags load.
226
+ */
227
+ mode?: AiMode;
228
+ /**
229
+ * Coarse progress while waiting for Clark's turn to finish. Best-effort;
230
+ * ignored when the transport has no progress channel. Progress is buffered
231
+ * on the turn regardless, so a caller that polls sees it either way.
232
+ */
233
+ onProgress?: (message: string) => void;
234
+ /**
235
+ * Organization the apiKey belongs to — required for Clark's integration
236
+ * discovery against the Superblocks API.
237
+ */
238
+ organizationId?: string;
239
+ /**
240
+ * Prior plan context for approve / refine turns (mirrors the editor's
241
+ * planContext on aiGenerate).
242
+ */
243
+ planContext?: {
244
+ approved?: boolean;
245
+ plan?: string;
246
+ title?: string;
247
+ };
248
+ prompt: string;
249
+ /**
250
+ * Metadata for plan_response turns after the user approves or refines.
251
+ */
252
+ responseMetadata?: {
253
+ approved?: boolean;
254
+ /**
255
+ * Required, because the ai-service resolves the plan card this answers by
256
+ * it. Built conditionally, a plan Clark streamed without a message id used
257
+ * to send a `plan_response` that named nothing to respond to.
258
+ */
259
+ responseToMessageId: string;
260
+ type: "plan_response";
261
+ };
262
+ /**
263
+ * Abort the turn wait (e.g. MCP client cancelled the tool call).
264
+ */
265
+ signal?: AbortSignal;
266
+ /**
267
+ * The edit-scoped JWT the session verifies. Deliberately not connect's
268
+ * `pitcherToken`, which the local sandbox path fills with a placeholder.
269
+ */
270
+ sessionToken: string;
271
+ /** Identifies the caller to the live-edit session that serves the prompt. */
272
+ userId?: string;
273
+ };
274
+ /**
275
+ * Credentials to hold a live-edit socket without starting a Clark turn.
276
+ * Used by get_app after a Gateway restart left the in-memory hold empty.
277
+ */
278
+ export type HoldLiveEditInput = {
279
+ applicationId: string;
280
+ apiKey?: string;
281
+ branch?: string;
282
+ getLiveEditStatus?: PromptInput["getLiveEditStatus"];
283
+ keepalive?: () => Promise<void>;
284
+ liveEditId?: string;
285
+ liveEditUrl: string;
286
+ organizationId?: string;
287
+ sessionToken: string;
288
+ userId: string;
289
+ };
290
+ export type SessionPeer = {
291
+ /**
292
+ * Wait for news about a turn already running on the held session: new Clark
293
+ * activity, the finished turn, or `waitMs` elapsing with neither.
294
+ */
295
+ awaitTurn(input: {
296
+ applicationId: string;
297
+ branch?: string;
298
+ organizationId?: string;
299
+ signal?: AbortSignal;
300
+ userId?: string;
301
+ /** Minimum time a progress poll waits to collect activity for before it answers.
302
+ * If the turn is finished (ex: needs a user decision), it will answer immediately. */
303
+ floorMs?: number;
304
+ /** Maximum time a progress poll waits to collect activity for before it answers.
305
+ * This is the ceiling on the poll.
306
+ * If we reach the ceiling, we will answer with what we have (can be empty if no activity). */
307
+ waitMs: number;
308
+ }): Promise<TurnUpdate>;
309
+ /**
310
+ * Drop every held session socket. Used on gateway shutdown so sandboxes are
311
+ * not left held open by a peer that no longer exists.
312
+ */
313
+ closeAll(): void;
314
+ /** Send a prompt and wait for Clark's whole turn. */
315
+ forwardPrompt(input: PromptInput): Promise<ForwardPromptResult>;
316
+ /**
317
+ * Open or reuse a live-edit socket for screenshotting without starting a
318
+ * Clark turn. Used by get_app when the in-memory hold is empty (MCP
319
+ * respawn) but the sandbox is still running.
320
+ */
321
+ holdLiveEdit(input: HoldLiveEditInput): Promise<void>;
322
+ /** The live editor session currently held for this application. */
323
+ heldContext(applicationId: string): {
324
+ branch?: string;
325
+ } | undefined;
326
+ /**
327
+ * Live-library bootstrap for a held session, used to screenshot pitcherURL
328
+ * without opening the edit URL. Undefined when no session is held for the
329
+ * requested branch or the sandbox URL cannot be addressed.
330
+ */
331
+ libraryBrowserContext(applicationId: string, requestedBranch?: string): BrowserContext | undefined;
332
+ /** Record work acknowledged before its Superblocks turn exists. */
333
+ recordPendingStart(input: {
334
+ applicationId: string;
335
+ branch?: string;
336
+ idempotencyKey?: string;
337
+ organizationId: string;
338
+ retryAction?: RetryAction;
339
+ userId: string;
340
+ }): number;
341
+ /** Drop one exact acknowledged-start marker. */
342
+ clearPendingStart(input: {
343
+ applicationId: string;
344
+ branch?: string;
345
+ idempotencyKey?: string;
346
+ organizationId: string;
347
+ pendingStartToken?: number;
348
+ userId: string;
349
+ }): void;
350
+ recordFailedStart(input: {
351
+ applicationId: string;
352
+ branch?: string;
353
+ decision?: TurnDecision;
354
+ generationStatus?: "detached" | "live_edit_terminated" | "needs_decision";
355
+ idempotencyKey?: string;
356
+ organizationId: string;
357
+ pendingStartRequired?: boolean;
358
+ pendingStartToken?: number;
359
+ reason: string;
360
+ recoveryAction?: RecoveryAction;
361
+ revision?: number;
362
+ retryAction?: RetryAction;
363
+ retryable?: false;
364
+ userId: string;
365
+ }): void;
366
+ /**
367
+ * Close the held session socket for an application (idle timeout, publish,
368
+ * or an explicit release).
369
+ */
370
+ release(applicationId: string): void;
371
+ /**
372
+ * Send a prompt and return as soon as Clark accepts it, leaving the turn
373
+ * running on the held session for {@link SessionPeer.awaitTurn} to follow.
374
+ */
375
+ startPrompt(input: PromptInput): Promise<StartPromptResult>;
376
+ /** The per-application facts this peer writes as turns settle. */
377
+ state(): AppState;
378
+ /**
379
+ * Where the turn for this application stands, without consuming anything.
380
+ * Undefined when this peer has no turn for the application.
381
+ *
382
+ * Deliberately not {@link SessionPeer.awaitTurn} with a zero wait: that
383
+ * drains the activity a `check_app_progress` poll is owed.
384
+ */
385
+ turnState(input: {
386
+ applicationId: string;
387
+ branch?: string;
388
+ organizationId: string;
389
+ userId: string;
390
+ }): TurnState | undefined;
391
+ };
392
+ export {};