crewx-agent-cli 0.2.2 → 0.2.4

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.
Files changed (53) hide show
  1. package/README.md +80 -5
  2. package/dist/adapters.d.ts +12 -0
  3. package/dist/adapters.d.ts.map +1 -1
  4. package/dist/adapters.js +139 -42
  5. package/dist/adapters.js.map +1 -1
  6. package/dist/api.d.ts +40 -17
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/api.js +187 -11
  9. package/dist/api.js.map +1 -1
  10. package/dist/bridge-watchdog.d.ts +10 -0
  11. package/dist/bridge-watchdog.d.ts.map +1 -0
  12. package/dist/bridge-watchdog.js +45 -0
  13. package/dist/bridge-watchdog.js.map +1 -0
  14. package/dist/config.d.ts +9 -1
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +53 -2
  17. package/dist/config.js.map +1 -1
  18. package/dist/constants.d.ts +6 -1
  19. package/dist/constants.d.ts.map +1 -1
  20. package/dist/constants.js +11 -1
  21. package/dist/constants.js.map +1 -1
  22. package/dist/daemon.d.ts +34 -2
  23. package/dist/daemon.d.ts.map +1 -1
  24. package/dist/daemon.js +495 -100
  25. package/dist/daemon.js.map +1 -1
  26. package/dist/errors.d.ts +4 -1
  27. package/dist/errors.d.ts.map +1 -1
  28. package/dist/errors.js +3 -1
  29. package/dist/errors.js.map +1 -1
  30. package/dist/index.d.ts +3 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +17 -6
  33. package/dist/index.js.map +1 -1
  34. package/dist/join.d.ts +1 -0
  35. package/dist/join.d.ts.map +1 -1
  36. package/dist/join.js +13 -0
  37. package/dist/join.js.map +1 -1
  38. package/dist/outbox.d.ts +22 -0
  39. package/dist/outbox.d.ts.map +1 -0
  40. package/dist/outbox.js +189 -0
  41. package/dist/outbox.js.map +1 -0
  42. package/dist/process-lock.d.ts +31 -0
  43. package/dist/process-lock.d.ts.map +1 -0
  44. package/dist/process-lock.js +272 -0
  45. package/dist/process-lock.js.map +1 -0
  46. package/dist/prompt.d.ts.map +1 -1
  47. package/dist/prompt.js +7 -0
  48. package/dist/prompt.js.map +1 -1
  49. package/dist/runtime-proxy.d.ts +18 -0
  50. package/dist/runtime-proxy.d.ts.map +1 -0
  51. package/dist/runtime-proxy.js +221 -0
  52. package/dist/runtime-proxy.js.map +1 -0
  53. package/package.json +6 -2
package/dist/api.js CHANGED
@@ -1,13 +1,15 @@
1
- import { AssignmentControlResponseSchema, OutboundEventBatchSchema, PollResponseSchema, SessionRegistrationResponseSchema, StatusResponseSchema, } from "crewx-agent-protocol";
2
- import { API_PATH, CLI_NAME, CLI_VERSION } from "./constants.js";
1
+ import { AssignmentControlResponseSchema, ListPageEnvelopeSchema, ListPageRequestSchema, OutboundEventBatchSchema, PollResponseSchema, SessionRegistrationResponseSchema, StatusResponseSchema, } from "crewx-agent-protocol";
2
+ import { API_PATH, CLI_NAME, CLI_VERSION, DEFAULT_API_REQUEST_TIMEOUT_MS, MAX_EVENT_BATCH_BYTES, MAX_API_RESPONSE_BYTES, } from "./constants.js";
3
3
  import { CliError, redactSecrets } from "./errors.js";
