veryfront 0.1.274 → 0.1.276
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/esm/deno.js +1 -1
- package/esm/src/agent/agent-service.d.ts +11 -0
- package/esm/src/agent/agent-service.d.ts.map +1 -1
- package/esm/src/agent/index.d.ts +1 -1
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/sandbox/index.d.ts +1 -0
- package/esm/src/sandbox/index.d.ts.map +1 -1
- package/esm/src/sandbox/index.js +1 -0
- package/esm/src/sandbox/lazy-sandbox.d.ts +57 -0
- package/esm/src/sandbox/lazy-sandbox.d.ts.map +1 -0
- package/esm/src/sandbox/lazy-sandbox.js +403 -0
- package/esm/src/sandbox/sandbox.d.ts +12 -0
- package/esm/src/sandbox/sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/sandbox.js +45 -29
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
- package/src/deno.js +1 -1
- package/src/src/agent/agent-service.ts +12 -0
- package/src/src/agent/index.ts +1 -0
- package/src/src/sandbox/index.ts +1 -0
- package/src/src/sandbox/lazy-sandbox.ts +504 -0
- package/src/src/sandbox/sandbox.ts +61 -32
- package/src/src/utils/version-constant.ts +1 -1
package/esm/deno.js
CHANGED
|
@@ -9,11 +9,22 @@ export interface DurableRunSink<TStartInput = void, TRun = unknown, TEvent = unk
|
|
|
9
9
|
finalizeRun(run: TRun, terminalState: TTerminalState): Promise<void> | void;
|
|
10
10
|
cancelRun(run: TRun, terminalState: TTerminalState): Promise<void> | void;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Placeholder host-facing server config reserved for the future hosted service
|
|
14
|
+
* implementation.
|
|
15
|
+
*/
|
|
16
|
+
export interface AgentServiceServerConfig {
|
|
17
|
+
port?: number;
|
|
18
|
+
basePath?: string;
|
|
19
|
+
cors?: boolean;
|
|
20
|
+
}
|
|
12
21
|
/**
|
|
13
22
|
* Phase-0 contract draft for the future framework-owned hosted agent service.
|
|
14
23
|
*/
|
|
15
24
|
export interface AgentContract<TStartInput = void, TRun = unknown, TEvent = unknown, TTerminalState = unknown> {
|
|
25
|
+
serviceName: string;
|
|
16
26
|
agent: Agent;
|
|
27
|
+
server?: AgentServiceServerConfig;
|
|
17
28
|
durableRunSink?: DurableRunSink<TStartInput, TRun, TEvent, TTerminalState>;
|
|
18
29
|
}
|
|
19
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../../src/src/agent/agent-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC7B,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO;IAExB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3E;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAC5B,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO;IAExB,KAAK,EAAE,KAAK,CAAC;IACb,cAAc,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CACrC,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO;IAExB,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;CACpE;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO,EAExB,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,GACjE,sBAAsB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAGnE"}
|
|
1
|
+
{"version":3,"file":"agent-service.d.ts","sourceRoot":"","sources":["../../../src/src/agent/agent-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,cAAc,CAC7B,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO;IAExB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC5E,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3E;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAC5B,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO;IAExB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CACrC,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO;IAExB,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;CACpE;AAKD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,GAAG,IAAI,EAClB,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,OAAO,EAChB,cAAc,GAAG,OAAO,EAExB,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,GACjE,sBAAsB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,CAGnE"}
|
package/esm/src/agent/index.d.ts
CHANGED
|
@@ -84,7 +84,7 @@ export { getTextFromParts, getToolArguments, hasArgs, hasInput } from "./types.j
|
|
|
84
84
|
export { BufferMemory, ConversationMemory, createMemory, createRedisMemory, type Memory, type MemoryPersistence, type MemoryStats, type RedisClient, RedisMemory, type RedisMemoryConfig, SummaryMemory, } from "./memory/index.js";
|
|
85
85
|
export { agentAsTool, createWorkflow, getAgent, getAgentsAsTools, getAllAgentIds, registerAgent, type WorkflowConfig, type WorkflowResult, type WorkflowStep, } from "./composition/index.js";
|
|
86
86
|
export { agent } from "./factory.js";
|
|
87
|
-
export { type AgentContract, type AgentServiceDefinition, defineAgentService, type DurableRunSink, } from "./agent-service.js";
|
|
87
|
+
export { type AgentContract, type AgentServiceDefinition, type AgentServiceServerConfig, defineAgentService, type DurableRunSink, } from "./agent-service.js";
|
|
88
88
|
export { type AgUiRuntimeHandlerConfig, type AgUiRuntimeHandlerConfigWithAgent, type AgUiRuntimeHandlerExecute, type AgUiRuntimeHandlerExecuteInput, type AgUiRuntimeHandlerOptions, type AgUiRuntimeLifecycleContext, createAgUiRuntimeHandler, } from "./ag-ui-runtime-handler.js";
|
|
89
89
|
export { type AgUiRuntimeContextItem, AgUiRuntimeContextItemSchema, type AgUiRuntimeInjectedTool, AgUiRuntimeInjectedToolSchema, type AgUiRuntimeMessage, AgUiRuntimeMessageSchema, type AgUiRuntimeRequest, AgUiRuntimeRequestSchema, normalizeAgUiBrowserRuntimeRequest, parseAgUiRuntimeRequest, parseAgUiRuntimeRequestOrError, } from "./runtime-ag-ui-contract.js";
|
|
90
90
|
export { normalizeAgUiRuntimeMessages } from "./ag-ui-runtime-support.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/agent/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/agent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,4 +18,5 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import "../../_dnt.polyfills.js";
|
|
20
20
|
export { type CommandJob, type CommandJobHeartbeatStatus, type CommandJobOutput, type CommandJobStatus, type ExecOptions, type ExecResult, type ExecStreamEvent, Sandbox, type SandboxListOptions, type SandboxListResult, type SandboxOptions, type SandboxSession, } from "./sandbox.js";
|
|
21
|
+
export { LazySandbox, type LazySandboxOptions } from "./lazy-sandbox.js";
|
|
21
22
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/esm/src/sandbox/index.js
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { type CommandJob, type CommandJobOutput, type ExecOptions, type ExecResult, type ExecStreamEvent, type SandboxOptions } from "./sandbox.js";
|
|
2
|
+
export interface LazySandboxOptions extends SandboxOptions {
|
|
3
|
+
getProjectId?: () => string | null | undefined;
|
|
4
|
+
startupTimeoutMs?: number;
|
|
5
|
+
pollIntervalMs?: number;
|
|
6
|
+
heartbeatIntervalMs?: number;
|
|
7
|
+
heartbeatGraceMs?: number;
|
|
8
|
+
}
|
|
9
|
+
/** Lazily provisions sandbox sessions and keeps them alive while in use. */
|
|
10
|
+
export declare class LazySandbox {
|
|
11
|
+
private readonly apiUrl;
|
|
12
|
+
private readonly authToken;
|
|
13
|
+
private readonly getProjectId;
|
|
14
|
+
private readonly startupTimeoutMs;
|
|
15
|
+
private readonly pollIntervalMs;
|
|
16
|
+
private readonly heartbeatIntervalMs;
|
|
17
|
+
private readonly heartbeatGraceMs;
|
|
18
|
+
private endpoint;
|
|
19
|
+
private sessionId;
|
|
20
|
+
private sessionProjectId;
|
|
21
|
+
private ensurePromise;
|
|
22
|
+
private closePromise;
|
|
23
|
+
private heartbeatPromise;
|
|
24
|
+
private heartbeatTimer;
|
|
25
|
+
private lastHeartbeatAt;
|
|
26
|
+
constructor(options?: LazySandboxOptions);
|
|
27
|
+
ensure(): Promise<void>;
|
|
28
|
+
executeCommand(command: string, options?: ExecOptions): Promise<ExecResult>;
|
|
29
|
+
executeStream(command: string, options?: ExecOptions): AsyncGenerator<ExecStreamEvent>;
|
|
30
|
+
readFile(path: string): Promise<string>;
|
|
31
|
+
writeFiles(files: Array<{
|
|
32
|
+
path: string;
|
|
33
|
+
content: string;
|
|
34
|
+
}>): Promise<void>;
|
|
35
|
+
startCommandJob(command: string, options?: ExecOptions): Promise<CommandJob>;
|
|
36
|
+
getCommandJob(jobId: string): Promise<CommandJob>;
|
|
37
|
+
getCommandJobOutput(jobId: string): Promise<CommandJobOutput>;
|
|
38
|
+
listCommandJobs(): Promise<CommandJob[]>;
|
|
39
|
+
cancelCommandJob(jobId: string): Promise<CommandJob>;
|
|
40
|
+
heartbeat(force?: boolean): Promise<void>;
|
|
41
|
+
close(): Promise<void>;
|
|
42
|
+
get id(): string | null;
|
|
43
|
+
get url(): string | null;
|
|
44
|
+
get isActive(): boolean;
|
|
45
|
+
private bootstrapSession;
|
|
46
|
+
private resolveReadyEndpoint;
|
|
47
|
+
private touchSession;
|
|
48
|
+
private startHeartbeatLoop;
|
|
49
|
+
private stopHeartbeatLoop;
|
|
50
|
+
private deleteSession;
|
|
51
|
+
private requireEndpoint;
|
|
52
|
+
private resolveProjectId;
|
|
53
|
+
private resetSessionState;
|
|
54
|
+
private authHeaders;
|
|
55
|
+
private jsonHeaders;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=lazy-sandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/lazy-sandbox.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EAErB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,eAAe,EAGpB,KAAK,cAAc,EAEpB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAaD,4EAA4E;AAC5E,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,cAAc,CAAuD;IAC7E,OAAO,CAAC,eAAe,CAAK;gBAEhB,OAAO,GAAE,kBAAuB;IAUtC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBvB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB1E,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,CAAC,eAAe,CAAC;IAwCvF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcvC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1E,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAkB5E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBjD,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuB7D,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBxC,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAiBpD,SAAS,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC5B,IAAI,EAAE,IAAI,MAAM,GAAG,IAAI,CAEtB;IAED,IAAI,GAAG,IAAI,MAAM,GAAG,IAAI,CAEvB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;YAEa,gBAAgB;YAiChB,oBAAoB;YA2BpB,YAAY;IAc1B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,iBAAiB;YAMX,aAAa;IAO3B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;CAMpB"}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
2
|
+
import { REQUEST_ERROR } from "../errors/index.js";
|
|
3
|
+
import { resolveSandboxApiUrl, resolveSandboxAuthToken, waitForSandboxReady, } from "./sandbox.js";
|
|
4
|
+
const DEFAULT_STARTUP_TIMEOUT_MS = 180_000;
|
|
5
|
+
const DEFAULT_POLL_INTERVAL_MS = 2_000;
|
|
6
|
+
const DEFAULT_HEARTBEAT_INTERVAL_MS = 30_000;
|
|
7
|
+
const DEFAULT_HEARTBEAT_GRACE_MS = 5_000;
|
|
8
|
+
/** Lazily provisions sandbox sessions and keeps them alive while in use. */
|
|
9
|
+
export class LazySandbox {
|
|
10
|
+
apiUrl;
|
|
11
|
+
authToken;
|
|
12
|
+
getProjectId;
|
|
13
|
+
startupTimeoutMs;
|
|
14
|
+
pollIntervalMs;
|
|
15
|
+
heartbeatIntervalMs;
|
|
16
|
+
heartbeatGraceMs;
|
|
17
|
+
endpoint = null;
|
|
18
|
+
sessionId = null;
|
|
19
|
+
sessionProjectId = null;
|
|
20
|
+
ensurePromise = null;
|
|
21
|
+
closePromise = null;
|
|
22
|
+
heartbeatPromise = null;
|
|
23
|
+
heartbeatTimer = null;
|
|
24
|
+
lastHeartbeatAt = 0;
|
|
25
|
+
constructor(options = {}) {
|
|
26
|
+
this.apiUrl = resolveSandboxApiUrl(options);
|
|
27
|
+
this.authToken = resolveSandboxAuthToken(options);
|
|
28
|
+
this.getProjectId = options.getProjectId ?? (() => options.projectId);
|
|
29
|
+
this.startupTimeoutMs = options.startupTimeoutMs ?? DEFAULT_STARTUP_TIMEOUT_MS;
|
|
30
|
+
this.pollIntervalMs = options.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
31
|
+
this.heartbeatIntervalMs = options.heartbeatIntervalMs ?? DEFAULT_HEARTBEAT_INTERVAL_MS;
|
|
32
|
+
this.heartbeatGraceMs = options.heartbeatGraceMs ?? DEFAULT_HEARTBEAT_GRACE_MS;
|
|
33
|
+
}
|
|
34
|
+
async ensure() {
|
|
35
|
+
if (this.endpoint)
|
|
36
|
+
return;
|
|
37
|
+
if (this.ensurePromise) {
|
|
38
|
+
await this.ensurePromise;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const promise = this.bootstrapSession();
|
|
42
|
+
this.ensurePromise = promise;
|
|
43
|
+
try {
|
|
44
|
+
await promise;
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
if (this.ensurePromise === promise) {
|
|
48
|
+
this.ensurePromise = null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
async executeCommand(command, options) {
|
|
53
|
+
let stdout = "";
|
|
54
|
+
let stderr = "";
|
|
55
|
+
let exitCode = 1;
|
|
56
|
+
for await (const event of this.executeStream(command, options)) {
|
|
57
|
+
switch (event.type) {
|
|
58
|
+
case "stdout":
|
|
59
|
+
stdout += event.data ?? "";
|
|
60
|
+
break;
|
|
61
|
+
case "stderr":
|
|
62
|
+
stderr += event.data ?? "";
|
|
63
|
+
break;
|
|
64
|
+
case "exit":
|
|
65
|
+
exitCode = event.exitCode ?? 1;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return { stdout, stderr, exitCode };
|
|
70
|
+
}
|
|
71
|
+
async *executeStream(command, options) {
|
|
72
|
+
await this.touchSession();
|
|
73
|
+
const res = await fetch(`${this.requireEndpoint()}/exec`, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: this.jsonHeaders(),
|
|
76
|
+
body: JSON.stringify({ command, ...options }),
|
|
77
|
+
});
|
|
78
|
+
if (!res.ok) {
|
|
79
|
+
throw REQUEST_ERROR.create({ detail: `Exec failed: ${res.status} ${await res.text()}` });
|
|
80
|
+
}
|
|
81
|
+
if (!res.body) {
|
|
82
|
+
throw new Error("Exec response has no body");
|
|
83
|
+
}
|
|
84
|
+
const reader = res.body.getReader();
|
|
85
|
+
const decoder = new TextDecoder();
|
|
86
|
+
let buffer = "";
|
|
87
|
+
while (true) {
|
|
88
|
+
const { done, value } = await reader.read();
|
|
89
|
+
if (done)
|
|
90
|
+
break;
|
|
91
|
+
buffer += decoder.decode(value, { stream: true });
|
|
92
|
+
const lines = buffer.split("\n");
|
|
93
|
+
buffer = lines.pop() ?? "";
|
|
94
|
+
for (const line of lines) {
|
|
95
|
+
if (!line.trim())
|
|
96
|
+
continue;
|
|
97
|
+
yield JSON.parse(line);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (buffer.trim()) {
|
|
101
|
+
yield JSON.parse(buffer);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async readFile(path) {
|
|
105
|
+
await this.touchSession();
|
|
106
|
+
const res = await fetch(`${this.requireEndpoint()}/file?path=${encodeURIComponent(path)}`, {
|
|
107
|
+
headers: this.authHeaders(),
|
|
108
|
+
});
|
|
109
|
+
if (!res.ok) {
|
|
110
|
+
throw REQUEST_ERROR.create({ detail: `Read file failed: ${res.status} ${await res.text()}` });
|
|
111
|
+
}
|
|
112
|
+
return await res.text();
|
|
113
|
+
}
|
|
114
|
+
async writeFiles(files) {
|
|
115
|
+
await this.touchSession();
|
|
116
|
+
const res = await fetch(`${this.requireEndpoint()}/files`, {
|
|
117
|
+
method: "POST",
|
|
118
|
+
headers: this.jsonHeaders(),
|
|
119
|
+
body: JSON.stringify({ files }),
|
|
120
|
+
});
|
|
121
|
+
if (!res.ok) {
|
|
122
|
+
throw REQUEST_ERROR.create({
|
|
123
|
+
detail: `Write files failed: ${res.status} ${await res.text()}`,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async startCommandJob(command, options) {
|
|
128
|
+
await this.touchSession();
|
|
129
|
+
const res = await fetch(`${this.requireEndpoint()}/exec/jobs`, {
|
|
130
|
+
method: "POST",
|
|
131
|
+
headers: this.jsonHeaders(),
|
|
132
|
+
body: JSON.stringify({ command, ...options }),
|
|
133
|
+
});
|
|
134
|
+
if (!res.ok) {
|
|
135
|
+
throw REQUEST_ERROR.create({
|
|
136
|
+
detail: `Start command job failed: ${res.status} ${await res.text()}`,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return mapCommandJob(await res.json());
|
|
140
|
+
}
|
|
141
|
+
async getCommandJob(jobId) {
|
|
142
|
+
await this.ensure();
|
|
143
|
+
const res = await fetch(`${this.requireEndpoint()}/exec/jobs/${jobId}`, {
|
|
144
|
+
headers: this.authHeaders(),
|
|
145
|
+
});
|
|
146
|
+
if (!res.ok) {
|
|
147
|
+
throw REQUEST_ERROR.create({
|
|
148
|
+
detail: `Get command job failed: ${res.status} ${await res.text()}`,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return mapCommandJob(await res.json());
|
|
152
|
+
}
|
|
153
|
+
async getCommandJobOutput(jobId) {
|
|
154
|
+
await this.ensure();
|
|
155
|
+
const res = await fetch(`${this.requireEndpoint()}/exec/jobs/${jobId}/output`, {
|
|
156
|
+
headers: this.authHeaders(),
|
|
157
|
+
});
|
|
158
|
+
if (!res.ok) {
|
|
159
|
+
throw REQUEST_ERROR.create({
|
|
160
|
+
detail: `Get command job output failed: ${res.status} ${await res.text()}`,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
const json = await res.json();
|
|
164
|
+
return {
|
|
165
|
+
...mapCommandJob(json),
|
|
166
|
+
stdout: json.stdout,
|
|
167
|
+
stderr: json.stderr,
|
|
168
|
+
stdoutTruncated: json.stdout_truncated,
|
|
169
|
+
stderrTruncated: json.stderr_truncated,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
async listCommandJobs() {
|
|
173
|
+
await this.ensure();
|
|
174
|
+
const res = await fetch(`${this.requireEndpoint()}/exec/jobs`, {
|
|
175
|
+
headers: this.authHeaders(),
|
|
176
|
+
});
|
|
177
|
+
if (!res.ok) {
|
|
178
|
+
throw REQUEST_ERROR.create({
|
|
179
|
+
detail: `List command jobs failed: ${res.status} ${await res.text()}`,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
const json = await res.json();
|
|
183
|
+
const jobs = Array.isArray(json) ? json : (json.jobs ?? []);
|
|
184
|
+
return jobs.map((job) => mapCommandJob(job));
|
|
185
|
+
}
|
|
186
|
+
async cancelCommandJob(jobId) {
|
|
187
|
+
await this.ensure();
|
|
188
|
+
const res = await fetch(`${this.requireEndpoint()}/exec/jobs/${jobId}/cancel`, {
|
|
189
|
+
method: "POST",
|
|
190
|
+
headers: this.authHeaders(),
|
|
191
|
+
});
|
|
192
|
+
if (!res.ok) {
|
|
193
|
+
throw REQUEST_ERROR.create({
|
|
194
|
+
detail: `Cancel command job failed: ${res.status} ${await res.text()}`,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return mapCommandJob(await res.json());
|
|
198
|
+
}
|
|
199
|
+
async heartbeat(force = false) {
|
|
200
|
+
const currentSessionId = this.sessionId;
|
|
201
|
+
if (!currentSessionId)
|
|
202
|
+
return;
|
|
203
|
+
if (this.heartbeatPromise) {
|
|
204
|
+
await this.heartbeatPromise;
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (!force && this.lastHeartbeatAt > 0 &&
|
|
208
|
+
Date.now() - this.lastHeartbeatAt < this.heartbeatGraceMs) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const promise = (async () => {
|
|
212
|
+
const res = await fetch(`${this.apiUrl}/sandbox-sessions/${currentSessionId}/heartbeat`, {
|
|
213
|
+
method: "POST",
|
|
214
|
+
headers: this.authHeaders(),
|
|
215
|
+
});
|
|
216
|
+
if (!res.ok) {
|
|
217
|
+
if (this.sessionId === currentSessionId) {
|
|
218
|
+
await this.deleteSession(currentSessionId);
|
|
219
|
+
this.resetSessionState(currentSessionId);
|
|
220
|
+
}
|
|
221
|
+
throw new Error(`Sandbox heartbeat failed: ${res.status} ${await res.text()}`);
|
|
222
|
+
}
|
|
223
|
+
this.lastHeartbeatAt = Date.now();
|
|
224
|
+
})();
|
|
225
|
+
this.heartbeatPromise = promise;
|
|
226
|
+
try {
|
|
227
|
+
await promise;
|
|
228
|
+
}
|
|
229
|
+
finally {
|
|
230
|
+
if (this.heartbeatPromise === promise) {
|
|
231
|
+
this.heartbeatPromise = null;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
async close() {
|
|
236
|
+
if (this.closePromise) {
|
|
237
|
+
await this.closePromise;
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
const promise = (async () => {
|
|
241
|
+
if (this.ensurePromise) {
|
|
242
|
+
try {
|
|
243
|
+
await this.ensurePromise;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// startup failure already handled by the caller path
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
const currentSessionId = this.sessionId;
|
|
250
|
+
if (!currentSessionId) {
|
|
251
|
+
this.resetSessionState();
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
await this.deleteSession(currentSessionId);
|
|
255
|
+
this.resetSessionState(currentSessionId);
|
|
256
|
+
})();
|
|
257
|
+
this.closePromise = promise;
|
|
258
|
+
try {
|
|
259
|
+
await promise;
|
|
260
|
+
}
|
|
261
|
+
finally {
|
|
262
|
+
if (this.closePromise === promise) {
|
|
263
|
+
this.closePromise = null;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
get id() {
|
|
268
|
+
return this.sessionId;
|
|
269
|
+
}
|
|
270
|
+
get url() {
|
|
271
|
+
return this.endpoint;
|
|
272
|
+
}
|
|
273
|
+
get isActive() {
|
|
274
|
+
return this.endpoint !== null;
|
|
275
|
+
}
|
|
276
|
+
async bootstrapSession() {
|
|
277
|
+
const projectId = this.resolveProjectId();
|
|
278
|
+
const res = await fetch(`${this.apiUrl}/sandbox-sessions`, {
|
|
279
|
+
method: "POST",
|
|
280
|
+
headers: this.jsonHeaders(),
|
|
281
|
+
body: JSON.stringify(projectId ? { project_id: projectId } : {}),
|
|
282
|
+
});
|
|
283
|
+
if (!res.ok) {
|
|
284
|
+
throw REQUEST_ERROR.create({
|
|
285
|
+
detail: `Failed to create sandbox: ${res.status} ${await res.text()}`,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
const session = await res.json();
|
|
289
|
+
this.sessionId = session.id;
|
|
290
|
+
this.sessionProjectId = projectId;
|
|
291
|
+
try {
|
|
292
|
+
const endpoint = await this.resolveReadyEndpoint(session);
|
|
293
|
+
this.endpoint = endpoint;
|
|
294
|
+
await this.heartbeat(true);
|
|
295
|
+
this.startHeartbeatLoop();
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
const currentSessionId = this.sessionId;
|
|
299
|
+
if (currentSessionId) {
|
|
300
|
+
await this.deleteSession(currentSessionId);
|
|
301
|
+
}
|
|
302
|
+
this.resetSessionState(currentSessionId ?? undefined);
|
|
303
|
+
throw error;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
async resolveReadyEndpoint(session) {
|
|
307
|
+
if (session.status === "running") {
|
|
308
|
+
return session.endpoint;
|
|
309
|
+
}
|
|
310
|
+
await waitForSandboxReady({
|
|
311
|
+
apiUrl: this.apiUrl,
|
|
312
|
+
id: session.id,
|
|
313
|
+
authToken: this.authToken,
|
|
314
|
+
maxWaitMs: this.startupTimeoutMs,
|
|
315
|
+
pollIntervalMs: this.pollIntervalMs,
|
|
316
|
+
});
|
|
317
|
+
const res = await fetch(`${this.apiUrl}/sandbox-sessions/${session.id}`, {
|
|
318
|
+
headers: this.authHeaders(),
|
|
319
|
+
});
|
|
320
|
+
if (!res.ok) {
|
|
321
|
+
throw REQUEST_ERROR.create({
|
|
322
|
+
detail: `Failed to get sandbox: ${res.status} ${await res.text()}`,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
const nextSession = await res.json();
|
|
326
|
+
return nextSession.endpoint;
|
|
327
|
+
}
|
|
328
|
+
async touchSession() {
|
|
329
|
+
const projectId = this.resolveProjectId();
|
|
330
|
+
if (this.endpoint && this.sessionProjectId !== projectId) {
|
|
331
|
+
const currentSessionId = this.sessionId;
|
|
332
|
+
if (currentSessionId) {
|
|
333
|
+
await this.deleteSession(currentSessionId);
|
|
334
|
+
}
|
|
335
|
+
this.resetSessionState(currentSessionId ?? undefined);
|
|
336
|
+
}
|
|
337
|
+
await this.ensure();
|
|
338
|
+
await this.heartbeat();
|
|
339
|
+
}
|
|
340
|
+
startHeartbeatLoop() {
|
|
341
|
+
if (!this.sessionId || this.heartbeatTimer)
|
|
342
|
+
return;
|
|
343
|
+
this.heartbeatTimer = dntShim.setInterval(() => {
|
|
344
|
+
void this.heartbeat().catch(() => {
|
|
345
|
+
// next operation will reprovision
|
|
346
|
+
});
|
|
347
|
+
}, this.heartbeatIntervalMs);
|
|
348
|
+
}
|
|
349
|
+
stopHeartbeatLoop() {
|
|
350
|
+
if (!this.heartbeatTimer)
|
|
351
|
+
return;
|
|
352
|
+
clearInterval(this.heartbeatTimer);
|
|
353
|
+
this.heartbeatTimer = null;
|
|
354
|
+
}
|
|
355
|
+
async deleteSession(sessionId) {
|
|
356
|
+
await fetch(`${this.apiUrl}/sandbox-sessions/${sessionId}`, {
|
|
357
|
+
method: "DELETE",
|
|
358
|
+
headers: this.authHeaders(),
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
requireEndpoint() {
|
|
362
|
+
if (!this.endpoint) {
|
|
363
|
+
throw new Error("Sandbox endpoint unavailable");
|
|
364
|
+
}
|
|
365
|
+
return this.endpoint;
|
|
366
|
+
}
|
|
367
|
+
resolveProjectId() {
|
|
368
|
+
return this.getProjectId() ?? null;
|
|
369
|
+
}
|
|
370
|
+
resetSessionState(sessionId) {
|
|
371
|
+
if (!sessionId || this.sessionId === sessionId) {
|
|
372
|
+
this.stopHeartbeatLoop();
|
|
373
|
+
this.endpoint = null;
|
|
374
|
+
this.sessionId = null;
|
|
375
|
+
this.sessionProjectId = null;
|
|
376
|
+
this.heartbeatPromise = null;
|
|
377
|
+
this.lastHeartbeatAt = 0;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
authHeaders() {
|
|
381
|
+
return { Authorization: `Bearer ${this.authToken}` };
|
|
382
|
+
}
|
|
383
|
+
jsonHeaders() {
|
|
384
|
+
return {
|
|
385
|
+
...this.authHeaders(),
|
|
386
|
+
"Content-Type": "application/json",
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
function mapCommandJob(json) {
|
|
391
|
+
return {
|
|
392
|
+
id: json.id,
|
|
393
|
+
status: json.status,
|
|
394
|
+
exitCode: json.exit_code,
|
|
395
|
+
signal: json.signal,
|
|
396
|
+
startedAt: json.started_at,
|
|
397
|
+
finishedAt: json.finished_at,
|
|
398
|
+
heartbeatStatus: json.heartbeat_status,
|
|
399
|
+
lastHeartbeatAt: json.last_heartbeat_at,
|
|
400
|
+
lastHeartbeatError: json.last_heartbeat_error,
|
|
401
|
+
heartbeatFailureCount: json.heartbeat_failure_count,
|
|
402
|
+
};
|
|
403
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { LazySandbox, type LazySandboxOptions } from "./lazy-sandbox.js";
|
|
1
2
|
/** Options for command execution: working directory, timeout, and environment variables. */
|
|
2
3
|
export interface ExecOptions {
|
|
3
4
|
/** Working directory for the command. */
|
|
@@ -16,6 +17,8 @@ export interface SandboxOptions {
|
|
|
16
17
|
/** Optional project context for project-billed / project-scoped sandbox sessions. */
|
|
17
18
|
projectId?: string;
|
|
18
19
|
}
|
|
20
|
+
export declare function resolveSandboxApiUrl(options?: SandboxOptions): string;
|
|
21
|
+
export declare function resolveSandboxAuthToken(options?: SandboxOptions): string;
|
|
19
22
|
/** Result of a command execution: stdout, stderr, and exit code. */
|
|
20
23
|
export interface ExecResult {
|
|
21
24
|
stdout: string;
|
|
@@ -91,6 +94,8 @@ export declare class Sandbox {
|
|
|
91
94
|
/** List sandbox sessions with optional pagination. */
|
|
92
95
|
static list(options?: SandboxListOptions): Promise<SandboxListResult>;
|
|
93
96
|
private static waitForReady;
|
|
97
|
+
/** Create a lazily-provisioned sandbox session with automatic heartbeats. */
|
|
98
|
+
static createLazy(options?: LazySandboxOptions): LazySandbox;
|
|
94
99
|
/** Execute a bash command in the sandbox and return buffered result. */
|
|
95
100
|
executeCommand(command: string, options?: ExecOptions): Promise<ExecResult>;
|
|
96
101
|
/** Execute a bash command with streaming output (NDJSON). */
|
|
@@ -122,4 +127,11 @@ export declare class Sandbox {
|
|
|
122
127
|
/** Get the sandbox endpoint URL. */
|
|
123
128
|
get url(): string;
|
|
124
129
|
}
|
|
130
|
+
export declare function waitForSandboxReady(input: {
|
|
131
|
+
apiUrl: string;
|
|
132
|
+
id: string;
|
|
133
|
+
authToken: string;
|
|
134
|
+
maxWaitMs?: number;
|
|
135
|
+
pollIntervalMs?: number;
|
|
136
|
+
}): Promise<void>;
|
|
125
137
|
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/sandbox.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/src/sandbox/sandbox.ts"],"names":[],"mappings":"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"}
|