@agentuity/server 1.0.19 → 1.0.21

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.
@@ -26,6 +26,22 @@
26
26
  * connection.close();
27
27
  * ```
28
28
  *
29
+ * @example Resuming from a previous session
30
+ * ```typescript
31
+ * import { createQueueWebSocket } from '@agentuity/server';
32
+ *
33
+ * // Use a previously obtained clientId and lastOffset to resume
34
+ * const connection = createQueueWebSocket({
35
+ * queueName: 'order-processing',
36
+ * baseUrl: 'https://catalyst.agentuity.cloud',
37
+ * clientId: previousClientId,
38
+ * lastOffset: previousOffset,
39
+ * onMessage: (message) => {
40
+ * console.log('Received:', message.id, message.payload);
41
+ * },
42
+ * });
43
+ * ```
44
+ *
29
45
  * @example Async iterator API
30
46
  * ```typescript
31
47
  * import { subscribeToQueue } from '@agentuity/server';
@@ -67,6 +83,10 @@ export interface QueueWebSocketOptions {
67
83
  reconnectDelayMs?: number;
68
84
  /** Maximum reconnection delay in ms (default: 30000). */
69
85
  maxReconnectDelayMs?: number;
86
+ /** Optional client ID from a previous session to resume a subscription. */
87
+ clientId?: string;
88
+ /** Optional last processed offset from a previous session to resume from. */
89
+ lastOffset?: number;
70
90
  }
71
91
  /** Return type from {@link createQueueWebSocket}. */
