@agentuity/core 0.0.109 → 0.0.111

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/AGENTS.md CHANGED
@@ -47,6 +47,7 @@ src/
47
47
 
48
48
  - No test framework configured yet
49
49
  - When adding tests, use Bun's built-in test runner: `bun test`
50
+ - When running tests, prefer using a subagent (Task tool) to avoid context bloat from test output
50
51
 
51
52
  ## Publishing Checklist
52
53
 
@@ -144,6 +144,11 @@ export interface SandboxCreateOptions {
144
144
  * These are installed via `apt install` before executing any commands.
145
145
  */
146
146
  dependencies?: string[];
147
+ /**
148
+ * Optional user-defined metadata to associate with the sandbox.
149
+ * This can be used to store arbitrary key-value data for tracking or identification.
150
+ */
151
+ metadata?: Record<string, unknown>;
147
152
  }
148
153
  /**
149
154
  * A sandbox instance with methods for interaction
@@ -254,6 +259,10 @@ export interface SandboxInfo {
254
259
  * Apt packages installed in the sandbox
255
260
  */
256
261
  dependencies?: string[];
262
+ /**
263
+ * User-defined metadata associated with the sandbox
264
+ */
265
+ metadata?: Record<string, unknown>;
257
266
  }
258
267
  /**
259
268
  * Parameters for listing sandboxes
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/services/sandbox.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEtF;;GAEG;AACH,MAAM,MAAM,eAAe,GACxB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,QAAQ,EAAE,IAAI,CAAC;IAEf;;;;OAIG;IACH,SAAS,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAE/B;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;;;OAIG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;;;OAIG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAErD;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,SAAS,EAAE,WAAW,EAAE,CAAC;IAEzB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC;IAC/E;;OAEG;IACH,OAAO,EAAE;QACR,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;KACtB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE3D;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7C;;;;;OAKG;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEnE;;;;OAIG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;oBACZ,MAAM;sBACJ,MAAM;;;;;;;oBADR,MAAM;sBACJ,MAAM;;;CACjB,CAAC"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/services/sandbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/services/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAuhB3C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,EAGvD,CAAC"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/services/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAkiB3C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC,EAGvD,CAAC"}
@@ -113,7 +113,13 @@ export interface Stream extends WritableStream {
113
113
  */
114
114
  readonly compressed: boolean;
115
115
  /**
116
- * write data to the stream
116
+ * Write data to the stream.
117
+ *
118
+ * Each write call can send up to 5MB of data. For larger payloads, split the data
119
+ * across multiple write calls.
120
+ *
121
+ * @param chunk - The data to write (string, binary, or object that will be JSON-serialized)
122
+ * @throws ServiceException with status 413 if chunk exceeds 5MB
117
123
  */
118
124
  write(chunk: string | Uint8Array | ArrayBuffer | object): Promise<void>;
119
125
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/services/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/services/stream.ts"],"names":[],"mappings":"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"}
@@ -174,7 +174,6 @@ class StreamImpl {
174
174
  });
175
175
  }
176
176
  }
177
- const StreamWriterInitializationError = StructuredError('StreamWriterInitializationError', 'Stream writer is not initialized');
178
177
  const StreamAPIError = StructuredError('StreamAPIError')();
