@inkbox/cli 0.4.4 → 0.4.5

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
@@ -181,16 +181,19 @@ Text message (SMS/MMS) operations, scoped to an identity. Requires `-i <handle>`
181
181
  **Outbound SMS rules:**
182
182
 
183
183
  - Allowed only from **local** numbers (not toll-free).
184
- - **15 sends per phone number per rolling 24h** — exceeded sends return `429 sender_rate_limited`.
184
+ - **100 recipient sends per phone number per rolling 24h** — a 3-recipient group message counts as 3 recipient sends. A single accepted send may push usage past the cap; the next capped send returns `429 sender_rate_limited`.
185
185
  - A freshly provisioned local number needs **~10-15 minutes** for 10DLC carrier propagation. Check `inkbox number get <id>`: send is gated until `smsStatus` reaches `ready`.
186
186
  - Recipients must opt in by texting **`START`** to any number in your organization. Unknown recipients fail with `403 recipient_not_opted_in`; opt-outs (`STOP`) return `403 recipient_opted_out`.
187
+ - **Beta:** Group MMS and conversation sends are beta. Some carriers may reject group chats or MMS from 10DLC numbers even when the sender is ready and recipients have opted in.
187
188
 
188
- **Coming soon:** toll-free SMS sending, and customer-managed 10DLC brands/campaigns to lift the per-number limit.
189
+ Customer-managed 10DLC brands/campaigns lift the default per-number cap to the carrier-assigned tier. Toll-free SMS sending is still coming soon.
189
190
 
190
191
  ```bash
191
- inkbox text send -i <handle> # Send an outbound SMS
192
- --to <e164> # E.164 destination (required)
193
- --text <body> # Message body, 1-1600 chars (required)
192
+ inkbox text send -i <handle> # Send an outbound SMS/MMS
193
+ --to <e164[,e164...]> # One recipient or a comma-separated group
194
+ --conversation-id <uuid> # Reply into an existing conversation instead of --to
195
+ --text <body> # Message body
196
+ --media-url <url> # MMS media URL; repeat for multiple
194
197
 
195
198
  inkbox text list -i <handle> # List text messages
196
199
  --limit <n> # Max results (default: 50)
@@ -202,8 +205,9 @@ inkbox text get <text-id> -i <handle> # Get a single text message
202
205
  inkbox text conversations -i <handle> # List conversation summaries
203
206
  --limit <n> # Max results (default: 50)
204
207
  --offset <n> # Pagination offset (default: 0)
208
+ --include-groups # Include group conversations
205
209
 
206
- inkbox text conversation <remote-number> -i <handle> # Get messages in a conversation
210
+ inkbox text conversation <conversation-key> -i <handle> # Remote number or conversation UUID
207
211
  --limit <n> # Max results (default: 50)
208
212
  --offset <n> # Pagination offset (default: 0)
209
213
 
@@ -211,8 +215,8 @@ inkbox text search -i <handle> # Search text messages
211
215
  -q, --query <query> # Search query (required)
212
216
  --limit <n> # Max results (default: 50)
213
217
 
214
- inkbox text mark-read <text-id> -i <handle> # Mark a text as read
215
- inkbox text mark-conversation-read <remote-number> -i <handle> # Mark conversation as read
218
+ inkbox text mark-read <text-id> -i <handle> # Mark a text as read
219
+ inkbox text mark-conversation-read <conversation-key> -i <handle> # Mark conversation as read
216
220
  ```
217
221
 
218
222
  ### vault
@@ -1,29 +1,75 @@
1
1
  import { createClient, getGlobalOpts } from "../client.js";
2
2
  import { output } from "../output.js";
3
3
  import { withErrorHandler } from "../errors.js";
