@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.
- package/LICENSE.txt +87 -0
- package/README.md +291 -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/integration-metadata.d.ts +28 -0
- package/dist/capabilities/integration-metadata.js +174 -0
- package/dist/capabilities/integration-metadata.js.map +1 -0
- package/dist/capabilities/lifecycle.d.ts +93 -0
- package/dist/capabilities/lifecycle.js +3450 -0
- package/dist/capabilities/lifecycle.js.map +1 -0
- package/dist/capabilities/query-integration.d.ts +14 -0
- package/dist/capabilities/query-integration.js +172 -0
- package/dist/capabilities/query-integration.js.map +1 -0
- package/dist/capabilities/source-files-archive.d.ts +11 -0
- package/dist/capabilities/source-files-archive.js +54 -0
- package/dist/capabilities/source-files-archive.js.map +1 -0
- package/dist/capabilities/types.d.ts +542 -0
- package/dist/capabilities/types.js +86 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/capture/browser-contract.d.ts +46 -0
- package/dist/capture/browser-contract.js +34 -0
- package/dist/capture/browser-contract.js.map +1 -0
- package/dist/capture/browser-instructions.d.ts +10 -0
- package/dist/capture/browser-instructions.js +18 -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 +35 -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 +29 -0
- package/dist/capture/mode.js +65 -0
- package/dist/capture/mode.js.map +1 -0
- package/dist/config.d.ts +148 -0
- package/dist/config.js +111 -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 +38 -0
- package/dist/deps.js +2 -0
- package/dist/deps.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 +8 -0
- package/dist/index.js +8 -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 +27 -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/integrations/read-only-postgres-query.d.ts +2 -0
- package/dist/integrations/read-only-postgres-query.js +164 -0
- package/dist/integrations/read-only-postgres-query.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 +24 -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 +67 -0
- package/dist/preview/capture-screenshot.js +179 -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 +130 -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/sabs/agent-facing-text.d.ts +35 -0
- package/dist/sabs/agent-facing-text.js +165 -0
- package/dist/sabs/agent-facing-text.js.map +1 -0
- package/dist/sabs/app-state.d.ts +126 -0
- package/dist/sabs/app-state.js +332 -0
- package/dist/sabs/app-state.js.map +1 -0
- package/dist/sabs/awaited-decision.d.ts +47 -0
- package/dist/sabs/awaited-decision.js +124 -0
- package/dist/sabs/awaited-decision.js.map +1 -0
- package/dist/sabs/browser-context.d.ts +53 -0
- package/dist/sabs/browser-context.js +92 -0
- package/dist/sabs/browser-context.js.map +1 -0
- package/dist/sabs/editor-client-methods.d.ts +164 -0
- package/dist/sabs/editor-client-methods.js +750 -0
- package/dist/sabs/editor-client-methods.js.map +1 -0
- package/dist/sabs/editor-socket.d.ts +84 -0
- package/dist/sabs/editor-socket.js +64 -0
- package/dist/sabs/editor-socket.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 +392 -0
- package/dist/sabs/session-peer.js +11 -0
- package/dist/sabs/session-peer.js.map +1 -0
- package/dist/sabs/streamed-reply.d.ts +42 -0
- package/dist/sabs/streamed-reply.js +110 -0
- package/dist/sabs/streamed-reply.js.map +1 -0
- package/dist/sabs/turn-collector.d.ts +169 -0
- package/dist/sabs/turn-collector.js +506 -0
- package/dist/sabs/turn-collector.js.map +1 -0
- package/dist/sabs/websocket-session-peer.d.ts +540 -0
- package/dist/sabs/websocket-session-peer.js +3289 -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 +405 -0
- package/dist/server/client.js +684 -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 +24 -0
- package/dist/start.js +81 -0
- package/dist/start.js.map +1 -0
- package/dist/stores/memory.d.ts +42 -0
- package/dist/stores/memory.js +121 -0
- package/dist/stores/memory.js.map +1 -0
- package/dist/stores/types.d.ts +74 -0
- package/dist/stores/types.js +11 -0
- package/dist/stores/types.js.map +1 -0
- package/dist/telemetry/mcp-client.d.ts +22 -0
- package/dist/telemetry/mcp-client.js +140 -0
- package/dist/telemetry/mcp-client.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +41 -0
- package/dist/telemetry/metrics.js +103 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/runtime.d.ts +9 -0
- package/dist/telemetry/runtime.js +118 -0
- package/dist/telemetry/runtime.js.map +1 -0
- package/dist/transports/mcp/admin-tools.d.ts +56 -0
- package/dist/transports/mcp/admin-tools.js +252 -0
- package/dist/transports/mcp/admin-tools.js.map +1 -0
- package/dist/transports/mcp/app-status-html.d.ts +11 -0
- package/dist/transports/mcp/app-status-html.js +899 -0
- package/dist/transports/mcp/app-status-html.js.map +1 -0
- package/dist/transports/mcp/client-presentation.d.ts +16 -0
- package/dist/transports/mcp/client-presentation.js +13 -0
- package/dist/transports/mcp/client-presentation.js.map +1 -0
- package/dist/transports/mcp/cowork-editor-url.d.ts +6 -0
- package/dist/transports/mcp/cowork-editor-url.js +10 -0
- package/dist/transports/mcp/cowork-editor-url.js.map +1 -0
- package/dist/transports/mcp/decision-card-html.d.ts +26 -0
- package/dist/transports/mcp/decision-card-html.js +876 -0
- package/dist/transports/mcp/decision-card-html.js.map +1 -0
- package/dist/transports/mcp/decision-elicitation.d.ts +116 -0
- package/dist/transports/mcp/decision-elicitation.js +292 -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/editor-document-probe.d.ts +4 -0
- package/dist/transports/mcp/editor-document-probe.js +35 -0
- package/dist/transports/mcp/editor-document-probe.js.map +1 -0
- package/dist/transports/mcp/editor-integration-setup-url.d.ts +8 -0
- package/dist/transports/mcp/editor-integration-setup-url.js +23 -0
- package/dist/transports/mcp/editor-integration-setup-url.js.map +1 -0
- package/dist/transports/mcp/format-tool-content.d.ts +20 -0
- package/dist/transports/mcp/format-tool-content.js +89 -0
- package/dist/transports/mcp/format-tool-content.js.map +1 -0
- package/dist/transports/mcp/instructions/index.d.ts +23 -0
- package/dist/transports/mcp/instructions/index.js +81 -0
- package/dist/transports/mcp/instructions/index.js.map +1 -0
- package/dist/transports/mcp/instructions/result.d.ts +18 -0
- package/dist/transports/mcp/instructions/result.js +58 -0
- package/dist/transports/mcp/instructions/result.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/ask-user.d.ts +2 -0
- package/dist/transports/mcp/instructions/tools/ask-user.js +17 -0
- package/dist/transports/mcp/instructions/tools/ask-user.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/check-app-progress.d.ts +3 -0
- package/dist/transports/mcp/instructions/tools/check-app-progress.js +75 -0
- package/dist/transports/mcp/instructions/tools/check-app-progress.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/check-publish-progress.d.ts +3 -0
- package/dist/transports/mcp/instructions/tools/check-publish-progress.js +23 -0
- package/dist/transports/mcp/instructions/tools/check-publish-progress.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/copy.d.ts +14 -0
- package/dist/transports/mcp/instructions/tools/copy.js +35 -0
- package/dist/transports/mcp/instructions/tools/copy.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/create-integration.d.ts +4 -0
- package/dist/transports/mcp/instructions/tools/create-integration.js +41 -0
- package/dist/transports/mcp/instructions/tools/create-integration.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/edit-app.d.ts +2 -0
- package/dist/transports/mcp/instructions/tools/edit-app.js +18 -0
- package/dist/transports/mcp/instructions/tools/edit-app.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/get-app.d.ts +3 -0
- package/dist/transports/mcp/instructions/tools/get-app.js +47 -0
- package/dist/transports/mcp/instructions/tools/get-app.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/get-integration-metadata.d.ts +2 -0
- package/dist/transports/mcp/instructions/tools/get-integration-metadata.js +13 -0
- package/dist/transports/mcp/instructions/tools/get-integration-metadata.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/index.d.ts +7 -0
- package/dist/transports/mcp/instructions/tools/index.js +26 -0
- package/dist/transports/mcp/instructions/tools/index.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/preview-app.d.ts +3 -0
- package/dist/transports/mcp/instructions/tools/preview-app.js +14 -0
- package/dist/transports/mcp/instructions/tools/preview-app.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/publish-app.d.ts +3 -0
- package/dist/transports/mcp/instructions/tools/publish-app.js +23 -0
- package/dist/transports/mcp/instructions/tools/publish-app.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/start-app.d.ts +2 -0
- package/dist/transports/mcp/instructions/tools/start-app.js +22 -0
- package/dist/transports/mcp/instructions/tools/start-app.js.map +1 -0
- package/dist/transports/mcp/instructions/tools/upload-artifact.d.ts +2 -0
- package/dist/transports/mcp/instructions/tools/upload-artifact.js +13 -0
- package/dist/transports/mcp/instructions/tools/upload-artifact.js.map +1 -0
- package/dist/transports/mcp/mcp-app-brand-css.d.ts +1 -0
- package/dist/transports/mcp/mcp-app-brand-css.js +180 -0
- package/dist/transports/mcp/mcp-app-brand-css.js.map +1 -0
- package/dist/transports/mcp/mount.d.ts +22 -0
- package/dist/transports/mcp/mount.js +1040 -0
- package/dist/transports/mcp/mount.js.map +1 -0
- package/dist/transports/mcp/native-browser-presence.d.ts +45 -0
- package/dist/transports/mcp/native-browser-presence.js +158 -0
- package/dist/transports/mcp/native-browser-presence.js.map +1 -0
- package/dist/transports/mcp/plan-approval.d.ts +38 -0
- package/dist/transports/mcp/plan-approval.js +175 -0
- package/dist/transports/mcp/plan-approval.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/dist/transports/mcp/session-directory.d.ts +7 -0
- package/dist/transports/mcp/session-directory.js +18 -0
- package/dist/transports/mcp/session-directory.js.map +1 -0
- package/dist/transports/mcp/tool-names.d.ts +2 -0
- package/dist/transports/mcp/tool-names.js +2 -0
- package/dist/transports/mcp/tool-names.js.map +1 -0
- package/package.json +78 -0
- package/skills/superblocks-build/SKILL.md +59 -0
- 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 {};
|