4
4
  export class ApiError extends CliError {
5
+ code;
5
6
  status;
6
7
  retryable;
7
8
  retryAfterMs;
8
9
  constructor(message, options = {}) {
9
10
  super(message, 1, options.cause ? { cause: options.cause } : undefined);
10
11
  this.name = "ApiError";
12
+ this.code = options.code ?? "api_error";
11
13
  this.status = options.status;
12
14
  this.retryAfterMs = options.retryAfterMs;
13
15
  this.retryable =
@@ -15,6 +17,12 @@ export class ApiError extends CliError {
15
17
  (options.status === undefined || options.status >= 500);
16
18
  }
17
19
  }
20
+ export function serializeOutboundEventBatch(sessionId, events) {
21
+ return JSON.stringify({
22
+ session_id: sessionId,
23
+ events,
24
+ });
25
+ }
18
26
  export function apiBaseUrl(baseUrl) {
19
27
  const url = new URL(baseUrl);
20
28
  const pathname = url.pathname.replace(/\/+$/, "");
@@ -58,6 +66,54 @@ function retryAfterMilliseconds(value) {
58
66
  return undefined;
59
67
  return Math.max(0, retryAt - Date.now());
60
68
  }
69
+ async function readResponseText(response, maximumBytes = MAX_API_RESPONSE_BYTES) {
70
+ const declaredLength = Number(response.headers.get("content-length") ?? "0");
71
+ if (Number.isFinite(declaredLength) && declaredLength > maximumBytes) {
72
+ throw new ApiError(`CrewX returned a response larger than ${String(maximumBytes)} bytes.`, { code: "response_too_large", retryable: false });
73
+ }
74
+ if (!response.body)
75
+ return "";
76
+ const reader = response.body.getReader();
77
+ const decoder = new TextDecoder("utf-8", { fatal: true });
78
+ let total = 0;
79
+ let text = "";
80
+ try {
81
+ while (true) {
82
+ const part = await reader.read();
83
+ if (part.done)
84
+ break;
85
+ total += part.value.byteLength;
86
+ if (total > maximumBytes) {
87
+ await reader.cancel();
88
+ throw new ApiError(`CrewX returned a response larger than ${String(maximumBytes)} bytes.`, { code: "response_too_large", retryable: false });
89
+ }
90
+ try {
91
+ text += decoder.decode(part.value, { stream: true });
92
+ }
93
+ catch (error) {
94
+ throw new ApiError("CrewX returned invalid UTF-8.", {
95
+ code: "invalid_response_encoding",
96
+ retryable: false,
97
+ cause: error,
98
+ });
99
+ }
100
+ }
101
+ try {
102
+ text += decoder.decode();
103
+ }
104
+ catch (error) {
105
+ throw new ApiError("CrewX returned invalid UTF-8.", {
106
+ code: "invalid_response_encoding",
107
+ retryable: false,
108
+ cause: error,
109
+ });
110
+ }
111
+ return text;
112
+ }
113
+ finally {
114
+ reader.releaseLock();
115
+ }
116
+ }
61
117
  function objectPayload(value, label) {
62
118
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
63
119
  throw new ApiError(`CrewX returned an invalid ${label} response.`, {
@@ -80,14 +136,76 @@ function resources(value, key) {
80
136
  }
81
137
  return items.map((item) => objectPayload(item, key));
82
138
  }
139
+ function resourcePage(value, key) {
140
+ const payload = objectPayload(value, key);
141
+ const items = resources(payload, key);
142
+ const parsed = ListPageEnvelopeSchema.safeParse(payload);
143
+ if (!parsed.success) {
144
+ throw new ApiError(`CrewX returned invalid pagination metadata for ${key}.`, { code: "invalid_pagination", retryable: false });
145
+ }
146
+ return {
147
+ items,
148
+ nextCursor: parsed.data.next_cursor ?? null,
149
+ paginated: parsed.data.next_cursor !== undefined,
150
+ ...(parsed.data.meta ? { meta: parsed.data.meta } : {}),
151
+ };
152
+ }
153
+ const MAX_RESOURCE_LIST_PAGES = 1_000;
154
+ const MAX_RESOURCE_LIST_ITEMS = 10_000;
155
+ const MAX_RESOURCE_LIST_BYTES = 16 * 1024 * 1024;
156
+ async function collectResourcePages(load, pageMethod) {
157
+ const items = [];
158
+ const visited = new Set();
159
+ let cursor = 0;
160
+ let encodedBytes = 2;
161
+ for (let pageNumber = 0; pageNumber < MAX_RESOURCE_LIST_PAGES; pageNumber += 1) {
162
+ if (visited.has(cursor)) {
163
+ throw new ApiError("CrewX returned a repeated list cursor.", {
164
+ code: "invalid_pagination",
165
+ retryable: false,
166
+ });
167
+ }
168
+ visited.add(cursor);
169
+ const page = await load(cursor);
170
+ for (const item of page.items) {
171
+ const serialized = JSON.stringify(item);
172
+ const itemBytes = Buffer.byteLength(serialized, "utf8") + (items.length === 0 ? 0 : 1);
173
+ if (items.length >= MAX_RESOURCE_LIST_ITEMS ||
174
+ encodedBytes + itemBytes > MAX_RESOURCE_LIST_BYTES) {
175
+ throw new ApiError(`CrewX list results exceed the safe aggregate limit of ${String(MAX_RESOURCE_LIST_ITEMS)} items or ${String(MAX_RESOURCE_LIST_BYTES)} encoded bytes. Narrow the filters or use ${pageMethod} for explicit page-by-page processing.`, {
176
+ code: "narrow_filters_or_use_page_method",
177
+ retryable: false,
178
+ });
179
+ }
180
+ items.push(item);
181
+ encodedBytes += itemBytes;
182
+ }
183
+ if (!page.paginated || page.nextCursor === null)
184
+ return items;
185
+ if (page.nextCursor <= cursor) {
186
+ throw new ApiError("CrewX returned a list cursor that did not advance.", {
187
+ code: "invalid_pagination",
188
+ retryable: false,
189
+ });
190
+ }
191
+ cursor = page.nextCursor;
192
+ }
193
+ throw new ApiError("CrewX returned too many list pages. Narrow the list with filters or request individual pages.", { code: "pagination_limit_exceeded", retryable: false });
194
+ }
83
195
  export class CrewXApi {
84
196
  baseUrl;
85
197
  token;
86
198
  fetch;
199
+ requestTimeoutMs;
200
+ maxResponseBytes;
87
201
  constructor(options) {
88
202
  this.baseUrl = apiBaseUrl(options.url);
89
203
  this.token = options.token;
90
204
  this.fetch = options.fetch ?? globalThis.fetch;
205
+ this.requestTimeoutMs =
206
+ options.requestTimeoutMs ?? DEFAULT_API_REQUEST_TIMEOUT_MS;
207
+ this.maxResponseBytes =
208
+ options.maxResponseBytes ?? MAX_API_RESPONSE_BYTES;
91
209
  }
92
210
  async request(path, init = {}) {
93
211
  const url = `${this.baseUrl}${path}`;
@@ -98,16 +216,31 @@ export class CrewXApi {
98
216
  if (init.body !== undefined)
99
217
  headers.set("content-type", "application/json");
100
218
  let response;
219
+ const timeoutSignal = AbortSignal.timeout(this.requestTimeoutMs);
220
+ const requestSignal = init.signal
221
+ ? AbortSignal.any([init.signal, timeoutSignal])
222
+ : timeoutSignal;
101
223
  try {
102
- response = await this.fetch(url, { ...init, headers });
224
+ response = await this.fetch(url, {
225
+ ...init,
226
+ headers,
227
+ // A redirect to another origin must never receive the reusable agent
228
+ // bearer. CrewX API routes are canonical and do not require redirects.
229
+ redirect: "error",
230
+ signal: requestSignal,
231
+ });
103
232
  }
104
233
  catch (error) {
105
- throw new ApiError(redactSecrets(`Unable to reach CrewX at ${this.baseUrl}: ${networkErrorDetail(error)}`, [this.token]), {
234
+ const timedOut = timeoutSignal.aborted && !init.signal?.aborted;
235
+ throw new ApiError(redactSecrets(timedOut
236
+ ? `CrewX request timed out after ${String(this.requestTimeoutMs)}ms at ${this.baseUrl}.`
237
+ : `Unable to reach CrewX at ${this.baseUrl}: ${networkErrorDetail(error)}`, [this.token]), {
238
+ code: timedOut ? "request_timeout" : "network_error",
106
239
  retryable: true,
107
240
  cause: error,
108
241
  });
109
242
  }
110
- const text = await response.text();
243
+ const text = await readResponseText(response, this.maxResponseBytes);
111
244
  let payload;
112
245
  if (text.length > 0) {
113
246
  try {
@@ -123,6 +256,15 @@ export class CrewXApi {
123
256
  : previewResponse(text);
124
257
  const suffix = serverMessage ? `: ${serverMessage}` : "";
125
258
  throw new ApiError(redactSecrets(`CrewX API returned ${response.status} ${response.statusText}${suffix}`, [this.token]), {
259
+ code: response.status === 401
260
+ ? "unauthorized"
261
+ : response.status === 408
262
+ ? "request_timeout"
263
+ : response.status === 429
264
+ ? "rate_limited"
265
+ : response.status >= 500
266
+ ? "server_error"
267
+ : "api_error",
126
268
  status: response.status,
127
269
  retryAfterMs: retryAfterMilliseconds(response.headers.get("retry-after")),
128
270
  retryable: response.status === 408 ||
@@ -173,10 +315,13 @@ export class CrewXApi {
173
315
  });
174
316
  return PollResponseSchema.parse(payload);
175
317
  }
176
- async control(sessionId, assignmentId, signal) {
318
+ async control(sessionId, assignmentId, signal, assignmentEventCursor) {
177
319
  const query = new URLSearchParams({
178
320
  session_id: sessionId,
179
321
  assignment_id: assignmentId,
322
+ ...(assignmentEventCursor !== undefined
323
+ ? { assignment_event_cursor: String(assignmentEventCursor) }
324
+ : {}),
180
325
  });
181
326
  const payload = await this.request(`/control?${query.toString()}`, {
182
327
  method: "GET",
@@ -185,17 +330,28 @@ export class CrewXApi {
185
330
  return AssignmentControlResponseSchema.parse(payload);
186
331
  }
187
332
  async sendEvents(sessionId, events, signal) {
188
- const body = OutboundEventBatchSchema.parse({
333
+ const payload = OutboundEventBatchSchema.parse({
189
334
  session_id: sessionId,
190
335
  events,
191
336
  });
337
+ const body = serializeOutboundEventBatch(payload.session_id, payload.events);
338
+ if (Buffer.byteLength(body, "utf8") > MAX_EVENT_BATCH_BYTES) {
339
+ throw new ApiError(`CrewX event batch exceeds the ${String(MAX_EVENT_BATCH_BYTES)} byte client limit.`, { code: "event_batch_too_large", retryable: false });
340
+ }
192
341
  await this.request("/events", {
193
342
  method: "POST",
194
- body: JSON.stringify(body),
343
+ body,
195
344
  ...(signal ? { signal } : {}),
196
345
  });
197
346
  }
198
347
  async listTasks(options = {}, signal) {
348
+ return collectResourcePages((cursor) => this.listTaskPage({ ...options, cursor, limit: 50 }, signal), "listTaskPage");
349
+ }
350
+ async listTaskPage(options = {}, signal) {
351
+ const page = ListPageRequestSchema.parse({
352
+ cursor: options.cursor,
353
+ limit: options.limit,
354
+ });
199
355
  const query = new URLSearchParams();
200
356
  if (options.status)
201
357
  query.set("status", options.status);
@@ -205,12 +361,14 @@ export class CrewXApi {
205
361
  query.set("include_epics", "1");
206
362
  if (options.search)
207
363
  query.set("search", options.search);
364
+ query.set("cursor", String(page.cursor));
365
+ query.set("limit", String(page.limit));
208
366
  const suffix = query.size > 0 ? `?${query.toString()}` : "";
209
367
  const payload = await this.request(`/tasks${suffix}`, {
210
368
  method: "GET",
211
369
  ...(signal ? { signal } : {}),
212
370
  });
213
- return resources(payload, "tasks");
371
+ return resourcePage(payload, "tasks");
214
372
  }
215
373
  async createTask(input, signal) {
216
374
  const payload = await this.request("/tasks", {
@@ -229,15 +387,24 @@ export class CrewXApi {
229
387
  return resource(payload, "task");
230
388
  }
231
389
  async listDocuments(options = {}, signal) {
390
+ return collectResourcePages((cursor) => this.listDocumentPage({ ...options, cursor, limit: 50 }, signal), "listDocumentPage");
391
+ }
392
+ async listDocumentPage(options = {}, signal) {
393
+ const page = ListPageRequestSchema.parse({
394
+ cursor: options.cursor,
395
+ limit: options.limit,
396
+ });
232
397
  const query = new URLSearchParams();
233
398
  if (options.search)
234
399
  query.set("search", options.search);
400
+ query.set("cursor", String(page.cursor));
401
+ query.set("limit", String(page.limit));
235
402
  const suffix = query.size > 0 ? `?${query.toString()}` : "";
236
403
  const payload = await this.request(`/documents${suffix}`, {
237
404
  method: "GET",
238
405
  ...(signal ? { signal } : {}),
239
406
  });
240
- return resources(payload, "documents");
407
+ return resourcePage(payload, "documents");
241
408
  }
242
409
  async createDocument(input, signal) {
243
410
  const payload = await this.request("/documents", {
@@ -256,6 +423,13 @@ export class CrewXApi {
256
423
  return resource(payload, "document");
257
424
  }
258
425
  async listMemories(options = {}, signal) {
426
+ return collectResourcePages((cursor) => this.listMemoryPage({ ...options, cursor, limit: 50 }, signal), "listMemoryPage");
427
+ }
428
+ async listMemoryPage(options = {}, signal) {
429
+ const page = ListPageRequestSchema.parse({
430
+ cursor: options.cursor,
431
+ limit: options.limit,
432
+ });
259
433
  const query = new URLSearchParams();
260
434
  if (options.search)
261
435
  query.set("search", options.search);
@@ -265,12 +439,14 @@ export class CrewXApi {
265
439
  query.set("scope", options.scope);
266
440
  if (options.channelId !== undefined)
267
441
  query.set("channel_id", String(options.channelId));
442
+ query.set("cursor", String(page.cursor));
443
+ query.set("limit", String(page.limit));
268
444
  const suffix = query.size > 0 ? `?${query.toString()}` : "";
269
445
  const payload = await this.request(`/memories${suffix}`, {
270
446
  method: "GET",
271
447
  ...(signal ? { signal } : {}),
272
448
  });
273
- return resources(payload, "memories");
449
+ return resourcePage(payload, "memories");
274
450
  }
275
451
  async createMemory(input, signal) {
276
452
  const payload = await this.request("/memories", {
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type Readable } from "node:stream";
2
+ export type OpenBridgeWatchdog = (descriptor: number) => Readable;
3
+ /**
4
+ * A Bridge-launched CLI inherits a read-only pipe. The Bridge keeps the write
5
+ * end open for the lifetime of the supervised runner. Kernel EOF is therefore
6
+ * a reliable parent-death signal even when launchd/systemd kills the Bridge
7
+ * without giving it a chance to run cleanup handlers.
8
+ */
9
+ export declare function attachBridgeWatchdog(controller: AbortController, environment?: NodeJS.ProcessEnv, openWatchdog?: OpenBridgeWatchdog): (() => void) | undefined;
10
+ //# sourceMappingURL=bridge-watchdog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-watchdog.d.ts","sourceRoot":"","sources":["../src/bridge-watchdog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,QAAQ,CAAC;AASlE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,eAAe,EAC3B,WAAW,GAAE,MAAM,CAAC,UAAwB,EAC5C,YAAY,GAAE,kBAA8C,GAC3D,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAkC1B"}
@@ -0,0 +1,45 @@
1
+ import { createReadStream } from "node:fs";
2
+ import { CliError } from "./errors.js";
3
+ function defaultOpenBridgeWatchdog(descriptor) {
4
+ return createReadStream("/dev/null", {
5
+ fd: descriptor,
6
+ autoClose: true,
7
+ });
8
+ }
9
+ /**
10
+ * A Bridge-launched CLI inherits a read-only pipe. The Bridge keeps the write
11
+ * end open for the lifetime of the supervised runner. Kernel EOF is therefore
12
+ * a reliable parent-death signal even when launchd/systemd kills the Bridge
13
+ * without giving it a chance to run cleanup handlers.
14
+ */
15
+ export function attachBridgeWatchdog(controller, environment = process.env, openWatchdog = defaultOpenBridgeWatchdog) {
16
+ const rawDescriptor = environment.CREWX_BRIDGE_WATCHDOG_FD;
17
+ if (rawDescriptor === undefined)
18
+ return undefined;
19
+ const descriptor = Number(rawDescriptor);
20
+ if (!Number.isSafeInteger(descriptor) ||
21
+ descriptor < 3 ||
22
+ descriptor > 255) {
23
+ throw new CliError("The CrewX Bridge watchdog descriptor is invalid.", 1, { code: "invalid_bridge_watchdog" });
24
+ }
25
+ const watchdog = openWatchdog(descriptor);
26
+ let detached = false;
27
+ const parentExited = () => {
28
+ if (!detached)
29
+ controller.abort("CrewX Bridge parent exited.");
30
+ };
31
+ watchdog.once("end", parentExited);
32
+ watchdog.once("close", parentExited);
33
+ watchdog.once("error", parentExited);
34
+ watchdog.resume();
35
+ return () => {
36
+ if (detached)
37
+ return;
38
+ detached = true;
39
+ watchdog.removeListener("end", parentExited);
40
+ watchdog.removeListener("close", parentExited);
41
+ watchdog.removeListener("error", parentExited);
42
+ watchdog.destroy();
43
+ };
44
+ }
45
+ //# sourceMappingURL=bridge-watchdog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-watchdog.js","sourceRoot":"","sources":["../src/bridge-watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIvC,SAAS,yBAAyB,CAAC,UAAkB;IACnD,OAAO,gBAAgB,CAAC,WAAW,EAAE;QACnC,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAA2B,EAC3B,cAAiC,OAAO,CAAC,GAAG,EAC5C,eAAmC,yBAAyB;IAE5D,MAAM,aAAa,GAAG,WAAW,CAAC,wBAAwB,CAAC;IAC3D,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;IACzC,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QACjC,UAAU,GAAG,CAAC;QACd,UAAU,GAAG,GAAG,EAChB,CAAC;QACD,MAAM,IAAI,QAAQ,CAChB,kDAAkD,EAClD,CAAC,EACD,EAAE,IAAI,EAAE,yBAAyB,EAAE,CACpC,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,IAAI,CAAC,QAAQ;YAAE,UAAU,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAElB,OAAO,GAAG,EAAE;QACV,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,IAAI,CAAC;QAChB,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7C,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/C,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/C,QAAQ,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
package/dist/config.d.ts CHANGED
@@ -7,13 +7,21 @@ export interface StoredConfig {
7
7
  export interface ResolvedConfig extends StoredConfig {
8
8
  path: string;
9
9
  urlSource: 'environment' | 'file';
10
- tokenSource: 'environment' | 'file';
10
+ tokenSource: 'bridge_pipe' | 'environment' | 'file';
11
11
  }
12
12
  export interface ConfigEnvironment {
13
13
  CREWX_URL?: string | undefined;
14
14
  CREWX_TOKEN?: string | undefined;
15
+ CREWX_RUN_CREDENTIAL_FD?: string | undefined;
15
16
  XDG_CONFIG_HOME?: string | undefined;
16
17
  }
18
+ /**
19
+ * Bridge hands a per-run bearer to the CLI through a one-shot inherited pipe
20
+ * rather than the exec environment. This is defense in depth against
21
+ * accidental environment inheritance and `/proc/<pid>/environ` inspection;
22
+ * it is not a security boundary against code running as the same OS user.
23
+ */
24
+ export declare function readBridgeRunCredential(environment?: ConfigEnvironment): string | undefined;
17
25
  export declare function configPath(environment?: ConfigEnvironment): string;
18
26
  export declare function normalizeUrl(input: string): string;
19
27
  export declare function readStoredConfig(environment?: ConfigEnvironment): Promise<StoredConfig | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;IAClC,WAAW,EAAE,aAAa,GAAG,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,wBAAgB,UAAU,CAAC,WAAW,GAAE,iBAA+B,GAAG,MAAM,CAG/E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBlD;AAsBD,wBAAsB,gBAAgB,CACpC,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAgBnC;AAED,wBAAsB,aAAa,CACjC,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC,cAAc,CAAC,CAsBzB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAChE,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,GAAG,MAAM,CAAC;IAClC,WAAW,EAAE,aAAa,GAAG,aAAa,GAAG,MAAM,CAAC;CACrD;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAID;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,GAAE,iBAA+B,GAC3C,MAAM,GAAG,SAAS,CAkCpB;AAED,wBAAgB,UAAU,CAAC,WAAW,GAAE,iBAA+B,GAAG,MAAM,CAG/E;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwBlD;AAsBD,wBAAsB,gBAAgB,CACpC,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAgBnC;AAED,wBAAsB,aAAa,CACjC,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAChE,WAAW,GAAE,iBAA+B,GAC3C,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
package/dist/config.js CHANGED
@@ -1,7 +1,53 @@
1
+ import { closeSync, readFileSync } from 'node:fs';
1
2
  import { chmod, mkdir, open, readFile, rename } from 'node:fs/promises';
2
3
  import { homedir } from 'node:os';
3
4
  import { dirname, join } from 'node:path';
4
5
  import { CliError } from './errors.js';
6
+ const MAX_RUN_CREDENTIAL_BYTES = 8 * 1024;
7
+ /**
8
+ * Bridge hands a per-run bearer to the CLI through a one-shot inherited pipe
9
+ * rather than the exec environment. This is defense in depth against
10
+ * accidental environment inheritance and `/proc/<pid>/environ` inspection;
11
+ * it is not a security boundary against code running as the same OS user.
12
+ */
13
+ export function readBridgeRunCredential(environment = process.env) {
14
+ const descriptorValue = environment.CREWX_RUN_CREDENTIAL_FD?.trim();
15
+ if (!descriptorValue)
16
+ return undefined;
17
+ if (!/^\d+$/.test(descriptorValue)) {
18
+ throw new CliError('CrewX Bridge supplied an invalid run credential pipe.');
19
+ }
20
+ const descriptor = Number(descriptorValue);
21
+ if (!Number.isSafeInteger(descriptor) || descriptor < 3 || descriptor > 255) {
22
+ throw new CliError('CrewX Bridge supplied an invalid run credential pipe.');
23
+ }
24
+ let raw;
25
+ try {
26
+ raw = readFileSync(descriptor, 'utf8');
27
+ }
28
+ catch (error) {
29
+ throw new CliError('CrewX Bridge could not read the one-shot run credential.', 1, {
30
+ cause: error,
31
+ });
32
+ }
33
+ finally {
34
+ try {
35
+ closeSync(descriptor);
36
+ }
37
+ catch {
38
+ // Reading a pipe that was already closed is a terminal credential error
39
+ // above; closing again must not replace that actionable failure.
40
+ }
41
+ }
42
+ if (Buffer.byteLength(raw, 'utf8') > MAX_RUN_CREDENTIAL_BYTES) {
43
+ throw new CliError('CrewX Bridge supplied an oversized run credential.');
44
+ }
45
+ const token = raw.trim();
46
+ if (!/^crwx_[A-Za-z0-9_-]{8,4091}$/.test(token)) {
47
+ throw new CliError('CrewX Bridge supplied an invalid run credential.');
48
+ }
49
+ return token;
50
+ }
5
51
  export function configPath(environment = process.env) {
6
52
  const base = environment.XDG_CONFIG_HOME?.trim() || join(homedir(), '.config');
7
53
  return join(base, 'crewx', 'config.json');
@@ -69,7 +115,8 @@ export async function readStoredConfig(environment = process.env) {
69
115
  }
70
116
  export async function resolveConfig(environment = process.env) {
71
117
  const environmentUrl = environment.CREWX_URL?.trim();
72
- const environmentToken = environment.CREWX_TOKEN?.trim();
118
+ const bridgeToken = readBridgeRunCredential(environment);
119
+ const environmentToken = bridgeToken ?? environment.CREWX_TOKEN?.trim();
73
120
  const stored = environmentUrl && environmentToken ? undefined : await readStoredConfig(environment);
74
121
  const url = environmentUrl || stored?.url;
75
122
  const token = environmentToken || stored?.token;
@@ -83,7 +130,11 @@ export async function resolveConfig(environment = process.env) {
83
130
  ...(stored?.name ? { name: stored.name } : {}),
84
131
  path: configPath(environment),
85
132
  urlSource: environmentUrl ? 'environment' : 'file',
86
- tokenSource: environmentToken ? 'environment' : 'file',
133
+ tokenSource: bridgeToken
134
+ ? 'bridge_pipe'
135
+ : environmentToken
136
+ ? 'environment'
137
+ : 'file',
87
138
  };
88
139
  }
89
140
  export async function saveConfig(input, environment = process.env) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
1
  export declare const CLI_NAME = "crewx";
2
- export declare const CLI_VERSION = "0.2.2";
2
+ export declare const CLI_VERSION: string;
3
3
  export declare const API_PATH = "/api/agent/v1";
4
4
  export declare const DEFAULT_ADAPTER = "codex";
5
5
  export declare const DEFAULT_POLL_INTERVAL_MS = 2000;
6
+ export declare const DEFAULT_API_REQUEST_TIMEOUT_MS = 20000;
7
+ export declare const MAX_API_RESPONSE_BYTES: number;
8
+ export declare const MAX_BUFFERED_EVENT_BYTES: number;
9
+ export declare const MAX_BUFFERED_EVENTS = 512;
10
+ export declare const MAX_EVENT_BATCH_BYTES: number;
6
11
  export declare const DEFAULT_RUN_TIMEOUT_MS: number;
7
12
  export declare const MAX_AGENT_OUTPUT_BYTES: number;
8
13
  export declare const MAX_EVENT_CONTENT_LENGTH = 32000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AACtD,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,kBAAkB,QAAS,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,QAAQ,UAAU,CAAC;AAChC,eAAO,MAAM,WAAW,QAA0B,CAAC;AACnD,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AACxC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,8BAA8B,QAAS,CAAC;AACrD,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AACtD,eAAO,MAAM,wBAAwB,QAAkB,CAAC;AACxD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,qBAAqB,QAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,QAAkB,CAAC;AACtD,eAAO,MAAM,sBAAsB,QAAmB,CAAC;AACvD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,eAAO,MAAM,kBAAkB,QAAS,CAAC"}