@superblocksteam/gateway 2.0.155-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 (183) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +170 -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/import-prompt.d.ts +11 -0
  7. package/dist/capabilities/import-prompt.js +96 -0
  8. package/dist/capabilities/import-prompt.js.map +1 -0
  9. package/dist/capabilities/lifecycle.d.ts +73 -0
  10. package/dist/capabilities/lifecycle.js +2531 -0
  11. package/dist/capabilities/lifecycle.js.map +1 -0
  12. package/dist/capabilities/persisted-progress.d.ts +46 -0
  13. package/dist/capabilities/persisted-progress.js +246 -0
  14. package/dist/capabilities/persisted-progress.js.map +1 -0
  15. package/dist/capabilities/types.d.ts +446 -0
  16. package/dist/capabilities/types.js +47 -0
  17. package/dist/capabilities/types.js.map +1 -0
  18. package/dist/capture/browser-contract.d.ts +36 -0
  19. package/dist/capture/browser-contract.js +24 -0
  20. package/dist/capture/browser-contract.js.map +1 -0
  21. package/dist/capture/browser-instructions.d.ts +9 -0
  22. package/dist/capture/browser-instructions.js +17 -0
  23. package/dist/capture/browser-instructions.js.map +1 -0
  24. package/dist/capture/capture-library-probe.d.ts +55 -0
  25. package/dist/capture/capture-library-probe.js +177 -0
  26. package/dist/capture/capture-library-probe.js.map +1 -0
  27. package/dist/capture/capture-library.d.ts +52 -0
  28. package/dist/capture/capture-library.js +249 -0
  29. package/dist/capture/capture-library.js.map +1 -0
  30. package/dist/capture/classify-library-paint.d.ts +21 -0
  31. package/dist/capture/classify-library-paint.js +13 -0
  32. package/dist/capture/classify-library-paint.js.map +1 -0
  33. package/dist/capture/host-mcp-scan.d.ts +16 -0
  34. package/dist/capture/host-mcp-scan.js +64 -0
  35. package/dist/capture/host-mcp-scan.js.map +1 -0
  36. package/dist/capture/library-parent-script.d.ts +34 -0
  37. package/dist/capture/library-parent-script.js +82 -0
  38. package/dist/capture/library-parent-script.js.map +1 -0
  39. package/dist/capture/mode.d.ts +22 -0
  40. package/dist/capture/mode.js +45 -0
  41. package/dist/capture/mode.js.map +1 -0
  42. package/dist/config.d.ts +141 -0
  43. package/dist/config.js +109 -0
  44. package/dist/config.js.map +1 -0
  45. package/dist/debug.d.ts +2 -0
  46. package/dist/debug.js +9 -0
  47. package/dist/debug.js.map +1 -0
  48. package/dist/deps.d.ts +36 -0
  49. package/dist/deps.js +2 -0
  50. package/dist/deps.js.map +1 -0
  51. package/dist/events/cursor.d.ts +43 -0
  52. package/dist/events/cursor.js +78 -0
  53. package/dist/events/cursor.js.map +1 -0
  54. package/dist/events/memory-event-store.d.ts +34 -0
  55. package/dist/events/memory-event-store.js +110 -0
  56. package/dist/events/memory-event-store.js.map +1 -0
  57. package/dist/events/merge.d.ts +23 -0
  58. package/dist/events/merge.js +97 -0
  59. package/dist/events/merge.js.map +1 -0
  60. package/dist/events/normalized-collector.d.ts +62 -0
  61. package/dist/events/normalized-collector.js +156 -0
  62. package/dist/events/normalized-collector.js.map +1 -0
  63. package/dist/events/schema.d.ts +9 -0
  64. package/dist/events/schema.js +93 -0
  65. package/dist/events/schema.js.map +1 -0
  66. package/dist/events/snapshot.d.ts +32 -0
  67. package/dist/events/snapshot.js +57 -0
  68. package/dist/events/snapshot.js.map +1 -0
  69. package/dist/events/stream-key.d.ts +2 -0
  70. package/dist/events/stream-key.js +31 -0
  71. package/dist/events/stream-key.js.map +1 -0
  72. package/dist/events/types.d.ts +179 -0
  73. package/dist/events/types.js +66 -0
  74. package/dist/events/types.js.map +1 -0
  75. package/dist/health/readiness.d.ts +99 -0
  76. package/dist/health/readiness.js +202 -0
  77. package/dist/health/readiness.js.map +1 -0
  78. package/dist/index.d.ts +10 -0
  79. package/dist/index.js +10 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/integrations/filters.d.ts +8 -0
  82. package/dist/integrations/filters.js +40 -0
  83. package/dist/integrations/filters.js.map +1 -0
  84. package/dist/integrations/map.d.ts +26 -0
  85. package/dist/integrations/map.js +43 -0
  86. package/dist/integrations/map.js.map +1 -0
  87. package/dist/integrations/profile-key.d.ts +19 -0
  88. package/dist/integrations/profile-key.js +35 -0
  89. package/dist/integrations/profile-key.js.map +1 -0
  90. package/dist/main.d.ts +2 -0
  91. package/dist/main.js +5 -0
  92. package/dist/main.js.map +1 -0
  93. package/dist/orchestrator/client.d.ts +62 -0
  94. package/dist/orchestrator/client.js +160 -0
  95. package/dist/orchestrator/client.js.map +1 -0
  96. package/dist/playwright/ensure-chromium.d.ts +26 -0
  97. package/dist/playwright/ensure-chromium.js +60 -0
  98. package/dist/playwright/ensure-chromium.js.map +1 -0
  99. package/dist/preview/capture-screenshot.d.ts +52 -0
  100. package/dist/preview/capture-screenshot.js +158 -0
  101. package/dist/preview/capture-screenshot.js.map +1 -0
  102. package/dist/preview/viewer-url.d.ts +82 -0
  103. package/dist/preview/viewer-url.js +128 -0
  104. package/dist/preview/viewer-url.js.map +1 -0
  105. package/dist/process/fault-barrier.d.ts +55 -0
  106. package/dist/process/fault-barrier.js +113 -0
  107. package/dist/process/fault-barrier.js.map +1 -0
  108. package/dist/resume/memory-progress-store.d.ts +39 -0
  109. package/dist/resume/memory-progress-store.js +82 -0
  110. package/dist/resume/memory-progress-store.js.map +1 -0
  111. package/dist/resume/memory-recent-app-store.d.ts +14 -0
  112. package/dist/resume/memory-recent-app-store.js +27 -0
  113. package/dist/resume/memory-recent-app-store.js.map +1 -0
  114. package/dist/resume/memory-turn-store.d.ts +18 -0
  115. package/dist/resume/memory-turn-store.js +73 -0
  116. package/dist/resume/memory-turn-store.js.map +1 -0
  117. package/dist/resume/progress-key.d.ts +21 -0
  118. package/dist/resume/progress-key.js +58 -0
  119. package/dist/resume/progress-key.js.map +1 -0
  120. package/dist/resume/stores.d.ts +14 -0
  121. package/dist/resume/stores.js +18 -0
  122. package/dist/resume/stores.js.map +1 -0
  123. package/dist/resume/types.d.ts +124 -0
  124. package/dist/resume/types.js +13 -0
  125. package/dist/resume/types.js.map +1 -0
  126. package/dist/sabs/agent-facing-text.d.ts +33 -0
  127. package/dist/sabs/agent-facing-text.js +125 -0
  128. package/dist/sabs/agent-facing-text.js.map +1 -0
  129. package/dist/sabs/browser-context.d.ts +53 -0
  130. package/dist/sabs/browser-context.js +91 -0
  131. package/dist/sabs/browser-context.js.map +1 -0
  132. package/dist/sabs/editor-client-methods.d.ts +147 -0
  133. package/dist/sabs/editor-client-methods.js +715 -0
  134. package/dist/sabs/editor-client-methods.js.map +1 -0
  135. package/dist/sabs/recent-tool-runs.d.ts +14 -0
  136. package/dist/sabs/recent-tool-runs.js +61 -0
  137. package/dist/sabs/recent-tool-runs.js.map +1 -0
  138. package/dist/sabs/session-peer.d.ts +351 -0
  139. package/dist/sabs/session-peer.js +2 -0
  140. package/dist/sabs/session-peer.js.map +1 -0
  141. package/dist/sabs/turn-collector.d.ts +152 -0
  142. package/dist/sabs/turn-collector.js +573 -0
  143. package/dist/sabs/turn-collector.js.map +1 -0
  144. package/dist/sabs/websocket-session-peer.d.ts +514 -0
  145. package/dist/sabs/websocket-session-peer.js +2487 -0
  146. package/dist/sabs/websocket-session-peer.js.map +1 -0
  147. package/dist/security/constant-time.d.ts +9 -0
  148. package/dist/security/constant-time.js +13 -0
  149. package/dist/security/constant-time.js.map +1 -0
  150. package/dist/server/client.d.ts +371 -0
  151. package/dist/server/client.js +572 -0
  152. package/dist/server/client.js.map +1 -0
  153. package/dist/server/identity-reads.d.ts +76 -0
  154. package/dist/server/identity-reads.js +209 -0
  155. package/dist/server/identity-reads.js.map +1 -0
  156. package/dist/start.d.ts +14 -0
  157. package/dist/start.js +75 -0
  158. package/dist/start.js.map +1 -0
  159. package/dist/telemetry/metrics.d.ts +32 -0
  160. package/dist/telemetry/metrics.js +57 -0
  161. package/dist/telemetry/metrics.js.map +1 -0
  162. package/dist/transports/mcp/admin-tools.d.ts +47 -0
  163. package/dist/transports/mcp/admin-tools.js +164 -0
  164. package/dist/transports/mcp/admin-tools.js.map +1 -0
  165. package/dist/transports/mcp/app-status-html.d.ts +15 -0
  166. package/dist/transports/mcp/app-status-html.js +563 -0
  167. package/dist/transports/mcp/app-status-html.js.map +1 -0
  168. package/dist/transports/mcp/decision-elicitation.d.ts +74 -0
  169. package/dist/transports/mcp/decision-elicitation.js +233 -0
  170. package/dist/transports/mcp/decision-elicitation.js.map +1 -0
  171. package/dist/transports/mcp/dispatch-probe.d.ts +24 -0
  172. package/dist/transports/mcp/dispatch-probe.js +48 -0
  173. package/dist/transports/mcp/dispatch-probe.js.map +1 -0
  174. package/dist/transports/mcp/format-tool-content.d.ts +25 -0
  175. package/dist/transports/mcp/format-tool-content.js +48 -0
  176. package/dist/transports/mcp/format-tool-content.js.map +1 -0
  177. package/dist/transports/mcp/mount.d.ts +9 -0
  178. package/dist/transports/mcp/mount.js +469 -0
  179. package/dist/transports/mcp/mount.js.map +1 -0
  180. package/dist/transports/mcp/progress-notifier.d.ts +39 -0
  181. package/dist/transports/mcp/progress-notifier.js +52 -0
  182. package/dist/transports/mcp/progress-notifier.js.map +1 -0
  183. package/package.json +72 -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,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,351 @@