72
92
  export interface QueueWebSocketConnection {
@@ -89,6 +109,10 @@ export interface SubscribeToQueueOptions {
89
109
  baseUrl: string;
90
110
  /** AbortSignal to stop the subscription. */
91
111
  signal?: AbortSignal;
112
+ /** Optional client ID from a previous session to resume a subscription. */
113
+ clientId?: string;
114
+ /** Optional last processed offset from a previous session to resume from. */
115
+ lastOffset?: number;
92
116
  }
93
117
  /**
94
118
  * Create a WebSocket connection to receive real-time messages from a queue.
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/api/queue/websocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAS1C,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAC5B,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AAEZ,2DAA2D;AAC3D,MAAM,WAAW,qBAAqB;IACrC,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,mCAAmC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qDAAqD;AACrD,MAAM,WAAW,wBAAwB;IACxC,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACvC,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,wBAAwB,CA8M7F;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAuB,gBAAgB,CACtC,OAAO,EAAE,uBAAuB,GAC9B,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CA+ExC"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/api/queue/websocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAS1C,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAC5B,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AAEZ,2DAA2D;AAC3D,MAAM,WAAW,qBAAqB;IACrC,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,mCAAmC;IACnC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,2EAA2E;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,wBAAwB;IACxC,+DAA+D;IAC/D,KAAK,IAAI,IAAI,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACvC,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,wBAAwB,CA8M7F;AAMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAuB,gBAAgB,CACtC,OAAO,EAAE,uBAAuB,GAC9B,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAiFxC"}
@@ -26,6 +26,22 @@
26
26
  * connection.close();
27
27
  * ```
28
28
  *
29
+ * @example Resuming from a previous session
30
+ * ```typescript
31
+ * import { createQueueWebSocket } from '@agentuity/server';
32
+ *
33
+ * // Use a previously obtained clientId and lastOffset to resume
34
+ * const connection = createQueueWebSocket({
35
+ * queueName: 'order-processing',
36
+ * baseUrl: 'https://catalyst.agentuity.cloud',
37
+ * clientId: previousClientId,
38
+ * lastOffset: previousOffset,
39
+ * onMessage: (message) => {
40
+ * console.log('Received:', message.id, message.payload);
41
+ * },
42
+ * });
43
+ * ```
44
+ *
29
45
  * @example Async iterator API
30
46
  * ```typescript
31
47
  * import { subscribeToQueue } from '@agentuity/server';
@@ -109,8 +125,8 @@ export function createQueueWebSocket(options) {
109
125
  let intentionallyClosed = false;
110
126
  let reconnectAttempts = 0;
111
127
  let reconnectTimer = null;
112
- let clientId;
113
- let lastProcessedOffset;
128
+ let clientId = options.clientId;
129
+ let lastProcessedOffset = options.lastOffset;
114
130
  function connect() {
115
131
  if (intentionallyClosed)
116
132
  return;
@@ -330,6 +346,8 @@ export async function* subscribeToQueue(options) {
330
346
  queueName: options.queueName,
331
347
  apiKey: options.apiKey,
332
348
  baseUrl: options.baseUrl,
349
+ clientId: options.clientId,
350
+ lastOffset: options.lastOffset,
333
351
  onMessage: push,
334
352
  onError: (err) => finish(err),
335
353
  onClose: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/queue/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/api/queue/websocket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { type APIClient } from '../api.ts';
2
+ export interface SandboxGetStatusParams {
3
+ sandboxId: string;
4
+ orgId?: string;
5
+ }
6
+ export interface SandboxStatusResult {
7
+ sandboxId: string;
8
+ status: string;
9
+ exitCode?: number;
10
+ }
11
+ /**
12
+ * Retrieves lightweight sandbox status (status + exitCode only).
13
+ * Optimized for the sandbox run flow — backed by Redis for ~1ms response time.
14
+ */
15
+ export declare function sandboxGetStatus(client: APIClient, params: SandboxGetStatusParams): Promise<SandboxStatusResult>;
16
+ //# sourceMappingURL=getStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStatus.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/getStatus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,WAAW,CAAC;AAW9D,MAAM,WAAW,sBAAsB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,sBAAsB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAuB9B"}
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ import { APIResponseSchema } from "../api.js";
3
+ import { API_VERSION, throwSandboxError } from "./util.js";
4
+ const SandboxStatusDataSchema = z.object({
5
+ sandboxId: z.string(),
6
+ status: z.string(),
7
+ exitCode: z.number().optional(),
8
+ });
9
+ const SandboxStatusResponseSchema = APIResponseSchema(SandboxStatusDataSchema);
10
+ /**
11
+ * Retrieves lightweight sandbox status (status + exitCode only).
12
+ * Optimized for the sandbox run flow — backed by Redis for ~1ms response time.
13
+ */
14
+ export async function sandboxGetStatus(client, params) {
15
+ const { sandboxId, orgId } = params;
16
+ const queryParams = new URLSearchParams();
17
+ if (orgId) {
18
+ queryParams.set('orgId', orgId);
19
+ }
20
+ const queryString = queryParams.toString();
21
+ const url = `/sandbox/${API_VERSION}/status/${sandboxId}${queryString ? `?${queryString}` : ''}`;
22
+ const resp = await client.get(url, SandboxStatusResponseSchema);
23
+ if (resp.success) {
24
+ return {
25
+ sandboxId: resp.data.sandboxId,
26
+ status: resp.data.status,
27
+ exitCode: resp.data.exitCode,
28
+ };
29
+ }
30
+ throwSandboxError(resp, { sandboxId });
31
+ }
32
+ //# sourceMappingURL=getStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStatus.js","sourceRoot":"","sources":["../../../src/api/sandbox/getStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAkB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;AAa/E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,MAAiB,EACjB,MAA8B;IAE9B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC;QACX,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,YAAY,WAAW,WAAW,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAEjG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAC5B,GAAG,EACH,2BAA2B,CAC3B,CAAC;IAEF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACN,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC5B,CAAC;IACH,CAAC;IAED,iBAAiB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AACxC,CAAC"}
@@ -18,6 +18,8 @@ export type { ArchiveFormat, DownloadArchiveParams, FileInfo, ListFilesParams, L
18
18
  export { FileInfoSchema, FileToWriteSchema, ListFilesDataSchema, ListFilesResponseSchema, MkDirRequestSchema, MkDirResponseSchema, RmDirRequestSchema, RmDirResponseSchema, RmFileRequestSchema, RmFileResponseSchema, SetEnvDataSchema, SetEnvRequestSchema, SetEnvResponseSchema, sandboxDownloadArchive, sandboxListFiles, sandboxMkDir, sandboxReadFile, sandboxRmDir, sandboxRmFile, sandboxSetEnv, sandboxUploadArchive, sandboxWriteFiles, UploadArchiveResponseSchema, WriteFilesDataSchema, WriteFilesRequestSchema, WriteFilesResponseSchema, } from './files.ts';
19
19
  export type { SandboxGetParams } from './get.ts';
20
20
  export { SandboxAgentInfoSchema, SandboxGetResponseSchema, SandboxInfoDataSchema, SandboxProjectInfoSchema, SandboxResourcesSchema, SandboxUserInfoSchema, sandboxGet, } from './get.ts';
21
+ export type { SandboxGetStatusParams, SandboxStatusResult } from './getStatus.ts';
22
+ export { sandboxGetStatus } from './getStatus.ts';
21
23
  export type { SandboxListParams } from './list.ts';
22
24
  export { ListSandboxesDataSchema, ListSandboxesResponseSchema, SandboxInfoSchema, SandboxOrgInfoSchema, SandboxRuntimeInfoSchema, SandboxSnapshotInfoSchema, SandboxSnapshotOrgInfoSchema, SandboxSnapshotUserInfoSchema, sandboxList, } from './list.ts';
23
25
  export type { ResolvedSandboxInfo } from './resolve.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export { ExecuteDataSchema, ExecuteRequestSchema, ExecuteResponseSchema, sandbox
8
8
  export { ExecutionGetResponseSchema, ExecutionInfoSchema, ExecutionListDataSchema, ExecutionListResponseSchema, executionGet, executionList, } from "./execution.js";
9
9
  export { FileInfoSchema, FileToWriteSchema, ListFilesDataSchema, ListFilesResponseSchema, MkDirRequestSchema, MkDirResponseSchema, RmDirRequestSchema, RmDirResponseSchema, RmFileRequestSchema, RmFileResponseSchema, SetEnvDataSchema, SetEnvRequestSchema, SetEnvResponseSchema, sandboxDownloadArchive, sandboxListFiles, sandboxMkDir, sandboxReadFile, sandboxRmDir, sandboxRmFile, sandboxSetEnv, sandboxUploadArchive, sandboxWriteFiles, UploadArchiveResponseSchema, WriteFilesDataSchema, WriteFilesRequestSchema, WriteFilesResponseSchema, } from "./files.js";
10
10
  export { SandboxAgentInfoSchema, SandboxGetResponseSchema, SandboxInfoDataSchema, SandboxProjectInfoSchema, SandboxResourcesSchema, SandboxUserInfoSchema, sandboxGet, } from "./get.js";
11
+ export { sandboxGetStatus } from "./getStatus.js";
11
12
  export { ListSandboxesDataSchema, ListSandboxesResponseSchema, SandboxInfoSchema, SandboxOrgInfoSchema, SandboxRuntimeInfoSchema, SandboxSnapshotInfoSchema, SandboxSnapshotOrgInfoSchema, SandboxSnapshotUserInfoSchema, sandboxList, } from "./list.js";
12
13
  export { SandboxResolveDataSchema, SandboxResolveError, SandboxResolveResponseSchema, sandboxResolve, } from "./resolve.js";
13
14
  export { sandboxRun } from "./run.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAOjG,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACN,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,GACd,MAAM,cAAc,CAAC;AAOtB,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,aAAa,GACb,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,GACV,MAAM,UAAU,CAAC;AAElB,OAAO,EACN,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,WAAW,GACX,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EACN,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,GACX,MAAM,cAAc,CAAC;AAsBtB,OAAO,EACN,0BAA0B,EAC1B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,cAAc,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,EACN,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,GACb,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/sandbox/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAOjG,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACN,uBAAuB,EACvB,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EACN,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,GACd,MAAM,cAAc,CAAC;AAOtB,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,YAAY,EACZ,aAAa,GACb,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,GACV,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EACN,uBAAuB,EACvB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,6BAA6B,EAC7B,WAAW,GACX,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,EAC5B,cAAc,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EACN,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EACjB,yBAAyB,EACzB,WAAW,GACX,MAAM,cAAc,CAAC;AAsBtB,OAAO,EACN,0BAA0B,EAC1B,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,4BAA4B,EAC5B,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,cAAc,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,EACN,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,GACb,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAK5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAgC3E,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA8L3B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/api/sandbox/run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAwB,MAAM,WAAW,CAAC;AAK5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AA+B3E,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA0M3B"}
@@ -2,9 +2,10 @@ import { PassThrough } from 'node:stream';
2
2
  import { PaymentRequiredError } from "../api.js";
3
3
  import { sandboxCreate } from "./create.js";
4
4
  import { sandboxDestroy } from "./destroy.js";
5
- import { sandboxGet } from "./get.js";
6
- import { ExecutionCancelledError, ExecutionTimeoutError, writeAndDrain } from "./util.js";
5
+ import { sandboxGetStatus } from "./getStatus.js";
6
+ import { ExecutionCancelledError, writeAndDrain } from "./util.js";
7
7
  import { getServiceUrls } from "../../config.js";
8
+ const timingLogsEnabled = false;
8
9
  /**
9
10
  * Creates a Writable stream that captures all chunks to a buffer array
10
11
  * and optionally tees (forwards) them to one or more user-provided streams.
@@ -22,13 +23,11 @@ function createTeeWritable(chunks, ...userStreams) {
22
23
  // Pipe to all provided user streams with proper backpressure handling
23
24
  for (const userStream of userStreams) {
24
25
  if (userStream) {
25
- tee.pipe(userStream);
26
+ tee.pipe(userStream, { end: false });
26
27
  }
27
28
  }
28
29
  return tee;
29
30
  }
30
- const POLL_INTERVAL_MS = 500;
31
- const MAX_POLL_ATTEMPTS = 7200;
32
31
  /**
33
32
  * Creates a sandbox, executes a command, and waits for completion.
34
33
  *
@@ -43,6 +42,8 @@ const MAX_POLL_ATTEMPTS = 7200;
43
42
  export async function sandboxRun(client, params) {
44
43
  const { options, orgId, region, apiKey, signal, stdin, stdout, stderr, logger } = params;
45
44
  const started = Date.now();
45
+ if (timingLogsEnabled)
46
+ console.error(`[TIMING] +0ms: sandbox run started`);
46
47
  let stdinStreamId;
47
48
  let stdinStreamUrl;
48
49
  // If stdin is provided and has data, create a stream for it
@@ -71,6 +72,8 @@ export async function sandboxRun(client, params) {
71
72
  const stdoutStreamUrl = createResponse.stdoutStreamUrl;
72
73
  const stderrStreamUrl = createResponse.stderrStreamUrl;
73
74
  logger?.debug('sandbox created: %s, stdoutUrl: %s, stderrUrl: %s', sandboxId, stdoutStreamUrl ?? 'none', stderrStreamUrl ?? 'none');
75
+ if (timingLogsEnabled)
76
+ console.error(`[TIMING] +${Date.now() - started}ms: sandbox created (${sandboxId})`);
74
77
  const abortController = new AbortController();
75
78
  const streamPromises = [];
76
79
  // Create capture buffers for stdout/stderr
@@ -85,12 +88,11 @@ export async function sandboxRun(client, params) {
85
88
  // Check if stdout and stderr are the same stream (combined output)
86
89
  const isCombinedOutput = stdoutStreamUrl && stderrStreamUrl && stdoutStreamUrl === stderrStreamUrl;
87
90
  if (isCombinedOutput) {
88
- // Stream combined output - capture to stdoutChunks, tee to both user's stdout AND stderr
91
+ // Stream combined output to stdout only to avoid duplicates
89
92
  if (stdoutStreamUrl) {
90
93
  logger?.debug('using combined output stream (stdout === stderr)');
91
- // Tee to both stdout and stderr so both user streams receive real-time data
92
- const teeStream = createTeeWritable(stdoutChunks, stdout, stderr);
93
- const combinedPromise = streamUrlToWritable(stdoutStreamUrl, teeStream, abortController.signal, logger);
94
+ const teeStream = createTeeWritable(stdoutChunks, stdout);
95
+ const combinedPromise = streamUrlToWritable(stdoutStreamUrl, teeStream, abortController.signal, logger, started);
94
96
  streamPromises.push(combinedPromise);
95
97
  }
96
98
  }
@@ -98,82 +100,94 @@ export async function sandboxRun(client, params) {
98
100
  // Start stdout streaming with capture
99
101
  if (stdoutStreamUrl) {
100
102
  const teeStream = createTeeWritable(stdoutChunks, stdout);
101
- const stdoutPromise = streamUrlToWritable(stdoutStreamUrl, teeStream, abortController.signal, logger);
103
+ const stdoutPromise = streamUrlToWritable(stdoutStreamUrl, teeStream, abortController.signal, logger, started);
102
104
  streamPromises.push(stdoutPromise);
103
105
  }
104
106
  // Start stderr streaming with capture
105
107
  if (stderrStreamUrl) {
106
108
  const teeStream = createTeeWritable(stderrChunks, stderr);
107
- const stderrPromise = streamUrlToWritable(stderrStreamUrl, teeStream, abortController.signal, logger);
109
+ const stderrPromise = streamUrlToWritable(stderrStreamUrl, teeStream, abortController.signal, logger, started);
108
110
  streamPromises.push(stderrPromise);
109
111
  }
110
112
  }
111
- // Poll for sandbox completion in parallel with streaming
112
- let attempts = 0;
113
- let finalStatus = null;
114
- let finalExitCode;
115
- while (attempts < MAX_POLL_ATTEMPTS) {
116
- if (signal?.aborted) {
117
- abortController.abort();
118
- throw new ExecutionCancelledError({
119
- message: 'Sandbox execution cancelled',
120
- sandboxId,
121
- });
122
- }
123
- await sleep(POLL_INTERVAL_MS);
124
- attempts++;
125
- try {
126
- const sandboxInfo = await sandboxGet(client, { sandboxId, orgId });
127
- if (sandboxInfo.status === 'terminated') {
128
- finalStatus = 'terminated';
129
- finalExitCode = sandboxInfo.exitCode;
130
- break;
113
+ // Wait for streams to complete Pulse closes streams on sandbox termination (EOF).
114
+ // This is our primary completion signal; no polling needed.
115
+ logger?.debug('waiting for streams to complete...');
116
+ if (streamPromises.length > 0) {
117
+ if (signal) {
118
+ // Race streams against abort signal, cleaning up the listener
119
+ // in all cases so an orphaned reject cannot fire after settlement.
120
+ let onAbort;
121
+ try {
122
+ await Promise.race([
123
+ Promise.allSettled(streamPromises),
124
+ new Promise((_, reject) => {
125
+ onAbort = () => {
126
+ abortController.abort();
127
+ reject(new ExecutionCancelledError({
128
+ message: 'Sandbox execution cancelled',
129
+ sandboxId,
130
+ }));
131
+ };
132
+ if (signal.aborted) {
133
+ onAbort();
134
+ }
135
+ else {
136
+ signal.addEventListener('abort', onAbort, { once: true });
137
+ }
138
+ }),
139
+ ]);
131
140
  }
132
- if (sandboxInfo.status === 'failed') {
133
- finalStatus = 'failed';
134
- finalExitCode = sandboxInfo.exitCode;
135
- break;
141
+ finally {
142
+ if (onAbort && signal) {
143
+ signal.removeEventListener('abort', onAbort);
144
+ }
136
145
  }
137
146
  }
138
- catch {
139
- // Ignore polling errors, continue
140
- continue;
147
+ else {
148
+ await Promise.allSettled(streamPromises);
141
149
  }
142
150
  }
143
- // Sandbox completed - wait for streams to complete naturally (EOF)
144
- // Pulse closes streams when the sandbox terminates, so streams should EOF
145
- // We must wait for streams to fully drain before returning
146
- logger?.debug('waiting for streams to complete...');
147
- await Promise.allSettled(streamPromises);
148
- logger?.debug('streams completed');
151
+ else {
152
+ // No streams available (shouldn't happen for oneshot, but handle defensively).
153
+ // Fall back to a single wait then check.
154
+ logger?.debug('no streams to wait on, checking sandbox status directly');
155
+ }
156
+ if (timingLogsEnabled)
157
+ console.error(`[TIMING] +${Date.now() - started}ms: all streams done, fetching exit code`);
158
+ logger?.debug('streams completed, fetching final status');
159
+ // Stream EOF means the sandbox is done — hadron only closes streams after the
160
+ // container exits. Fetch status once for the exit code; if lifecycle events
161
+ // haven't propagated to Catalyst yet, default to exit code 0.
162
+ let exitCode = 0;
163
+ try {
164
+ const sandboxStatus = await sandboxGetStatus(client, { sandboxId, orgId });
165
+ if (sandboxStatus.exitCode != null) {
166
+ exitCode = sandboxStatus.exitCode;
167
+ }
168
+ else if (sandboxStatus.status === 'failed') {
169
+ exitCode = 1;
170
+ }
171
+ }
172
+ catch {
173
+ // Sandbox may already be destroyed (fire-and-forget teardown).
174
+ // Stream EOF already confirmed execution completed.
175
+ logger?.debug('sandboxGetStatus failed after stream EOF, using default exit code 0');
176
+ }
177
+ if (timingLogsEnabled)
178
+ console.error(`[TIMING] +${Date.now() - started}ms: sandboxGet complete (exit: ${exitCode})`);
149
179
  // Build captured output strings
150
180
  const capturedStdout = Buffer.concat(stdoutChunks).toString('utf-8');
151
- // For combined output, stderr is the same as stdout; otherwise use stderrChunks
152
181
  const capturedStderr = isCombinedOutput
153
182
  ? capturedStdout
154
183
  : Buffer.concat(stderrChunks).toString('utf-8');
155
- if (finalStatus === 'terminated') {
156
- return {
157
- sandboxId,
158
- exitCode: finalExitCode ?? 0,
159
- durationMs: Date.now() - started,
160
- stdout: capturedStdout,
161
- stderr: capturedStderr,
162
- };
163
- }
164
- if (finalStatus === 'failed') {
165
- return {
166
- sandboxId,
167
- exitCode: finalExitCode ?? 1,
168
- durationMs: Date.now() - started,
169
- stdout: capturedStdout,
170
- stderr: capturedStderr,
171
- };
172
- }
173
- throw new ExecutionTimeoutError({
174
- message: 'Sandbox execution polling timed out',
184
+ return {
175
185
  sandboxId,
176
- });
186
+ exitCode,
187
+ durationMs: Date.now() - started,
188
+ stdout: capturedStdout,
189
+ stderr: capturedStderr,
190
+ };
177
191
  }
178
192
  catch (error) {
179
193
  abortController.abort();
@@ -281,28 +295,41 @@ async function streamStdinToUrl(stdin, url, apiKey, signal, logger) {
281
295
  }
282
296
  }
283
297
  }
284
- async function streamUrlToWritable(url, writable, signal, logger) {
298
+ async function streamUrlToWritable(url, writable, signal, logger, started) {
285
299
  try {
286
300
  logger?.debug('fetching stream: %s', url);
287
301
  const response = await fetch(url, { signal });
288
302
  logger?.debug('stream response status: %d', response.status);
303
+ if (timingLogsEnabled && started)
304
+ console.error(`[TIMING] +${Date.now() - started}ms: stream response received (status: ${response.status})`);
289
305
  if (!response.ok || !response.body) {
290
306
  logger?.debug('stream response not ok or no body');
291
307
  return;
292
308
  }
293
309
  const reader = response.body.getReader();
310
+ let firstChunk = true;
294
311
  // Read until EOF - Pulse will block until data is available
295
312
  while (true) {
296
313
  const { done, value } = await reader.read();
297
314
  if (done) {
298
315
  logger?.debug('stream EOF');
316
+ if (timingLogsEnabled && started)
317
+ console.error(`[TIMING] +${Date.now() - started}ms: stream EOF`);
299
318
  break;
300
319
  }
301
320
  if (value) {
321
+ if (firstChunk && started) {
322
+ if (timingLogsEnabled)
323
+ console.error(`[TIMING] +${Date.now() - started}ms: first chunk (${value.length} bytes)`);
324
+ firstChunk = false;
325
+ }
302
326
  logger?.debug('stream chunk: %d bytes', value.length);
303
327
  await writeAndDrain(writable, value);
304
328
  }
305
329
  }
330
+ // Signal end-of-stream to the tee/pipe chain so downstream
331
+ // consumers (e.g. process.stdout pipe) know no more data is coming.
332
+ writable.end();
306
333
  }
307
334
  catch (err) {
308
335
  if (err instanceof Error && err.name === 'AbortError') {
@@ -312,7 +339,4 @@ async function streamUrlToWritable(url, writable, signal, logger) {
312
339
  logger?.debug('stream error: %s', err);
313
340
  }
314
341
  }
315
- function sleep(ms) {
316
- return new Promise((resolve) => setTimeout(resolve, ms));
317
- }
318
342
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/api/sandbox/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/api/sandbox/run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/server",
3
- "version": "1.0.19",
3
+ "version": "1.0.21",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -25,12 +25,12 @@
25
25
  "prepublishOnly": "bun run clean && bun run build"
26
26
  },
27
27
  "dependencies": {
28
- "@agentuity/core": "1.0.19",
29
- "@agentuity/schema": "1.0.19",
28
+ "@agentuity/core": "1.0.21",
29
+ "@agentuity/schema": "1.0.21",
30
30
  "zod": "^4.3.5"
31
31
  },
32
32
  "devDependencies": {
33
- "@agentuity/test-utils": "1.0.19",
33
+ "@agentuity/test-utils": "1.0.21",
34
34
  "@types/bun": "latest",
35
35
  "@types/node": "^22.0.0",
36
36
  "bun-types": "latest",
@@ -26,6 +26,22 @@
26
26
  * connection.close();
27
27
  * ```
28
28
  *
29
+ * @example Resuming from a previous session
30
+ * ```typescript
31
+ * import { createQueueWebSocket } from '@agentuity/server';
32
+ *
33
+ * // Use a previously obtained clientId and lastOffset to resume
34
+ * const connection = createQueueWebSocket({
35
+ * queueName: 'order-processing',
36
+ * baseUrl: 'https://catalyst.agentuity.cloud',
37
+ * clientId: previousClientId,
38
+ * lastOffset: previousOffset,
39
+ * onMessage: (message) => {
40
+ * console.log('Received:', message.id, message.payload);
41
+ * },
42
+ * });
43
+ * ```
44
+ *
29
45
  * @example Async iterator API
30
46
  * ```typescript
31
47
  * import { subscribeToQueue } from '@agentuity/server';
@@ -82,6 +98,10 @@ export interface QueueWebSocketOptions {
82
98
  reconnectDelayMs?: number;
83
99
  /** Maximum reconnection delay in ms (default: 30000). */
84
100
  maxReconnectDelayMs?: number;
101
+ /** Optional client ID from a previous session to resume a subscription. */
102
+ clientId?: string;
103
+ /** Optional last processed offset from a previous session to resume from. */
104
+ lastOffset?: number;
85
105
  }