4
+ function parseList(value) {
5
+ return value
6
+ .split(",")
7
+ .map((item) => item.trim())
8
+ .filter((item) => item.length > 0);
9
+ }
10
+ function collect(value, previous) {
11
+ previous.push(value);
12
+ return previous;
13
+ }
14
+ function formatPhoneList(value) {
15
+ return value?.join(", ");
16
+ }
17
+ export function buildTextSendOptions(cmdOpts) {
18
+ const recipients = cmdOpts.to ? parseList(cmdOpts.to) : [];
19
+ const mediaUrls = cmdOpts.mediaUrl ?? [];
20
+ if (recipients.length > 0 && cmdOpts.conversationId) {
21
+ return { error: "Pass either --to or --conversation-id, not both." };
22
+ }
23
+ if (recipients.length === 0 && !cmdOpts.conversationId) {
24
+ return { error: "Pass --to or --conversation-id." };
25
+ }
26
+ if (!cmdOpts.text && mediaUrls.length === 0) {
27
+ return { error: "Pass --text, --media-url, or both." };
28
+ }
29
+ const sendOptions = {};
30
+ if (recipients.length > 0) {
31
+ sendOptions.to = recipients.length === 1 ? recipients[0] : recipients;
32
+ }
33
+ if (cmdOpts.conversationId) {
34
+ sendOptions.conversationId = cmdOpts.conversationId;
35
+ }
36
+ if (cmdOpts.text) {
37
+ sendOptions.text = cmdOpts.text;
38
+ }
39
+ if (mediaUrls.length > 0) {
40
+ sendOptions.mediaUrls = mediaUrls;
41
+ }
42
+ return { sendOptions };
43
+ }
4
44
  export function registerTextCommands(program) {
5
45
  const text = program
6
46
  .command("text")
7
47
  .description("Text message (SMS/MMS) operations (identity-scoped)");
8
48
  text
9
49
  .command("send")
10
- .description("Send an outbound SMS from this identity's phone number")
50
+ .description("Send an outbound SMS/MMS from this identity's phone number")
11
51
  .requiredOption("-i, --identity <handle>", "Agent identity handle")
12
- .requiredOption("--to <number>", "E.164 destination number (e.g. +15551234567)")
13
- .requiredOption("--text <text>", "Message body (1-1600 chars)")
52
+ .option("--to <numbers>", "Comma-separated E.164 destination number(s)")
53
+ .option("--conversation-id <id>", "Existing conversation UUID to reply into")
54
+ .option("--text <text>", "Message body")
55
+ .option("--media-url <url>", "MMS media URL; repeat for multiple", collect, [])
14
56
  .action(withErrorHandler(async function (cmdOpts) {
57
+ const sendResult = buildTextSendOptions(cmdOpts);
58
+ if ("error" in sendResult) {
59
+ console.error(sendResult.error);
60
+ process.exit(1);
61
+ }
15
62
  const opts = getGlobalOpts(this);
16
63
  const inkbox = createClient(opts);
17
64
  const identity = await inkbox.getIdentity(cmdOpts.identity);
18
- const msg = await identity.sendText({
19
- to: cmdOpts.to,
20
- text: cmdOpts.text,
21
- });
65
+ const msg = await identity.sendText(sendResult.sendOptions);
22
66
  output({
23
67
  id: msg.id,
24
68
  direction: msg.direction,
25
69
  local: msg.localPhoneNumber,
26
70
  remote: msg.remotePhoneNumber,
71
+ conversationId: msg.conversationId,
72
+ recipients: msg.recipients?.map((r) => r.recipientPhoneNumber).join(", "),
27
73
  text: msg.text,
28
74
  deliveryStatus: msg.deliveryStatus,
29
75
  createdAt: msg.createdAt,
@@ -50,6 +96,7 @@ export function registerTextCommands(program) {
50
96
  columns: [
51
97
  "id",
52
98
  "direction",
99
+ "conversationId",
53
100
  "remotePhoneNumber",
54
101
  "type",
55
102
  "text",
@@ -72,6 +119,9 @@ export function registerTextCommands(program) {
72
119
  direction: msg.direction,
73
120
  local: msg.localPhoneNumber,
74
121
  remote: msg.remotePhoneNumber,
122
+ conversationId: msg.conversationId,
123
+ sender: msg.senderPhoneNumber,
124
+ recipients: msg.recipients?.map((r) => r.recipientPhoneNumber).join(", "),
75
125
  type: msg.type,
76
126
  text: msg.text,
77
127
  isRead: msg.isRead,
@@ -85,6 +135,7 @@ export function registerTextCommands(program) {
85
135
  .requiredOption("-i, --identity <handle>", "Agent identity handle")
86
136
  .option("--limit <n>", "Max results", "50")
87
137
  .option("--offset <n>", "Pagination offset", "0")
138
+ .option("--include-groups", "Include group conversations")
88
139
  .action(withErrorHandler(async function (cmdOpts) {
89
140
  const opts = getGlobalOpts(this);
90
141
  const inkbox = createClient(opts);
@@ -92,11 +143,22 @@ export function registerTextCommands(program) {
92
143
  const convos = await identity.listTextConversations({
93
144
  limit: parseInt(cmdOpts.limit, 10),
94
145
  offset: parseInt(cmdOpts.offset, 10),
146
+ includeGroups: !!cmdOpts.includeGroups,
95
147
  });
96
- output(convos, {
148
+ const rows = opts.json
149
+ ? convos
150
+ : convos.map((c) => ({
151
+ ...c,
152
+ participants: formatPhoneList(c.participants),
153
+ }));
154
+ output(rows, {
97
155
  json: !!opts.json,
98
156
  columns: [
157
+ "id",
99
158
  "remotePhoneNumber",
159
+ "participants",
160
+ "isGroup",
161
+ "latestHasMedia",
100
162
  "latestText",
101
163
  "latestDirection",
102
164
  "unreadCount",
@@ -106,16 +168,16 @@ export function registerTextCommands(program) {
106
168
  });
107
169
  }));
108
170
  text
109
- .command("conversation <remote-number>")
171
+ .command("conversation <conversation-key>")
110
172
  .description("Get messages in a conversation")
111
173
  .requiredOption("-i, --identity <handle>", "Agent identity handle")
112
174
  .option("--limit <n>", "Max results", "50")
113
175
  .option("--offset <n>", "Pagination offset", "0")
114
- .action(withErrorHandler(async function (remoteNumber, cmdOpts) {
176
+ .action(withErrorHandler(async function (conversationKey, cmdOpts) {
115
177
  const opts = getGlobalOpts(this);
116
178
  const inkbox = createClient(opts);
117
179
  const identity = await inkbox.getIdentity(cmdOpts.identity);
118
- const msgs = await identity.getTextConversation(remoteNumber, {
180
+ const msgs = await identity.getTextConversation(conversationKey, {
119
181
  limit: parseInt(cmdOpts.limit, 10),
120
182
  offset: parseInt(cmdOpts.offset, 10),
121
183
  });
@@ -124,6 +186,7 @@ export function registerTextCommands(program) {
124
186
  columns: [
125
187
  "id",
126
188
  "direction",
189
+ "conversationId",
127
190
  "remotePhoneNumber",
128
191
  "text",
129
192
  "type",
@@ -154,6 +217,7 @@ export function registerTextCommands(program) {
154
217
  columns: [
155
218
  "id",
156
219
  "direction",
220
+ "conversationId",
157
221
  "remotePhoneNumber",
158
222
  "text",
159
223
  "createdAt",
@@ -172,15 +236,16 @@ export function registerTextCommands(program) {
172
236
  console.log(`Marked text ${textId} as read.`);
173
237
  }));
174
238
  text
175
- .command("mark-conversation-read <remote-number>")
239
+ .command("mark-conversation-read <conversation-key>")
176
240
  .description("Mark all messages in a conversation as read")
177
241
  .requiredOption("-i, --identity <handle>", "Agent identity handle")
178
- .action(withErrorHandler(async function (remoteNumber, cmdOpts) {
242
+ .action(withErrorHandler(async function (conversationKey, cmdOpts) {
179
243
  const opts = getGlobalOpts(this);
180
244
  const inkbox = createClient(opts);
181
245
  const identity = await inkbox.getIdentity(cmdOpts.identity);
182
- const result = await identity.markTextConversationRead(remoteNumber);
183
- console.log(`Marked ${result.updatedCount} message(s) in conversation with ${remoteNumber} as read.`);
246
+ const result = await identity.markTextConversationRead(conversationKey);
247
+ const displayKey = result.remotePhoneNumber ?? result.conversationId ?? conversationKey;
248
+ console.log(`Marked ${result.updatedCount} message(s) in conversation ${displayKey} as read.`);
184
249
  }));
185
250
  }
186
251
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/commands/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/commands/text.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -20,7 +20,7 @@ import { registerDomainCommands } from "./commands/domain.js";
20
20
  const program = new Command()
21
21
  .name("inkbox")
22
22
  .description("CLI for the Inkbox API — email, phone, identities, and vault for AI agents")
23
- .version("0.4.4")
23
+ .version("0.4.5")
24
24
  .option("--api-key <key>", "Inkbox API key (or set INKBOX_API_KEY)")
25
25
  .option("--vault-key <key>", "Vault key for decrypt operations (or set INKBOX_VAULT_KEY)")
26
26
  .option("--base-url <url>", "Override API base URL (or set INKBOX_BASE_URL)")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkbox/cli",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "CLI for the Inkbox API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -14,10 +14,11 @@
14
14
  "scripts": {
15
15
  "build": "tsc",
16
16
  "dev": "tsx src/index.ts",
17
+ "test": "npm run build && node --test tests/*.test.mjs",
17
18
  "prepublishOnly": "npm run build"
18
19
  },
19
20
  "dependencies": {
20
- "@inkbox/sdk": "^0.4.4",
21
+ "@inkbox/sdk": "^0.4.5",
21
22
  "commander": "^13.0.0"
22
23
  },
23
24
  "devDependencies": {