179
178
  /**
180
179
  * Check if compression is available in the current environment.
@@ -187,120 +186,96 @@ const StreamAPIError = StructuredError('StreamAPIError')();
187
186
  function isCompressionAvailable() {
188
187
  return typeof NativeCompressionStream !== 'undefined' && NativeCompressionStream !== null;
189
188
  }
190
- // State object that handles the actual streaming to the backend
191
- // This is used by StreamImpl to manage write operations
189
+ /**
190
+ * State object that handles streaming to the backend using the append API.
191
+ * Each write() call sends data immediately via a separate HTTP POST request,
192
+ * enabling real-time streaming without buffering issues.
193
+ */
192
194
  class UnderlyingSinkState {
193
195
  adapter;
194
- abortController = null;
195
- writer = null;
196
- writable = null;
197
- putRequestPromise = null;
198
196
  total = 0;
199
197
  closed = false;
200
198
  url;
201
199
  props;
202
200
  compressionEnabled = false;
201
+ writable = null;
203
202
  constructor(url, adapter, props) {
204
203
  this.url = url;
205
204
  this.adapter = adapter;
206
205
  this.props = props;
207
206
  }
208
207
  async start() {
209
- // Create AbortController for the fetch request
210
- this.abortController = new AbortController();
211
- // Create a pass-through WritableStream that writes to a ReadableStream
212
- // Use native streams captured at module load to avoid polyfill interference
213
- let readableController;
214
- const readable = new NativeReadableStream({
215
- start: (controller) => {
216
- readableController = controller;
217
- },
218
- });
219
- // Create a WritableStream that pushes chunks to the ReadableStream
208
+ // Check if compression is enabled and available
209
+ this.compressionEnabled = !!(this.props?.compress && isCompressionAvailable());
210
+ // Create a WritableStream that wraps our append-based write
220
211
  this.writable = new NativeWritableStream({
221
- write: (chunk) => {
222
- readableController.enqueue(chunk);
223
- this.total += chunk.length;
212
+ write: async (chunk) => {
213
+ await this.write(chunk);
224
214
  },
225
- close: () => {
226
- readableController.close();
215
+ close: async () => {
216
+ await this.close();
227
217
  },
228
- abort: (reason) => {
229
- readableController.error(reason);
218
+ abort: async (reason) => {
219
+ await this.abort(reason);
230
220
  },
231
221
  });
232
- // If compression is enabled and available, pipe through gzip
233
- // Gracefully skip compression if CompressionStream is not available
234
- let bodyStream = readable;
235
- this.compressionEnabled = !!(this.props?.compress && isCompressionAvailable());
236
- if (this.compressionEnabled) {
237
- const compressionStream = new NativeCompressionStream('gzip');
238
- bodyStream = readable.pipeThrough(compressionStream);
239
- }
240
- // Start the PUT request with the readable stream as body
241
- const headers = {
242
- 'Content-Type': this.props?.contentType || 'application/octet-stream',
243
- };
244
- if (this.compressionEnabled) {
245
- headers['Content-Encoding'] = 'gzip';
246
- }
247
- this.putRequestPromise = this.adapter.invoke(this.url, {
248
- method: 'PUT',
249
- headers,
250
- body: bodyStream,
251
- signal: this.abortController.signal,
252
- duplex: 'half',
253
- });
254
- // Acquire writer immediately to prevent race conditions in concurrent write() calls
255
- this.writer = this.writable.getWriter();
256
222
  return this.writable;
257
223
  }
258
224
  async write(chunk) {
259
- if (!this.writer) {
260
- throw new StreamWriterInitializationError();
225
+ if (this.closed) {
226
+ return;
227
+ }
228
+ // Note: For append-based streaming, we don't compress individual chunks
229
+ // because each would become a separate gzip stream that can't be concatenated.
230
+ // Instead, compression is handled server-side during the complete phase.
231
+ this.total += chunk.length;
232
+ // Send the chunk immediately via POST to /append endpoint
233
+ const appendUrl = `${this.url}/append`;
234
+ const signal = AbortSignal.timeout(30_000);
235
+ const res = await this.adapter.invoke(appendUrl, {
236
+ method: 'POST',
237
+ headers: {
238
+ 'Content-Type': 'application/octet-stream',
239
+ },
240
+ body: chunk,
241
+ signal,
242
+ });
243
+ if (!res.ok) {
244
+ throw new StreamAPIError({
245
+ status: res.response.status,
246
+ message: `Append request failed: ${res.response.status} ${res.response.statusText}`,
247
+ });
261
248
  }
262
- await this.writer.write(chunk);
263
249
  }
264
250
  async close() {
265
251
  if (this.closed) {
266
252
  return;
267
253
  }
268
254
  this.closed = true;
269
- if (this.writer) {
270
- await this.writer.close();
271
- this.writer = null;
272
- }
273
- // Wait for the PUT request to complete
274
- if (this.putRequestPromise) {
275
- try {
276
- const res = await this.putRequestPromise;
277
- if (!res.ok) {
278
- throw new StreamAPIError({
279
- status: res.response.status,
280
- message: `PUT request failed: ${res.response.status} ${res.response.statusText}`,
281
- });
282
- }
283
- }
284
- catch (error) {
285
- if (error instanceof Error && error.name !== 'AbortError') {
286
- throw error;
287
- }
288
- }
289
- this.putRequestPromise = null;
290
- }
291
- this.abortController = null;
292
- }
293
- async abort(reason) {
294
- if (this.writer) {
295
- await this.writer.abort(reason);
296
- this.writer = null;
255
+ // Call the complete endpoint to finalize the stream
256
+ // Pass compress flag to request server-side compression
257
+ const completeUrl = `${this.url}/complete`;
258
+ const signal = AbortSignal.timeout(60_000); // Longer timeout for compression
259
+ const headers = {};
260
+ if (this.compressionEnabled) {
261
+ headers['X-Compress'] = 'gzip';
297
262
  }
298
- // Abort the fetch request
299
- if (this.abortController) {
300
- this.abortController.abort(reason);
301
- this.abortController = null;
263
+ const res = await this.adapter.invoke(completeUrl, {
264
+ method: 'POST',
265
+ headers,
266
+ signal,
267
+ });
268
+ if (!res.ok) {
269
+ throw new StreamAPIError({
270
+ status: res.response.status,
271
+ message: `Complete request failed: ${res.response.status} ${res.response.statusText}`,
272
+ });
302
273
  }
303
- this.putRequestPromise = null;
274
+ }
275
+ async abort(_reason) {
276
+ this.closed = true;
277
+ // For append-based streaming, abort is a no-op since each request is independent
278
+ // The stream will simply be incomplete if not all chunks were sent
304
279
  }
305
280
  }
306
281
  const StreamNameInvalidError = StructuredError('StreamNameInvalidError', 'Stream name must be between 1 and 254 characters');
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/services/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/services/stream.ts"],"names":[],"mappings":"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"}
package/dist/string.d.ts CHANGED
@@ -4,12 +4,14 @@
4
4
  /**
5
5
  * Convert a string to camelCase
6
6
  * @param str - The string to convert (can contain dashes, underscores, or spaces)
7
- * @returns The camelCase version of the string
7
+ * @returns The camelCase version of the string (always a valid JS/TS identifier)
8
8
  * @example
9
9
  * toCamelCase('my-agent') // 'myAgent'
10
10
  * toCamelCase('my_agent') // 'myAgent'
11
11
  * toCamelCase('my agent') // 'myAgent'
12
12
  * toCamelCase('my--multiple--dashes') // 'myMultipleDashes'
13
+ * toCamelCase('123-agent') // '_123Agent' (prefixed to make valid identifier)
14
+ * toCamelCase('123') // '_123' (prefixed to make valid identifier)
13
15
  */
14
16
  export declare function toCamelCase(str: string): string;
15
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD"}
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD"}
package/dist/string.js CHANGED
@@ -4,17 +4,21 @@
4
4
  /**
5
5
  * Convert a string to camelCase
6
6
  * @param str - The string to convert (can contain dashes, underscores, or spaces)
7
- * @returns The camelCase version of the string
7
+ * @returns The camelCase version of the string (always a valid JS/TS identifier)
8
8
  * @example
9
9
  * toCamelCase('my-agent') // 'myAgent'
10
10
  * toCamelCase('my_agent') // 'myAgent'
11
11
  * toCamelCase('my agent') // 'myAgent'
12
12
  * toCamelCase('my--multiple--dashes') // 'myMultipleDashes'
13
+ * toCamelCase('123-agent') // '_123Agent' (prefixed to make valid identifier)
14
+ * toCamelCase('123') // '_123' (prefixed to make valid identifier)
13
15
  */
14
16
  export function toCamelCase(str) {
15
- return str
17
+ const result = str
16
18
  .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))
17
19
  .replace(/^(.)/, (char) => char.toLowerCase());
20
+ // Prefix with underscore if result starts with a digit (invalid JS/TS identifier)
21
+ return /^\d/.test(result) ? `_${result}` : result;
18
22
  }
19
23
  /**
20
24
  * Convert a string to PascalCase
@@ -1 +1 @@
1
- {"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACtC,OAAO,GAAG;SACR,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACtE,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACtC,MAAM,MAAM,GAAG,GAAG;SAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACtE,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAEhD,kFAAkF;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/core",
3
- "version": "0.0.109",
3
+ "version": "0.0.111",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Agentuity employees and contributors",
6
6
  "type": "module",
@@ -29,10 +29,10 @@
29
29
  "prepublishOnly": "bun run clean && bun run build"
30
30
  },
31
31
  "dependencies": {
32
- "zod": "^4.1.12"
32
+ "zod": "^4.3.5"
33
33
  },
34
34
  "devDependencies": {
35
- "@agentuity/test-utils": "0.0.109",
35
+ "@agentuity/test-utils": "0.0.111",
36
36
  "@types/bun": "latest",
37
37
  "bun-types": "latest",
38
38
  "typescript": "^5.9.0"
@@ -178,6 +178,12 @@ export interface SandboxCreateOptions {
178
178
  * These are installed via `apt install` before executing any commands.
179
179
  */
180
180
  dependencies?: string[];
181
+
182
+ /**
183
+ * Optional user-defined metadata to associate with the sandbox.
184
+ * This can be used to store arbitrary key-value data for tracking or identification.
185
+ */
186
+ metadata?: Record<string, unknown>;
181
187
  }
182
188
 
183
189
  /**
@@ -309,6 +315,11 @@ export interface SandboxInfo {
309
315
  * Apt packages installed in the sandbox
310
316
  */
311
317
  dependencies?: string[];
318
+
319
+ /**
320
+ * User-defined metadata associated with the sandbox
321
+ */
322
+ metadata?: Record<string, unknown>;
312
323
  }
313
324
 
314
325
  /**
@@ -1,5 +1,5 @@
1
1
  import { safeStringify } from '../json';
2
- import { FetchAdapter, FetchResponse } from './adapter';
2
+ import { FetchAdapter } from './adapter';
3
3
  import { buildUrl, toServiceException } from './_util';
4
4
  import { StructuredError } from '../error';
5
5
 
@@ -145,7 +145,13 @@ export interface Stream extends WritableStream {
145
145
  */
146
146
  readonly compressed: boolean;
147
147
  /**
148
- * write data to the stream
148
+ * Write data to the stream.
149
+ *
150
+ * Each write call can send up to 5MB of data. For larger payloads, split the data
151
+ * across multiple write calls.
152
+ *
153
+ * @param chunk - The data to write (string, binary, or object that will be JSON-serialized)
154
+ * @throws ServiceException with status 413 if chunk exceeds 5MB
149
155
  */
150
156
  write(chunk: string | Uint8Array | ArrayBuffer | object): Promise<void>;
151
157
  /**
@@ -458,11 +464,6 @@ class StreamImpl implements Stream {
458
464
  }
459
465
  }
460
466
 
461
- const StreamWriterInitializationError = StructuredError(
462
- 'StreamWriterInitializationError',
463
- 'Stream writer is not initialized'
464
- );
465
-
466
467
  const StreamAPIError = StructuredError('StreamAPIError')<{ status: number }>();
467
468
 
468
469
  /**
@@ -477,19 +478,19 @@ function isCompressionAvailable(): boolean {
477
478
  return typeof NativeCompressionStream !== 'undefined' && NativeCompressionStream !== null;
478
479
  }
479
480
 
480
- // State object that handles the actual streaming to the backend
481
- // This is used by StreamImpl to manage write operations
481
+ /**
482
+ * State object that handles streaming to the backend using the append API.
483
+ * Each write() call sends data immediately via a separate HTTP POST request,
484
+ * enabling real-time streaming without buffering issues.
485
+ */
482
486
  class UnderlyingSinkState {
483
487
  adapter: FetchAdapter;
484
- abortController: AbortController | null = null;
485
- writer: WritableStreamDefaultWriter<Uint8Array> | null = null;
486
- writable: WritableStream<Uint8Array> | null = null;
487
- putRequestPromise: Promise<FetchResponse<unknown>> | null = null;
488
488
  total = 0;
489
489
  closed = false;
490
490
  url: string;
491
491
  props?: CreateStreamProps;
492
492
  compressionEnabled = false;
493
+ writable: WritableStream<Uint8Array> | null = null;
493
494
 
494
495
  constructor(url: string, adapter: FetchAdapter, props?: CreateStreamProps) {
495
496
  this.url = url;
@@ -498,69 +499,54 @@ class UnderlyingSinkState {
498
499
  }
499
500
 
500
501
  async start(): Promise<WritableStream<Uint8Array>> {
501
- // Create AbortController for the fetch request
502
- this.abortController = new AbortController();
503
-
504
- // Create a pass-through WritableStream that writes to a ReadableStream
505
- // Use native streams captured at module load to avoid polyfill interference
506
- let readableController: ReadableStreamDefaultController<Uint8Array>;
507
- const readable = new NativeReadableStream<Uint8Array>({
508
- start: (controller) => {
509
- readableController = controller;
510
- },
511
- });
502
+ // Check if compression is enabled and available
503
+ this.compressionEnabled = !!(this.props?.compress && isCompressionAvailable());
512
504
 
513
- // Create a WritableStream that pushes chunks to the ReadableStream
505
+ // Create a WritableStream that wraps our append-based write
514
506
  this.writable = new NativeWritableStream<Uint8Array>({
515
- write: (chunk) => {
516
- readableController.enqueue(chunk);
517
- this.total += chunk.length;
507
+ write: async (chunk) => {
508
+ await this.write(chunk);
518
509
  },
519
- close: () => {
520
- readableController.close();
510
+ close: async () => {
511
+ await this.close();
521
512
  },
522
- abort: (reason) => {
523
- readableController.error(reason);
513
+ abort: async (reason) => {
514
+ await this.abort(reason);
524
515
  },
525
516
  });
526
517
 
527
- // If compression is enabled and available, pipe through gzip
528
- // Gracefully skip compression if CompressionStream is not available
529
- let bodyStream: ReadableStream<Uint8Array> = readable;
530
- this.compressionEnabled = !!(this.props?.compress && isCompressionAvailable());
531
- if (this.compressionEnabled) {
532
- const compressionStream = new NativeCompressionStream('gzip');
533
- bodyStream = readable.pipeThrough(compressionStream);
534
- }
535
-
536
- // Start the PUT request with the readable stream as body
537
- const headers: Record<string, string> = {
538
- 'Content-Type': this.props?.contentType || 'application/octet-stream',
539
- };
518
+ return this.writable;
519
+ }
540
520
 
541
- if (this.compressionEnabled) {
542
- headers['Content-Encoding'] = 'gzip';
521
+ async write(chunk: Uint8Array) {
522
+ if (this.closed) {
523
+ return;
543
524
  }
544
525
 
545
- this.putRequestPromise = this.adapter.invoke(this.url, {
546
- method: 'PUT',
547
- headers,
548
- body: bodyStream,
549
- signal: this.abortController.signal,
550
- duplex: 'half',
551
- });
526
+ // Note: For append-based streaming, we don't compress individual chunks
527
+ // because each would become a separate gzip stream that can't be concatenated.
528
+ // Instead, compression is handled server-side during the complete phase.
529
+ this.total += chunk.length;
552
530
 
553
- // Acquire writer immediately to prevent race conditions in concurrent write() calls
554
- this.writer = this.writable.getWriter();
531
+ // Send the chunk immediately via POST to /append endpoint
532
+ const appendUrl = `${this.url}/append`;
533
+ const signal = AbortSignal.timeout(30_000);
555
534
 
556
- return this.writable;
557
- }
535
+ const res = await this.adapter.invoke(appendUrl, {
536
+ method: 'POST',
537
+ headers: {
538
+ 'Content-Type': 'application/octet-stream',
539
+ },
540
+ body: chunk,
541
+ signal,
542
+ });
558
543
 
559
- async write(chunk: Uint8Array) {
560
- if (!this.writer) {
561
- throw new StreamWriterInitializationError();
544
+ if (!res.ok) {
545
+ throw new StreamAPIError({
546
+ status: res.response.status,
547
+ message: `Append request failed: ${res.response.status} ${res.response.statusText}`,
548
+ });
562
549
  }
563
- await this.writer.write(chunk);
564
550
  }
565
551
 
566
552
  async close() {
@@ -569,41 +555,34 @@ class UnderlyingSinkState {
569
555
  }
570
556
  this.closed = true;
571
557
 
572
- if (this.writer) {
573
- await this.writer.close();
574
- this.writer = null;
558
+ // Call the complete endpoint to finalize the stream
559
+ // Pass compress flag to request server-side compression
560
+ const completeUrl = `${this.url}/complete`;
561
+ const signal = AbortSignal.timeout(60_000); // Longer timeout for compression
562
+
563
+ const headers: Record<string, string> = {};
564
+ if (this.compressionEnabled) {
565
+ headers['X-Compress'] = 'gzip';
575
566
  }
576
567
 
577
- // Wait for the PUT request to complete
578
- if (this.putRequestPromise) {
579
- try {
580
- const res = await this.putRequestPromise;
581
- if (!res.ok) {
582
- throw new StreamAPIError({
583
- status: res.response.status,
584
- message: `PUT request failed: ${res.response.status} ${res.response.statusText}`,
585
- });
586
- }
587
- } catch (error) {
588
- if (error instanceof Error && error.name !== 'AbortError') {
589
- throw error;
590
- }
591
- }
592
- this.putRequestPromise = null;
568
+ const res = await this.adapter.invoke(completeUrl, {
569
+ method: 'POST',
570
+ headers,
571
+ signal,
572
+ });
573
+
574
+ if (!res.ok) {
575
+ throw new StreamAPIError({
576
+ status: res.response.status,
577
+ message: `Complete request failed: ${res.response.status} ${res.response.statusText}`,
578
+ });
593
579
  }
594
- this.abortController = null;
595
580
  }
596
- async abort(reason?: unknown) {
597
- if (this.writer) {
598
- await this.writer.abort(reason);
599
- this.writer = null;
600
- }
601
- // Abort the fetch request
602
- if (this.abortController) {
603
- this.abortController.abort(reason);
604
- this.abortController = null;
605
- }
606
- this.putRequestPromise = null;
581
+
582
+ async abort(_reason?: unknown) {
583
+ this.closed = true;
584
+ // For append-based streaming, abort is a no-op since each request is independent
585
+ // The stream will simply be incomplete if not all chunks were sent
607
586
  }
608
587
  }
609
588
 
package/src/string.ts CHANGED
@@ -5,17 +5,22 @@
5
5
  /**
6
6
  * Convert a string to camelCase
7
7
  * @param str - The string to convert (can contain dashes, underscores, or spaces)
8
- * @returns The camelCase version of the string
8
+ * @returns The camelCase version of the string (always a valid JS/TS identifier)
9
9
  * @example
10
10
  * toCamelCase('my-agent') // 'myAgent'
11
11
  * toCamelCase('my_agent') // 'myAgent'
12
12
  * toCamelCase('my agent') // 'myAgent'
13
13
  * toCamelCase('my--multiple--dashes') // 'myMultipleDashes'
14
+ * toCamelCase('123-agent') // '_123Agent' (prefixed to make valid identifier)
15
+ * toCamelCase('123') // '_123' (prefixed to make valid identifier)
14
16
  */
15
17
  export function toCamelCase(str: string): string {
16
- return str
18
+ const result = str
17
19
  .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))
18
20
  .replace(/^(.)/, (char) => char.toLowerCase());
21
+
22
+ // Prefix with underscore if result starts with a digit (invalid JS/TS identifier)
23
+ return /^\d/.test(result) ? `_${result}` : result;
19
24
  }
20
25
 
21
26
  /**