86
106
 
87
107
  /** Return type from {@link createQueueWebSocket}. */
@@ -106,6 +126,10 @@ export interface SubscribeToQueueOptions {
106
126
  baseUrl: string;
107
127
  /** AbortSignal to stop the subscription. */
108
128
  signal?: AbortSignal;
129
+ /** Optional client ID from a previous session to resume a subscription. */
130
+ clientId?: string;
131
+ /** Optional last processed offset from a previous session to resume from. */
132
+ lastOffset?: number;
109
133
  }
110
134
 
111
135
  // ============================================================================
@@ -192,8 +216,8 @@ export function createQueueWebSocket(options: QueueWebSocketOptions): QueueWebSo
192
216
  let intentionallyClosed = false;
193
217
  let reconnectAttempts = 0;
194
218
  let reconnectTimer: ReturnType<typeof setTimeout> | null = null;
195
- let clientId: string | undefined;
196
- let lastProcessedOffset: number | undefined;
219
+ let clientId: string | undefined = options.clientId;
220
+ let lastProcessedOffset: number | undefined = options.lastOffset;
197
221
 
198
222
  function connect() {
199
223
  if (intentionallyClosed) return;
@@ -440,6 +464,8 @@ export async function* subscribeToQueue(
440
464
  queueName: options.queueName,
441
465
  apiKey: options.apiKey,
442
466
  baseUrl: options.baseUrl,
467
+ clientId: options.clientId,
468
+ lastOffset: options.lastOffset,
443
469
  onMessage: push,
444
470
  onError: (err) => finish(err),
445
471
  onClose: () => {
@@ -0,0 +1,54 @@
1
+ import { z } from 'zod';
2
+ import { type APIClient, APIResponseSchema } from '../api.ts';
3
+ import { API_VERSION, throwSandboxError } from './util.ts';
4
+
5
+ const SandboxStatusDataSchema = z.object({
6
+ sandboxId: z.string(),
7
+ status: z.string(),
8
+ exitCode: z.number().optional(),
9
+ });
10
+
11
+ const SandboxStatusResponseSchema = APIResponseSchema(SandboxStatusDataSchema);
12
+
13
+ export interface SandboxGetStatusParams {
14
+ sandboxId: string;
15
+ orgId?: string;
16
+ }
17
+
18
+ export interface SandboxStatusResult {
19
+ sandboxId: string;
20
+ status: string;
21
+ exitCode?: number;
22
+ }
23
+
24
+ /**
25
+ * Retrieves lightweight sandbox status (status + exitCode only).
26
+ * Optimized for the sandbox run flow — backed by Redis for ~1ms response time.
27
+ */
28
+ export async function sandboxGetStatus(
29
+ client: APIClient,
30
+ params: SandboxGetStatusParams
31
+ ): Promise<SandboxStatusResult> {
32
+ const { sandboxId, orgId } = params;
33
+ const queryParams = new URLSearchParams();
34
+ if (orgId) {
35
+ queryParams.set('orgId', orgId);
36
+ }
37
+ const queryString = queryParams.toString();
38
+ const url = `/sandbox/${API_VERSION}/status/${sandboxId}${queryString ? `?${queryString}` : ''}`;
39
+
40
+ const resp = await client.get<z.infer<typeof SandboxStatusResponseSchema>>(
41
+ url,
42
+ SandboxStatusResponseSchema
43
+ );
44
+
45
+ if (resp.success) {
46
+ return {
47
+ sandboxId: resp.data.sandboxId,
48
+ status: resp.data.status,
49
+ exitCode: resp.data.exitCode,
50
+ };
51
+ }
52
+
53
+ throwSandboxError(resp, { sandboxId });
54
+ }
@@ -95,6 +95,8 @@ export {
95
95
  SandboxUserInfoSchema,
96
96
  sandboxGet,
97
97
  } from './get.ts';
98
+ export type { SandboxGetStatusParams, SandboxStatusResult } from './getStatus.ts';
99
+ export { sandboxGetStatus } from './getStatus.ts';
98
100
  export type { SandboxListParams } from './list.ts';
99
101
  export {
100
102
  ListSandboxesDataSchema,
@@ -4,11 +4,13 @@ import { PassThrough } from 'node:stream';
4
4
  import { APIClient, PaymentRequiredError } from '../api.ts';
5
5
  import { sandboxCreate } from './create.ts';
6
6
  import { sandboxDestroy } from './destroy.ts';
7
- import { sandboxGet } from './get.ts';
8
- import { ExecutionCancelledError, ExecutionTimeoutError, writeAndDrain } from './util.ts';
7
+ import { sandboxGetStatus } from './getStatus.ts';
8
+ import { ExecutionCancelledError, writeAndDrain } from './util.ts';
9
9
  import type { SandboxRunOptions, SandboxRunResult } from '@agentuity/core';
10
10
  import { getServiceUrls } from '../../config.ts';
11
11
 
12
+ const timingLogsEnabled = false;
13
+
12
14
  /**
13
15
  * Creates a Writable stream that captures all chunks to a buffer array
14
16
  * and optionally tees (forwards) them to one or more user-provided streams.
@@ -28,16 +30,13 @@ function createTeeWritable(chunks: Buffer[], ...userStreams: (Writable | undefin
28
30
  // Pipe to all provided user streams with proper backpressure handling
29
31
  for (const userStream of userStreams) {
30
32
  if (userStream) {
31
- tee.pipe(userStream);
33
+ tee.pipe(userStream, { end: false });
32
34
  }
33
35
  }
34
36
 
35
37
  return tee;
36
38
  }
37
39
 
38
- const POLL_INTERVAL_MS = 500;
39
- const MAX_POLL_ATTEMPTS = 7200;
40
-
41
40
  export interface SandboxRunParams {
42
41
  options: SandboxRunOptions;
43
42
  orgId?: string;
@@ -67,6 +66,7 @@ export async function sandboxRun(
67
66
  ): Promise<SandboxRunResult> {
68
67
  const { options, orgId, region, apiKey, signal, stdin, stdout, stderr, logger } = params;
69
68
  const started = Date.now();
69
+ if (timingLogsEnabled) console.error(`[TIMING] +0ms: sandbox run started`);
70
70
 
71
71
  let stdinStreamId: string | undefined;
72
72
  let stdinStreamUrl: string | undefined;
@@ -105,6 +105,8 @@ export async function sandboxRun(
105
105
  stdoutStreamUrl ?? 'none',
106
106
  stderrStreamUrl ?? 'none'
107
107
  );
108
+ if (timingLogsEnabled)
109
+ console.error(`[TIMING] +${Date.now() - started}ms: sandbox created (${sandboxId})`);
108
110
 
109
111
  const abortController = new AbortController();
110
112
  const streamPromises: Promise<void>[] = [];
@@ -131,16 +133,16 @@ export async function sandboxRun(
131
133
  stdoutStreamUrl && stderrStreamUrl && stdoutStreamUrl === stderrStreamUrl;
132
134
 
133
135
  if (isCombinedOutput) {
134
- // Stream combined output - capture to stdoutChunks, tee to both user's stdout AND stderr
136
+ // Stream combined output to stdout only to avoid duplicates
135
137
  if (stdoutStreamUrl) {
136
138
  logger?.debug('using combined output stream (stdout === stderr)');
137
- // Tee to both stdout and stderr so both user streams receive real-time data
138
- const teeStream = createTeeWritable(stdoutChunks, stdout, stderr);
139
+ const teeStream = createTeeWritable(stdoutChunks, stdout);
139
140
  const combinedPromise = streamUrlToWritable(
140
141
  stdoutStreamUrl,
141
142
  teeStream,
142
143
  abortController.signal,
143
- logger
144
+ logger,
145
+ started
144
146
  );
145
147
  streamPromises.push(combinedPromise);
146
148
  }
@@ -152,7 +154,8 @@ export async function sandboxRun(
152
154
  stdoutStreamUrl,
153
155
  teeStream,
154
156
  abortController.signal,
155
- logger
157
+ logger,
158
+ started
156
159
  );
157
160
  streamPromises.push(stdoutPromise);
158
161
  }
@@ -164,87 +167,95 @@ export async function sandboxRun(
164
167
  stderrStreamUrl,
165
168
  teeStream,
166
169
  abortController.signal,
167
- logger
170
+ logger,
171
+ started
168
172
  );
169
173
  streamPromises.push(stderrPromise);
170
174
  }
171
175
  }
172
176
 
173
- // Poll for sandbox completion in parallel with streaming
174
- let attempts = 0;
175
- let finalStatus: 'terminated' | 'failed' | null = null;
176
- let finalExitCode: number | undefined;
177
-
178
- while (attempts < MAX_POLL_ATTEMPTS) {
179
- if (signal?.aborted) {
180
- abortController.abort();
181
- throw new ExecutionCancelledError({
182
- message: 'Sandbox execution cancelled',
183
- sandboxId,
184
- });
185
- }
186
-
187
- await sleep(POLL_INTERVAL_MS);
188
- attempts++;
189
-
190
- try {
191
- const sandboxInfo = await sandboxGet(client, { sandboxId, orgId });
177
+ // Wait for streams to complete Pulse closes streams on sandbox termination (EOF).
178
+ // This is our primary completion signal; no polling needed.
179
+ logger?.debug('waiting for streams to complete...');
192
180
 
193
- if (sandboxInfo.status === 'terminated') {
194
- finalStatus = 'terminated';
195
- finalExitCode = sandboxInfo.exitCode;
196
- break;
181
+ if (streamPromises.length > 0) {
182
+ if (signal) {
183
+ // Race streams against abort signal, cleaning up the listener
184
+ // in all cases so an orphaned reject cannot fire after settlement.
185
+ let onAbort: (() => void) | undefined;
186
+ try {
187
+ await Promise.race([
188
+ Promise.allSettled(streamPromises),
189
+ new Promise<never>((_, reject) => {
190
+ onAbort = () => {
191
+ abortController.abort();
192
+ reject(
193
+ new ExecutionCancelledError({
194
+ message: 'Sandbox execution cancelled',
195
+ sandboxId,
196
+ })
197
+ );
198
+ };
199
+ if (signal.aborted) {
200
+ onAbort();
201
+ } else {
202
+ signal.addEventListener('abort', onAbort, { once: true });
203
+ }
204
+ }),
205
+ ]);
206
+ } finally {
207
+ if (onAbort && signal) {
208
+ signal.removeEventListener('abort', onAbort);
209
+ }
197
210
  }
211
+ } else {
212
+ await Promise.allSettled(streamPromises);
213
+ }
214
+ } else {
215
+ // No streams available (shouldn't happen for oneshot, but handle defensively).
216
+ // Fall back to a single wait then check.
217
+ logger?.debug('no streams to wait on, checking sandbox status directly');
218
+ }
198
219
 
199
- if (sandboxInfo.status === 'failed') {
200
- finalStatus = 'failed';
201
- finalExitCode = sandboxInfo.exitCode;
202
- break;
203
- }
204
- } catch {
205
- // Ignore polling errors, continue
206
- continue;
220
+ if (timingLogsEnabled)
221
+ console.error(`[TIMING] +${Date.now() - started}ms: all streams done, fetching exit code`);
222
+ logger?.debug('streams completed, fetching final status');
223
+
224
+ // Stream EOF means the sandbox is done — hadron only closes streams after the
225
+ // container exits. Fetch status once for the exit code; if lifecycle events
226
+ // haven't propagated to Catalyst yet, default to exit code 0.
227
+ let exitCode = 0;
228
+ try {
229
+ const sandboxStatus = await sandboxGetStatus(client, { sandboxId, orgId });
230
+ if (sandboxStatus.exitCode != null) {
231
+ exitCode = sandboxStatus.exitCode;
232
+ } else if (sandboxStatus.status === 'failed') {
233
+ exitCode = 1;
207
234
  }
235
+ } catch {
236
+ // Sandbox may already be destroyed (fire-and-forget teardown).
237
+ // Stream EOF already confirmed execution completed.
238
+ logger?.debug('sandboxGetStatus failed after stream EOF, using default exit code 0');
208
239
  }
209
240
 
210
- // Sandbox completed - wait for streams to complete naturally (EOF)
211
- // Pulse closes streams when the sandbox terminates, so streams should EOF
212
- // We must wait for streams to fully drain before returning
213
- logger?.debug('waiting for streams to complete...');
214
- await Promise.allSettled(streamPromises);
215
- logger?.debug('streams completed');
241
+ if (timingLogsEnabled)
242
+ console.error(
243
+ `[TIMING] +${Date.now() - started}ms: sandboxGet complete (exit: ${exitCode})`
244
+ );
216
245
 
217
246
  // Build captured output strings
218
247
  const capturedStdout = Buffer.concat(stdoutChunks).toString('utf-8');
219
- // For combined output, stderr is the same as stdout; otherwise use stderrChunks
220
248
  const capturedStderr = isCombinedOutput
221
249
  ? capturedStdout
222
250
  : Buffer.concat(stderrChunks).toString('utf-8');
223
251
 
224
- if (finalStatus === 'terminated') {
225
- return {
226
- sandboxId,
227
- exitCode: finalExitCode ?? 0,
228
- durationMs: Date.now() - started,
229
- stdout: capturedStdout,
230
- stderr: capturedStderr,
231
- };
232
- }
233
-
234
- if (finalStatus === 'failed') {
235
- return {
236
- sandboxId,
237
- exitCode: finalExitCode ?? 1,
238
- durationMs: Date.now() - started,
239
- stdout: capturedStdout,
240
- stderr: capturedStderr,
241
- };
242
- }
243
-
244
- throw new ExecutionTimeoutError({
245
- message: 'Sandbox execution polling timed out',
252
+ return {
246
253
  sandboxId,
247
- });
254
+ exitCode,
255
+ durationMs: Date.now() - started,
256
+ stdout: capturedStdout,
257
+ stderr: capturedStderr,
258
+ };
248
259
  } catch (error) {
249
260
  abortController.abort();
250
261
  try {
@@ -373,12 +384,17 @@ async function streamUrlToWritable(
373
384
  url: string,
374
385
  writable: Writable,
375
386
  signal: AbortSignal,
376
- logger?: Logger
387
+ logger?: Logger,
388
+ started?: number
377
389
  ): Promise<void> {
378
390
  try {
379
391
  logger?.debug('fetching stream: %s', url);
380
392
  const response = await fetch(url, { signal });
381
393
  logger?.debug('stream response status: %d', response.status);
394
+ if (timingLogsEnabled && started)
395
+ console.error(
396
+ `[TIMING] +${Date.now() - started}ms: stream response received (status: ${response.status})`
397
+ );
382
398
 
383
399
  if (!response.ok || !response.body) {
384
400
  logger?.debug('stream response not ok or no body');
@@ -386,20 +402,33 @@ async function streamUrlToWritable(
386
402
  }
387
403
 
388
404
  const reader = response.body.getReader();
405
+ let firstChunk = true;
389
406
 
390
407
  // Read until EOF - Pulse will block until data is available
391
408
  while (true) {
392
409
  const { done, value } = await reader.read();
393
410
  if (done) {
394
411
  logger?.debug('stream EOF');
412
+ if (timingLogsEnabled && started)
413
+ console.error(`[TIMING] +${Date.now() - started}ms: stream EOF`);
395
414
  break;
396
415
  }
397
416
 
398
417
  if (value) {
418
+ if (firstChunk && started) {
419
+ if (timingLogsEnabled)
420
+ console.error(
421
+ `[TIMING] +${Date.now() - started}ms: first chunk (${value.length} bytes)`
422
+ );
423
+ firstChunk = false;
424
+ }
399
425
  logger?.debug('stream chunk: %d bytes', value.length);
400
426
  await writeAndDrain(writable, value);
401
427
  }
402
428
  }
429
+ // Signal end-of-stream to the tee/pipe chain so downstream
430
+ // consumers (e.g. process.stdout pipe) know no more data is coming.
431
+ writable.end();
403
432
  } catch (err) {
404
433
  if (err instanceof Error && err.name === 'AbortError') {
405
434
  logger?.debug('stream aborted');
@@ -408,7 +437,3 @@ async function streamUrlToWritable(
408
437
  logger?.debug('stream error: %s', err);
409
438
  }
410
439
  }
411
-
412
- function sleep(ms: number): Promise<void> {
413
- return new Promise((resolve) => setTimeout(resolve, ms));
414
- }