1
+ import type { BrowserContext } from "@superblocksteam/library-shared/types";
2
+ export type GenerationStatus = "cancelled" | "completed"
3
+ /**
4
+ * Clark took the prompt but pushes nothing to this peer, so the gateway
5
+ * cannot see the job it started. The job itself keeps running.
6
+ */
7
+ | "detached"
8
+ /**
9
+ * The turn never ran to an outcome because the live-edit session did not: it
10
+ * went away mid-flight (the sandbox was killed, lost its lock, or the socket
11
+ * died), or it never opened at all. Distinct from `timeout`: the turn did not
12
+ * run out of time, the thing that was to run it was not there, and retrying
13
+ * is the right response.
14
+ */
15
+ | "live_edit_terminated"
16
+ /** The job ended without writing a file or leaving a draft. */
17
+ | "no_changes" | "needs_decision" | "timeout";
18
+ export type ViewStatus = "ready" | "unknown";
19
+ export type AiMode = "BUILD" | "PLAN";
20
+ export type PlanAction = "approve" | "refine";
21
+ export type TurnDecision = {
22
+ kind: "multi_choice";
23
+ messageId?: string;
24
+ options: string[];
25
+ question: string;
26
+ } | {
27
+ kind: "plan";
28
+ messageId?: string;
29
+ plan: string;
30
+ title?: string;
31
+ };
32
+ /**
33
+ * A turn read without consuming it: either still running, or how it ended.
34
+ * See {@link SessionPeer.turnState}.
35
+ */
36
+ export type TurnState = {
37
+ checkpointCommitId?: string;
38
+ generationStatus: GenerationStatus;
39
+ phase: "finished";
40
+ } | {
41
+ phase: "running";
42
+ };
43
+ export type FinishedTurn = {
44
+ /**
45
+ * Commit the gateway created by accepting Clark's draft. Absent when
46
+ * Clark left nothing to commit, or when the checkpoint did not land.
47
+ */
48
+ checkpointCommitId?: string;
49
+ reply: string;
50
+ /** Present when generationStatus is needs_decision. */
51
+ decision?: TurnDecision;
52
+ generationStatus: GenerationStatus;
53
+ /** Mid-turn testApi / testIntegration outcomes collected on this turn. */
54
+ recentRuns?: Array<{
55
+ at: string;
56
+ kind: "test_api" | "test_integration";
57
+ name: string;
58
+ success: boolean;
59
+ summary: string;
60
+ }>;
61
+ viewStatus: ViewStatus;
62
+ };
63
+ /**
64
+ * Which live edit the prompt actually ran on.
65
+ *
66
+ * The prompt names one, but a connect that found that host no longer serving
67
+ * the session follows it to where it moved, and the events for this turn
68
+ * arrive under the id it moved to. Absent when nothing moved, or when the peer
69
+ * never learned an id for where it landed.
70
+ */
71
+ type RanOnLiveEdit = {
72
+ liveEditId?: string;
73
+ };
74
+ export type ForwardPromptResult = (FinishedTurn & RanOnLiveEdit & {
75
+ status: "accepted";
76
+ }) | {
77
+ message?: string;
78
+ status: "auth_required";
79
+ };
80
+ export type StartPromptResult = (RanOnLiveEdit & {
81
+ /** Clark activity already collected between the prompt and this return. */
82
+ activity: string[];
83
+ status: "accepted";
84
+ }) | {
85
+ message?: string;
86
+ status: "auth_required";
87
+ };
88
+ /**
89
+ * One poll of a turn that is running on the held session.
90
+ *
91
+ * `activity` carries only the lines this poll is the first to see, so a caller
92
+ * that relays them verbatim never repeats itself.
93
+ */
94
+ export type TurnUpdate = {
95
+ activity: string[];
96
+ /** How long the turn has been running, so a quiet poll still has news. */
97
+ elapsedMs: number;
98
+ /** Mid-turn testApi / testIntegration outcomes collected so far. */
99
+ recentRuns?: FinishedTurn["recentRuns"];
100
+ } & ({
101
+ status: "running";
102
+ } | ({
103
+ status: "finished";
104
+ } & FinishedTurn)
105
+ /** No turn is in flight for this application (or the gateway restarted). */
106
+ | {
107
+ status: "unknown";
108
+ });
109
+ /**
110
+ * Uploaded attachment references Clark can download via listAttachments /
111
+ * downloadAttachments. Shape matches library-shared UploadedAttachment.
112
+ */
113
+ export type PromptAttachment = {
114
+ applicationId?: string;
115
+ fileName?: string;
116
+ mediaType: string;
117
+ scopeType?: "app" | "org";
118
+ signedUrl?: string;
119
+ signedUrlExpiresAt?: string;
120
+ storageKey?: string;
121
+ type: "uploaded";
122
+ url: string;
123
+ };
124
+ export type PromptInput = {
125
+ applicationId: string;
126
+ /** Live-edit branch used for edit-mode SDK API execution. */
127
+ branch?: string;
128
+ /**
129
+ * Personal API key used for mid-turn server calls (integrations list) while
130
+ * the session socket is held.
131
+ */
132
+ apiKey?: string;
133
+ /** Archive (and other) attachments for Clark's migration / file tools. */
134
+ attachments?: PromptAttachment[];
135
+ /**
136
+ * Third-party import source id (e.g. "zip", "replit") for billing and
137
+ * migration skill selection.
138
+ */
139
+ importSource?: string;
140
+ /**
141
+ * The live edit Clark is running on, as SABS names it on the events it
142
+ * relays. Without it the turn cannot be matched to its pushes, so it only
143
+ * hears Clark over the held socket.
144
+ */
145
+ liveEditId?: string;
146
+ liveEditUrl: string;
147
+ /**
148
+ * Re-opens the live-edit session, for the case where {@link liveEditUrl} no
149
+ * longer serves it.
150
+ *
151
+ * `liveEditUrl` is resolved once, before the prompt, and a session can move
152
+ * hosts between then and the socket being opened - or have been resolved
153
+ * from a binding that was already stale. Without this the prompt is stuck
154
+ * with the host it was given, and the only way to reach the new one is for
155
+ * the caller to fail and try again. Absent leaves that behavior unchanged.
156
+ */
157
+ resolveLiveEdit?: () => Promise<{
158
+ liveEditId?: string;
159
+ liveEditUrl: string;
160
+ }>;
161
+ /**
162
+ * Optional refresh of the live-edit session (e.g. connectLiveEdit) while
163
+ * the session socket is held, so local AppManager idle reaping does not
164
+ * kill the sandbox under a quiet Claude turn.
165
+ */
166
+ keepalive?: () => Promise<void>;
167
+ /**
168
+ * Clark generation mode. Defaults to PLAN so headless callers match the
169
+ * editor after feature flags load.
170
+ */
171
+ mode?: AiMode;
172
+ /**
173
+ * Coarse progress while waiting for Clark's turn to finish. Best-effort;
174
+ * ignored when the transport has no progress channel. Progress is buffered
175
+ * on the turn regardless, so a caller that polls sees it either way.
176
+ */
177
+ onProgress?: (message: string) => void;
178
+ /**
179
+ * Organization the apiKey belongs to — required for Clark's integration
180
+ * discovery against the Superblocks API.
181
+ */
182
+ organizationId?: string;
183
+ /**
184
+ * Prior plan context for approve / refine turns (mirrors the editor's
185
+ * planContext on aiGenerate).
186
+ */
187
+ planContext?: {
188
+ approved?: boolean;
189
+ plan?: string;
190
+ title?: string;
191
+ };
192
+ prompt: string;
193
+ /**
194
+ * Metadata for plan_response turns after the user approves or refines.
195
+ */
196
+ responseMetadata?: {
197
+ approved?: boolean;
198
+ responseToMessageId?: string;
199
+ type: "plan_response";
200
+ };
201
+ /**
202
+ * Abort the turn wait (e.g. MCP client cancelled the tool call).
203
+ */
204
+ signal?: AbortSignal;
205
+ /**
206
+ * The edit-scoped JWT the session verifies. Deliberately not connect's
207
+ * `pitcherToken`, which the local sandbox path fills with a placeholder.
208
+ */
209
+ sessionToken: string;
210
+ /** Identifies the caller to the live-edit session that serves the prompt. */
211
+ userId?: string;
212
+ };
213
+ /**
214
+ * Credentials to hold a live-edit socket without starting a Clark turn.
215
+ * Used by get_app after a Gateway restart left the in-memory hold empty.
216
+ */
217
+ export type HoldLiveEditInput = {
218
+ applicationId: string;
219
+ apiKey?: string;
220
+ branch?: string;
221
+ keepalive?: () => Promise<void>;
222
+ liveEditUrl: string;
223
+ organizationId?: string;
224
+ sessionToken: string;
225
+ userId: string;
226
+ };
227
+ export type SessionPeer = {
228
+ /**
229
+ * Wait for news about a turn already running on the held session: new Clark
230
+ * activity, the finished turn, or `waitMs` elapsing with neither.
231
+ */
232
+ awaitTurn(input: {
233
+ applicationId: string;
234
+ /**
235
+ * Whose poll this is. Only needed to find a turn that died before
236
+ * Superblocks saw it, which is recorded per caller - see
237
+ * {@link SessionPeer.recordFailedStart}. A poll that omits it is answered
238
+ * from the turn map alone, never out of a record belonging to someone.
239
+ */
240
+ organizationId?: string;
241
+ signal?: AbortSignal;
242
+ userId?: string;
243
+ waitMs: number;
244
+ }): Promise<TurnUpdate>;
245
+ /**
246
+ * Drop every held session socket. Used on gateway shutdown so sandboxes are
247
+ * not left held open by a peer that no longer exists.
248
+ */
249
+ closeAll?(): void;
250
+ /** Clear a stored plan after approve builds or the app is abandoned. */
251
+ clearPendingPlan?(applicationId: string): void;
252
+ /**
253
+ * Clear a stored needs_decision payload (plan or multi_choice) after the
254
+ * human answers or a new turn starts.
255
+ */
256
+ clearPendingDecision?(applicationId: string): void;
257
+ /** Send a prompt and wait for Clark's whole turn. */
258
+ forwardPrompt(input: PromptInput): Promise<ForwardPromptResult>;
259
+ /**
260
+ * Open or reuse a live-edit socket for screenshotting without starting a
261
+ * Clark turn. Used by get_app when the in-memory hold is empty (MCP
262
+ * respawn) but the sandbox is still running.
263
+ */
264
+ holdLiveEdit?(input: HoldLiveEditInput): Promise<void>;
265
+ /**
266
+ * Live-library bootstrap for a held session, used to screenshot pitcherURL
267
+ * without opening the edit URL. Absent when no session is held or the
268
+ * sandbox URL cannot be addressed.
269
+ */
270
+ libraryBrowserContext?(applicationId: string): BrowserContext | undefined;
271
+ /**
272
+ * Record that this application dispatched a BUILD turn, whether a plan was
273
+ * approved or the caller asked to build outright.
274
+ */
275
+ markBuildMode?(applicationId: string): void;
276
+ /**
277
+ * Decision Clark is waiting on (plan or multi_choice), with the turn reply,
278
+ * if the last turn ended in needs_decision.
279
+ */
280
+ pendingDecision?(applicationId: string): {
281
+ decision: TurnDecision;
282
+ recentRuns?: FinishedTurn["recentRuns"];
283
+ reply: string;
284
+ } | undefined;
285
+ /**
286
+ * Plan Clark proposed and is waiting on, if the last turn ended in
287
+ * needs_decision with a plan artifact.
288
+ */
289
+ pendingPlan?(applicationId: string): {
290
+ messageId?: string;
291
+ plan: string;
292
+ title?: string;
293
+ } | undefined;
294
+ /**
295
+ * True once this application has dispatched a BUILD turn. Clark's headless
296
+ * default is PLAN, so without this a follow-up prompt proposes another plan
297
+ * instead of building — see {@link SessionPeer.markBuildMode}.
298
+ */
299
+ buildMode?(applicationId: string): boolean;
300
+ /**
301
+ * Remember that a turn for this application died before Superblocks ever saw
302
+ * it: the live-edit session could not be opened, so no turn was ever run here
303
+ * to end.
304
+ *
305
+ * Without this the peer holds nothing for the app and every later read
306
+ * answers "nothing in flight" - `check_app_progress` reports `unknown` and
307
+ * `get_app` previews the untouched starter template as though a build were
308
+ * running. Kept on the peer rather than in the capability so both reads see
309
+ * the same fact, and so the next prompt for the app clears it.
310
+ */
311
+ recordFailedStart?(input: {
312
+ applicationId: string;
313
+ /**
314
+ * Whose prompt died. Scoped to the caller because `connectLiveEdit` is
315
+ * where Superblocks authorizes them, per application - so a caller with no
316
+ * rights to this one still reaches this path, and a record keyed any wider
317
+ * becomes the status everyone who does have rights reads.
318
+ */
319
+ organizationId: string;
320
+ reason: string;
321
+ userId: string;
322
+ }): void;
323
+ /**
324
+ * Close the held session socket for an application (idle timeout, publish,
325
+ * or an explicit release).
326
+ */
327
+ release?(applicationId: string): void;
328
+ /**
329
+ * Send a prompt and return as soon as Clark accepts it, leaving the turn
330
+ * running on the held session for {@link SessionPeer.awaitTurn} to follow.
331
+ */
332
+ startPrompt(input: PromptInput): Promise<StartPromptResult>;
333
+ /**
334
+ * Where the turn for this application stands, without consuming anything.
335
+ * Undefined when this peer has no turn for the application.
336
+ *
337
+ * Deliberately not {@link SessionPeer.awaitTurn} with a zero wait: that
338
+ * drains the activity a `check_app_progress` poll is owed. Callers that only
339
+ * need to know how the work stands read this instead.
340
+ *
341
+ * Takes the caller, not just the application, because a turn that died before
342
+ * Superblocks saw it is recorded per caller - see
343
+ * {@link SessionPeer.recordFailedStart}.
344
+ */
345
+ turnState?(input: {
346
+ applicationId: string;
347
+ organizationId: string;
348
+ userId: string;
349
+ }): TurnState | undefined;
350
+ };
351
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-peer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-peer.js","sourceRoot":"","sources":["../../src/sabs/session-peer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ import type { ClarkPeerEvent } from "./editor-client-methods.js";
2
+ import type { GenerationStatus, ViewStatus } from "./session-peer.js";
3
+ /** Default quiet window after completed/idle before treating the job as done. */
4
+ export declare const DEFAULT_SETTLE_MS = 12000;
5
+ export type TurnDecision = {
6
+ kind: "multi_choice";
7
+ messageId?: string;
8
+ options: string[];
9
+ question: string;
10
+ } | {
11
+ kind: "plan";
12
+ messageId?: string;
13
+ plan: string;
14
+ title?: string;
15
+ };
16
+ export type TurnCollectorOptions = {
17
+ settleMs?: number;
18
+ };
19
+ /**
20
+ * Collects Clark chat and generation-state pushes for one MCP turn wait.
21
+ *
22
+ * `completed` / `idle` start a settle window so an acknowledgment turn that
23
+ * resumes generating is coalesced into the same tool call. `awaiting_user_input`
24
+ * returns `needs_decision` immediately so Claude can answer via `edit_app`.
25
+ */
26
+ export declare class TurnCollector {
27
+ private readonly onProgress?;
28
+ private readonly deltas;
29
+ private readonly labels;
30
+ private readonly states;
31
+ private readonly settleMs;
32
+ private seenGenerating;
33
+ private terminal;
34
+ private viewStatus;
35
+ private draftPending;
36
+ private syncPending;
37
+ private readonly signals;
38
+ /** Case id to name, so a later per-case update can be reported by name. */
39
+ private readonly testCaseNames;
40
+ private planChunks;
41
+ private planMessageId;
42
+ private planTitle;
43
+ private multiChoice;
44
+ /**
45
+ * Whether anything has arrived on the channel the dev server binds to a
46
+ * single editor peer (Clark's messages and generation states). Draft and sync
47
+ * pushes go to every attached editor, so they say nothing about the binding.
48
+ */
49
+ private clarkPushSeen;
50
+ private lastEventReceivedAt;
51
+ private notifyClarkPush;
52
+ private lastProgressAt;
53
+ private streamedLen;
54
+ private lastLine;
55
+ private settleTimer;
56
+ private syncTimer;
57
+ private notifySettled;
58
+ private notifyInSync;
59
+ constructor(onProgress?: ((message: string) => void) | undefined, options?: TurnCollectorOptions);
60
+ handle(event: ClarkPeerEvent): void;
61
+ reply(): string;
62
+ /**
63
+ * Structured decision Clark is waiting on (plan card or multi_choice).
64
+ * Prefer plan over multi_choice when both arrived in the same turn.
65
+ */
66
+ decision(): TurnDecision | undefined;
67
+ /**
68
+ * When something last reached this turn, from either transport.
69
+ *
70
+ * The held socket is one of two ways a turn hears from its live edit - SABS
71
+ * relays the same events - so a socket the gateway cannot get back is not
72
+ * proof that nothing is reporting. This is what separates the two.
73
+ *
74
+ * Zero until the first event, which reads as "nothing has arrived yet"
75
+ * against any later comparison.
76
+ */
77
+ lastEventAt(): number;
78
+ status(): GenerationStatus | undefined;
79
+ viewableStatus(): ViewStatus;
80
+ /**
81
+ * Whether Clark left a draft the gateway still has to accept. Mirrors the
82
+ * browser editor's `hasAiSuggestedDraft`, which is what gates its
83
+ * auto-accept.
84
+ */
85
+ needsDraftAccept(): boolean;
86
+ stateSequence(): string[];
87
+ /**
88
+ * Which pushes this turn used to decide it built something. Diagnostic: a
89
+ * headless peer that receives none of them cannot tell an empty job from a
90
+ * successful one, and that is a session-protocol problem, not a Clark one.
91
+ */
92
+ workSignals(): string[];
93
+ /**
94
+ * Resolves true once Clark has pushed anything on the single-peer channel, or
95
+ * false when the budget expires having heard nothing.
96
+ *
97
+ * A turn that hears nothing is not a slow turn: `generating` lands within a
98
+ * second of the prompt being acknowledged. Silence means this peer is not the
99
+ * one the sandbox is pushing to, and no amount of waiting fixes that.
100
+ */
101
+ waitForClarkPush(input: {
102
+ signal?: AbortSignal;
103
+ timeoutMs: number;
104
+ }): Promise<boolean>;
105
+ waitUntilTerminal(input: {
106
+ signal?: AbortSignal;
107
+ timeoutMs: number;
108
+ }): Promise<GenerationStatus>;
109
+ /**
110
+ * Resolves once the dev server has flushed Clark's files. An unreported sync
111
+ * status counts as in sync, matching the browser editor's `isOutOfSync`,
112
+ * which only blocks on LOCAL_AHEAD / SERVER_AHEAD.
113
+ *
114
+ * Resolves false when the budget expires with the sync still pending, so the
115
+ * caller can decline to checkpoint a half-uploaded app.
116
+ */
117
+ waitUntilInSync(input: {
118
+ timeoutMs: number;
119
+ }): Promise<boolean>;
120
+ /** Records that the gateway committed Clark's draft into a checkpoint. */
121
+ markCheckpointed(): void;
122
+ /**
123
+ * Drops pending timers and releases anyone still waiting, so a turn that
124
+ * timed out or threw leaves nothing armed behind it.
125
+ */
126
+ dispose(): void;
127
+ private endSyncWait;
128
+ /**
129
+ * Turns a test run into activity lines. Clark names each case only once, in
130
+ * the run's opening plan, so the names are kept to label the per-case
131
+ * updates that follow — an update carries an id and nothing else.
132
+ */
133
+ private onTestMessage;
134
+ private onSyncStatus;
135
+ private onGenerationState;
136
+ private armSettle;
137
+ private clearSettleTimer;
138
+ /**
139
+ * Reports the text Clark has streamed since the previous report, cut at the
140
+ * last sentence end so nothing arrives mid-word and nothing arrives twice.
141
+ */
142
+ private maybeProgressText;
143
+ /** Flushes whatever text is still unreported, e.g. when the turn ends. */
144
+ private flushProgressText;
145
+ /**
146
+ * Single door for every progress line: blank lines and a line identical to
147
+ * the one before it are dropped, because the dev server repeats status
148
+ * pushes many times per build and repetition buries the text that matters.
149
+ */
150
+ private emit;
151
+ private assembledPlan;
152
+ }