agent-relay 13.2.0 → 13.4.0

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 (55) hide show
  1. package/README.md +60 -0
  2. package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
  3. package/dist/cli/agent-relay-mcp.js +131 -10
  4. package/dist/cli/agent-relay-mcp.js.map +1 -1
  5. package/dist/cli/commands/agent.d.ts.map +1 -1
  6. package/dist/cli/commands/agent.js +24 -19
  7. package/dist/cli/commands/agent.js.map +1 -1
  8. package/dist/cli/commands/fleet.d.ts.map +1 -1
  9. package/dist/cli/commands/fleet.js +183 -39
  10. package/dist/cli/commands/fleet.js.map +1 -1
  11. package/dist/cli/commands/integration.d.ts.map +1 -1
  12. package/dist/cli/commands/integration.js +81 -7
  13. package/dist/cli/commands/integration.js.map +1 -1
  14. package/dist/cli/commands/local-agent.d.ts.map +1 -1
  15. package/dist/cli/commands/local-agent.js +22 -3
  16. package/dist/cli/commands/local-agent.js.map +1 -1
  17. package/dist/cli/commands/message.d.ts.map +1 -1
  18. package/dist/cli/commands/message.js +111 -29
  19. package/dist/cli/commands/message.js.map +1 -1
  20. package/dist/cli/lib/agent-registration.d.ts +2 -0
  21. package/dist/cli/lib/agent-registration.d.ts.map +1 -1
  22. package/dist/cli/lib/agent-registration.js +2 -2
  23. package/dist/cli/lib/agent-registration.js.map +1 -1
  24. package/dist/cli/lib/agent-removal.d.ts +30 -0
  25. package/dist/cli/lib/agent-removal.d.ts.map +1 -0
  26. package/dist/cli/lib/agent-removal.js +73 -0
  27. package/dist/cli/lib/agent-removal.js.map +1 -0
  28. package/dist/cli/lib/attachments.d.ts +31 -0
  29. package/dist/cli/lib/attachments.d.ts.map +1 -0
  30. package/dist/cli/lib/attachments.js +239 -0
  31. package/dist/cli/lib/attachments.js.map +1 -0
  32. package/dist/cli/lib/fleet-live-agents.d.ts +17 -0
  33. package/dist/cli/lib/fleet-live-agents.d.ts.map +1 -1
  34. package/dist/cli/lib/fleet-live-agents.js +23 -0
  35. package/dist/cli/lib/fleet-live-agents.js.map +1 -1
  36. package/dist/cli/lib/sdk-command.d.ts.map +1 -1
  37. package/dist/cli/lib/sdk-command.js +8 -2
  38. package/dist/cli/lib/sdk-command.js.map +1 -1
  39. package/dist/cli/lib/spawn-liveness.d.ts +50 -0
  40. package/dist/cli/lib/spawn-liveness.d.ts.map +1 -0
  41. package/dist/cli/lib/spawn-liveness.js +184 -0
  42. package/dist/cli/lib/spawn-liveness.js.map +1 -0
  43. package/dist/cli/lib/task-input.d.ts +26 -0
  44. package/dist/cli/lib/task-input.d.ts.map +1 -0
  45. package/dist/cli/lib/task-input.js +102 -0
  46. package/dist/cli/lib/task-input.js.map +1 -0
  47. package/dist/cli/mcp/messaging-tools.d.ts.map +1 -1
  48. package/dist/cli/mcp/messaging-tools.js +136 -34
  49. package/dist/cli/mcp/messaging-tools.js.map +1 -1
  50. package/dist/cli/mcp/request-replay.d.ts +21 -9
  51. package/dist/cli/mcp/request-replay.d.ts.map +1 -1
  52. package/dist/cli/mcp/request-replay.js +58 -9
  53. package/dist/cli/mcp/request-replay.js.map +1 -1
  54. package/dist/index.cjs +200 -6
  55. package/package.json +10 -10
@@ -1,6 +1,7 @@
1
1
  import { InvalidArgumentError } from 'commander';
2
2
  import { addSdkOptions, printJson, runSdk, sdkOptionsFromOpts, withSdkDefaults, } from '../lib/sdk-command.js';
3
3
  import { directMessageDeliveryFailure, directMessageReceipt, messageReadersReceipt, resolveExactAgentName, } from '../lib/message-delivery-receipts.js';
