@inkbox/cli 0.5.5 → 0.5.6

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 CHANGED
@@ -350,6 +350,52 @@ Group conversation rows expose `groupCreationStatus` as `creating`,
350
350
  conversation; send again with its conversation id to retry. Successful retry
351
351
  changes the status to `ready`.
352
352
 
353
+ ### a2a
354
+
355
+ ```bash
356
+ # Receiver setup and advertised capabilities
357
+ inkbox a2a enable -i researcher
358
+ inkbox a2a card -i researcher
359
+ inkbox a2a skills set -i researcher --file skills.json
360
+
361
+ # Bilateral admission for coordinator -> researcher calls
362
+ inkbox a2a rules add -i coordinator --handle researcher \
363
+ --action allow --direction outbound
364
+ inkbox a2a rules add -i researcher --handle coordinator \
365
+ --action allow --direction inbound
366
+
367
+ # Unified task history. Omit --direction for the receiver inbox.
368
+ inkbox a2a tasks -i coordinator --direction both \
369
+ --requester coordinator --worker researcher \
370
+ --state working --query "quarterly report" --limit 25
371
+
372
+ # Search individual messages with task and participant provenance.
373
+ inkbox a2a messages -i coordinator --direction outbound \
374
+ --worker researcher --role agent --query revenue --limit 25 --json
375
+
376
+ # Continue a cursor page with the same filters.
377
+ inkbox a2a messages -i coordinator --direction outbound \
378
+ --worker researcher --role agent --query revenue \
379
+ --cursor '<nextCursor>' --limit 25 --json
380
+
381
+ # The outbound alias lists only work requested by the identity.
382
+ inkbox a2a sent -i coordinator --worker researcher
383
+ inkbox a2a sent-task <task-id> -i coordinator
384
+
385
+ # A worker can request more input or finish a task.
386
+ inkbox a2a reply <task-id> -i researcher --ask --text "Which quarter?"
387
+ inkbox a2a reply <task-id> -i researcher --complete --text "Done."
388
+ ```
389
+
390
+ JSON list output contains both `items` and `nextCursor`. Human-readable output
391
+ prints a next-cursor hint when another page exists. Keyword search covers
392
+ string and numeric content values from `text` and `data` parts, excludes
393
+ metadata, and returns newest-first results rather than relevance ranking.
394
+ `--role` selects the message author (`caller` or `agent`), independent of task
395
+ direction. Task detail exposes messages and current state. A protocol call must
396
+ pass both the requester identity's outbound policy and the worker identity's
397
+ inbound policy. Contact-rule directions are `inbound`, `outbound`, and `both`.
398
+
353
399
  ### vault
354
400
 
355
401
  Encrypted vault operations. `get`, `create`, and credential listing require a vault key.
package/dist/client.js CHANGED
@@ -3,7 +3,7 @@ import * as os from "node:os";
3
3
  import * as path from "node:path";
4
4
  import { Inkbox } from "@inkbox/sdk";
5
5
  // Keep in sync with package.json "version".
