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.
- package/README.md +60 -0
- package/dist/cli/agent-relay-mcp.d.ts.map +1 -1
- package/dist/cli/agent-relay-mcp.js +131 -10
- package/dist/cli/agent-relay-mcp.js.map +1 -1
- package/dist/cli/commands/agent.d.ts.map +1 -1
- package/dist/cli/commands/agent.js +24 -19
- package/dist/cli/commands/agent.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts.map +1 -1
- package/dist/cli/commands/fleet.js +183 -39
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/integration.d.ts.map +1 -1
- package/dist/cli/commands/integration.js +81 -7
- package/dist/cli/commands/integration.js.map +1 -1
- package/dist/cli/commands/local-agent.d.ts.map +1 -1
- package/dist/cli/commands/local-agent.js +22 -3
- package/dist/cli/commands/local-agent.js.map +1 -1
- package/dist/cli/commands/message.d.ts.map +1 -1
- package/dist/cli/commands/message.js +111 -29
- package/dist/cli/commands/message.js.map +1 -1
- package/dist/cli/lib/agent-registration.d.ts +2 -0
- package/dist/cli/lib/agent-registration.d.ts.map +1 -1
- package/dist/cli/lib/agent-registration.js +2 -2
- package/dist/cli/lib/agent-registration.js.map +1 -1
- package/dist/cli/lib/agent-removal.d.ts +30 -0
- package/dist/cli/lib/agent-removal.d.ts.map +1 -0
- package/dist/cli/lib/agent-removal.js +73 -0
- package/dist/cli/lib/agent-removal.js.map +1 -0
- package/dist/cli/lib/attachments.d.ts +31 -0
- package/dist/cli/lib/attachments.d.ts.map +1 -0
- package/dist/cli/lib/attachments.js +239 -0
- package/dist/cli/lib/attachments.js.map +1 -0
- package/dist/cli/lib/fleet-live-agents.d.ts +17 -0
- package/dist/cli/lib/fleet-live-agents.d.ts.map +1 -1
- package/dist/cli/lib/fleet-live-agents.js +23 -0
- package/dist/cli/lib/fleet-live-agents.js.map +1 -1
- package/dist/cli/lib/sdk-command.d.ts.map +1 -1
- package/dist/cli/lib/sdk-command.js +8 -2
- package/dist/cli/lib/sdk-command.js.map +1 -1
- package/dist/cli/lib/spawn-liveness.d.ts +50 -0
- package/dist/cli/lib/spawn-liveness.d.ts.map +1 -0
- package/dist/cli/lib/spawn-liveness.js +184 -0
- package/dist/cli/lib/spawn-liveness.js.map +1 -0
- package/dist/cli/lib/task-input.d.ts +26 -0
- package/dist/cli/lib/task-input.d.ts.map +1 -0
- package/dist/cli/lib/task-input.js +102 -0
- package/dist/cli/lib/task-input.js.map +1 -0
- package/dist/cli/mcp/messaging-tools.d.ts.map +1 -1
- package/dist/cli/mcp/messaging-tools.js +136 -34
- package/dist/cli/mcp/messaging-tools.js.map +1 -1
- package/dist/cli/mcp/request-replay.d.ts +21 -9
- package/dist/cli/mcp/request-replay.d.ts.map +1 -1
- package/dist/cli/mcp/request-replay.js +58 -9
- package/dist/cli/mcp/request-replay.js.map +1 -1
- package/dist/index.cjs +200 -6
- 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')
|
|
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
|
-
|
|
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)
|
|
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
|
-
|
|
89
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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')
|
|
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
|
-
|
|
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
|
|
224
|
+
.description('Upload a file and send it to a channel or an agent')
|
|
181
225
|
.argument('<path>', 'File path')
|
|
182
|
-
.
|
|
183
|
-
.option('--
|
|
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
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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;
|
|
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,
|
|
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"}
|