4
+ import { checkAttachment, readAttachment, saveAttachment } from '../lib/attachments.js';
4
5
  function parseLimit(value) {
5
6
  if (!/^\d+$/.test(value)) {
6
7
  throw new InvalidArgumentError('limit must be a positive integer');
@@ -17,9 +18,57 @@ function parseMessageMode(value) {
17
18
  }
18
19
  throw new InvalidArgumentError('mode must be "wait" or "steer"');
19
20
  }
21
+ function collectFile(value, previous = []) {
22
+ return [...previous, value];
23
+ }
24
+ /** The relay's file API; only a custom messaging backend can lack one. */
25
+ function requireFiles(relay) {
26
+ if (!relay.files) {
27
+ throw new Error('This Relay client does not support file attachments.');
28
+ }
29
+ return relay.files;
30
+ }
31
+ /** Upload local files and return the stored files whose ids a message can attach. */
32
+ async function uploadFiles(relay, filePaths) {
33
+ if (!filePaths || filePaths.length === 0)
34
+ return [];
35
+ const files = requireFiles(relay);
36
+ // Check every path before uploading any, so one bad path sends nothing,
37
+ // then read and upload one file at a time to bound memory.
38
+ for (const filePath of filePaths)
39
+ await checkAttachment(filePath);
40
+ const uploaded = [];
41
+ for (const filePath of filePaths) {
42
+ uploaded.push(await files.upload(await readAttachment(filePath)));
43
+ }
44
+ return uploaded;
45
+ }
46
+ function attachmentIds(uploaded) {
47
+ return uploaded.length > 0 ? { attachments: uploaded.map((file) => file.id) } : {};
48
+ }
20
49
  export function registerMessageCommands(program, overrides = {}) {
21
50
  const deps = withSdkDefaults(overrides);
22
51
  const opts = (o) => sdkOptionsFromOpts(o);
52
+ /**
53
+ * Send a DM and print its delivery receipt, exiting non-zero when the
54
+ * recipient could not be verified. Sending stays agent-scoped for
55
+ * attribution, while recipient resolution is a workspace-wide roster read;
56
+ * those credentials stay on independent clients so an ambient/explicit
57
+ * agent token cannot shadow the workspace key supplied alongside it.
58
+ */
59
+ const sendDirectWithReceipt = async (relay, options, input) => {
60
+ const resolvedRecipient = await Promise.resolve()
61
+ .then(() => deps.createWorkspaceRelay(options).agents.list())
62
+ .then((agents) => resolveExactAgentName(agents, input.to))
63
+ .catch(() => undefined);
64
+ const receipt = directMessageReceipt(await relay.messages.direct(input), input.to, input.mode, resolvedRecipient);
65
+ printJson(deps, receipt);
66
+ const failure = directMessageDeliveryFailure(receipt);
67
+ if (failure) {
68
+ deps.error(failure);
69
+ deps.exit(1);
70
+ }
71
+ };
23
72
  const group = program
24
73
  .command('message')
25
74
  .description('Post, read, and react to messages (requires agent token)');
@@ -27,9 +76,12 @@ export function registerMessageCommands(program, overrides = {}) {
27
76
  .command('post')
28
77
  .description('Post a message to a channel')
29
78
  .argument('<channel>', 'Channel name')
30
- .argument('<text>', 'Message text')).action(async (channel, text, o) => {
79
+ .argument('<text>', 'Message text')
80
+ .option('--file <path>', 'Attach a local file (repeatable); an uploaded file may remain stored if sending later fails', collectFile)).action(async (channel, text, o) => {
31
81
  await runSdk(deps, async () => {
32
- printJson(deps, await deps.createAgentRelay(opts(o)).messages.send({ channel, text }));
82
+ const relay = deps.createAgentRelay(opts(o));
83
+ const uploaded = await uploadFiles(relay, o.file);
84
+ printJson(deps, await relay.messages.send({ channel, text, ...attachmentIds(uploaded) }));
33
85
  });
34
86
  });
35
87
  addSdkOptions(group
@@ -80,30 +132,19 @@ export function registerMessageCommands(program, overrides = {}) {
80
132
  .description('Send a direct message to an agent')
81
133
  .argument('<agent>', 'Recipient agent')
82
134
  .argument('<text>', 'Message text')
83
- .option('--mode <mode>', 'wait (default): inject on idle; steer: inject immediately and may interrupt active work', parseMessageMode)).action(async (agent, text, o) => {
135
+ .option('--mode <mode>', 'wait (default): inject on idle; steer: inject immediately and may interrupt active work', parseMessageMode)
136
+ .option('--file <path>', 'Attach a local file (repeatable); an uploaded file may remain stored if sending later fails', collectFile)).action(async (agent, text, o) => {
84
137
  await runSdk(deps, async () => {
85
138
  const mode = o.mode;
86
139
  const options = opts(o);
87
140
  const relay = deps.createAgentRelay(options);
88
- // Sending must remain agent-scoped for attribution, while recipient
89
- // resolution is a workspace-wide roster read. Keep those credentials on
90
- // independent clients so an ambient/explicit agent token cannot shadow
91
- // the workspace key supplied alongside it.
92
- const resolvedRecipient = await Promise.resolve()
93
- .then(() => deps.createWorkspaceRelay(options).agents.list())
94
- .then((agents) => resolveExactAgentName(agents, agent))
95
- .catch(() => undefined);
96
- const receipt = directMessageReceipt(await relay.messages.direct({
141
+ const uploaded = await uploadFiles(relay, o.file);
142
+ await sendDirectWithReceipt(relay, options, {
97
143
  to: agent,
98
144
  text,
99
145
  ...(mode ? { mode } : {}),
100
- }), agent, mode, resolvedRecipient);
101
- printJson(deps, receipt);
102
- const failure = directMessageDeliveryFailure(receipt);
103
- if (failure) {
104
- deps.error(failure);
105
- deps.exit(1);
106
- }
146
+ ...attachmentIds(uploaded),
147
+ });
107
148
  });
108
149
  });
109
150
  addSdkOptions(dm
@@ -121,9 +162,12 @@ export function registerMessageCommands(program, overrides = {}) {
121
162
  .command('send_group')
122
163
  .description('Send a direct message to multiple agents')
123
164
  .argument('<text>', 'Message text')
124
- .requiredOption('--to <agents...>', 'Recipient agents')).action(async (text, o) => {
165
+ .requiredOption('--to <agents...>', 'Recipient agents')
166
+ .option('--file <path>', 'Attach a local file (repeatable); an uploaded file may remain stored if sending later fails', collectFile)).action(async (text, o) => {
125
167
  await runSdk(deps, async () => {
126
- printJson(deps, await deps.createAgentRelay(opts(o)).messages.groupDirect({ participants: o.to, text }));
168
+ const relay = deps.createAgentRelay(opts(o));
169
+ const uploaded = await uploadFiles(relay, o.file);
170
+ printJson(deps, await relay.messages.groupDirect({ participants: o.to, text, ...attachmentIds(uploaded) }));
127
171
  });
128
172
  });
129
173
  // ── reaction subgroup ────────────────────────────────────────────────────
@@ -177,16 +221,54 @@ export function registerMessageCommands(program, overrides = {}) {
177
221
  const file = group.command('file').description('File attachments');
178
222
  addSdkOptions(file
179
223
  .command('upload')
180
- .description('Upload a file as a message attachment')
224
+ .description('Upload a file and send it to a channel or an agent')
181
225
  .argument('<path>', 'File path')
182
- .requiredOption('--channel <channel>', 'Target channel')
183
- .option('--text <text>', 'Accompanying message text', '')).action(async (filePath, o) => {
226
+ .option('--channel <channel>', 'Post the file to this channel')
227
+ .option('--to <agent>', 'Send the file to this agent as a direct message')
228
+ .option('--text <text>', 'Accompanying message text (defaults to the file name)')).action(async (filePath, o) => {
184
229
  await runSdk(deps, async () => {
185
- printJson(deps, await deps.createAgentRelay(opts(o)).messages.send({
186
- channel: o.channel,
187
- text: o.text ?? '',
188
- attachments: [{ type: 'file', path: filePath }],
189
- }));
230
+ const channel = o.channel;
231
+ const to = o.to;
232
+ if (Boolean(channel) === Boolean(to)) {
233
+ throw new Error('Pass exactly one of --channel <channel> or --to <agent>.');
234
+ }
235
+ const options = opts(o);
236
+ const relay = deps.createAgentRelay(options);
237
+ const uploaded = await uploadFiles(relay, [filePath]);
238
+ const text = o.text ?? uploaded[0].filename;
239
+ if (channel) {
240
+ printJson(deps, await relay.messages.send({ channel, text, ...attachmentIds(uploaded) }));
241
+ }
242
+ else {
243
+ await sendDirectWithReceipt(relay, options, { to: to, text, ...attachmentIds(uploaded) });
244
+ }
245
+ });
246
+ });
247
+ addSdkOptions(file
248
+ .command('get')
249
+ .description('Show a stored file, including a short-lived download URL')
250
+ .argument('<fileId>', 'File id')).action(async (fileId, o) => {
251
+ await runSdk(deps, async () => {
252
+ const files = requireFiles(deps.createAgentRelay(opts(o)));
253
+ printJson(deps, await files.get(fileId));
254
+ });
255
+ });
256
+ addSdkOptions(file
257
+ .command('download')
258
+ .description('Download a message attachment to a local file and print its path')
259
+ .argument('<fileId>', 'File id')
260
+ .option('--out <path>', 'Output file, or an existing directory (default: .agent-relay/attachments/<fileId>/)')).action(async (fileId, o) => {
261
+ await runSdk(deps, async () => {
262
+ const files = requireFiles(deps.createAgentRelay(opts(o)));
263
+ const { file: info, data } = await files.download(fileId);
264
+ const target = await saveAttachment(fileId, info.filename, data, o.out);
265
+ printJson(deps, {
266
+ id: info.id,
267
+ filename: info.filename,
268
+ contentType: info.contentType,
269
+ sizeBytes: data.byteLength,
270
+ path: target,
271
+ });
190
272
  });
191
273
  });
192
274
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/cli/commands/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/cli/commands/message.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export declare const DEFAULT_AGENT_REGISTRATION_TIMEOUT_MS = 15000;
2
+ export declare function normalizeTimeoutMs(timeoutMs: number): number;
3
+ export declare function shellQuote(value: string): string;
2
4
  /**
3
5
  * Bound an arbitrary async operation so a hung upstream call cannot hang the
4
6
  * caller forever. `buildTimeoutError` receives the normalized timeout so
@@ -1 +1 @@
1
- {"version":3,"file":"agent-registration.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/agent-registration.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAuB5D;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,iBAAiB,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,KAAK,EACxD,SAAS,SAAwC,GAChD,OAAO,CAAC,CAAC,CAAC,CAaZ;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,EACnD,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,SAAwC,GAChD,OAAO,CAAC,CAAC,CAAC,CAcZ"}
1
+ {"version":3,"file":"agent-registration.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/agent-registration.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qCAAqC,QAAS,CAAC;AAQ5D,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK5D;AAMD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAClC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,iBAAiB,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,KAAK,EACxD,SAAS,SAAwC,GAChD,OAAO,CAAC,CAAC,CAAC,CAaZ;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CAAC,CAAC,EACnD,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,SAAwC,GAChD,OAAO,CAAC,CAAC,CAAC,CAcZ"}
@@ -4,7 +4,7 @@ export const DEFAULT_AGENT_REGISTRATION_TIMEOUT_MS = 15_000;
4
4
  // caller-supplied timeoutMs must not reach it directly — it would turn
5
5
  // "bounded registration" into "registration always times out immediately".
6
6
  const MAX_SETTIMEOUT_DELAY_MS = 2_147_483_647;
7
- function normalizeTimeoutMs(timeoutMs) {
7
+ export function normalizeTimeoutMs(timeoutMs) {
8
8
  if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
9
9
  return DEFAULT_AGENT_REGISTRATION_TIMEOUT_MS;
10
10
  }
@@ -14,7 +14,7 @@ function normalizeTimeoutMs(timeoutMs) {
14
14
  // close the quote, emit an escaped literal quote, reopen. Without this, a
15
15
  // name containing `$(...)` or backticks would execute command substitution
16
16
  // if a user copies the recovery command as-is into a shell.
17
- function shellQuote(value) {
17
+ export function shellQuote(value) {
18
18
  return `'${value.replace(/'/g, `'\\''`)}'`;
19
19
  }
20
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"agent-registration.js","sourceRoot":"","sources":["../../../src/cli/lib/agent-registration.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAE5D,6EAA6E;AAC7E,4EAA4E;AAC5E,uEAAuE;AACvE,2EAA2E;AAC3E,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAE9C,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,2EAA2E;AAC3E,4DAA4D;AAC5D,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAA2B,EAC3B,iBAAwD,EACxD,SAAS,GAAG,qCAAqC;IAEjD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE;YACX,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACtC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAC9F,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAA0B,EAC1B,IAAY,EACZ,SAAS,GAAG,qCAAqC;IAEjD,OAAO,YAAY,CACjB,QAAQ,EACR,CAAC,kBAAkB,EAAE,EAAE;QACrB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,KAAK,CACd,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,kBAAkB,MAAM;YAClH,6CAA6C;YAC7C,8BAA8B,YAAY,6CAA6C;YACvF,8BAA8B,YAAY,4DAA4D,CACzG,CAAC;IACJ,CAAC,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"agent-registration.js","sourceRoot":"","sources":["../../../src/cli/lib/agent-registration.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAE5D,6EAA6E;AAC7E,4EAA4E;AAC5E,uEAAuE;AACvE,2EAA2E;AAC3E,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAE9C,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,qCAAqC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,2EAA2E;AAC3E,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAA2B,EAC3B,iBAAwD,EACxD,SAAS,GAAG,qCAAqC;IAEjD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE;YACX,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACtC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAC9F,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAA0B,EAC1B,IAAY,EACZ,SAAS,GAAG,qCAAqC;IAEjD,OAAO,YAAY,CACjB,QAAQ,EACR,CAAC,kBAAkB,EAAE,EAAE;QACrB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,KAAK,CACd,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,4BAA4B,kBAAkB,MAAM;YAClH,6CAA6C;YAC7C,8BAA8B,YAAY,6CAA6C;YACvF,8BAA8B,YAAY,4DAA4D,CACzG,CAAC;IACJ,CAAC,EACD,SAAS,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ export declare const DEFAULT_REMOVAL_WAIT_TIMEOUT_MS = 30000;
2
+ export declare const REMOVAL_POLL_INTERVAL_MS = 500;
3
+ export declare function isNotFoundError(error: unknown): boolean;
4
+ /**
5
+ * Parse `--wait-timeout` as whole milliseconds within the timer limit; reject
6
+ * what the wait would otherwise silently replace with its default.
7
+ */
8
+ export declare function parseRemovalWaitTimeout(value: unknown): number;
9
+ export interface RemovalResult {
10
+ cleared: boolean;
11
+ waitedMs: number;
12
+ observedPresent: boolean;
13
+ readError?: string;
14
+ }
15
+ export declare class AgentRemovalPendingError extends Error {
16
+ readonly exitCode = 8;
17
+ constructor(name: string);
18
+ }
19
+ export declare function waitForAgentRemoval(options: {
20
+ name: string;
21
+ getAgent: (name: string) => Promise<unknown>;
22
+ listAgents: () => Promise<Array<{
23
+ name: string;
24
+ }>>;
25
+ timeoutMs?: number;
26
+ pollIntervalMs?: number;
27
+ now?: () => number;
28
+ sleep?: (ms: number) => Promise<void>;
29
+ }): Promise<RemovalResult>;
30
+ //# sourceMappingURL=agent-removal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-removal.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/agent-removal.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,+BAA+B,QAAS,CAAC;AACtD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOvD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ9D;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,QAAQ,KAAK;gBACV,IAAI,EAAE,MAAM;CAKzB;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,UAAU,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,GAAG,OAAO,CAAC,aAAa,CAAC,CAyCzB"}
@@ -0,0 +1,73 @@
1
+ import { RelayError, safeRelayErrorMessage } from '@agent-relay/sdk';
2
+ import { normalizeTimeoutMs, shellQuote, withDeadline } from './agent-registration.js';
3
+ export const DEFAULT_REMOVAL_WAIT_TIMEOUT_MS = 30_000;
4
+ export const REMOVAL_POLL_INTERVAL_MS = 500;
5
+ export function isNotFoundError(error) {
6
+ if (error instanceof RelayError)
7
+ return error.code === 'not_found' || error.statusCode === 404;
8
+ const status = error && typeof error === 'object'
9
+ ? (error.statusCode ?? error.status)
10
+ : undefined;
11
+ return Number(status) === 404;
12
+ }
13
+ /**
14
+ * Parse `--wait-timeout` as whole milliseconds within the timer limit; reject
15
+ * what the wait would otherwise silently replace with its default.
16
+ */
17
+ export function parseRemovalWaitTimeout(value) {
18
+ const timeoutMs = Math.floor(Number(value));
19
+ if (!Number.isFinite(timeoutMs) || timeoutMs < 1) {
20
+ throw new Error(`--wait-timeout must be a positive whole number of milliseconds (got ${JSON.stringify(value)}).`);
21
+ }
22
+ return normalizeTimeoutMs(timeoutMs);
23
+ }
24
+ export class AgentRemovalPendingError extends Error {
25
+ exitCode = 8;
26
+ constructor(name) {
27
+ super(`Removal of agent ${JSON.stringify(name)} was accepted, but its registration is still present. Re-check \`agent-relay agent list\` or run \`agent-relay agent remove ${shellQuote(name)} --wait\` before respawning.`);
28
+ }
29
+ }
30
+ export async function waitForAgentRemoval(options) {
31
+ const now = options.now ?? Date.now;
32
+ const sleep = options.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
33
+ const started = now();
34
+ const budget = normalizeTimeoutMs(options.timeoutMs ?? DEFAULT_REMOVAL_WAIT_TIMEOUT_MS);
35
+ const deadline = started + budget;
36
+ let observedPresent = false;
37
+ let readError;
38
+ const result = (cleared) => ({
39
+ cleared,
40
+ waitedMs: now() - started,
41
+ observedPresent,
42
+ ...(readError ? { readError } : {}),
43
+ });
44
+ // Reserve one bounded read for membership corroboration at the deadline.
45
+ // A released/offline status still owns the name and is never clearance.
46
+ const read = (fn, ms) => withDeadline(fn, () => new Error('Removal verification read timed out.'), ms);
47
+ while (now() < deadline) {
48
+ try {
49
+ await read(() => options.getAgent(options.name), Math.max(1, deadline - now()));
50
+ observedPresent = true;
51
+ readError = undefined;
52
+ }
53
+ catch (error) {
54
+ if (isNotFoundError(error))
55
+ return result(true);
56
+ readError = safeRelayErrorMessage(error);
57
+ }
58
+ const remaining = deadline - now();
59
+ if (remaining > 0)
60
+ await sleep(Math.min(normalizeTimeoutMs(options.pollIntervalMs ?? REMOVAL_POLL_INTERVAL_MS), remaining));
61
+ }
62
+ try {
63
+ const agents = await read(options.listAgents, Math.min(1_000, budget));
64
+ if (!agents.some((agent) => agent.name === options.name))
65
+ return result(true);
66
+ observedPresent = true;
67
+ }
68
+ catch (error) {
69
+ readError = safeRelayErrorMessage(error);
70
+ }
71
+ return result(false);
72
+ }
73
+ //# sourceMappingURL=agent-removal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-removal.js","sourceRoot":"","sources":["../../../src/cli/lib/agent-removal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /** Largest file sent or saved as a message attachment; recipients' injectors use the same cap. */
2
+ export declare const MAX_ATTACHMENT_BYTES: number;
3
+ /** The MIME type for a file name's extension, or `application/octet-stream`. */
4
+ export declare function contentTypeFor(filename: string): string;
5
+ /**
6
+ * A sender-supplied file name reduced to one safe path segment that also
7
+ * saves on Windows: no control characters, no `<>:"|?*`, no leading dot, no
8
+ * trailing dots or spaces, and no reserved device name.
9
+ */
10
+ export declare function safeAttachmentFilename(name: string): string;
11
+ /**
12
+ * Decode strict base64 (standard alphabet, optional padding, whitespace
13
+ * ignored). `Buffer.from(..., 'base64')` silently skips invalid characters,
14
+ * which would upload different bytes than the caller meant.
15
+ */
16
+ export declare function decodeBase64Strict(value: string, maxBytes?: number): Buffer;
17
+ /** Check that a local file can be attached: a non-empty regular file under the size cap. */
18
+ export declare function checkAttachment(filePath: string): Promise<void>;
19
+ /** Read a local file to attach, enforcing the same rules on the bytes actually read. */
20
+ export declare function readAttachment(filePath: string): Promise<{
21
+ filename: string;
22
+ contentType: string;
23
+ data: Buffer;
24
+ }>;
25
+ /**
26
+ * Write a downloaded attachment and return its absolute path. `out` may be a
27
+ * file or an existing directory; by default the file lands in
28
+ * `.agent-relay/attachments/<fileId>/` under the working directory.
29
+ */
30
+ export declare function saveAttachment(fileId: string, filename: string, data: Uint8Array, out?: string): Promise<string>;
31
+ //# sourceMappingURL=attachments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/attachments.ts"],"names":[],"mappings":"AAIA,kGAAkG;AAClG,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAmBrD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAKD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY3D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAuB,GAAG,MAAM,CAczF;AAED,4FAA4F;AAC5F,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAarE;AAED,wFAAwF;AACxF,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAclE;AAmHD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,CAsCjB"}