6
- export const CLI_VERSION = "0.5.5";
6
+ export const CLI_VERSION = "0.5.6";
7
7
  export function getGlobalOpts(cmd) {
8
8
  let root = cmd;
9
9
  while (root.parent)
@@ -0,0 +1,349 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { Option } from "commander";
3
+ import { createClient, getGlobalOpts } from "../client.js";
4
+ import { withErrorHandler } from "../errors.js";
5
+ import { output } from "../output.js";
6
+ const TASK_COLUMNS = [
7
+ "id",
8
+ "requesterHandle",
9
+ "workerHandle",
10
+ "contextId",
11
+ "state",
12
+ "createdAt",
13
+ "updatedAt",
14
+ ];
15
+ const SENT_TASK_COLUMNS = [
16
+ "id",
17
+ "requesterHandle",
18
+ "workerHandle",
19
+ "contextId",
20
+ "state",
21
+ "createdAt",
22
+ "updatedAt",
23
+ ];
24
+ const MESSAGE_COLUMNS = [
25
+ "id",
26
+ "taskId",
27
+ "contextId",
28
+ "taskState",
29
+ "role",
30
+ "requesterHandle",
31
+ "workerHandle",
32
+ "text",
33
+ "createdAt",
34
+ ];
35
+ const RULE_COLUMNS = ["id", "action", "matchTarget", "direction", "status"];
36
+ async function identityFor(command, handle) {
37
+ return createClient(getGlobalOpts(command)).getIdentity(handle);
38
+ }
39
+ function positiveInt(value, name) {
40
+ const parsed = Number(value);
41
+ if (!Number.isInteger(parsed) || parsed < 1) {
42
+ throw new TypeError(`${name} must be a positive integer`);
43
+ }
44
+ return parsed;
45
+ }
46
+ function outputCursorPage(page, command, columns, tableItems) {
47
+ const json = !!getGlobalOpts(command).json;
48
+ if (json) {
49
+ output(page, { json: true });
50
+ return;
51
+ }
52
+ output(tableItems, { json: false, columns });
53
+ if (page.nextCursor) {
54
+ console.error(`Next cursor: ${page.nextCursor}`);
55
+ }
56
+ }
57
+ function messageText(message) {
58
+ return message.parts
59
+ .map((part) => ("text" in part ? String(part.text) : ""))
60
+ .filter(Boolean)
61
+ .join(" ");
62
+ }
63
+ export function registerA2ACommands(program) {
64
+ const a2a = program.command("a2a").description("Work with A2A agents and tasks");
65
+ a2a.command("enable")
66
+ .description("Enable an identity's A2A receiver")
67
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
68
+ .action(withErrorHandler(async function (options) {
69
+ const result = await (await identityFor(this, options.identity)).a2aEnable();
70
+ output(result, { json: !!getGlobalOpts(this).json });
71
+ }));
72
+ a2a.command("disable")
73
+ .description("Disable an identity's A2A receiver")
74
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
75
+ .action(withErrorHandler(async function (options) {
76
+ const result = await (await identityFor(this, options.identity)).a2aDisable();
77
+ output(result, { json: !!getGlobalOpts(this).json });
78
+ }));
79
+ a2a.command("card")
80
+ .description("Show an identity's Agent Card")
81
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
82
+ .action(withErrorHandler(async function (options) {
83
+ const result = await (await identityFor(this, options.identity)).a2aCard();
84
+ output(result, { json: !!getGlobalOpts(this).json });
85
+ }));
86
+ const skills = a2a.command("skills").description("Manage Agent Card skills");
87
+ skills.command("set")
88
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
89
+ .requiredOption("--file <path>", "JSON file containing an array of skills")
90
+ .action(withErrorHandler(async function (options) {
91
+ const parsed = JSON.parse(await readFile(options.file, "utf8"));
92
+ if (!Array.isArray(parsed))
93
+ throw new TypeError("Skills file must contain a JSON array");
94
+ const result = await (await identityFor(this, options.identity)).a2aSetSkills(parsed);
95
+ output(result, { json: !!getGlobalOpts(this).json });
96
+ }));
97
+ skills.command("reset")
98
+ .description("Restore the receiver's default advertised skills")
99
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
100
+ .action(withErrorHandler(async function (options) {
101
+ const result = await (await identityFor(this, options.identity)).a2aResetSkills();
102
+ output(result, { json: !!getGlobalOpts(this).json });
103
+ }));
104
+ a2a.command("filter-mode")
105
+ .description("Set A2A admission mode (admin API key required)")
106
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
107
+ .requiredOption("--mode <mode>", "'whitelist' or 'blacklist'")
108
+ .action(withErrorHandler(async function (options) {
109
+ if (!["whitelist", "blacklist"].includes(options.mode)) {
110
+ throw new TypeError("--mode must be 'whitelist' or 'blacklist'");
111
+ }
112
+ const result = await (await identityFor(this, options.identity)).a2aSetFilterMode(options.mode);
113
+ output(result, { json: !!getGlobalOpts(this).json });
114
+ }));
115
+ const rules = a2a.command("rules").description("Manage directional A2A contact rules");
116
+ rules.command("list")
117
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
118
+ .action(withErrorHandler(async function (options) {
119
+ const result = await (await identityFor(this, options.identity)).a2aContactRules();
120
+ output(result, { json: !!getGlobalOpts(this).json, columns: RULE_COLUMNS });
121
+ }));
122
+ rules.command("add")
123
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
124
+ .requiredOption("--handle <peer>", "Caller handle to match")
125
+ .requiredOption("--action <action>", "'allow' or 'block'")
126
+ .option("--direction <direction>", "'inbound', 'outbound', or 'both'", "inbound")
127
+ .action(withErrorHandler(async function (options) {
128
+ if (!["allow", "block"].includes(options.action)) {
129
+ throw new TypeError("--action must be 'allow' or 'block'");
130
+ }
131
+ if (!["inbound", "outbound", "both"].includes(options.direction)) {
132
+ throw new TypeError("--direction must be 'inbound', 'outbound', or 'both'");
133
+ }
134
+ const result = await (await identityFor(this, options.identity)).a2aAddContactRule({
135
+ handle: options.handle,
136
+ action: options.action,
137
+ direction: options.direction,
138
+ });
139
+ output(result, { json: !!getGlobalOpts(this).json });
140
+ }));
141
+ rules.command("update <rule-id>")
142
+ .description("Update an A2A contact rule (admin API key required)")
143
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
144
+ .option("--action <action>", "'allow' or 'block'")
145
+ .option("--direction <direction>", "'inbound', 'outbound', or 'both'")
146
+ .action(withErrorHandler(async function (ruleId, options) {
147
+ if (options.action !== undefined && !["allow", "block"].includes(options.action)) {
148
+ throw new TypeError("--action must be 'allow' or 'block'");
149
+ }
150
+ if (options.direction !== undefined
151
+ && !["inbound", "outbound", "both"].includes(options.direction)) {
152
+ throw new TypeError("--direction must be 'inbound', 'outbound', or 'both'");
153
+ }
154
+ if (options.action === undefined && options.direction === undefined) {
155
+ throw new TypeError("Pass at least one of --action or --direction");
156
+ }
157
+ const result = await (await identityFor(this, options.identity)).a2aUpdateContactRule(ruleId, {
158
+ action: options.action,
159
+ direction: options.direction,
160
+ });
161
+ output(result, { json: !!getGlobalOpts(this).json });
162
+ }));
163
+ rules.command("delete <rule-id>")
164
+ .description("Delete an A2A contact rule (admin API key required)")
165
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
166
+ .action(withErrorHandler(async function (ruleId, options) {
167
+ await (await identityFor(this, options.identity)).a2aDeleteContactRule(ruleId);
168
+ output({ deleted: true, id: ruleId }, { json: !!getGlobalOpts(this).json });
169
+ }));
170
+ a2a.command("tasks")
171
+ .description("List an identity's A2A task history")
172
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
173
+ .option("--direction <direction>", "Filter: inbound, outbound, or both")
174
+ .option("--requester <handle>", "Filter by requester identity")
175
+ .option("--worker <handle>", "Filter by worker identity")
176
+ .option("--state <state>", "Filter by task state")
177
+ .option("--context <id>", "Filter by context ID")
178
+ .option("-q, --query <query>", "Search task message content")
179
+ .option("--since <datetime>", "Only tasks created at or after this time")
180
+ .option("--cursor <cursor>", "Pagination cursor")
181
+ .option("--limit <n>", "Results per page (1-100)", "50")
182
+ .action(withErrorHandler(async function (options) {
183
+ const result = await (await identityFor(this, options.identity)).a2aTasks({
184
+ direction: options.direction,
185
+ requesterHandle: options.requester,
186
+ workerHandle: options.worker,
187
+ state: options.state,
188
+ contextId: options.context,
189
+ q: options.query,
190
+ since: options.since,
191
+ cursor: options.cursor,
192
+ limit: positiveInt(options.limit, "--limit"),
193
+ });
194
+ const items = result.items.map((task) => ({
195
+ ...task,
196
+ requesterHandle: task.caller.handle,
197
+ workerHandle: task.target?.handle ?? null,
198
+ }));
199
+ outputCursorPage(result, this, TASK_COLUMNS, items);
200
+ }));
201
+ a2a.command("task <task-id>")
202
+ .description("Show a full inbound A2A task")
203
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
204
+ .action(withErrorHandler(async function (taskId, options) {
205
+ const result = await (await identityFor(this, options.identity)).a2aTask(taskId);
206
+ output(result, { json: !!getGlobalOpts(this).json });
207
+ }));
208
+ a2a.command("sent")
209
+ .description("List A2A tasks sent by an identity")
210
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
211
+ .option("--requester <handle>", "Filter by requester identity")
212
+ .option("--worker <handle>", "Filter by worker identity")
213
+ .option("--state <state>", "Filter by task state")
214
+ .option("--context <id>", "Filter by context ID")
215
+ .option("-q, --query <query>", "Search task message content")
216
+ .option("--since <datetime>", "Only tasks created at or after this time")
217
+ .option("--cursor <cursor>", "Pagination cursor")
218
+ .option("--limit <n>", "Results per page (1-100)", "50")
219
+ .action(withErrorHandler(async function (options) {
220
+ const result = await (await identityFor(this, options.identity)).a2aSentTasks({
221
+ requesterHandle: options.requester,
222
+ workerHandle: options.worker,
223
+ state: options.state,
224
+ contextId: options.context,
225
+ q: options.query,
226
+ since: options.since,
227
+ cursor: options.cursor,
228
+ limit: positiveInt(options.limit, "--limit"),
229
+ });
230
+ const items = result.items.map((task) => ({
231
+ ...task,
232
+ requesterHandle: task.caller.handle,
233
+ workerHandle: task.target?.handle ?? null,
234
+ }));
235
+ outputCursorPage(result, this, SENT_TASK_COLUMNS, items);
236
+ }));
237
+ a2a.command("sent-task <task-id>")
238
+ .description("Show a full A2A task sent by an identity")
239
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
240
+ .action(withErrorHandler(async function (taskId, options) {
241
+ const result = await (await identityFor(this, options.identity)).a2aSentTask(taskId);
242
+ output(result, { json: !!getGlobalOpts(this).json });
243
+ }));
244
+ a2a.command("messages")
245
+ .description("List and search an identity's A2A message history")
246
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
247
+ .option("--direction <direction>", "Filter: inbound, outbound, or both")
248
+ .option("--requester <handle>", "Filter by requester identity")
249
+ .option("--worker <handle>", "Filter by worker identity")
250
+ .option("--task <id>", "Filter by task ID")
251
+ .option("--context <id>", "Filter by context ID")
252
+ .option("--role <role>", "Filter: caller or agent")
253
+ .option("-q, --query <query>", "Search message content")
254
+ .option("--since <datetime>", "Only messages created at or after this time")
255
+ .option("--cursor <cursor>", "Pagination cursor")
256
+ .option("--limit <n>", "Results per page (1-100)", "50")
257
+ .action(withErrorHandler(async function (options) {
258
+ const result = await (await identityFor(this, options.identity)).a2aMessages({
259
+ direction: options.direction,
260
+ requesterHandle: options.requester,
261
+ workerHandle: options.worker,
262
+ taskId: options.task,
263
+ contextId: options.context,
264
+ role: options.role,
265
+ q: options.query,
266
+ since: options.since,
267
+ cursor: options.cursor,
268
+ limit: positiveInt(options.limit, "--limit"),
269
+ });
270
+ const items = result.items.map((message) => ({
271
+ ...message,
272
+ requesterHandle: message.caller.handle,
273
+ workerHandle: message.target?.handle ?? null,
274
+ text: messageText(message),
275
+ }));
276
+ outputCursorPage(result, this, MESSAGE_COLUMNS, items);
277
+ }));
278
+ a2a.command("reply <task-id>")
279
+ .description("Reply to an inbound A2A task")
280
+ .requiredOption("-i, --identity <handle>", "Agent identity handle")
281
+ .requiredOption("--text <text>", "Reply text")
282
+ .addOption(new Option("--progress", "Post progress and keep working").conflicts(["complete", "ask", "fail"]))
283
+ .addOption(new Option("--complete", "Complete the task").conflicts(["progress", "ask", "fail"]))
284
+ .addOption(new Option("--ask", "Ask the caller for input").conflicts(["progress", "complete", "fail"]))
285
+ .addOption(new Option("--fail", "Fail the task").conflicts(["progress", "complete", "ask"]))
286
+ .action(withErrorHandler(async function (taskId, options) {
287
+ const selected = [
288
+ options.progress,
289
+ options.complete,
290
+ options.ask,
291
+ options.fail,
292
+ ].filter(Boolean);
293
+ if (selected.length !== 1) {
294
+ throw new TypeError("Pass exactly one of --progress, --complete, --ask, or --fail");
295
+ }
296
+ const intent = options.progress
297
+ ? "progress"
298
+ : options.complete
299
+ ? "complete"
300
+ : options.ask ? "ask_caller" : "fail";
301
+ const result = await (await identityFor(this, options.identity)).a2aReply(taskId, {
302
+ intent,
303
+ text: options.text,
304
+ });
305
+ output(result, { json: !!getGlobalOpts(this).json });
306
+ }));
307
+ a2a.command("call <card-url>")
308
+ .description("Send a task to an A2A agent")
309
+ .requiredOption("-i, --identity <handle>", "Local identity handle")
310
+ .requiredOption("--text <text>", "Task text")
311
+ .option("--context <id>", "Continue a context")
312
+ .option("--task <id>", "Continue a task")
313
+ .option("--message-id <id>", "Stable idempotency ID")
314
+ .action(withErrorHandler(async function (cardUrl, options) {
315
+ const identity = await identityFor(this, options.identity);
316
+ const client = await identity.a2aClient();
317
+ const target = await client.fetchCard(cardUrl);
318
+ const result = await client.send(target, {
319
+ text: options.text,
320
+ contextId: options.context,
321
+ taskId: options.task,
322
+ messageId: options.messageId,
323
+ });
324
+ output(result, { json: !!getGlobalOpts(this).json });
325
+ }));
326
+ a2a.command("check <card-url> <task-id>")
327
+ .description("Fetch or wait for a remote A2A task")
328
+ .requiredOption("-i, --identity <handle>", "Local identity handle")
329
+ .option("--wait", "Poll until the task stops")
330
+ .action(withErrorHandler(async function (cardUrl, taskId, options) {
331
+ const identity = await identityFor(this, options.identity);
332
+ const client = await identity.a2aClient();
333
+ const target = await client.fetchCard(cardUrl);
334
+ const result = options.wait
335
+ ? await client.wait(target, taskId)
336
+ : await client.getTask(target, taskId);
337
+ output(result, { json: !!getGlobalOpts(this).json });
338
+ }));
339
+ a2a.command("cancel <card-url> <task-id>")
340
+ .description("Cancel a remote A2A task")
341
+ .requiredOption("-i, --identity <handle>", "Local identity handle")
342
+ .action(withErrorHandler(async function (cardUrl, taskId, options) {
343
+ const identity = await identityFor(this, options.identity);
344
+ const client = await identity.a2aClient();
345
+ const target = await client.fetchCard(cardUrl);
346
+ output(await client.cancel(target, taskId), { json: !!getGlobalOpts(this).json });
347
+ }));
348
+ }
349
+ //# sourceMappingURL=a2a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a2a.js","sourceRoot":"","sources":["../../src/commands/a2a.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ import { registerWebhookCommands } from "./commands/webhook.js";
20
20
  import { registerContactsCommands } from "./commands/contacts.js";
21
21
  import { registerNotesCommands } from "./commands/notes.js";
22
22
  import { registerDomainCommands } from "./commands/domain.js";
23
+ import { registerA2ACommands } from "./commands/a2a.js";
23
24
  // Node's fetch ignores HTTP(S)_PROXY/NO_PROXY unless NODE_USE_ENV_PROXY is
24
25
  // enabled — a flag that only exists on Node 22.21+/24+ — which strands the
25
26
  // CLI in sandboxed/proxied environments. Install the env-proxy dispatcher
@@ -58,5 +59,6 @@ registerWebhookCommands(program);
58
59
  registerContactsCommands(program);
59
60
  registerNotesCommands(program);
60
61
  registerDomainCommands(program);
62
+ registerA2ACommands(program);
61
63
  program.parse();
62
64
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkbox/cli",
3
- "version": "0.5.5",
3
+ "version": "0.5.6",
4
4
  "description": "CLI for the Inkbox API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,7 +18,7 @@
18
18
  "prepublishOnly": "npm run build"
19
19
  },
20
20
  "dependencies": {
21
- "@inkbox/sdk": "^0.5.5",
21
+ "@inkbox/sdk": "^0.5.6",
22
22
  "commander": "^13.0.0",
23
23
  "undici": "^7.28.0"
24
24
  },