@inkbox/cli 0.5.5 → 0.5.7

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.
@@ -406,6 +452,43 @@ Secret type flags:
406
452
 
407
453
  ### mailbox
408
454
 
455
+ Import historical mail from an MBOX or EML file, or a ZIP holding either (a
456
+ Gmail Takeout ZIP imports as-is; ZIP entries that are not mail, including nested
457
+ archives, are ignored):
458
+
459
+ ```bash
460
+ inkbox mailbox imports run <email> <file>
461
+ --source-format <auto|mbox|eml|zip> # Default: auto
462
+ --original-address <email> # Repeatable; identifies sent mail
463
+ --mark-unread # Default imports as read
464
+ --no-wait # Return after queueing
465
+ --timeout <seconds> # Local wait timeout; does not cancel
466
+ --poll-interval <seconds> # Default: 5
467
+
468
+ inkbox mailbox imports get <email> <job-id>
469
+ inkbox mailbox imports list <email> [--cursor <cursor>] [--limit <n>]
470
+ inkbox mailbox imports wait <email> <job-id> [--timeout <seconds>] [--poll-interval <seconds>]
471
+ inkbox mailbox imports cancel <email> <job-id>
472
+ ```
473
+
474
+ `run` uploads from disk without loading the full file into memory. Upload and
475
+ processing progress goes to stderr; `--json` keeps stdout to one job object.
476
+ `run` and `wait` exit nonzero when the terminal job is failed or cancelled.
477
+ Unsafe imported content may be rejected and counted separately. Processing
478
+ counters are cumulative and never go backwards, but they can sit unchanged while
479
+ a large message is processed and are not a percentage. Jobs run one at a time
480
+ per organization and share overall import capacity, so a long `queued` stretch
481
+ is normal rather than a stall.
482
+
483
+ Upload targets expire after 5 minutes, so `run` re-issues one and retries once
484
+ after a transport failure or rejected upload target, then cancels the job it
485
+ created rather than leaving the mailbox blocked. If a `run` is interrupted,
486
+ `inkbox mailbox imports list <email>`
487
+ and `inkbox mailbox imports cancel <email> <job-id>` release the mailbox; an
488
+ abandoned job otherwise holds it for 24 hours. Other limits: 1 GiB per upload,
489
+ 50 MiB per message, 100,000 messages and 20 `--original-address` values per job,
490
+ 65,000 entries per ZIP, and 20 import jobs per organization per 24 hours.
491
+
409
492
  Org-level mailbox read + update. Mailboxes are provisioned atomically
410
493
  by `inkbox identity create` and removed by `inkbox identity delete`
