@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.
- package/LICENSE.txt +87 -0
- package/README.md +170 -0
- package/dist/agents/resolve-orchestrator-url.d.ts +22 -0
- package/dist/agents/resolve-orchestrator-url.js +38 -0
- package/dist/agents/resolve-orchestrator-url.js.map +1 -0
- package/dist/capabilities/import-prompt.d.ts +11 -0
- package/dist/capabilities/import-prompt.js +96 -0
- package/dist/capabilities/import-prompt.js.map +1 -0
- package/dist/capabilities/lifecycle.d.ts +73 -0
- package/dist/capabilities/lifecycle.js +2531 -0
- package/dist/capabilities/lifecycle.js.map +1 -0
- package/dist/capabilities/persisted-progress.d.ts +46 -0
- package/dist/capabilities/persisted-progress.js +246 -0
- package/dist/capabilities/persisted-progress.js.map +1 -0
- package/dist/capabilities/types.d.ts +446 -0
- package/dist/capabilities/types.js +47 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/capture/browser-contract.d.ts +36 -0
- package/dist/capture/browser-contract.js +24 -0
- package/dist/capture/browser-contract.js.map +1 -0
- package/dist/capture/browser-instructions.d.ts +9 -0
- package/dist/capture/browser-instructions.js +17 -0
- package/dist/capture/browser-instructions.js.map +1 -0
- package/dist/capture/capture-library-probe.d.ts +55 -0
- package/dist/capture/capture-library-probe.js +177 -0
- package/dist/capture/capture-library-probe.js.map +1 -0
- package/dist/capture/capture-library.d.ts +52 -0
- package/dist/capture/capture-library.js +249 -0
- package/dist/capture/capture-library.js.map +1 -0
- package/dist/capture/classify-library-paint.d.ts +21 -0
- package/dist/capture/classify-library-paint.js +13 -0
- package/dist/capture/classify-library-paint.js.map +1 -0
- package/dist/capture/host-mcp-scan.d.ts +16 -0
- package/dist/capture/host-mcp-scan.js +64 -0
- package/dist/capture/host-mcp-scan.js.map +1 -0
- package/dist/capture/library-parent-script.d.ts +34 -0
- package/dist/capture/library-parent-script.js +82 -0
- package/dist/capture/library-parent-script.js.map +1 -0
- package/dist/capture/mode.d.ts +22 -0
- package/dist/capture/mode.js +45 -0
- package/dist/capture/mode.js.map +1 -0
- package/dist/config.d.ts +141 -0
- package/dist/config.js +109 -0
- package/dist/config.js.map +1 -0
- package/dist/debug.d.ts +2 -0
- package/dist/debug.js +9 -0
- package/dist/debug.js.map +1 -0
- package/dist/deps.d.ts +36 -0
- package/dist/deps.js +2 -0
- package/dist/deps.js.map +1 -0
- package/dist/events/cursor.d.ts +43 -0
- package/dist/events/cursor.js +78 -0
- package/dist/events/cursor.js.map +1 -0
- package/dist/events/memory-event-store.d.ts +34 -0
- package/dist/events/memory-event-store.js +110 -0
- package/dist/events/memory-event-store.js.map +1 -0
- package/dist/events/merge.d.ts +23 -0
- package/dist/events/merge.js +97 -0
- package/dist/events/merge.js.map +1 -0
- package/dist/events/normalized-collector.d.ts +62 -0
- package/dist/events/normalized-collector.js +156 -0
- package/dist/events/normalized-collector.js.map +1 -0
- package/dist/events/schema.d.ts +9 -0
- package/dist/events/schema.js +93 -0
- package/dist/events/schema.js.map +1 -0
- package/dist/events/snapshot.d.ts +32 -0
- package/dist/events/snapshot.js +57 -0
- package/dist/events/snapshot.js.map +1 -0
- package/dist/events/stream-key.d.ts +2 -0
- package/dist/events/stream-key.js +31 -0
- package/dist/events/stream-key.js.map +1 -0
- package/dist/events/types.d.ts +179 -0
- package/dist/events/types.js +66 -0
- package/dist/events/types.js.map +1 -0
- package/dist/health/readiness.d.ts +99 -0
- package/dist/health/readiness.js +202 -0
- package/dist/health/readiness.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/filters.d.ts +8 -0
- package/dist/integrations/filters.js +40 -0
- package/dist/integrations/filters.js.map +1 -0
- package/dist/integrations/map.d.ts +26 -0
- package/dist/integrations/map.js +43 -0
- package/dist/integrations/map.js.map +1 -0
- package/dist/integrations/profile-key.d.ts +19 -0
- package/dist/integrations/profile-key.js +35 -0
- package/dist/integrations/profile-key.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.js +5 -0
- package/dist/main.js.map +1 -0
- package/dist/orchestrator/client.d.ts +62 -0
- package/dist/orchestrator/client.js +160 -0
- package/dist/orchestrator/client.js.map +1 -0
- package/dist/playwright/ensure-chromium.d.ts +26 -0
- package/dist/playwright/ensure-chromium.js +60 -0
- package/dist/playwright/ensure-chromium.js.map +1 -0
- package/dist/preview/capture-screenshot.d.ts +52 -0
- package/dist/preview/capture-screenshot.js +158 -0
- package/dist/preview/capture-screenshot.js.map +1 -0
- package/dist/preview/viewer-url.d.ts +82 -0
- package/dist/preview/viewer-url.js +128 -0
- package/dist/preview/viewer-url.js.map +1 -0
- package/dist/process/fault-barrier.d.ts +55 -0
- package/dist/process/fault-barrier.js +113 -0
- package/dist/process/fault-barrier.js.map +1 -0
- package/dist/resume/memory-progress-store.d.ts +39 -0
- package/dist/resume/memory-progress-store.js +82 -0
- package/dist/resume/memory-progress-store.js.map +1 -0
- package/dist/resume/memory-recent-app-store.d.ts +14 -0
- package/dist/resume/memory-recent-app-store.js +27 -0
- package/dist/resume/memory-recent-app-store.js.map +1 -0
- package/dist/resume/memory-turn-store.d.ts +18 -0
- package/dist/resume/memory-turn-store.js +73 -0
- package/dist/resume/memory-turn-store.js.map +1 -0
- package/dist/resume/progress-key.d.ts +21 -0
- package/dist/resume/progress-key.js +58 -0
- package/dist/resume/progress-key.js.map +1 -0
- package/dist/resume/stores.d.ts +14 -0
- package/dist/resume/stores.js +18 -0
- package/dist/resume/stores.js.map +1 -0
- package/dist/resume/types.d.ts +124 -0
- package/dist/resume/types.js +13 -0
- package/dist/resume/types.js.map +1 -0
- package/dist/sabs/agent-facing-text.d.ts +33 -0
- package/dist/sabs/agent-facing-text.js +125 -0
- package/dist/sabs/agent-facing-text.js.map +1 -0
- package/dist/sabs/browser-context.d.ts +53 -0
- package/dist/sabs/browser-context.js +91 -0
- package/dist/sabs/browser-context.js.map +1 -0
- package/dist/sabs/editor-client-methods.d.ts +147 -0
- package/dist/sabs/editor-client-methods.js +715 -0
- package/dist/sabs/editor-client-methods.js.map +1 -0
- package/dist/sabs/recent-tool-runs.d.ts +14 -0
- package/dist/sabs/recent-tool-runs.js +61 -0
- package/dist/sabs/recent-tool-runs.js.map +1 -0
- package/dist/sabs/session-peer.d.ts +351 -0
- package/dist/sabs/session-peer.js +2 -0
- package/dist/sabs/session-peer.js.map +1 -0
- package/dist/sabs/turn-collector.d.ts +152 -0
- package/dist/sabs/turn-collector.js +573 -0
- package/dist/sabs/turn-collector.js.map +1 -0
- package/dist/sabs/websocket-session-peer.d.ts +514 -0
- package/dist/sabs/websocket-session-peer.js +2487 -0
- package/dist/sabs/websocket-session-peer.js.map +1 -0
- package/dist/security/constant-time.d.ts +9 -0
- package/dist/security/constant-time.js +13 -0
- package/dist/security/constant-time.js.map +1 -0
- package/dist/server/client.d.ts +371 -0
- package/dist/server/client.js +572 -0
- package/dist/server/client.js.map +1 -0
- package/dist/server/identity-reads.d.ts +76 -0
- package/dist/server/identity-reads.js +209 -0
- package/dist/server/identity-reads.js.map +1 -0
- package/dist/start.d.ts +14 -0
- package/dist/start.js +75 -0
- package/dist/start.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +32 -0
- package/dist/telemetry/metrics.js +57 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/transports/mcp/admin-tools.d.ts +47 -0
- package/dist/transports/mcp/admin-tools.js +164 -0
- package/dist/transports/mcp/admin-tools.js.map +1 -0
- package/dist/transports/mcp/app-status-html.d.ts +15 -0
- package/dist/transports/mcp/app-status-html.js +563 -0
- package/dist/transports/mcp/app-status-html.js.map +1 -0
- package/dist/transports/mcp/decision-elicitation.d.ts +74 -0
- package/dist/transports/mcp/decision-elicitation.js +233 -0
- package/dist/transports/mcp/decision-elicitation.js.map +1 -0
- package/dist/transports/mcp/dispatch-probe.d.ts +24 -0
- package/dist/transports/mcp/dispatch-probe.js +48 -0
- package/dist/transports/mcp/dispatch-probe.js.map +1 -0
- package/dist/transports/mcp/format-tool-content.d.ts +25 -0
- package/dist/transports/mcp/format-tool-content.js +48 -0
- package/dist/transports/mcp/format-tool-content.js.map +1 -0
- package/dist/transports/mcp/mount.d.ts +9 -0
- package/dist/transports/mcp/mount.js +469 -0
- package/dist/transports/mcp/mount.js.map +1 -0
- package/dist/transports/mcp/progress-notifier.d.ts +39 -0
- package/dist/transports/mcp/progress-notifier.js +52 -0
- package/dist/transports/mcp/progress-notifier.js.map +1 -0
- 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 @@
|
|
|
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
|
+
}
|