411
494
  (cascade) — there is no standalone create / delete here. `display_name`
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.7";
7
7
  export function getGlobalOpts(cmd) {
8
8
  let root = cmd;
9
9
  while (root.parent)
@@ -39,7 +39,7 @@ function readConfigFile() {
39
39
  export function resolveBaseUrl(opts) {
40
40
  return (opts.baseUrl ?? process.env.INKBOX_BASE_URL ?? readConfigFile().base_url);
41
41
  }
42
- export function createClient(opts) {
42
+ export function createClient(opts, timeoutMs) {
43
43
  const fileCfg = readConfigFile();
44
44
  const apiKey = opts.apiKey ?? process.env.INKBOX_API_KEY ?? fileCfg.api_key;
45
45
  if (!apiKey) {
@@ -53,6 +53,7 @@ export function createClient(opts) {
53
53
  apiKey,
54
54
  vaultKey: vaultKey || undefined,
55
55
  baseUrl,
56
+ timeoutMs,
56
57
  userAgentPrefix: `inkbox-cli/${CLI_VERSION}`,
57
58
  });
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AASnC,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,OAAO,IAAI,CAAC,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,OAAO,IAAI,CAAC,IAAI,EAAgB,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,+EAA+E;AAC/E,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAS;YACnE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI;iBACf,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;iBACb,IAAI,EAAE;iBACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACnB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,IAAgB;IAC7C,OAAO,CACL,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,cAAc,EAAE,CAAC,QAAQ,CACzE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CACX,sEAAsE;YACpE,sCAAsC,CACzC,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GACZ,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,SAAS,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,QAAQ,CAAC;IAChF,OAAO,IAAI,MAAM,CAAC;QAChB,MAAM;QACN,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,OAAO;QACP,eAAe,EAAE,cAAc,WAAW,EAAE;KAC7C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -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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"}
@@ -1,4 +1,7 @@
1
- import { FilterMode, } from "@inkbox/sdk";
1
+ import { openAsBlob } from "node:fs";
2
+ import { stat } from "node:fs/promises";
3
+ import { basename } from "node:path";
4
+ import { FilterMode, MailImportFormat, MailImportJobStatus, MailImportUploadError, } from "@inkbox/sdk";
2
5
  import { createClient, getGlobalOpts, resolveBaseUrl } from "../client.js";
3
6
  import { output } from "../output.js";
4
7
  import { withErrorHandler } from "../errors.js";
@@ -12,6 +15,7 @@ const MAILBOX_LIST_COLUMNS = [
12
15
  "createdAt",
13
16
  ];
14
17
  const BYTE_UNITS = ["B", "KiB", "MiB", "GiB", "TiB"];
18
+ export const MAIL_IMPORT_MAX_UPLOAD_BYTES = 1024 ** 3;
15
19
  // Storage caps are binary (2 GiB = 2 * 1024 ** 3), so this divides by 1024 and
16
20
  // labels GiB/MiB — never pair base-2 math with a decimal "GB".
17
21
  export function formatBytes(bytes) {
@@ -60,6 +64,180 @@ export function mailboxGetRecord(mb, opts) {
60
64
  }
61
65
  return record;
62
66
  }
67
+ function parsePositiveSeconds(value) {
68
+ const seconds = Number(value);
69
+ if (!Number.isFinite(seconds) || seconds <= 0) {
70
+ throw new Error(`Expected a positive number of seconds (got '${value}')`);
71
+ }
72
+ return seconds;
73
+ }
74
+ function collect(value, previous) {
75
+ return [...previous, value];
76
+ }
77
+ export function assertMailImportFormat(value) {
78
+ if (!Object.values(MailImportFormat).includes(value)) {
79
+ throw new Error(`--source-format must be auto, mbox, eml, or zip (got '${value}')`);
80
+ }
81
+ return value;
82
+ }
83
+ export async function assertImportFileSize(path) {
84
+ const size = (await stat(path)).size;
85
+ if (size > MAIL_IMPORT_MAX_UPLOAD_BYTES) {
86
+ throw new Error(`Import file is ${size} bytes; the maximum is ${MAIL_IMPORT_MAX_UPLOAD_BYTES} bytes.`);
87
+ }
88
+ return size;
89
+ }
90
+ function progressSignature(job) {
91
+ return [
92
+ job.status,
93
+ job.messagesProcessed,
94
+ job.messagesImported,
95
+ job.messagesSkippedDuplicate,
96
+ job.messagesFailed,
97
+ job.messagesRejectedUnsafe,
98
+ ].join(":");
99
+ }
100
+ export function createImportProgressReporter(write = (message) => console.error(message)) {
101
+ let previous = "";
102
+ return (job) => {
103
+ const signature = progressSignature(job);
104
+ if (signature === previous)
105
+ return;
106
+ previous = signature;
107
+ write(`Import ${job.id}: ${job.status}; processed=${job.messagesProcessed} ` +
108
+ `imported=${job.messagesImported} duplicates=${job.messagesSkippedDuplicate} ` +
109
+ `failed=${job.messagesFailed} unsafe=${job.messagesRejectedUnsafe}`);
110
+ };
111
+ }
112
+ /**
113
+ * Upload the archive, re-issuing once after a transport failure or rejected
114
+ * target. Targets expire in minutes while uploads can run far longer, so an
115
+ * expired policy is expected on a large archive. A job left in
116
+ * `pending_upload` blocks the mailbox for a day, so give it up on the way out.
117
+ */
118
+ async function uploadWithRetry(inkbox, emailAddress, created, blob, fileName, remainingTimeoutMs) {
119
+ const imports = inkbox.mailboxes.imports;
120
+ try {
121
+ try {
122
+ await imports.upload(created.upload, blob, { fileName, timeoutMs: remainingTimeoutMs() });
123
+ }
124
+ catch (error) {
125
+ if (!(error instanceof MailImportUploadError)
126
+ || (error.statusCode !== null && error.statusCode !== 403)) {
127
+ throw error;
128
+ }
129
+ console.error("Upload failed; re-issuing the upload target and retrying once...");
130
+ const refreshed = await imports.refreshUploadTarget(emailAddress, created.job.id);
131
+ await imports.upload(refreshed, blob, { fileName, timeoutMs: remainingTimeoutMs() });
132
+ }
133
+ }
134
+ catch (error) {
135
+ await imports.cancel(emailAddress, created.job.id).catch(() => {
136
+ console.error(`Hint: Release the mailbox with 'inkbox mailbox imports cancel ` +
137
+ `${emailAddress} ${created.job.id}'.`);
138
+ });
139
+ throw error;
140
+ }
141
+ }
142
+ function setTerminalExitCode(job) {
143
+ if (job.status === MailImportJobStatus.FAILED || job.status === MailImportJobStatus.CANCELLED) {
144
+ process.exitCode = 1;
145
+ }
146
+ }
147
+ function registerMailboxImportCommands(parent) {
148
+ const imports = parent
149
+ .command("imports")
150
+ .description("Import mail from an MBOX, EML, or ZIP archive");
151
+ imports
152
+ .command("run <email> <file>")
153
+ .description("Create, upload, and start a mailbox import")
154
+ .option("--source-format <format>", "auto, mbox, eml, or zip", "auto")
155
+ .option("--original-address <email>", "Original mailbox address (repeatable)", collect, [])
156
+ .option("--mark-unread", "Import messages as unread")
157
+ .option("--no-wait", "Return after the import is queued")
158
+ .option("--timeout <seconds>", "Stop waiting after this many seconds", parsePositiveSeconds)
159
+ .option("--poll-interval <seconds>", "Polling interval", parsePositiveSeconds, 5)
160
+ .action(withErrorHandler(async function (email, file, cmdOpts) {
161
+ const opts = getGlobalOpts(this);
162
+ const startedAt = performance.now();
163
+ const remainingTimeoutMs = () => {
164
+ if (cmdOpts.timeout === undefined)
165
+ return undefined;
166
+ const remaining = cmdOpts.timeout * 1000 - (performance.now() - startedAt);
167
+ if (remaining <= 0)
168
+ throw new Error("Mailbox import timed out");
169
+ return remaining;
170
+ };
171
+ await assertImportFileSize(file);
172
+ const inkbox = createClient(opts, remainingTimeoutMs());
173
+ const created = await inkbox.mailboxes.imports.create(email, {
174
+ sourceFormat: assertMailImportFormat(cmdOpts.sourceFormat),
175
+ originalAddresses: cmdOpts.originalAddress.length ? cmdOpts.originalAddress : undefined,
176
+ markAsRead: !cmdOpts.markUnread,
177
+ });
178
+ console.error(`Uploading ${basename(file)}...`);
179
+ const blob = await openAsBlob(file);
180
+ await uploadWithRetry(inkbox, email, created, blob, basename(file), remainingTimeoutMs);
181
+ console.error("Upload complete; starting import...");
182
+ const controlClient = createClient(opts, remainingTimeoutMs());
183
+ const queued = await controlClient.mailboxes.imports.start(email, created.job.id);
184
+ if (!cmdOpts.wait) {
185
+ output(queued, { json: !!opts.json });
186
+ return;
187
+ }
188
+ const result = await controlClient.mailboxes.imports.wait(email, created.job.id, {
189
+ timeoutMs: remainingTimeoutMs(),
190
+ pollIntervalMs: cmdOpts.pollInterval * 1000,
191
+ onPoll: createImportProgressReporter(),
192
+ });
193
+ output(result, { json: !!opts.json });
194
+ setTerminalExitCode(result);
195
+ }));
196
+ imports
197
+ .command("get <email> <job-id>")
198
+ .description("Get a mailbox import job")
199
+ .action(withErrorHandler(async function (email, jobId) {
200
+ const opts = getGlobalOpts(this);
201
+ const result = await createClient(opts).mailboxes.imports.get(email, jobId);
202
+ output(result, { json: !!opts.json });
203
+ }));
204
+ imports
205
+ .command("list <email>")
206
+ .description("List mailbox import jobs")
207
+ .option("--cursor <cursor>", "Pagination cursor")
208
+ .option("--limit <n>", "Maximum jobs", (value) => parseInt(value, 10), 50)
209
+ .action(withErrorHandler(async function (email, cmdOpts) {
210
+ const opts = getGlobalOpts(this);
211
+ const page = await createClient(opts).mailboxes.imports.list(email, cmdOpts);
212
+ output(opts.json ? page : page.items, {
213
+ json: !!opts.json,
214
+ columns: ["id", "status", "sourceFormat", "messagesProcessed", "messagesImported", "createdAt"],
215
+ });
216
+ }));
217
+ imports
218
+ .command("wait <email> <job-id>")
219
+ .description("Wait for a mailbox import to finish")
220
+ .option("--timeout <seconds>", "Stop waiting after this many seconds", parsePositiveSeconds)
221
+ .option("--poll-interval <seconds>", "Polling interval", parsePositiveSeconds, 5)
222
+ .action(withErrorHandler(async function (email, jobId, cmdOpts) {
223
+ const opts = getGlobalOpts(this);
224
+ const result = await createClient(opts).mailboxes.imports.wait(email, jobId, {
225
+ timeoutMs: cmdOpts.timeout === undefined ? undefined : cmdOpts.timeout * 1000,
226
+ pollIntervalMs: cmdOpts.pollInterval * 1000,
227
+ onPoll: createImportProgressReporter(),
228
+ });
229
+ output(result, { json: !!opts.json });
230
+ setTerminalExitCode(result);
231
+ }));
232
+ imports
233
+ .command("cancel <email> <job-id>")
234
+ .description("Cancel an active mailbox import")
235
+ .action(withErrorHandler(async function (email, jobId) {
236
+ const opts = getGlobalOpts(this);
237
+ const result = await createClient(opts).mailboxes.imports.cancel(email, jobId);
238
+ output(result, { json: !!opts.json });
239
+ }));
240
+ }
63
241
  const MAIL_DOMAIN_BY_API_HOST = new Map([
64
242
  ["inkbox.ai", "inkboxmail.com"],
65
243
  ["api.inkbox.ai", "inkboxmail.com"],
@@ -282,5 +460,6 @@ export function registerMailboxCommands(program) {
282
460
  "(S/MIME, PGP) cannot be sent over SMTP.");
283
461
  }));
284
462
  registerMailboxRulesCommands(mailbox);
463
+ registerMailboxImportCommands(mailbox);
285
464
  }
286
465
  //# sourceMappingURL=mailbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/commands/mailbox.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,GAGX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,oBAAoB,GAAG;IAC3B,cAAc;IACd,eAAe;IACf,SAAS;IACT,IAAI;IACJ,YAAY;IACZ,iBAAiB;IACjB,WAAW;CACZ,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAErD,+EAA+E;AAC/E,+DAA+D;AAC/D,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;IAChD,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1C,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAoB;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACxC,OAAO,GAAG,QAAQ,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAW;IACxC,OAAO;QACL,GAAG,EAAE;QACL,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAC9B,EAAW,EACX,IAA2B;IAE3B,MAAM,MAAM,GAA4B;QACtC,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,EAAE,CAAC,aAAa;QAC/B,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,eAAe,EAAE,EAAE,CAAC,eAAe;QACnC,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,gBAAgB,EAAE,EAAE,CAAC,gBAAgB;QACrC,iBAAiB,EAAE,EAAE,CAAC,iBAAiB;KACxC,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;IACtC,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,CAAC,eAAe,EAAE,gBAAgB,CAAC;IACnC,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IACzC,CAAC,oBAAoB,EAAE,qBAAqB,CAAC;IAC7C,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;IACvD,CAAC,2BAA2B,EAAE,4BAA4B,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GACtC,uDAAuD,CAAC;AAE1D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,gBAAgB,CAAC,CAAC,qCAAqC;IAC5E,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,YAAoB,EACpB,UAAkB;IAElB,OAAO;QACL,QAAQ,EAAE,QAAQ,UAAU,EAAE;QAC9B,QAAQ,EAAE,GAAG;QACb,YAAY,EAAE,sBAAsB;QACpC,QAAQ,EAAE,QAAQ,UAAU,EAAE;QAC9B,QAAQ,EAAE,GAAG;QACb,gBAAgB,EAAE,GAAG;QACrB,QAAQ,EAAE,YAAY;QACtB,wEAAwE;QACxE,QAAQ,EAAE,6CAA6C;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CACnC,EAA8E;IAE9E,MAAM,MAAM,GAAI,EAIL,CAAC,sBAAsB,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,OAAO,CAAC,KAAK,CACX,SAAS,MAAM,CAAC,kBAAkB,YAAY,MAAM,CAAC,mBAAmB,IAAI;QAC1E,oCAAoC,MAAM,CAAC,aAAa,KAAK;QAC7D,4DAA4D,CAC/D,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,GAAG,KAAK,UAAU,CAAC,SAAS,IAAI,GAAG,KAAK,UAAU,CAAC,SAAS,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,0DAA0D,GAAG,IAAI,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAe;IACnD,MAAM,KAAK,GAAG,MAAM;SACjB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,sDAAsD;QACpD,mEAAmE,CACtE,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SACpD,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,CAAC;SAC/D,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC;SAC5E,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACzD,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACxD,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,OAQC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC;QACT,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAC3C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAoC;gBACpD,SAAS,EAAE,OAAO,CAAC,SAA0C;gBAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzD,MAAM,EAAE,OAAO,CAAC,MAAoC;gBACpD,SAAS,EAAE,OAAO,CAAC,SAA0C;gBAC7D,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC;SAC7E,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,mBAAmB,CAAC;SAChC,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,MAAc,EACd,OAA4B;QAE5B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAA0C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SACrD,cAAc,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;SAC9D,cAAc,CAAC,wBAAwB,EAAE,4BAA4B,CAAC;SACtE,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,OAKC;QAED,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;YACjE,MAAM,EAAE,OAAO,CAAC,MAAwB;YACxC,SAAS,EAAE,OAAO,CAAC,SAA8B;YACjD,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QACH,MAAM,CAAC,IAA0C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,0CAA0C,CAAC;SACvD,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;SACrD,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,MAAc,EACd,OAA4C;QAE5C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE;YACzE,MAAM,EAAE,OAAO,CAAC,MAAwB;SACzC,CAAC,CAAC;QACH,MAAM,CAAC,IAA0C,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CACH,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,4BAA4B,CAAC;SACzC,cAAc,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;SAC5D,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,MAAc,EACd,OAA4B;QAE5B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8BAA8B,MAAM,QAAQ,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9E,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE/C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oBAAoB,CAAC;SACjC,MAAM,CACL,gBAAgB,CAAC,KAAK;QACpB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,yEAAyE;QACzE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;YAC5D,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;YACjB,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,YAAoB;QAEpB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;YACrD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,wBAAwB,CAAC;SACjC,WAAW,CACV,gEAAgE;QAC9D,yDAAyD,CAC5D;SACA,MAAM,CAAC,sBAAsB,EAAE,+DAA+D,CAAC;SAC/F,MAAM,CACL,gBAAgB,CAAC,KAAK,WAEpB,YAAoB,EACpB,OAAgC;QAEhC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAgC,EAAE,CAAC;QACnD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,UAAU,CAAC,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACnE,MAAM,CACJ;YACE,YAAY,EAAE,EAAE,CAAC,YAAY;YAC7B,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,UAAU,EAAE,EAAE,CAAC,UAAU;YACzB,eAAe,EAAE,EAAE,CAAC,eAAe;SACpC,EACD,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CACtB,CAAC;QACF,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,iCAAiC,CAAC;SAC1C,WAAW,CACV,oEAAoE,CACrE;SACA,MAAM,CACL,gBAAgB,CAAC,KAAK,WAA0B,YAAoB;QAClE,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,wEAAwE;QACxE,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,mEAAmE;QACnE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7D,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO;QACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,2DAA2D;YACzD,gEAAgE;YAChE,+DAA+D,CAClE,CAAC;QACF,OAAO,CAAC,GAAG,CACT,oCAAoC,EAAE,CAAC,YAAY,gBAAgB;YACjE,kEAAkE;YAClE,yCAAyC,CAC5C,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IAEJ,4BAA4B,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"mailbox.js","sourceRoot":"","sources":["../../src/commands/mailbox.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -1,6 +1,16 @@
1
- import { DuplicateContactRuleError, InkboxAPIError, InkboxError, InkboxVaultKeyError, RedundantContactAccessGrantError, StorageLimitExceededError, } from "@inkbox/sdk";
1
+ import { DuplicateContactRuleError, InkboxAPIError, InkboxError, InkboxVaultKeyError, MailImportQuotaExceededError, RedundantContactAccessGrantError, StorageLimitExceededError, } from "@inkbox/sdk";
2
+ function importAlreadyInFlight(err) {
3
+ return (err.statusCode === 409
4
+ && typeof err.detail === "object"
5
+ && err.detail !== null
6
+ && err.detail["error"] === "mail_import_already_in_flight");
7
+ }
8
+ /** Structured details carry a human sentence; printing the raw JSON helps nobody. */
2
9
  function renderDetail(detail) {
3
- return typeof detail === "string" ? detail : JSON.stringify(detail);
10
+ if (typeof detail === "string")
11
+ return detail;
12
+ const message = detail?.message;
13
+ return typeof message === "string" && message ? message : JSON.stringify(detail);
4
14
  }
5
15
  export function withErrorHandler(fn) {
6
16
  return async function (...args) {
@@ -21,11 +31,21 @@ export function withErrorHandler(fn) {
21
31
  "(reclaim is immediate), or upgrade the plan" +
22
32
  (err.upgradeUrl ? `: ${err.upgradeUrl}` : "."));
23
33
  }
34
+ else if (err instanceof MailImportQuotaExceededError) {
35
+ console.error(`Error: HTTP ${err.statusCode}: ${err.detailMessage || renderDetail(err.detail)}`);
36
+ if (err.retryAfterSeconds !== null) {
37
+ console.error(`Hint: Retry in ${err.retryAfterSeconds} seconds.`);
38
+ }
39
+ }
24
40
  else if (err instanceof InkboxAPIError) {
25
41
  console.error(`Error: HTTP ${err.statusCode}: ${renderDetail(err.detail)}`);
26
42
  if (err.statusCode === 401) {
27
43
  console.error("Hint: Check your API key.");
28
44
  }
45
+ if (importAlreadyInFlight(err)) {
46
+ console.error("Hint: List the mailbox's jobs with 'inkbox mailbox imports list <email>' " +
47
+ "and release an abandoned one with 'inkbox mailbox imports cancel <email> <job-id>'.");
48
+ }
29
49
  }
30
50
  else if (err instanceof InkboxVaultKeyError) {
31
51
  console.error(`Error: ${err.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,gCAAgC,EAChC,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,SAAS,YAAY,CAAC,MAAwC;IAC5D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,EAAiC;IAEjC,OAAO,KAAK,WAA0B,GAAG,IAAO;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,sCAAsC,GAAG,CAAC,cAAc,GAAG,CACzF,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,gCAAgC,EAAE,CAAC;gBAC3D,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,uBAAuB,GAAG,CAAC,aAAa,EAAE,CACxE,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,yBAAyB,EAAE,CAAC;gBACpD,OAAO,CAAC,KAAK,CACX,eAAe,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,aAAa,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAClF,CAAC;gBACF,OAAO,CAAC,KAAK,CACX,uEAAuE;oBACrE,0DAA0D;oBAC1D,6CAA6C;oBAC7C,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACjD,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,UAAU,KAAK,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5E,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBAC9C,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,KAAK,CACX,iDAAiD,CAClD,CAAC;YACJ,CAAC;iBAAM,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.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.7",
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.7",
22
22
  "commander": "^13.0.0",
23
23
  "undici": "^7.28.0"
24
24
  },