@sendly/cli 3.23.0 → 3.27.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/commands/campaigns/schedule.js +20 -10
  2. package/dist/commands/conversations/context.d.ts +15 -0
  3. package/dist/commands/conversations/context.js +55 -0
  4. package/dist/commands/conversations/suggest-replies.d.ts +13 -0
  5. package/dist/commands/conversations/suggest-replies.js +50 -0
  6. package/dist/commands/conversations/update.d.ts +15 -0
  7. package/dist/commands/conversations/update.js +56 -0
  8. package/dist/commands/doctor.d.ts +1 -0
  9. package/dist/commands/doctor.js +45 -1
  10. package/dist/commands/drafts/list.js +2 -2
  11. package/dist/commands/enterprise/generate-business-page.d.ts +16 -0
  12. package/dist/commands/enterprise/generate-business-page.js +62 -0
  13. package/dist/commands/enterprise/upload-verification-document.d.ts +13 -0
  14. package/dist/commands/enterprise/upload-verification-document.js +109 -0
  15. package/dist/commands/events/listen.d.ts +11 -0
  16. package/dist/commands/events/listen.js +82 -0
  17. package/dist/commands/labels/add.d.ts +14 -0
  18. package/dist/commands/labels/add.js +46 -0
  19. package/dist/commands/labels/remove.d.ts +14 -0
  20. package/dist/commands/labels/remove.js +46 -0
  21. package/dist/commands/rules/create.d.ts +16 -0
  22. package/dist/commands/rules/create.js +70 -0
  23. package/dist/commands/rules/delete.d.ts +13 -0
  24. package/dist/commands/rules/delete.js +29 -0
  25. package/dist/commands/rules/index.d.ts +10 -0
  26. package/dist/commands/rules/index.js +56 -0
  27. package/dist/commands/sms/batch.js +1 -1
  28. package/dist/commands/sms/schedule.d.ts +3 -3
  29. package/dist/commands/sms/schedule.js +117 -27
  30. package/dist/commands/sms/search.d.ts +16 -0
  31. package/dist/commands/sms/search.js +105 -0
  32. package/dist/commands/sms/send.d.ts +1 -1
  33. package/dist/commands/sms/send.js +55 -10
  34. package/dist/commands/templates/update.d.ts +15 -0
  35. package/dist/commands/templates/update.js +70 -0
  36. package/dist/commands/webhooks/listen.js +5 -1
  37. package/dist/lib/base-command.js +2 -2
  38. package/oclif.manifest.json +1669 -925
  39. package/package.json +17 -2
@@ -722,10 +722,11 @@
722
722
  "required": true
723
723
  }
724
724
  },
725
- "description": "Schedule a campaign for later",
725
+ "description": "Schedule a campaign for later. Supports natural language dates like \"tomorrow at 9am\".",
726
726
  "examples": [
727
- "<%= config.bin %> campaigns schedule cmp_xxx --at \"2024-01-15T10:00:00Z\"",
728
- "<%= config.bin %> campaigns schedule cmp_xxx --at \"2024-01-15T10:00:00\" --timezone \"America/New_York\""
727
+ "<%= config.bin %> campaigns schedule cmp_xxx --at \"tomorrow at 9am\"",
728
+ "<%= config.bin %> campaigns schedule cmp_xxx --at \"next Monday 10am\" --timezone \"America/New_York\"",
729
+ "<%= config.bin %> campaigns schedule cmp_xxx --at \"2026-04-01T10:00:00Z\""
729
730
  ],
730
731
  "flags": {
731
732
  "json": {
@@ -742,7 +743,7 @@
742
743
  "type": "boolean"
743
744
  },
744
745
  "at": {
745
- "description": "When to send (ISO 8601 datetime)",
746
+ "description": "When to send ISO 8601 or natural language (\"tomorrow at 9am\", \"in 2 hours\")",
746
747
  "name": "at",
747
748
  "required": true,
748
749
  "hasDynamicHelp": false,
@@ -1048,6 +1049,353 @@
1048
1049
  "set.js"
1049
1050
  ]
1050
1051
  },
1052
+ "contacts:create": {
1053
+ "aliases": [],
1054
+ "args": {},
1055
+ "description": "Create a new contact",
1056
+ "examples": [
1057
+ "<%= config.bin %> contacts create --phone +15551234567",
1058
+ "<%= config.bin %> contacts create --phone +15551234567 --name \"John Doe\"",
1059
+ "<%= config.bin %> contacts create --phone +15551234567 --name \"John\" --email john@example.com",
1060
+ "<%= config.bin %> contacts create --phone +15551234567 --json"
1061
+ ],
1062
+ "flags": {
1063
+ "json": {
1064
+ "description": "Output in JSON format",
1065
+ "name": "json",
1066
+ "allowNo": false,
1067
+ "type": "boolean"
1068
+ },
1069
+ "quiet": {
1070
+ "char": "q",
1071
+ "description": "Minimal output",
1072
+ "name": "quiet",
1073
+ "allowNo": false,
1074
+ "type": "boolean"
1075
+ },
1076
+ "phone": {
1077
+ "char": "p",
1078
+ "description": "Phone number in E.164 format (e.g., +15551234567)",
1079
+ "name": "phone",
1080
+ "required": true,
1081
+ "hasDynamicHelp": false,
1082
+ "multiple": false,
1083
+ "type": "option"
1084
+ },
1085
+ "name": {
1086
+ "char": "n",
1087
+ "description": "Contact name",
1088
+ "name": "name",
1089
+ "hasDynamicHelp": false,
1090
+ "multiple": false,
1091
+ "type": "option"
1092
+ },
1093
+ "email": {
1094
+ "char": "e",
1095
+ "description": "Contact email",
1096
+ "name": "email",
1097
+ "hasDynamicHelp": false,
1098
+ "multiple": false,
1099
+ "type": "option"
1100
+ }
1101
+ },
1102
+ "hasDynamicHelp": false,
1103
+ "hiddenAliases": [],
1104
+ "id": "contacts:create",
1105
+ "pluginAlias": "@sendly/cli",
1106
+ "pluginName": "@sendly/cli",
1107
+ "pluginType": "core",
1108
+ "strict": true,
1109
+ "isESM": true,
1110
+ "relativePath": [
1111
+ "dist",
1112
+ "commands",
1113
+ "contacts",
1114
+ "create.js"
1115
+ ]
1116
+ },
1117
+ "contacts:delete": {
1118
+ "aliases": [],
1119
+ "args": {
1120
+ "id": {
1121
+ "description": "Contact ID to delete",
1122
+ "name": "id",
1123
+ "required": true
1124
+ }
1125
+ },
1126
+ "description": "Delete a contact",
1127
+ "examples": [
1128
+ "<%= config.bin %> contacts delete cnt_xxx",
1129
+ "<%= config.bin %> contacts delete cnt_xxx --yes"
1130
+ ],
1131
+ "flags": {
1132
+ "json": {
1133
+ "description": "Output in JSON format",
1134
+ "name": "json",
1135
+ "allowNo": false,
1136
+ "type": "boolean"
1137
+ },
1138
+ "quiet": {
1139
+ "char": "q",
1140
+ "description": "Minimal output",
1141
+ "name": "quiet",
1142
+ "allowNo": false,
1143
+ "type": "boolean"
1144
+ },
1145
+ "yes": {
1146
+ "char": "y",
1147
+ "description": "Skip confirmation prompt",
1148
+ "name": "yes",
1149
+ "allowNo": false,
1150
+ "type": "boolean"
1151
+ }
1152
+ },
1153
+ "hasDynamicHelp": false,
1154
+ "hiddenAliases": [],
1155
+ "id": "contacts:delete",
1156
+ "pluginAlias": "@sendly/cli",
1157
+ "pluginName": "@sendly/cli",
1158
+ "pluginType": "core",
1159
+ "strict": true,
1160
+ "isESM": true,
1161
+ "relativePath": [
1162
+ "dist",
1163
+ "commands",
1164
+ "contacts",
1165
+ "delete.js"
1166
+ ]
1167
+ },
1168
+ "contacts:get": {
1169
+ "aliases": [],
1170
+ "args": {
1171
+ "id": {
1172
+ "description": "Contact ID",
1173
+ "name": "id",
1174
+ "required": true
1175
+ }
1176
+ },
1177
+ "description": "Get contact details",
1178
+ "examples": [
1179
+ "<%= config.bin %> contacts get cnt_xxx",
1180
+ "<%= config.bin %> contacts get cnt_xxx --json"
1181
+ ],
1182
+ "flags": {
1183
+ "json": {
1184
+ "description": "Output in JSON format",
1185
+ "name": "json",
1186
+ "allowNo": false,
1187
+ "type": "boolean"
1188
+ },
1189
+ "quiet": {
1190
+ "char": "q",
1191
+ "description": "Minimal output",
1192
+ "name": "quiet",
1193
+ "allowNo": false,
1194
+ "type": "boolean"
1195
+ }
1196
+ },
1197
+ "hasDynamicHelp": false,
1198
+ "hiddenAliases": [],
1199
+ "id": "contacts:get",
1200
+ "pluginAlias": "@sendly/cli",
1201
+ "pluginName": "@sendly/cli",
1202
+ "pluginType": "core",
1203
+ "strict": true,
1204
+ "isESM": true,
1205
+ "relativePath": [
1206
+ "dist",
1207
+ "commands",
1208
+ "contacts",
1209
+ "get.js"
1210
+ ]
1211
+ },
1212
+ "contacts:import": {
1213
+ "aliases": [],
1214
+ "args": {
1215
+ "file": {
1216
+ "description": "Path to CSV file (columns: phone, name, email)",
1217
+ "name": "file",
1218
+ "required": true
1219
+ }
1220
+ },
1221
+ "description": "Import contacts from a CSV file",
1222
+ "examples": [
1223
+ "<%= config.bin %> contacts import contacts.csv",
1224
+ "<%= config.bin %> contacts import contacts.csv --list lst_xxx",
1225
+ "<%= config.bin %> contacts import contacts.csv --list lst_xxx --json"
1226
+ ],
1227
+ "flags": {
1228
+ "json": {
1229
+ "description": "Output in JSON format",
1230
+ "name": "json",
1231
+ "allowNo": false,
1232
+ "type": "boolean"
1233
+ },
1234
+ "quiet": {
1235
+ "char": "q",
1236
+ "description": "Minimal output",
1237
+ "name": "quiet",
1238
+ "allowNo": false,
1239
+ "type": "boolean"
1240
+ },
1241
+ "list": {
1242
+ "char": "l",
1243
+ "description": "Contact list ID to add imported contacts to",
1244
+ "name": "list",
1245
+ "hasDynamicHelp": false,
1246
+ "multiple": false,
1247
+ "type": "option"
1248
+ }
1249
+ },
1250
+ "hasDynamicHelp": false,
1251
+ "hiddenAliases": [],
1252
+ "id": "contacts:import",
1253
+ "pluginAlias": "@sendly/cli",
1254
+ "pluginName": "@sendly/cli",
1255
+ "pluginType": "core",
1256
+ "strict": true,
1257
+ "isESM": true,
1258
+ "relativePath": [
1259
+ "dist",
1260
+ "commands",
1261
+ "contacts",
1262
+ "import.js"
1263
+ ]
1264
+ },
1265
+ "contacts:list": {
1266
+ "aliases": [],
1267
+ "args": {},
1268
+ "description": "List contacts",
1269
+ "examples": [
1270
+ "<%= config.bin %> contacts list",
1271
+ "<%= config.bin %> contacts list --search john",
1272
+ "<%= config.bin %> contacts list --list lst_xxx",
1273
+ "<%= config.bin %> contacts list --limit 50",
1274
+ "<%= config.bin %> contacts list --json"
1275
+ ],
1276
+ "flags": {
1277
+ "json": {
1278
+ "description": "Output in JSON format",
1279
+ "name": "json",
1280
+ "allowNo": false,
1281
+ "type": "boolean"
1282
+ },
1283
+ "quiet": {
1284
+ "char": "q",
1285
+ "description": "Minimal output",
1286
+ "name": "quiet",
1287
+ "allowNo": false,
1288
+ "type": "boolean"
1289
+ },
1290
+ "limit": {
1291
+ "char": "l",
1292
+ "description": "Number of contacts to show",
1293
+ "name": "limit",
1294
+ "default": 50,
1295
+ "hasDynamicHelp": false,
1296
+ "multiple": false,
1297
+ "type": "option"
1298
+ },
1299
+ "offset": {
1300
+ "description": "Offset for pagination",
1301
+ "name": "offset",
1302
+ "default": 0,
1303
+ "hasDynamicHelp": false,
1304
+ "multiple": false,
1305
+ "type": "option"
1306
+ },
1307
+ "search": {
1308
+ "char": "s",
1309
+ "description": "Search by name, phone, or email",
1310
+ "name": "search",
1311
+ "hasDynamicHelp": false,
1312
+ "multiple": false,
1313
+ "type": "option"
1314
+ },
1315
+ "list": {
1316
+ "description": "Filter by contact list ID",
1317
+ "name": "list",
1318
+ "hasDynamicHelp": false,
1319
+ "multiple": false,
1320
+ "type": "option"
1321
+ }
1322
+ },
1323
+ "hasDynamicHelp": false,
1324
+ "hiddenAliases": [],
1325
+ "id": "contacts:list",
1326
+ "pluginAlias": "@sendly/cli",
1327
+ "pluginName": "@sendly/cli",
1328
+ "pluginType": "core",
1329
+ "strict": true,
1330
+ "isESM": true,
1331
+ "relativePath": [
1332
+ "dist",
1333
+ "commands",
1334
+ "contacts",
1335
+ "list.js"
1336
+ ]
1337
+ },
1338
+ "contacts:update": {
1339
+ "aliases": [],
1340
+ "args": {
1341
+ "id": {
1342
+ "description": "Contact ID",
1343
+ "name": "id",
1344
+ "required": true
1345
+ }
1346
+ },
1347
+ "description": "Update a contact",
1348
+ "examples": [
1349
+ "<%= config.bin %> contacts update cnt_xxx --name \"John Doe\"",
1350
+ "<%= config.bin %> contacts update cnt_xxx --email john@example.com",
1351
+ "<%= config.bin %> contacts update cnt_xxx --name \"John\" --email john@example.com"
1352
+ ],
1353
+ "flags": {
1354
+ "json": {
1355
+ "description": "Output in JSON format",
1356
+ "name": "json",
1357
+ "allowNo": false,
1358
+ "type": "boolean"
1359
+ },
1360
+ "quiet": {
1361
+ "char": "q",
1362
+ "description": "Minimal output",
1363
+ "name": "quiet",
1364
+ "allowNo": false,
1365
+ "type": "boolean"
1366
+ },
1367
+ "name": {
1368
+ "char": "n",
1369
+ "description": "Contact name",
1370
+ "name": "name",
1371
+ "hasDynamicHelp": false,
1372
+ "multiple": false,
1373
+ "type": "option"
1374
+ },
1375
+ "email": {
1376
+ "char": "e",
1377
+ "description": "Contact email",
1378
+ "name": "email",
1379
+ "hasDynamicHelp": false,
1380
+ "multiple": false,
1381
+ "type": "option"
1382
+ }
1383
+ },
1384
+ "hasDynamicHelp": false,
1385
+ "hiddenAliases": [],
1386
+ "id": "contacts:update",
1387
+ "pluginAlias": "@sendly/cli",
1388
+ "pluginName": "@sendly/cli",
1389
+ "pluginType": "core",
1390
+ "strict": true,
1391
+ "isESM": true,
1392
+ "relativePath": [
1393
+ "dist",
1394
+ "commands",
1395
+ "contacts",
1396
+ "update.js"
1397
+ ]
1398
+ },
1051
1399
  "credits:balance": {
1052
1400
  "aliases": [],
1053
1401
  "args": {},
@@ -1172,17 +1520,61 @@
1172
1520
  "multiple": false,
1173
1521
  "type": "option"
1174
1522
  },
1175
- "yes": {
1176
- "char": "y",
1177
- "description": "Skip confirmation prompt",
1178
- "name": "yes",
1523
+ "yes": {
1524
+ "char": "y",
1525
+ "description": "Skip confirmation prompt",
1526
+ "name": "yes",
1527
+ "allowNo": false,
1528
+ "type": "boolean"
1529
+ }
1530
+ },
1531
+ "hasDynamicHelp": false,
1532
+ "hiddenAliases": [],
1533
+ "id": "credits:transfer",
1534
+ "pluginAlias": "@sendly/cli",
1535
+ "pluginName": "@sendly/cli",
1536
+ "pluginType": "core",
1537
+ "strict": true,
1538
+ "isESM": true,
1539
+ "relativePath": [
1540
+ "dist",
1541
+ "commands",
1542
+ "credits",
1543
+ "transfer.js"
1544
+ ]
1545
+ },
1546
+ "conversations:close": {
1547
+ "aliases": [],
1548
+ "args": {
1549
+ "id": {
1550
+ "description": "Conversation ID",
1551
+ "name": "id",
1552
+ "required": true
1553
+ }
1554
+ },
1555
+ "description": "Close a conversation",
1556
+ "examples": [
1557
+ "<%= config.bin %> conversations close conv_abc123",
1558
+ "<%= config.bin %> conversations close conv_abc123 --json"
1559
+ ],
1560
+ "flags": {
1561
+ "json": {
1562
+ "description": "Output in JSON format",
1563
+ "name": "json",
1564
+ "allowNo": false,
1565
+ "type": "boolean"
1566
+ },
1567
+ "quiet": {
1568
+ "char": "q",
1569
+ "description": "Minimal output",
1570
+ "name": "quiet",
1179
1571
  "allowNo": false,
1180
1572
  "type": "boolean"
1181
1573
  }
1182
1574
  },
1183
1575
  "hasDynamicHelp": false,
1184
1576
  "hiddenAliases": [],
1185
- "id": "credits:transfer",
1577
+ "id": "conversations:close",
1186
1578
  "pluginAlias": "@sendly/cli",
1187
1579
  "pluginName": "@sendly/cli",
1188
1580
  "pluginType": "core",
@@ -1191,11 +1583,11 @@
1191
1583
  "relativePath": [
1192
1584
  "dist",
1193
1585
  "commands",
1194
- "credits",
1195
- "transfer.js"
1586
+ "conversations",
1587
+ "close.js"
1196
1588
  ]
1197
1589
  },
1198
- "conversations:close": {
1590
+ "conversations:context": {
1199
1591
  "aliases": [],
1200
1592
  "args": {
1201
1593
  "id": {
@@ -1204,10 +1596,12 @@
1204
1596
  "required": true
1205
1597
  }
1206
1598
  },
1207
- "description": "Close a conversation",
1599
+ "description": "Get LLM-ready conversation context. Returns pre-formatted text with timestamped messages, AI classification, and business context.",
1208
1600
  "examples": [
1209
- "<%= config.bin %> conversations close conv_abc123",
1210
- "<%= config.bin %> conversations close conv_abc123 --json"
1601
+ "<%= config.bin %> conversations context conv_abc123",
1602
+ "<%= config.bin %> conversations context conv_abc123 --max-messages 10",
1603
+ "<%= config.bin %> conversations context conv_abc123 --json",
1604
+ "<%= config.bin %> conversations context conv_abc123 --raw"
1211
1605
  ],
1212
1606
  "flags": {
1213
1607
  "json": {
@@ -1222,11 +1616,26 @@
1222
1616
  "name": "quiet",
1223
1617
  "allowNo": false,
1224
1618
  "type": "boolean"
1619
+ },
1620
+ "max-messages": {
1621
+ "char": "m",
1622
+ "description": "Maximum number of messages to include",
1623
+ "name": "max-messages",
1624
+ "default": 20,
1625
+ "hasDynamicHelp": false,
1626
+ "multiple": false,
1627
+ "type": "option"
1628
+ },
1629
+ "raw": {
1630
+ "description": "Output only the context text (for piping to LLMs)",
1631
+ "name": "raw",
1632
+ "allowNo": false,
1633
+ "type": "boolean"
1225
1634
  }
1226
1635
  },
1227
1636
  "hasDynamicHelp": false,
1228
1637
  "hiddenAliases": [],
1229
- "id": "conversations:close",
1638
+ "id": "conversations:context",
1230
1639
  "pluginAlias": "@sendly/cli",
1231
1640
  "pluginName": "@sendly/cli",
1232
1641
  "pluginType": "core",
@@ -1236,7 +1645,7 @@
1236
1645
  "dist",
1237
1646
  "commands",
1238
1647
  "conversations",
1239
- "close.js"
1648
+ "context.js"
1240
1649
  ]
1241
1650
  },
1242
1651
  "conversations:get": {
@@ -1539,234 +1948,24 @@
1539
1948
  "isESM": true,
1540
1949
  "relativePath": [
1541
1950
  "dist",
1542
- "commands",
1543
- "conversations",
1544
- "reply.js"
1545
- ]
1546
- },
1547
- "contacts:create": {
1548
- "aliases": [],
1549
- "args": {},
1550
- "description": "Create a new contact",
1551
- "examples": [
1552
- "<%= config.bin %> contacts create --phone +15551234567",
1553
- "<%= config.bin %> contacts create --phone +15551234567 --name \"John Doe\"",
1554
- "<%= config.bin %> contacts create --phone +15551234567 --name \"John\" --email john@example.com",
1555
- "<%= config.bin %> contacts create --phone +15551234567 --json"
1556
- ],
1557
- "flags": {
1558
- "json": {
1559
- "description": "Output in JSON format",
1560
- "name": "json",
1561
- "allowNo": false,
1562
- "type": "boolean"
1563
- },
1564
- "quiet": {
1565
- "char": "q",
1566
- "description": "Minimal output",
1567
- "name": "quiet",
1568
- "allowNo": false,
1569
- "type": "boolean"
1570
- },
1571
- "phone": {
1572
- "char": "p",
1573
- "description": "Phone number in E.164 format (e.g., +15551234567)",
1574
- "name": "phone",
1575
- "required": true,
1576
- "hasDynamicHelp": false,
1577
- "multiple": false,
1578
- "type": "option"
1579
- },
1580
- "name": {
1581
- "char": "n",
1582
- "description": "Contact name",
1583
- "name": "name",
1584
- "hasDynamicHelp": false,
1585
- "multiple": false,
1586
- "type": "option"
1587
- },
1588
- "email": {
1589
- "char": "e",
1590
- "description": "Contact email",
1591
- "name": "email",
1592
- "hasDynamicHelp": false,
1593
- "multiple": false,
1594
- "type": "option"
1595
- }
1596
- },
1597
- "hasDynamicHelp": false,
1598
- "hiddenAliases": [],
1599
- "id": "contacts:create",
1600
- "pluginAlias": "@sendly/cli",
1601
- "pluginName": "@sendly/cli",
1602
- "pluginType": "core",
1603
- "strict": true,
1604
- "isESM": true,
1605
- "relativePath": [
1606
- "dist",
1607
- "commands",
1608
- "contacts",
1609
- "create.js"
1610
- ]
1611
- },
1612
- "contacts:delete": {
1613
- "aliases": [],
1614
- "args": {
1615
- "id": {
1616
- "description": "Contact ID to delete",
1617
- "name": "id",
1618
- "required": true
1619
- }
1620
- },
1621
- "description": "Delete a contact",
1622
- "examples": [
1623
- "<%= config.bin %> contacts delete cnt_xxx",
1624
- "<%= config.bin %> contacts delete cnt_xxx --yes"
1625
- ],
1626
- "flags": {
1627
- "json": {
1628
- "description": "Output in JSON format",
1629
- "name": "json",
1630
- "allowNo": false,
1631
- "type": "boolean"
1632
- },
1633
- "quiet": {
1634
- "char": "q",
1635
- "description": "Minimal output",
1636
- "name": "quiet",
1637
- "allowNo": false,
1638
- "type": "boolean"
1639
- },
1640
- "yes": {
1641
- "char": "y",
1642
- "description": "Skip confirmation prompt",
1643
- "name": "yes",
1644
- "allowNo": false,
1645
- "type": "boolean"
1646
- }
1647
- },
1648
- "hasDynamicHelp": false,
1649
- "hiddenAliases": [],
1650
- "id": "contacts:delete",
1651
- "pluginAlias": "@sendly/cli",
1652
- "pluginName": "@sendly/cli",
1653
- "pluginType": "core",
1654
- "strict": true,
1655
- "isESM": true,
1656
- "relativePath": [
1657
- "dist",
1658
- "commands",
1659
- "contacts",
1660
- "delete.js"
1661
- ]
1662
- },
1663
- "contacts:get": {
1664
- "aliases": [],
1665
- "args": {
1666
- "id": {
1667
- "description": "Contact ID",
1668
- "name": "id",
1669
- "required": true
1670
- }
1671
- },
1672
- "description": "Get contact details",
1673
- "examples": [
1674
- "<%= config.bin %> contacts get cnt_xxx",
1675
- "<%= config.bin %> contacts get cnt_xxx --json"
1676
- ],
1677
- "flags": {
1678
- "json": {
1679
- "description": "Output in JSON format",
1680
- "name": "json",
1681
- "allowNo": false,
1682
- "type": "boolean"
1683
- },
1684
- "quiet": {
1685
- "char": "q",
1686
- "description": "Minimal output",
1687
- "name": "quiet",
1688
- "allowNo": false,
1689
- "type": "boolean"
1690
- }
1691
- },
1692
- "hasDynamicHelp": false,
1693
- "hiddenAliases": [],
1694
- "id": "contacts:get",
1695
- "pluginAlias": "@sendly/cli",
1696
- "pluginName": "@sendly/cli",
1697
- "pluginType": "core",
1698
- "strict": true,
1699
- "isESM": true,
1700
- "relativePath": [
1701
- "dist",
1702
- "commands",
1703
- "contacts",
1704
- "get.js"
1705
- ]
1706
- },
1707
- "contacts:import": {
1708
- "aliases": [],
1709
- "args": {
1710
- "file": {
1711
- "description": "Path to CSV file (columns: phone, name, email)",
1712
- "name": "file",
1713
- "required": true
1714
- }
1715
- },
1716
- "description": "Import contacts from a CSV file",
1717
- "examples": [
1718
- "<%= config.bin %> contacts import contacts.csv",
1719
- "<%= config.bin %> contacts import contacts.csv --list lst_xxx",
1720
- "<%= config.bin %> contacts import contacts.csv --list lst_xxx --json"
1721
- ],
1722
- "flags": {
1723
- "json": {
1724
- "description": "Output in JSON format",
1725
- "name": "json",
1726
- "allowNo": false,
1727
- "type": "boolean"
1728
- },
1729
- "quiet": {
1730
- "char": "q",
1731
- "description": "Minimal output",
1732
- "name": "quiet",
1733
- "allowNo": false,
1734
- "type": "boolean"
1735
- },
1736
- "list": {
1737
- "char": "l",
1738
- "description": "Contact list ID to add imported contacts to",
1739
- "name": "list",
1740
- "hasDynamicHelp": false,
1741
- "multiple": false,
1742
- "type": "option"
1743
- }
1744
- },
1745
- "hasDynamicHelp": false,
1746
- "hiddenAliases": [],
1747
- "id": "contacts:import",
1748
- "pluginAlias": "@sendly/cli",
1749
- "pluginName": "@sendly/cli",
1750
- "pluginType": "core",
1751
- "strict": true,
1752
- "isESM": true,
1753
- "relativePath": [
1754
- "dist",
1755
- "commands",
1756
- "contacts",
1757
- "import.js"
1951
+ "commands",
1952
+ "conversations",
1953
+ "reply.js"
1758
1954
  ]
1759
1955
  },
1760
- "contacts:list": {
1956
+ "conversations:suggest-replies": {
1761
1957
  "aliases": [],
1762
- "args": {},
1763
- "description": "List contacts",
1958
+ "args": {
1959
+ "id": {
1960
+ "description": "Conversation ID",
1961
+ "name": "id",
1962
+ "required": true
1963
+ }
1964
+ },
1965
+ "description": "Get AI-suggested replies for a conversation",
1764
1966
  "examples": [
1765
- "<%= config.bin %> contacts list",
1766
- "<%= config.bin %> contacts list --search john",
1767
- "<%= config.bin %> contacts list --list lst_xxx",
1768
- "<%= config.bin %> contacts list --limit 50",
1769
- "<%= config.bin %> contacts list --json"
1967
+ "<%= config.bin %> conversations suggest-replies conv_abc123",
1968
+ "<%= config.bin %> conversations suggest-replies conv_abc123 --json"
1770
1969
  ],
1771
1970
  "flags": {
1772
1971
  "json": {
@@ -1781,43 +1980,11 @@
1781
1980
  "name": "quiet",
1782
1981
  "allowNo": false,
1783
1982
  "type": "boolean"
1784
- },
1785
- "limit": {
1786
- "char": "l",
1787
- "description": "Number of contacts to show",
1788
- "name": "limit",
1789
- "default": 50,
1790
- "hasDynamicHelp": false,
1791
- "multiple": false,
1792
- "type": "option"
1793
- },
1794
- "offset": {
1795
- "description": "Offset for pagination",
1796
- "name": "offset",
1797
- "default": 0,
1798
- "hasDynamicHelp": false,
1799
- "multiple": false,
1800
- "type": "option"
1801
- },
1802
- "search": {
1803
- "char": "s",
1804
- "description": "Search by name, phone, or email",
1805
- "name": "search",
1806
- "hasDynamicHelp": false,
1807
- "multiple": false,
1808
- "type": "option"
1809
- },
1810
- "list": {
1811
- "description": "Filter by contact list ID",
1812
- "name": "list",
1813
- "hasDynamicHelp": false,
1814
- "multiple": false,
1815
- "type": "option"
1816
1983
  }
1817
1984
  },
1818
1985
  "hasDynamicHelp": false,
1819
1986
  "hiddenAliases": [],
1820
- "id": "contacts:list",
1987
+ "id": "conversations:suggest-replies",
1821
1988
  "pluginAlias": "@sendly/cli",
1822
1989
  "pluginName": "@sendly/cli",
1823
1990
  "pluginType": "core",
@@ -1826,24 +1993,24 @@
1826
1993
  "relativePath": [
1827
1994
  "dist",
1828
1995
  "commands",
1829
- "contacts",
1830
- "list.js"
1996
+ "conversations",
1997
+ "suggest-replies.js"
1831
1998
  ]
1832
1999
  },
1833
- "contacts:update": {
2000
+ "conversations:update": {
1834
2001
  "aliases": [],
1835
2002
  "args": {
1836
2003
  "id": {
1837
- "description": "Contact ID",
2004
+ "description": "Conversation ID",
1838
2005
  "name": "id",
1839
2006
  "required": true
1840
2007
  }
1841
2008
  },
1842
- "description": "Update a contact",
2009
+ "description": "Update a conversation",
1843
2010
  "examples": [
1844
- "<%= config.bin %> contacts update cnt_xxx --name \"John Doe\"",
1845
- "<%= config.bin %> contacts update cnt_xxx --email john@example.com",
1846
- "<%= config.bin %> contacts update cnt_xxx --name \"John\" --email john@example.com"
2011
+ "<%= config.bin %> conversations update conv_abc123 --metadata '{\"priority\":\"high\"}'",
2012
+ "<%= config.bin %> conversations update conv_abc123 --tags vip,urgent",
2013
+ "<%= config.bin %> conversations update conv_abc123 --metadata '{\"note\":\"follow up\"}' --tags support"
1847
2014
  ],
1848
2015
  "flags": {
1849
2016
  "json": {
@@ -1859,18 +2026,18 @@
1859
2026
  "allowNo": false,
1860
2027
  "type": "boolean"
1861
2028
  },
1862
- "name": {
1863
- "char": "n",
1864
- "description": "Contact name",
1865
- "name": "name",
2029
+ "metadata": {
2030
+ "char": "m",
2031
+ "description": "Metadata as JSON string",
2032
+ "name": "metadata",
1866
2033
  "hasDynamicHelp": false,
1867
2034
  "multiple": false,
1868
2035
  "type": "option"
1869
2036
  },
1870
- "email": {
1871
- "char": "e",
1872
- "description": "Contact email",
1873
- "name": "email",
2037
+ "tags": {
2038
+ "char": "t",
2039
+ "description": "Comma-separated list of tags",
2040
+ "name": "tags",
1874
2041
  "hasDynamicHelp": false,
1875
2042
  "multiple": false,
1876
2043
  "type": "option"
@@ -1878,7 +2045,7 @@
1878
2045
  },
1879
2046
  "hasDynamicHelp": false,
1880
2047
  "hiddenAliases": [],
1881
- "id": "contacts:update",
2048
+ "id": "conversations:update",
1882
2049
  "pluginAlias": "@sendly/cli",
1883
2050
  "pluginName": "@sendly/cli",
1884
2051
  "pluginType": "core",
@@ -1887,7 +2054,7 @@
1887
2054
  "relativePath": [
1888
2055
  "dist",
1889
2056
  "commands",
1890
- "contacts",
2057
+ "conversations",
1891
2058
  "update.js"
1892
2059
  ]
1893
2060
  },
@@ -2234,6 +2401,88 @@
2234
2401
  "credits.js"
2235
2402
  ]
2236
2403
  },
2404
+ "enterprise:generate-business-page": {
2405
+ "aliases": [],
2406
+ "args": {},
2407
+ "description": "Generate a hosted business page for verification",
2408
+ "examples": [
2409
+ "<%= config.bin %> enterprise generate-business-page --name \"Acme Services\" --use-case \"Appointment Reminders\"",
2410
+ "<%= config.bin %> enterprise generate-business-page --name \"Acme Services\" --email hello@acme.com --phone +15551234567"
2411
+ ],
2412
+ "flags": {
2413
+ "json": {
2414
+ "description": "Output in JSON format",
2415
+ "name": "json",
2416
+ "allowNo": false,
2417
+ "type": "boolean"
2418
+ },
2419
+ "quiet": {
2420
+ "char": "q",
2421
+ "description": "Minimal output",
2422
+ "name": "quiet",
2423
+ "allowNo": false,
2424
+ "type": "boolean"
2425
+ },
2426
+ "name": {
2427
+ "char": "n",
2428
+ "description": "Business name (required)",
2429
+ "name": "name",
2430
+ "required": true,
2431
+ "hasDynamicHelp": false,
2432
+ "multiple": false,
2433
+ "type": "option"
2434
+ },
2435
+ "use-case": {
2436
+ "description": "Use case (e.g. Appointment Reminders)",
2437
+ "name": "use-case",
2438
+ "hasDynamicHelp": false,
2439
+ "multiple": false,
2440
+ "type": "option"
2441
+ },
2442
+ "summary": {
2443
+ "description": "Use case summary",
2444
+ "name": "summary",
2445
+ "hasDynamicHelp": false,
2446
+ "multiple": false,
2447
+ "type": "option"
2448
+ },
2449
+ "email": {
2450
+ "description": "Contact email",
2451
+ "name": "email",
2452
+ "hasDynamicHelp": false,
2453
+ "multiple": false,
2454
+ "type": "option"
2455
+ },
2456
+ "phone": {
2457
+ "description": "Contact phone",
2458
+ "name": "phone",
2459
+ "hasDynamicHelp": false,
2460
+ "multiple": false,
2461
+ "type": "option"
2462
+ },
2463
+ "address": {
2464
+ "description": "Business address",
2465
+ "name": "address",
2466
+ "hasDynamicHelp": false,
2467
+ "multiple": false,
2468
+ "type": "option"
2469
+ }
2470
+ },
2471
+ "hasDynamicHelp": false,
2472
+ "hiddenAliases": [],
2473
+ "id": "enterprise:generate-business-page",
2474
+ "pluginAlias": "@sendly/cli",
2475
+ "pluginName": "@sendly/cli",
2476
+ "pluginType": "core",
2477
+ "strict": true,
2478
+ "isESM": true,
2479
+ "relativePath": [
2480
+ "dist",
2481
+ "commands",
2482
+ "enterprise",
2483
+ "generate-business-page.js"
2484
+ ]
2485
+ },
2237
2486
  "enterprise:provision": {
2238
2487
  "aliases": [],
2239
2488
  "args": {},
@@ -2342,7 +2591,138 @@
2342
2591
  },
2343
2592
  "hasDynamicHelp": false,
2344
2593
  "hiddenAliases": [],
2345
- "id": "enterprise:status",
2594
+ "id": "enterprise:status",
2595
+ "pluginAlias": "@sendly/cli",
2596
+ "pluginName": "@sendly/cli",
2597
+ "pluginType": "core",
2598
+ "strict": true,
2599
+ "isESM": true,
2600
+ "relativePath": [
2601
+ "dist",
2602
+ "commands",
2603
+ "enterprise",
2604
+ "status.js"
2605
+ ]
2606
+ },
2607
+ "enterprise:transfer-credits": {
2608
+ "aliases": [],
2609
+ "args": {},
2610
+ "description": "Transfer credits between enterprise workspaces",
2611
+ "examples": [
2612
+ "<%= config.bin %> enterprise transfer-credits --from org_abc --to org_xyz --amount 500",
2613
+ "<%= config.bin %> enterprise transfer-credits --from org_abc --to org_xyz --amount 500 --yes"
2614
+ ],
2615
+ "flags": {
2616
+ "json": {
2617
+ "description": "Output in JSON format",
2618
+ "name": "json",
2619
+ "allowNo": false,
2620
+ "type": "boolean"
2621
+ },
2622
+ "quiet": {
2623
+ "char": "q",
2624
+ "description": "Minimal output",
2625
+ "name": "quiet",
2626
+ "allowNo": false,
2627
+ "type": "boolean"
2628
+ },
2629
+ "from": {
2630
+ "description": "Source workspace ID",
2631
+ "name": "from",
2632
+ "required": true,
2633
+ "hasDynamicHelp": false,
2634
+ "multiple": false,
2635
+ "type": "option"
2636
+ },
2637
+ "to": {
2638
+ "description": "Target workspace ID",
2639
+ "name": "to",
2640
+ "required": true,
2641
+ "hasDynamicHelp": false,
2642
+ "multiple": false,
2643
+ "type": "option"
2644
+ },
2645
+ "amount": {
2646
+ "char": "a",
2647
+ "description": "Number of credits to transfer",
2648
+ "name": "amount",
2649
+ "required": true,
2650
+ "hasDynamicHelp": false,
2651
+ "multiple": false,
2652
+ "type": "option"
2653
+ },
2654
+ "yes": {
2655
+ "char": "y",
2656
+ "description": "Skip confirmation prompt",
2657
+ "name": "yes",
2658
+ "allowNo": false,
2659
+ "type": "boolean"
2660
+ }
2661
+ },
2662
+ "hasDynamicHelp": false,
2663
+ "hiddenAliases": [],
2664
+ "id": "enterprise:transfer-credits",
2665
+ "pluginAlias": "@sendly/cli",
2666
+ "pluginName": "@sendly/cli",
2667
+ "pluginType": "core",
2668
+ "strict": true,
2669
+ "isESM": true,
2670
+ "relativePath": [
2671
+ "dist",
2672
+ "commands",
2673
+ "enterprise",
2674
+ "transfer-credits.js"
2675
+ ]
2676
+ },
2677
+ "enterprise:upload-verification-document": {
2678
+ "aliases": [],
2679
+ "args": {},
2680
+ "description": "Upload a verification document (image or PDF)",
2681
+ "examples": [
2682
+ "<%= config.bin %> enterprise upload-verification-document --file ./ein-letter.png",
2683
+ "<%= config.bin %> enterprise upload-verification-document --file ./doc.pdf --workspace-id ws_123"
2684
+ ],
2685
+ "flags": {
2686
+ "json": {
2687
+ "description": "Output in JSON format",
2688
+ "name": "json",
2689
+ "allowNo": false,
2690
+ "type": "boolean"
2691
+ },
2692
+ "quiet": {
2693
+ "char": "q",
2694
+ "description": "Minimal output",
2695
+ "name": "quiet",
2696
+ "allowNo": false,
2697
+ "type": "boolean"
2698
+ },
2699
+ "file": {
2700
+ "char": "f",
2701
+ "description": "Path to the file to upload (image or PDF)",
2702
+ "name": "file",
2703
+ "required": true,
2704
+ "hasDynamicHelp": false,
2705
+ "multiple": false,
2706
+ "type": "option"
2707
+ },
2708
+ "workspace-id": {
2709
+ "description": "Workspace ID to associate the document with",
2710
+ "name": "workspace-id",
2711
+ "hasDynamicHelp": false,
2712
+ "multiple": false,
2713
+ "type": "option"
2714
+ },
2715
+ "verification-id": {
2716
+ "description": "Verification ID to associate the document with",
2717
+ "name": "verification-id",
2718
+ "hasDynamicHelp": false,
2719
+ "multiple": false,
2720
+ "type": "option"
2721
+ }
2722
+ },
2723
+ "hasDynamicHelp": false,
2724
+ "hiddenAliases": [],
2725
+ "id": "enterprise:upload-verification-document",
2346
2726
  "pluginAlias": "@sendly/cli",
2347
2727
  "pluginName": "@sendly/cli",
2348
2728
  "pluginType": "core",
@@ -2352,16 +2732,17 @@
2352
2732
  "dist",
2353
2733
  "commands",
2354
2734
  "enterprise",
2355
- "status.js"
2735
+ "upload-verification-document.js"
2356
2736
  ]
2357
2737
  },
2358
- "enterprise:transfer-credits": {
2738
+ "events:listen": {
2359
2739
  "aliases": [],
2360
2740
  "args": {},
2361
- "description": "Transfer credits between enterprise workspaces",
2741
+ "description": "Listen to real-time events via Server-Sent Events. Streams message deliveries, conversation updates, and more.",
2362
2742
  "examples": [
2363
- "<%= config.bin %> enterprise transfer-credits --from org_abc --to org_xyz --amount 500",
2364
- "<%= config.bin %> enterprise transfer-credits --from org_abc --to org_xyz --amount 500 --yes"
2743
+ "<%= config.bin %> events listen",
2744
+ "<%= config.bin %> events listen --types new_message,conversation_update",
2745
+ "<%= config.bin %> events listen --json"
2365
2746
  ],
2366
2747
  "flags": {
2367
2748
  "json": {
@@ -2377,42 +2758,17 @@
2377
2758
  "allowNo": false,
2378
2759
  "type": "boolean"
2379
2760
  },
2380
- "from": {
2381
- "description": "Source workspace ID",
2382
- "name": "from",
2383
- "required": true,
2384
- "hasDynamicHelp": false,
2385
- "multiple": false,
2386
- "type": "option"
2387
- },
2388
- "to": {
2389
- "description": "Target workspace ID",
2390
- "name": "to",
2391
- "required": true,
2392
- "hasDynamicHelp": false,
2393
- "multiple": false,
2394
- "type": "option"
2395
- },
2396
- "amount": {
2397
- "char": "a",
2398
- "description": "Number of credits to transfer",
2399
- "name": "amount",
2400
- "required": true,
2761
+ "types": {
2762
+ "description": "Comma-separated event types to filter (default: all)",
2763
+ "name": "types",
2401
2764
  "hasDynamicHelp": false,
2402
2765
  "multiple": false,
2403
2766
  "type": "option"
2404
- },
2405
- "yes": {
2406
- "char": "y",
2407
- "description": "Skip confirmation prompt",
2408
- "name": "yes",
2409
- "allowNo": false,
2410
- "type": "boolean"
2411
2767
  }
2412
2768
  },
2413
2769
  "hasDynamicHelp": false,
2414
2770
  "hiddenAliases": [],
2415
- "id": "enterprise:transfer-credits",
2771
+ "id": "events:listen",
2416
2772
  "pluginAlias": "@sendly/cli",
2417
2773
  "pluginName": "@sendly/cli",
2418
2774
  "pluginType": "core",
@@ -2421,8 +2777,8 @@
2421
2777
  "relativePath": [
2422
2778
  "dist",
2423
2779
  "commands",
2424
- "enterprise",
2425
- "transfer-credits.js"
2780
+ "events",
2781
+ "listen.js"
2426
2782
  ]
2427
2783
  },
2428
2784
  "keys:create": {
@@ -2785,6 +3141,55 @@
2785
3141
  "usage.js"
2786
3142
  ]
2787
3143
  },
3144
+ "labels:add": {
3145
+ "aliases": [],
3146
+ "args": {
3147
+ "conversationId": {
3148
+ "description": "Conversation ID",
3149
+ "name": "conversationId",
3150
+ "required": true
3151
+ },
3152
+ "labelId": {
3153
+ "description": "Label ID",
3154
+ "name": "labelId",
3155
+ "required": true
3156
+ }
3157
+ },
3158
+ "description": "Add a label to a conversation",
3159
+ "examples": [
3160
+ "<%= config.bin %> labels add conv_abc123 lbl_def456",
3161
+ "<%= config.bin %> labels add conv_abc123 lbl_def456 --json"
3162
+ ],
3163
+ "flags": {
3164
+ "json": {
3165
+ "description": "Output in JSON format",
3166
+ "name": "json",
3167
+ "allowNo": false,
3168
+ "type": "boolean"
3169
+ },
3170
+ "quiet": {
3171
+ "char": "q",
3172
+ "description": "Minimal output",
3173
+ "name": "quiet",
3174
+ "allowNo": false,
3175
+ "type": "boolean"
3176
+ }
3177
+ },
3178
+ "hasDynamicHelp": false,
3179
+ "hiddenAliases": [],
3180
+ "id": "labels:add",
3181
+ "pluginAlias": "@sendly/cli",
3182
+ "pluginName": "@sendly/cli",
3183
+ "pluginType": "core",
3184
+ "strict": true,
3185
+ "isESM": true,
3186
+ "relativePath": [
3187
+ "dist",
3188
+ "commands",
3189
+ "labels",
3190
+ "add.js"
3191
+ ]
3192
+ },
2788
3193
  "labels:create": {
2789
3194
  "aliases": [],
2790
3195
  "args": {
@@ -2868,17 +3273,205 @@
2868
3273
  "allowNo": false,
2869
3274
  "type": "boolean"
2870
3275
  },
2871
- "quiet": {
2872
- "char": "q",
2873
- "description": "Minimal output",
2874
- "name": "quiet",
2875
- "allowNo": false,
2876
- "type": "boolean"
3276
+ "quiet": {
3277
+ "char": "q",
3278
+ "description": "Minimal output",
3279
+ "name": "quiet",
3280
+ "allowNo": false,
3281
+ "type": "boolean"
3282
+ }
3283
+ },
3284
+ "hasDynamicHelp": false,
3285
+ "hiddenAliases": [],
3286
+ "id": "labels:delete",
3287
+ "pluginAlias": "@sendly/cli",
3288
+ "pluginName": "@sendly/cli",
3289
+ "pluginType": "core",
3290
+ "strict": true,
3291
+ "isESM": true,
3292
+ "relativePath": [
3293
+ "dist",
3294
+ "commands",
3295
+ "labels",
3296
+ "delete.js"
3297
+ ]
3298
+ },
3299
+ "labels": {
3300
+ "aliases": [],
3301
+ "args": {},
3302
+ "description": "List labels (default subcommand)",
3303
+ "examples": [
3304
+ "<%= config.bin %> labels",
3305
+ "<%= config.bin %> labels --json"
3306
+ ],
3307
+ "flags": {
3308
+ "json": {
3309
+ "description": "Output in JSON format",
3310
+ "name": "json",
3311
+ "allowNo": false,
3312
+ "type": "boolean"
3313
+ },
3314
+ "quiet": {
3315
+ "char": "q",
3316
+ "description": "Minimal output",
3317
+ "name": "quiet",
3318
+ "allowNo": false,
3319
+ "type": "boolean"
3320
+ }
3321
+ },
3322
+ "hasDynamicHelp": false,
3323
+ "hiddenAliases": [],
3324
+ "id": "labels",
3325
+ "pluginAlias": "@sendly/cli",
3326
+ "pluginName": "@sendly/cli",
3327
+ "pluginType": "core",
3328
+ "strict": true,
3329
+ "isESM": true,
3330
+ "relativePath": [
3331
+ "dist",
3332
+ "commands",
3333
+ "labels",
3334
+ "index.js"
3335
+ ]
3336
+ },
3337
+ "labels:list": {
3338
+ "aliases": [],
3339
+ "args": {},
3340
+ "description": "List labels",
3341
+ "examples": [
3342
+ "<%= config.bin %> labels list",
3343
+ "<%= config.bin %> labels list --json"
3344
+ ],
3345
+ "flags": {
3346
+ "json": {
3347
+ "description": "Output in JSON format",
3348
+ "name": "json",
3349
+ "allowNo": false,
3350
+ "type": "boolean"
3351
+ },
3352
+ "quiet": {
3353
+ "char": "q",
3354
+ "description": "Minimal output",
3355
+ "name": "quiet",
3356
+ "allowNo": false,
3357
+ "type": "boolean"
3358
+ }
3359
+ },
3360
+ "hasDynamicHelp": false,
3361
+ "hiddenAliases": [],
3362
+ "id": "labels:list",
3363
+ "pluginAlias": "@sendly/cli",
3364
+ "pluginName": "@sendly/cli",
3365
+ "pluginType": "core",
3366
+ "strict": true,
3367
+ "isESM": true,
3368
+ "relativePath": [
3369
+ "dist",
3370
+ "commands",
3371
+ "labels",
3372
+ "list.js"
3373
+ ]
3374
+ },
3375
+ "labels:remove": {
3376
+ "aliases": [],
3377
+ "args": {
3378
+ "conversationId": {
3379
+ "description": "Conversation ID",
3380
+ "name": "conversationId",
3381
+ "required": true
3382
+ },
3383
+ "labelId": {
3384
+ "description": "Label ID",
3385
+ "name": "labelId",
3386
+ "required": true
3387
+ }
3388
+ },
3389
+ "description": "Remove a label from a conversation",
3390
+ "examples": [
3391
+ "<%= config.bin %> labels remove conv_abc123 lbl_def456",
3392
+ "<%= config.bin %> labels remove conv_abc123 lbl_def456 --json"
3393
+ ],
3394
+ "flags": {
3395
+ "json": {
3396
+ "description": "Output in JSON format",
3397
+ "name": "json",
3398
+ "allowNo": false,
3399
+ "type": "boolean"
3400
+ },
3401
+ "quiet": {
3402
+ "char": "q",
3403
+ "description": "Minimal output",
3404
+ "name": "quiet",
3405
+ "allowNo": false,
3406
+ "type": "boolean"
3407
+ }
3408
+ },
3409
+ "hasDynamicHelp": false,
3410
+ "hiddenAliases": [],
3411
+ "id": "labels:remove",
3412
+ "pluginAlias": "@sendly/cli",
3413
+ "pluginName": "@sendly/cli",
3414
+ "pluginType": "core",
3415
+ "strict": true,
3416
+ "isESM": true,
3417
+ "relativePath": [
3418
+ "dist",
3419
+ "commands",
3420
+ "labels",
3421
+ "remove.js"
3422
+ ]
3423
+ },
3424
+ "logs:tail": {
3425
+ "aliases": [],
3426
+ "args": {},
3427
+ "description": "Tail logs in real-time (like stripe logs tail)",
3428
+ "examples": [
3429
+ "<%= config.bin %> logs tail",
3430
+ "<%= config.bin %> logs tail --status failed",
3431
+ "<%= config.bin %> logs tail --since 1h"
3432
+ ],
3433
+ "flags": {
3434
+ "json": {
3435
+ "description": "Output in JSON format",
3436
+ "name": "json",
3437
+ "allowNo": false,
3438
+ "type": "boolean"
3439
+ },
3440
+ "quiet": {
3441
+ "char": "q",
3442
+ "description": "Minimal output",
3443
+ "name": "quiet",
3444
+ "allowNo": false,
3445
+ "type": "boolean"
3446
+ },
3447
+ "status": {
3448
+ "char": "s",
3449
+ "description": "Filter by status (sent, delivered, failed)",
3450
+ "name": "status",
3451
+ "hasDynamicHelp": false,
3452
+ "multiple": false,
3453
+ "type": "option"
3454
+ },
3455
+ "since": {
3456
+ "description": "Show logs since (e.g., 1h, 30m, 1d)",
3457
+ "name": "since",
3458
+ "default": "1h",
3459
+ "hasDynamicHelp": false,
3460
+ "multiple": false,
3461
+ "type": "option"
3462
+ },
3463
+ "type": {
3464
+ "char": "t",
3465
+ "description": "Filter by type (message, api_call, webhook)",
3466
+ "name": "type",
3467
+ "hasDynamicHelp": false,
3468
+ "multiple": false,
3469
+ "type": "option"
2877
3470
  }
2878
3471
  },
2879
3472
  "hasDynamicHelp": false,
2880
3473
  "hiddenAliases": [],
2881
- "id": "labels:delete",
3474
+ "id": "logs:tail",
2882
3475
  "pluginAlias": "@sendly/cli",
2883
3476
  "pluginName": "@sendly/cli",
2884
3477
  "pluginType": "core",
@@ -2887,17 +3480,18 @@
2887
3480
  "relativePath": [
2888
3481
  "dist",
2889
3482
  "commands",
2890
- "labels",
2891
- "delete.js"
3483
+ "logs",
3484
+ "tail.js"
2892
3485
  ]
2893
3486
  },
2894
- "labels": {
3487
+ "rules:create": {
2895
3488
  "aliases": [],
2896
3489
  "args": {},
2897
- "description": "List labels (default subcommand)",
3490
+ "description": "Create an auto-labeling rule",
2898
3491
  "examples": [
2899
- "<%= config.bin %> labels",
2900
- "<%= config.bin %> labels --json"
3492
+ "<%= config.bin %> rules create --name \"Flag complaints\" --intent complaint --label label_abc",
3493
+ "<%= config.bin %> rules create --name \"Close opt-outs\" --intent opt_out --close",
3494
+ "<%= config.bin %> rules create --name \"Negative\" --sentiment negative --label label_xyz --priority 1"
2901
3495
  ],
2902
3496
  "flags": {
2903
3497
  "json": {
@@ -2912,11 +3506,54 @@
2912
3506
  "name": "quiet",
2913
3507
  "allowNo": false,
2914
3508
  "type": "boolean"
3509
+ },
3510
+ "name": {
3511
+ "description": "Rule name",
3512
+ "name": "name",
3513
+ "required": true,
3514
+ "hasDynamicHelp": false,
3515
+ "multiple": false,
3516
+ "type": "option"
3517
+ },
3518
+ "intent": {
3519
+ "description": "Match intent (question, appointment, complaint, order_status, feedback, opt_out, greeting, confirmation, other)",
3520
+ "name": "intent",
3521
+ "hasDynamicHelp": false,
3522
+ "multiple": true,
3523
+ "type": "option"
3524
+ },
3525
+ "sentiment": {
3526
+ "description": "Match sentiment (positive, neutral, negative)",
3527
+ "name": "sentiment",
3528
+ "hasDynamicHelp": false,
3529
+ "multiple": true,
3530
+ "type": "option"
3531
+ },
3532
+ "label": {
3533
+ "description": "Label ID to apply when rule matches",
3534
+ "name": "label",
3535
+ "hasDynamicHelp": false,
3536
+ "multiple": true,
3537
+ "type": "option"
3538
+ },
3539
+ "close": {
3540
+ "description": "Close the conversation when rule matches",
3541
+ "name": "close",
3542
+ "allowNo": false,
3543
+ "type": "boolean"
3544
+ },
3545
+ "priority": {
3546
+ "description": "Priority (lower runs first)",
3547
+ "name": "priority",
3548
+ "default": 0,
3549
+ "hasDynamicHelp": false,
3550
+ "multiple": false,
3551
+ "type": "option"
2915
3552
  }
2916
3553
  },
2917
3554
  "hasDynamicHelp": false,
2918
3555
  "hiddenAliases": [],
2919
- "id": "labels",
3556
+ "id": "rules:create",
2920
3557
  "pluginAlias": "@sendly/cli",
2921
3558
  "pluginName": "@sendly/cli",
2922
3559
  "pluginType": "core",
@@ -2925,17 +3562,22 @@
2925
3562
  "relativePath": [
2926
3563
  "dist",
2927
3564
  "commands",
2928
- "labels",
2929
- "index.js"
3565
+ "rules",
3566
+ "create.js"
2930
3567
  ]
2931
3568
  },
2932
- "labels:list": {
3569
+ "rules:delete": {
2933
3570
  "aliases": [],
2934
- "args": {},
2935
- "description": "List labels",
3571
+ "args": {
3572
+ "id": {
3573
+ "description": "Rule ID",
3574
+ "name": "id",
3575
+ "required": true
3576
+ }
3577
+ },
3578
+ "description": "Delete an auto-labeling rule",
2936
3579
  "examples": [
2937
- "<%= config.bin %> labels list",
2938
- "<%= config.bin %> labels list --json"
3580
+ "<%= config.bin %> rules delete rule_abc123"
2939
3581
  ],
2940
3582
  "flags": {
2941
3583
  "json": {
@@ -2954,7 +3596,7 @@
2954
3596
  },
2955
3597
  "hasDynamicHelp": false,
2956
3598
  "hiddenAliases": [],
2957
- "id": "labels:list",
3599
+ "id": "rules:delete",
2958
3600
  "pluginAlias": "@sendly/cli",
2959
3601
  "pluginName": "@sendly/cli",
2960
3602
  "pluginType": "core",
@@ -2963,18 +3605,17 @@
2963
3605
  "relativePath": [
2964
3606
  "dist",
2965
3607
  "commands",
2966
- "labels",
2967
- "list.js"
3608
+ "rules",
3609
+ "delete.js"
2968
3610
  ]
2969
3611
  },
2970
- "logs:tail": {
3612
+ "rules": {
2971
3613
  "aliases": [],
2972
3614
  "args": {},
2973
- "description": "Tail logs in real-time (like stripe logs tail)",
3615
+ "description": "List auto-labeling rules",
2974
3616
  "examples": [
2975
- "<%= config.bin %> logs tail",
2976
- "<%= config.bin %> logs tail --status failed",
2977
- "<%= config.bin %> logs tail --since 1h"
3617
+ "<%= config.bin %> rules",
3618
+ "<%= config.bin %> rules --json"
2978
3619
  ],
2979
3620
  "flags": {
2980
3621
  "json": {
@@ -2989,35 +3630,11 @@
2989
3630
  "name": "quiet",
2990
3631
  "allowNo": false,
2991
3632
  "type": "boolean"
2992
- },
2993
- "status": {
2994
- "char": "s",
2995
- "description": "Filter by status (sent, delivered, failed)",
2996
- "name": "status",
2997
- "hasDynamicHelp": false,
2998
- "multiple": false,
2999
- "type": "option"
3000
- },
3001
- "since": {
3002
- "description": "Show logs since (e.g., 1h, 30m, 1d)",
3003
- "name": "since",
3004
- "default": "1h",
3005
- "hasDynamicHelp": false,
3006
- "multiple": false,
3007
- "type": "option"
3008
- },
3009
- "type": {
3010
- "char": "t",
3011
- "description": "Filter by type (message, api_call, webhook)",
3012
- "name": "type",
3013
- "hasDynamicHelp": false,
3014
- "multiple": false,
3015
- "type": "option"
3016
3633
  }
3017
3634
  },
3018
3635
  "hasDynamicHelp": false,
3019
3636
  "hiddenAliases": [],
3020
- "id": "logs:tail",
3637
+ "id": "rules",
3021
3638
  "pluginAlias": "@sendly/cli",
3022
3639
  "pluginName": "@sendly/cli",
3023
3640
  "pluginType": "core",
@@ -3026,8 +3643,8 @@
3026
3643
  "relativePath": [
3027
3644
  "dist",
3028
3645
  "commands",
3029
- "logs",
3030
- "tail.js"
3646
+ "rules",
3647
+ "index.js"
3031
3648
  ]
3032
3649
  },
3033
3650
  "sms:batch": {
@@ -3328,12 +3945,13 @@
3328
3945
  "sms:schedule": {
3329
3946
  "aliases": [],
3330
3947
  "args": {},
3331
- "description": "Schedule an SMS message for future delivery",
3948
+ "description": "Schedule an SMS message for future delivery. Supports natural language dates like 'tomorrow at 9am' or 'in 2 hours'.",
3332
3949
  "examples": [
3333
- "<%= config.bin %> sms schedule --to +15551234567 --text \"Reminder!\" --at \"2025-01-20T10:00:00Z\"",
3334
- "<%= config.bin %> sms schedule --to +15551234567 --text \"Meeting in 1 hour\" --at \"2025-01-15T14:00:00Z\" --from \"Sendly\"",
3335
- "<%= config.bin %> sms schedule --to +15551234567 --text \"Your code: 123456\" --at \"2025-01-20T10:00:00Z\" --type transactional",
3336
- "<%= config.bin %> sms schedule --to +15551234567 --text \"Hello!\" --at \"2025-01-20T10:00:00Z\" --json"
3950
+ "<%= config.bin %> sms schedule --to +15551234567 --text \"Reminder!\" --at \"tomorrow at 9am\"",
3951
+ "<%= config.bin %> sms schedule --to +15551234567 --text \"Meeting soon\" --at \"in 2 hours\"",
3952
+ "<%= config.bin %> sms schedule --to +15551234567 --text \"Hello!\" --at \"next Monday 3pm\"",
3953
+ "<%= config.bin %> sms schedule --to +15551234567 --text \"Sale!\" --at \"2026-04-01T10:00:00Z\"",
3954
+ "<%= config.bin %> sms schedule --to +15551234567 --text \"Code: 123\" --at \"friday 5pm\" --type transactional"
3337
3955
  ],
3338
3956
  "flags": {
3339
3957
  "json": {
@@ -3353,7 +3971,6 @@
3353
3971
  "char": "t",
3354
3972
  "description": "Recipient phone number (E.164 format)",
3355
3973
  "name": "to",
3356
- "required": true,
3357
3974
  "hasDynamicHelp": false,
3358
3975
  "multiple": false,
3359
3976
  "type": "option"
@@ -3362,16 +3979,14 @@
3362
3979
  "char": "m",
3363
3980
  "description": "Message text",
3364
3981
  "name": "text",
3365
- "required": true,
3366
3982
  "hasDynamicHelp": false,
3367
3983
  "multiple": false,
3368
3984
  "type": "option"
3369
3985
  },
3370
3986
  "at": {
3371
3987
  "char": "a",
3372
- "description": "Scheduled time (ISO 8601 format, e.g., 2025-01-20T10:00:00Z)",
3988
+ "description": "Scheduled time ISO 8601 or natural language (\"tomorrow at 9am\", \"in 2 hours\", \"next Monday 3pm\")",
3373
3989
  "name": "at",
3374
- "required": true,
3375
3990
  "hasDynamicHelp": false,
3376
3991
  "multiple": false,
3377
3992
  "type": "option"
@@ -3469,6 +4084,75 @@
3469
4084
  "scheduled.js"
3470
4085
  ]
3471
4086
  },
4087
+ "sms:search": {
4088
+ "aliases": [],
4089
+ "args": {
4090
+ "query": {
4091
+ "description": "Search query",
4092
+ "name": "query",
4093
+ "required": true
4094
+ }
4095
+ },
4096
+ "description": "Search messages by text content",
4097
+ "examples": [
4098
+ "<%= config.bin %> sms search \"verification code\"",
4099
+ "<%= config.bin %> sms search \"hello\" --limit 10",
4100
+ "<%= config.bin %> sms search \"order\" --json"
4101
+ ],
4102
+ "flags": {
4103
+ "json": {
4104
+ "description": "Output in JSON format",
4105
+ "name": "json",
4106
+ "allowNo": false,
4107
+ "type": "boolean"
4108
+ },
4109
+ "quiet": {
4110
+ "char": "q",
4111
+ "description": "Minimal output",
4112
+ "name": "quiet",
4113
+ "allowNo": false,
4114
+ "type": "boolean"
4115
+ },
4116
+ "limit": {
4117
+ "char": "l",
4118
+ "description": "Number of results per page",
4119
+ "name": "limit",
4120
+ "default": 20,
4121
+ "hasDynamicHelp": false,
4122
+ "multiple": false,
4123
+ "type": "option"
4124
+ },
4125
+ "page": {
4126
+ "char": "p",
4127
+ "description": "Page number (starts at 1)",
4128
+ "name": "page",
4129
+ "hasDynamicHelp": false,
4130
+ "multiple": false,
4131
+ "type": "option"
4132
+ },
4133
+ "offset": {
4134
+ "description": "Offset from start (alternative to --page)",
4135
+ "name": "offset",
4136
+ "hasDynamicHelp": false,
4137
+ "multiple": false,
4138
+ "type": "option"
4139
+ }
4140
+ },
4141
+ "hasDynamicHelp": false,
4142
+ "hiddenAliases": [],
4143
+ "id": "sms:search",
4144
+ "pluginAlias": "@sendly/cli",
4145
+ "pluginName": "@sendly/cli",
4146
+ "pluginType": "core",
4147
+ "strict": true,
4148
+ "isESM": true,
4149
+ "relativePath": [
4150
+ "dist",
4151
+ "commands",
4152
+ "sms",
4153
+ "search.js"
4154
+ ]
4155
+ },
3472
4156
  "sms:send": {
3473
4157
  "aliases": [],
3474
4158
  "args": {},
@@ -3500,7 +4184,6 @@
3500
4184
  "char": "t",
3501
4185
  "description": "Recipient phone number (E.164 format)",
3502
4186
  "name": "to",
3503
- "required": true,
3504
4187
  "hasDynamicHelp": false,
3505
4188
  "multiple": false,
3506
4189
  "type": "option"
@@ -3556,19 +4239,13 @@
3556
4239
  "send.js"
3557
4240
  ]
3558
4241
  },
3559
- "verify:check": {
4242
+ "teams:create": {
3560
4243
  "aliases": [],
3561
- "args": {
3562
- "id": {
3563
- "description": "Verification ID",
3564
- "name": "id",
3565
- "required": true
3566
- }
3567
- },
3568
- "description": "Verify an OTP code",
4244
+ "args": {},
4245
+ "description": "Create a new team",
3569
4246
  "examples": [
3570
- "<%= config.bin %> verify check ver_xxx --code 123456",
3571
- "<%= config.bin %> verify check ver_xxx -c 123456"
4247
+ "<%= config.bin %> teams create --name \"Acme Corp\"",
4248
+ "<%= config.bin %> teams create --name \"Acme Corp\" --description \"Our main team\""
3572
4249
  ],
3573
4250
  "flags": {
3574
4251
  "json": {
@@ -3584,19 +4261,27 @@
3584
4261
  "allowNo": false,
3585
4262
  "type": "boolean"
3586
4263
  },
3587
- "code": {
3588
- "char": "c",
3589
- "description": "The OTP code to verify",
3590
- "name": "code",
4264
+ "name": {
4265
+ "char": "n",
4266
+ "description": "Team name",
4267
+ "name": "name",
3591
4268
  "required": true,
3592
4269
  "hasDynamicHelp": false,
3593
4270
  "multiple": false,
3594
4271
  "type": "option"
4272
+ },
4273
+ "description": {
4274
+ "char": "d",
4275
+ "description": "Team description",
4276
+ "name": "description",
4277
+ "hasDynamicHelp": false,
4278
+ "multiple": false,
4279
+ "type": "option"
3595
4280
  }
3596
4281
  },
3597
4282
  "hasDynamicHelp": false,
3598
4283
  "hiddenAliases": [],
3599
- "id": "verify:check",
4284
+ "id": "teams:create",
3600
4285
  "pluginAlias": "@sendly/cli",
3601
4286
  "pluginName": "@sendly/cli",
3602
4287
  "pluginType": "core",
@@ -3605,20 +4290,61 @@
3605
4290
  "relativePath": [
3606
4291
  "dist",
3607
4292
  "commands",
3608
- "verify",
3609
- "check.js"
4293
+ "teams",
4294
+ "create.js"
3610
4295
  ]
3611
4296
  },
3612
- "verify:list": {
4297
+ "teams:current": {
3613
4298
  "aliases": [],
3614
4299
  "args": {},
3615
- "description": "List recent verifications",
4300
+ "description": "Show the currently active team",
3616
4301
  "examples": [
3617
- "<%= config.bin %> verify list",
3618
- "<%= config.bin %> verify list --limit 10",
3619
- "<%= config.bin %> verify list --page 2",
3620
- "<%= config.bin %> verify list --status verified",
3621
- "<%= config.bin %> verify list --json"
4302
+ "<%= config.bin %> teams current",
4303
+ "<%= config.bin %> teams current --json"
4304
+ ],
4305
+ "flags": {
4306
+ "json": {
4307
+ "description": "Output in JSON format",
4308
+ "name": "json",
4309
+ "allowNo": false,
4310
+ "type": "boolean"
4311
+ },
4312
+ "quiet": {
4313
+ "char": "q",
4314
+ "description": "Minimal output",
4315
+ "name": "quiet",
4316
+ "allowNo": false,
4317
+ "type": "boolean"
4318
+ }
4319
+ },
4320
+ "hasDynamicHelp": false,
4321
+ "hiddenAliases": [],
4322
+ "id": "teams:current",
4323
+ "pluginAlias": "@sendly/cli",
4324
+ "pluginName": "@sendly/cli",
4325
+ "pluginType": "core",
4326
+ "strict": true,
4327
+ "isESM": true,
4328
+ "relativePath": [
4329
+ "dist",
4330
+ "commands",
4331
+ "teams",
4332
+ "current.js"
4333
+ ]
4334
+ },
4335
+ "teams:invite": {
4336
+ "aliases": [],
4337
+ "args": {
4338
+ "email": {
4339
+ "description": "Email address to invite",
4340
+ "name": "email",
4341
+ "required": true
4342
+ }
4343
+ },
4344
+ "description": "Invite a member to the current team",
4345
+ "examples": [
4346
+ "<%= config.bin %> teams invite user@example.com",
4347
+ "<%= config.bin %> teams invite user@example.com --role admin"
3622
4348
  ],
3623
4349
  "flags": {
3624
4350
  "json": {
@@ -3634,42 +4360,24 @@
3634
4360
  "allowNo": false,
3635
4361
  "type": "boolean"
3636
4362
  },
3637
- "limit": {
3638
- "char": "l",
3639
- "description": "Number of verifications per page",
3640
- "name": "limit",
3641
- "default": 20,
3642
- "hasDynamicHelp": false,
3643
- "multiple": false,
3644
- "type": "option"
3645
- },
3646
- "page": {
3647
- "char": "p",
3648
- "description": "Page number (starts at 1)",
3649
- "name": "page",
3650
- "hasDynamicHelp": false,
3651
- "multiple": false,
3652
- "type": "option"
3653
- },
3654
- "offset": {
3655
- "description": "Offset from start (alternative to --page)",
3656
- "name": "offset",
3657
- "hasDynamicHelp": false,
3658
- "multiple": false,
3659
- "type": "option"
3660
- },
3661
- "status": {
3662
- "char": "s",
3663
- "description": "Filter by status (pending, verified, expired, failed)",
3664
- "name": "status",
4363
+ "role": {
4364
+ "char": "r",
4365
+ "description": "Role to assign (admin, member, viewer)",
4366
+ "name": "role",
4367
+ "default": "member",
3665
4368
  "hasDynamicHelp": false,
3666
4369
  "multiple": false,
4370
+ "options": [
4371
+ "admin",
4372
+ "member",
4373
+ "viewer"
4374
+ ],
3667
4375
  "type": "option"
3668
4376
  }
3669
4377
  },
3670
4378
  "hasDynamicHelp": false,
3671
4379
  "hiddenAliases": [],
3672
- "id": "verify:list",
4380
+ "id": "teams:invite",
3673
4381
  "pluginAlias": "@sendly/cli",
3674
4382
  "pluginName": "@sendly/cli",
3675
4383
  "pluginType": "core",
@@ -3678,23 +4386,17 @@
3678
4386
  "relativePath": [
3679
4387
  "dist",
3680
4388
  "commands",
3681
- "verify",
3682
- "list.js"
4389
+ "teams",
4390
+ "invite.js"
3683
4391
  ]
3684
4392
  },
3685
- "verify:resend": {
4393
+ "teams:list": {
3686
4394
  "aliases": [],
3687
- "args": {
3688
- "id": {
3689
- "description": "Verification ID",
3690
- "name": "id",
3691
- "required": true
3692
- }
3693
- },
3694
- "description": "Resend an OTP verification code",
4395
+ "args": {},
4396
+ "description": "List your teams",
3695
4397
  "examples": [
3696
- "<%= config.bin %> verify resend ver_xxx",
3697
- "<%= config.bin %> verify resend ver_xxx --json"
4398
+ "<%= config.bin %> teams list",
4399
+ "<%= config.bin %> teams list --json"
3698
4400
  ],
3699
4401
  "flags": {
3700
4402
  "json": {
@@ -3713,7 +4415,7 @@
3713
4415
  },
3714
4416
  "hasDynamicHelp": false,
3715
4417
  "hiddenAliases": [],
3716
- "id": "verify:resend",
4418
+ "id": "teams:list",
3717
4419
  "pluginAlias": "@sendly/cli",
3718
4420
  "pluginName": "@sendly/cli",
3719
4421
  "pluginType": "core",
@@ -3722,20 +4424,17 @@
3722
4424
  "relativePath": [
3723
4425
  "dist",
3724
4426
  "commands",
3725
- "verify",
3726
- "resend.js"
4427
+ "teams",
4428
+ "list.js"
3727
4429
  ]
3728
4430
  },
3729
- "verify:send": {
4431
+ "teams:members": {
3730
4432
  "aliases": [],
3731
4433
  "args": {},
3732
- "description": "Send an OTP verification code",
4434
+ "description": "List members of the current team",
3733
4435
  "examples": [
3734
- "<%= config.bin %> verify send --to \"+1234567890\"",
3735
- "<%= config.bin %> verify send --to \"+1234567890\" --app-name \"MyApp\"",
3736
- "<%= config.bin %> verify send --to \"+1234567890\" --template tpl_preset_2fa",
3737
- "<%= config.bin %> verify send --to \"+1234567890\" --profile vp_xxx",
3738
- "<%= config.bin %> verify send --to \"+1234567890\" --code-length 8 --timeout 120"
4436
+ "<%= config.bin %> teams members",
4437
+ "<%= config.bin %> teams members --json"
3739
4438
  ],
3740
4439
  "flags": {
3741
4440
  "json": {
@@ -3750,57 +4449,11 @@
3750
4449
  "name": "quiet",
3751
4450
  "allowNo": false,
3752
4451
  "type": "boolean"
3753
- },
3754
- "to": {
3755
- "char": "t",
3756
- "description": "Recipient phone number (E.164 format)",
3757
- "name": "to",
3758
- "required": true,
3759
- "hasDynamicHelp": false,
3760
- "multiple": false,
3761
- "type": "option"
3762
- },
3763
- "app-name": {
3764
- "char": "a",
3765
- "description": "App name shown in message (defaults to your business name)",
3766
- "name": "app-name",
3767
- "hasDynamicHelp": false,
3768
- "multiple": false,
3769
- "type": "option"
3770
- },
3771
- "template": {
3772
- "description": "Template ID to use (defaults to tpl_preset_otp)",
3773
- "name": "template",
3774
- "hasDynamicHelp": false,
3775
- "multiple": false,
3776
- "type": "option"
3777
- },
3778
- "profile": {
3779
- "char": "p",
3780
- "description": "Verify profile ID for preconfigured settings",
3781
- "name": "profile",
3782
- "hasDynamicHelp": false,
3783
- "multiple": false,
3784
- "type": "option"
3785
- },
3786
- "code-length": {
3787
- "description": "Length of OTP code (4-10, default: 6)",
3788
- "name": "code-length",
3789
- "hasDynamicHelp": false,
3790
- "multiple": false,
3791
- "type": "option"
3792
- },
3793
- "timeout": {
3794
- "description": "Code validity in seconds (60-3600, default: 300)",
3795
- "name": "timeout",
3796
- "hasDynamicHelp": false,
3797
- "multiple": false,
3798
- "type": "option"
3799
4452
  }
3800
4453
  },
3801
4454
  "hasDynamicHelp": false,
3802
4455
  "hiddenAliases": [],
3803
- "id": "verify:send",
4456
+ "id": "teams:members",
3804
4457
  "pluginAlias": "@sendly/cli",
3805
4458
  "pluginName": "@sendly/cli",
3806
4459
  "pluginType": "core",
@@ -3809,23 +4462,24 @@
3809
4462
  "relativePath": [
3810
4463
  "dist",
3811
4464
  "commands",
3812
- "verify",
3813
- "send.js"
4465
+ "teams",
4466
+ "members.js"
3814
4467
  ]
3815
4468
  },
3816
- "verify:status": {
4469
+ "teams:switch": {
3817
4470
  "aliases": [],
3818
4471
  "args": {
3819
- "id": {
3820
- "description": "Verification ID",
3821
- "name": "id",
3822
- "required": true
4472
+ "org": {
4473
+ "description": "Organization ID or slug to switch to",
4474
+ "name": "org",
4475
+ "required": false
3823
4476
  }
3824
4477
  },
3825
- "description": "Get verification status",
4478
+ "description": "Switch the active team",
3826
4479
  "examples": [
3827
- "<%= config.bin %> verify status ver_xxx",
3828
- "<%= config.bin %> verify status ver_xxx --json"
4480
+ "<%= config.bin %> teams switch",
4481
+ "<%= config.bin %> teams switch <org-id-or-slug>",
4482
+ "<%= config.bin %> teams switch --clear"
3829
4483
  ],
3830
4484
  "flags": {
3831
4485
  "json": {
@@ -3844,7 +4498,7 @@
3844
4498
  },
3845
4499
  "hasDynamicHelp": false,
3846
4500
  "hiddenAliases": [],
3847
- "id": "verify:status",
4501
+ "id": "teams:switch",
3848
4502
  "pluginAlias": "@sendly/cli",
3849
4503
  "pluginName": "@sendly/cli",
3850
4504
  "pluginType": "core",
@@ -3853,17 +4507,24 @@
3853
4507
  "relativePath": [
3854
4508
  "dist",
3855
4509
  "commands",
3856
- "verify",
3857
- "status.js"
4510
+ "teams",
4511
+ "switch.js"
3858
4512
  ]
3859
4513
  },
3860
- "teams:create": {
4514
+ "templates:clone": {
3861
4515
  "aliases": [],
3862
- "args": {},
3863
- "description": "Create a new team",
4516
+ "args": {
4517
+ "id": {
4518
+ "description": "Template ID to clone",
4519
+ "name": "id",
4520
+ "required": true
4521
+ }
4522
+ },
4523
+ "description": "Clone a template",
3864
4524
  "examples": [
3865
- "<%= config.bin %> teams create --name \"Acme Corp\"",
3866
- "<%= config.bin %> teams create --name \"Acme Corp\" --description \"Our main team\""
4525
+ "<%= config.bin %> templates clone tpl_preset_otp",
4526
+ "<%= config.bin %> templates clone tpl_preset_otp --name \"My Custom OTP\"",
4527
+ "<%= config.bin %> templates clone tpl_xxx --json"
3867
4528
  ],
3868
4529
  "flags": {
3869
4530
  "json": {
@@ -3881,17 +4542,8 @@
3881
4542
  },
3882
4543
  "name": {
3883
4544
  "char": "n",
3884
- "description": "Team name",
4545
+ "description": "Name for the cloned template",
3885
4546
  "name": "name",
3886
- "required": true,
3887
- "hasDynamicHelp": false,
3888
- "multiple": false,
3889
- "type": "option"
3890
- },
3891
- "description": {
3892
- "char": "d",
3893
- "description": "Team description",
3894
- "name": "description",
3895
4547
  "hasDynamicHelp": false,
3896
4548
  "multiple": false,
3897
4549
  "type": "option"
@@ -3899,7 +4551,7 @@
3899
4551
  },
3900
4552
  "hasDynamicHelp": false,
3901
4553
  "hiddenAliases": [],
3902
- "id": "teams:create",
4554
+ "id": "templates:clone",
3903
4555
  "pluginAlias": "@sendly/cli",
3904
4556
  "pluginName": "@sendly/cli",
3905
4557
  "pluginType": "core",
@@ -3908,17 +4560,17 @@
3908
4560
  "relativePath": [
3909
4561
  "dist",
3910
4562
  "commands",
3911
- "teams",
3912
- "create.js"
4563
+ "templates",
4564
+ "clone.js"
3913
4565
  ]
3914
4566
  },
3915
- "teams:current": {
4567
+ "templates:create": {
3916
4568
  "aliases": [],
3917
4569
  "args": {},
3918
- "description": "Show the currently active team",
4570
+ "description": "Create a new SMS template",
3919
4571
  "examples": [
3920
- "<%= config.bin %> teams current",
3921
- "<%= config.bin %> teams current --json"
4572
+ "<%= config.bin %> templates create --name \"My OTP\" --text \"Your code is {{code}}\"",
4573
+ "<%= config.bin %> templates create --name \"Login\" --text \"{{code}} is your {{app_name}} login code\""
3922
4574
  ],
3923
4575
  "flags": {
3924
4576
  "json": {
@@ -3933,11 +4585,29 @@
3933
4585
  "name": "quiet",
3934
4586
  "allowNo": false,
3935
4587
  "type": "boolean"
4588
+ },
4589
+ "name": {
4590
+ "char": "n",
4591
+ "description": "Template name",
4592
+ "name": "name",
4593
+ "required": true,
4594
+ "hasDynamicHelp": false,
4595
+ "multiple": false,
4596
+ "type": "option"
4597
+ },
4598
+ "text": {
4599
+ "char": "t",
4600
+ "description": "Message text (use {{code}} and {{app_name}} variables)",
4601
+ "name": "text",
4602
+ "required": true,
4603
+ "hasDynamicHelp": false,
4604
+ "multiple": false,
4605
+ "type": "option"
3936
4606
  }
3937
4607
  },
3938
4608
  "hasDynamicHelp": false,
3939
4609
  "hiddenAliases": [],
3940
- "id": "teams:current",
4610
+ "id": "templates:create",
3941
4611
  "pluginAlias": "@sendly/cli",
3942
4612
  "pluginName": "@sendly/cli",
3943
4613
  "pluginType": "core",
@@ -3946,23 +4616,23 @@
3946
4616
  "relativePath": [
3947
4617
  "dist",
3948
4618
  "commands",
3949
- "teams",
3950
- "current.js"
4619
+ "templates",
4620
+ "create.js"
3951
4621
  ]
3952
4622
  },
3953
- "teams:invite": {
4623
+ "templates:delete": {
3954
4624
  "aliases": [],
3955
4625
  "args": {
3956
- "email": {
3957
- "description": "Email address to invite",
3958
- "name": "email",
4626
+ "id": {
4627
+ "description": "Template ID",
4628
+ "name": "id",
3959
4629
  "required": true
3960
4630
  }
3961
4631
  },
3962
- "description": "Invite a member to the current team",
4632
+ "description": "Delete a template",
3963
4633
  "examples": [
3964
- "<%= config.bin %> teams invite user@example.com",
3965
- "<%= config.bin %> teams invite user@example.com --role admin"
4634
+ "<%= config.bin %> templates delete tpl_xxx",
4635
+ "<%= config.bin %> templates delete tpl_xxx --force"
3966
4636
  ],
3967
4637
  "flags": {
3968
4638
  "json": {
@@ -3978,24 +4648,17 @@
3978
4648
  "allowNo": false,
3979
4649
  "type": "boolean"
3980
4650
  },
3981
- "role": {
3982
- "char": "r",
3983
- "description": "Role to assign (admin, member, viewer)",
3984
- "name": "role",
3985
- "default": "member",
3986
- "hasDynamicHelp": false,
3987
- "multiple": false,
3988
- "options": [
3989
- "admin",
3990
- "member",
3991
- "viewer"
3992
- ],
3993
- "type": "option"
4651
+ "force": {
4652
+ "char": "f",
4653
+ "description": "Skip confirmation",
4654
+ "name": "force",
4655
+ "allowNo": false,
4656
+ "type": "boolean"
3994
4657
  }
3995
4658
  },
3996
4659
  "hasDynamicHelp": false,
3997
4660
  "hiddenAliases": [],
3998
- "id": "teams:invite",
4661
+ "id": "templates:delete",
3999
4662
  "pluginAlias": "@sendly/cli",
4000
4663
  "pluginName": "@sendly/cli",
4001
4664
  "pluginType": "core",
@@ -4004,17 +4667,23 @@
4004
4667
  "relativePath": [
4005
4668
  "dist",
4006
4669
  "commands",
4007
- "teams",
4008
- "invite.js"
4670
+ "templates",
4671
+ "delete.js"
4009
4672
  ]
4010
4673
  },
4011
- "teams:list": {
4674
+ "templates:get": {
4012
4675
  "aliases": [],
4013
- "args": {},
4014
- "description": "List your teams",
4676
+ "args": {
4677
+ "id": {
4678
+ "description": "Template ID",
4679
+ "name": "id",
4680
+ "required": true
4681
+ }
4682
+ },
4683
+ "description": "Get template details",
4015
4684
  "examples": [
4016
- "<%= config.bin %> teams list",
4017
- "<%= config.bin %> teams list --json"
4685
+ "<%= config.bin %> templates get tpl_xxx",
4686
+ "<%= config.bin %> templates get tpl_preset_2fa"
4018
4687
  ],
4019
4688
  "flags": {
4020
4689
  "json": {
@@ -4033,7 +4702,7 @@
4033
4702
  },
4034
4703
  "hasDynamicHelp": false,
4035
4704
  "hiddenAliases": [],
4036
- "id": "teams:list",
4705
+ "id": "templates:get",
4037
4706
  "pluginAlias": "@sendly/cli",
4038
4707
  "pluginName": "@sendly/cli",
4039
4708
  "pluginType": "core",
@@ -4042,17 +4711,17 @@
4042
4711
  "relativePath": [
4043
4712
  "dist",
4044
4713
  "commands",
4045
- "teams",
4046
- "list.js"
4714
+ "templates",
4715
+ "get.js"
4047
4716
  ]
4048
4717
  },
4049
- "teams:members": {
4718
+ "templates:list": {
4050
4719
  "aliases": [],
4051
4720
  "args": {},
4052
- "description": "List members of the current team",
4721
+ "description": "List your SMS templates",
4053
4722
  "examples": [
4054
- "<%= config.bin %> teams members",
4055
- "<%= config.bin %> teams members --json"
4723
+ "<%= config.bin %> templates list",
4724
+ "<%= config.bin %> templates list --json"
4056
4725
  ],
4057
4726
  "flags": {
4058
4727
  "json": {
@@ -4071,7 +4740,7 @@
4071
4740
  },
4072
4741
  "hasDynamicHelp": false,
4073
4742
  "hiddenAliases": [],
4074
- "id": "teams:members",
4743
+ "id": "templates:list",
4075
4744
  "pluginAlias": "@sendly/cli",
4076
4745
  "pluginName": "@sendly/cli",
4077
4746
  "pluginType": "core",
@@ -4080,24 +4749,17 @@
4080
4749
  "relativePath": [
4081
4750
  "dist",
4082
4751
  "commands",
4083
- "teams",
4084
- "members.js"
4752
+ "templates",
4753
+ "list.js"
4085
4754
  ]
4086
4755
  },
4087
- "teams:switch": {
4756
+ "templates:presets": {
4088
4757
  "aliases": [],
4089
- "args": {
4090
- "org": {
4091
- "description": "Organization ID or slug to switch to",
4092
- "name": "org",
4093
- "required": false
4094
- }
4095
- },
4096
- "description": "Switch the active team",
4758
+ "args": {},
4759
+ "description": "List available preset templates",
4097
4760
  "examples": [
4098
- "<%= config.bin %> teams switch",
4099
- "<%= config.bin %> teams switch <org-id-or-slug>",
4100
- "<%= config.bin %> teams switch --clear"
4761
+ "<%= config.bin %> templates presets",
4762
+ "<%= config.bin %> templates presets --json"
4101
4763
  ],
4102
4764
  "flags": {
4103
4765
  "json": {
@@ -4116,7 +4778,7 @@
4116
4778
  },
4117
4779
  "hasDynamicHelp": false,
4118
4780
  "hiddenAliases": [],
4119
- "id": "teams:switch",
4781
+ "id": "templates:presets",
4120
4782
  "pluginAlias": "@sendly/cli",
4121
4783
  "pluginName": "@sendly/cli",
4122
4784
  "pluginType": "core",
@@ -4125,24 +4787,22 @@
4125
4787
  "relativePath": [
4126
4788
  "dist",
4127
4789
  "commands",
4128
- "teams",
4129
- "switch.js"
4790
+ "templates",
4791
+ "presets.js"
4130
4792
  ]
4131
4793
  },
4132
- "templates:clone": {
4794
+ "templates:publish": {
4133
4795
  "aliases": [],
4134
4796
  "args": {
4135
4797
  "id": {
4136
- "description": "Template ID to clone",
4798
+ "description": "Template ID",
4137
4799
  "name": "id",
4138
4800
  "required": true
4139
4801
  }
4140
4802
  },
4141
- "description": "Clone a template",
4803
+ "description": "Publish a draft template (locks it for use)",
4142
4804
  "examples": [
4143
- "<%= config.bin %> templates clone tpl_preset_otp",
4144
- "<%= config.bin %> templates clone tpl_preset_otp --name \"My Custom OTP\"",
4145
- "<%= config.bin %> templates clone tpl_xxx --json"
4805
+ "<%= config.bin %> templates publish tpl_xxx"
4146
4806
  ],
4147
4807
  "flags": {
4148
4808
  "json": {
@@ -4157,19 +4817,11 @@
4157
4817
  "name": "quiet",
4158
4818
  "allowNo": false,
4159
4819
  "type": "boolean"
4160
- },
4161
- "name": {
4162
- "char": "n",
4163
- "description": "Name for the cloned template",
4164
- "name": "name",
4165
- "hasDynamicHelp": false,
4166
- "multiple": false,
4167
- "type": "option"
4168
4820
  }
4169
4821
  },
4170
4822
  "hasDynamicHelp": false,
4171
4823
  "hiddenAliases": [],
4172
- "id": "templates:clone",
4824
+ "id": "templates:publish",
4173
4825
  "pluginAlias": "@sendly/cli",
4174
4826
  "pluginName": "@sendly/cli",
4175
4827
  "pluginType": "core",
@@ -4179,16 +4831,23 @@
4179
4831
  "dist",
4180
4832
  "commands",
4181
4833
  "templates",
4182
- "clone.js"
4834
+ "publish.js"
4183
4835
  ]
4184
4836
  },
4185
- "templates:create": {
4837
+ "templates:update": {
4186
4838
  "aliases": [],
4187
- "args": {},
4188
- "description": "Create a new SMS template",
4839
+ "args": {
4840
+ "id": {
4841
+ "description": "Template ID",
4842
+ "name": "id",
4843
+ "required": true
4844
+ }
4845
+ },
4846
+ "description": "Update an SMS template",
4189
4847
  "examples": [
4190
- "<%= config.bin %> templates create --name \"My OTP\" --text \"Your code is {{code}}\"",
4191
- "<%= config.bin %> templates create --name \"Login\" --text \"{{code}} is your {{app_name}} login code\""
4848
+ "<%= config.bin %> templates update tmpl_abc123 --name \"Updated OTP\"",
4849
+ "<%= config.bin %> templates update tmpl_abc123 --text \"Your new code is {{code}}\"",
4850
+ "<%= config.bin %> templates update tmpl_abc123 --name \"Login V2\" --text \"{{code}} is your code\""
4192
4851
  ],
4193
4852
  "flags": {
4194
4853
  "json": {
@@ -4208,7 +4867,6 @@
4208
4867
  "char": "n",
4209
4868
  "description": "Template name",
4210
4869
  "name": "name",
4211
- "required": true,
4212
4870
  "hasDynamicHelp": false,
4213
4871
  "multiple": false,
4214
4872
  "type": "option"
@@ -4217,7 +4875,6 @@
4217
4875
  "char": "t",
4218
4876
  "description": "Message text (use {{code}} and {{app_name}} variables)",
4219
4877
  "name": "text",
4220
- "required": true,
4221
4878
  "hasDynamicHelp": false,
4222
4879
  "multiple": false,
4223
4880
  "type": "option"
@@ -4225,7 +4882,7 @@
4225
4882
  },
4226
4883
  "hasDynamicHelp": false,
4227
4884
  "hiddenAliases": [],
4228
- "id": "templates:create",
4885
+ "id": "templates:update",
4229
4886
  "pluginAlias": "@sendly/cli",
4230
4887
  "pluginName": "@sendly/cli",
4231
4888
  "pluginType": "core",
@@ -4235,22 +4892,22 @@
4235
4892
  "dist",
4236
4893
  "commands",
4237
4894
  "templates",
4238
- "create.js"
4895
+ "update.js"
4239
4896
  ]
4240
4897
  },
4241
- "templates:delete": {
4898
+ "verify:check": {
4242
4899
  "aliases": [],
4243
4900
  "args": {
4244
4901
  "id": {
4245
- "description": "Template ID",
4902
+ "description": "Verification ID",
4246
4903
  "name": "id",
4247
4904
  "required": true
4248
4905
  }
4249
4906
  },
4250
- "description": "Delete a template",
4907
+ "description": "Verify an OTP code",
4251
4908
  "examples": [
4252
- "<%= config.bin %> templates delete tpl_xxx",
4253
- "<%= config.bin %> templates delete tpl_xxx --force"
4909
+ "<%= config.bin %> verify check ver_xxx --code 123456",
4910
+ "<%= config.bin %> verify check ver_xxx -c 123456"
4254
4911
  ],
4255
4912
  "flags": {
4256
4913
  "json": {
@@ -4266,17 +4923,19 @@
4266
4923
  "allowNo": false,
4267
4924
  "type": "boolean"
4268
4925
  },
4269
- "force": {
4270
- "char": "f",
4271
- "description": "Skip confirmation",
4272
- "name": "force",
4273
- "allowNo": false,
4274
- "type": "boolean"
4926
+ "code": {
4927
+ "char": "c",
4928
+ "description": "The OTP code to verify",
4929
+ "name": "code",
4930
+ "required": true,
4931
+ "hasDynamicHelp": false,
4932
+ "multiple": false,
4933
+ "type": "option"
4275
4934
  }
4276
4935
  },
4277
4936
  "hasDynamicHelp": false,
4278
4937
  "hiddenAliases": [],
4279
- "id": "templates:delete",
4938
+ "id": "verify:check",
4280
4939
  "pluginAlias": "@sendly/cli",
4281
4940
  "pluginName": "@sendly/cli",
4282
4941
  "pluginType": "core",
@@ -4285,23 +4944,20 @@
4285
4944
  "relativePath": [
4286
4945
  "dist",
4287
4946
  "commands",
4288
- "templates",
4289
- "delete.js"
4947
+ "verify",
4948
+ "check.js"
4290
4949
  ]
4291
4950
  },
4292
- "templates:get": {
4951
+ "verify:list": {
4293
4952
  "aliases": [],
4294
- "args": {
4295
- "id": {
4296
- "description": "Template ID",
4297
- "name": "id",
4298
- "required": true
4299
- }
4300
- },
4301
- "description": "Get template details",
4953
+ "args": {},
4954
+ "description": "List recent verifications",
4302
4955
  "examples": [
4303
- "<%= config.bin %> templates get tpl_xxx",
4304
- "<%= config.bin %> templates get tpl_preset_2fa"
4956
+ "<%= config.bin %> verify list",
4957
+ "<%= config.bin %> verify list --limit 10",
4958
+ "<%= config.bin %> verify list --page 2",
4959
+ "<%= config.bin %> verify list --status verified",
4960
+ "<%= config.bin %> verify list --json"
4305
4961
  ],
4306
4962
  "flags": {
4307
4963
  "json": {
@@ -4316,11 +4972,43 @@
4316
4972
  "name": "quiet",
4317
4973
  "allowNo": false,
4318
4974
  "type": "boolean"
4975
+ },
4976
+ "limit": {
4977
+ "char": "l",
4978
+ "description": "Number of verifications per page",
4979
+ "name": "limit",
4980
+ "default": 20,
4981
+ "hasDynamicHelp": false,
4982
+ "multiple": false,
4983
+ "type": "option"
4984
+ },
4985
+ "page": {
4986
+ "char": "p",
4987
+ "description": "Page number (starts at 1)",
4988
+ "name": "page",
4989
+ "hasDynamicHelp": false,
4990
+ "multiple": false,
4991
+ "type": "option"
4992
+ },
4993
+ "offset": {
4994
+ "description": "Offset from start (alternative to --page)",
4995
+ "name": "offset",
4996
+ "hasDynamicHelp": false,
4997
+ "multiple": false,
4998
+ "type": "option"
4999
+ },
5000
+ "status": {
5001
+ "char": "s",
5002
+ "description": "Filter by status (pending, verified, expired, failed)",
5003
+ "name": "status",
5004
+ "hasDynamicHelp": false,
5005
+ "multiple": false,
5006
+ "type": "option"
4319
5007
  }
4320
5008
  },
4321
5009
  "hasDynamicHelp": false,
4322
5010
  "hiddenAliases": [],
4323
- "id": "templates:get",
5011
+ "id": "verify:list",
4324
5012
  "pluginAlias": "@sendly/cli",
4325
5013
  "pluginName": "@sendly/cli",
4326
5014
  "pluginType": "core",
@@ -4329,17 +5017,23 @@
4329
5017
  "relativePath": [
4330
5018
  "dist",
4331
5019
  "commands",
4332
- "templates",
4333
- "get.js"
5020
+ "verify",
5021
+ "list.js"
4334
5022
  ]
4335
5023
  },
4336
- "templates:list": {
5024
+ "verify:resend": {
4337
5025
  "aliases": [],
4338
- "args": {},
4339
- "description": "List your SMS templates",
5026
+ "args": {
5027
+ "id": {
5028
+ "description": "Verification ID",
5029
+ "name": "id",
5030
+ "required": true
5031
+ }
5032
+ },
5033
+ "description": "Resend an OTP verification code",
4340
5034
  "examples": [
4341
- "<%= config.bin %> templates list",
4342
- "<%= config.bin %> templates list --json"
5035
+ "<%= config.bin %> verify resend ver_xxx",
5036
+ "<%= config.bin %> verify resend ver_xxx --json"
4343
5037
  ],
4344
5038
  "flags": {
4345
5039
  "json": {
@@ -4358,7 +5052,7 @@
4358
5052
  },
4359
5053
  "hasDynamicHelp": false,
4360
5054
  "hiddenAliases": [],
4361
- "id": "templates:list",
5055
+ "id": "verify:resend",
4362
5056
  "pluginAlias": "@sendly/cli",
4363
5057
  "pluginName": "@sendly/cli",
4364
5058
  "pluginType": "core",
@@ -4367,17 +5061,20 @@
4367
5061
  "relativePath": [
4368
5062
  "dist",
4369
5063
  "commands",
4370
- "templates",
4371
- "list.js"
5064
+ "verify",
5065
+ "resend.js"
4372
5066
  ]
4373
5067
  },
4374
- "templates:presets": {
5068
+ "verify:send": {
4375
5069
  "aliases": [],
4376
5070
  "args": {},
4377
- "description": "List available preset templates",
5071
+ "description": "Send an OTP verification code",
4378
5072
  "examples": [
4379
- "<%= config.bin %> templates presets",
4380
- "<%= config.bin %> templates presets --json"
5073
+ "<%= config.bin %> verify send --to \"+1234567890\"",
5074
+ "<%= config.bin %> verify send --to \"+1234567890\" --app-name \"MyApp\"",
5075
+ "<%= config.bin %> verify send --to \"+1234567890\" --template tpl_preset_2fa",
5076
+ "<%= config.bin %> verify send --to \"+1234567890\" --profile vp_xxx",
5077
+ "<%= config.bin %> verify send --to \"+1234567890\" --code-length 8 --timeout 120"
4381
5078
  ],
4382
5079
  "flags": {
4383
5080
  "json": {
@@ -4386,17 +5083,63 @@
4386
5083
  "allowNo": false,
4387
5084
  "type": "boolean"
4388
5085
  },
4389
- "quiet": {
4390
- "char": "q",
4391
- "description": "Minimal output",
4392
- "name": "quiet",
4393
- "allowNo": false,
4394
- "type": "boolean"
5086
+ "quiet": {
5087
+ "char": "q",
5088
+ "description": "Minimal output",
5089
+ "name": "quiet",
5090
+ "allowNo": false,
5091
+ "type": "boolean"
5092
+ },
5093
+ "to": {
5094
+ "char": "t",
5095
+ "description": "Recipient phone number (E.164 format)",
5096
+ "name": "to",
5097
+ "required": true,
5098
+ "hasDynamicHelp": false,
5099
+ "multiple": false,
5100
+ "type": "option"
5101
+ },
5102
+ "app-name": {
5103
+ "char": "a",
5104
+ "description": "App name shown in message (defaults to your business name)",
5105
+ "name": "app-name",
5106
+ "hasDynamicHelp": false,
5107
+ "multiple": false,
5108
+ "type": "option"
5109
+ },
5110
+ "template": {
5111
+ "description": "Template ID to use (defaults to tpl_preset_otp)",
5112
+ "name": "template",
5113
+ "hasDynamicHelp": false,
5114
+ "multiple": false,
5115
+ "type": "option"
5116
+ },
5117
+ "profile": {
5118
+ "char": "p",
5119
+ "description": "Verify profile ID for preconfigured settings",
5120
+ "name": "profile",
5121
+ "hasDynamicHelp": false,
5122
+ "multiple": false,
5123
+ "type": "option"
5124
+ },
5125
+ "code-length": {
5126
+ "description": "Length of OTP code (4-10, default: 6)",
5127
+ "name": "code-length",
5128
+ "hasDynamicHelp": false,
5129
+ "multiple": false,
5130
+ "type": "option"
5131
+ },
5132
+ "timeout": {
5133
+ "description": "Code validity in seconds (60-3600, default: 300)",
5134
+ "name": "timeout",
5135
+ "hasDynamicHelp": false,
5136
+ "multiple": false,
5137
+ "type": "option"
4395
5138
  }
4396
5139
  },
4397
5140
  "hasDynamicHelp": false,
4398
5141
  "hiddenAliases": [],
4399
- "id": "templates:presets",
5142
+ "id": "verify:send",
4400
5143
  "pluginAlias": "@sendly/cli",
4401
5144
  "pluginName": "@sendly/cli",
4402
5145
  "pluginType": "core",
@@ -4405,22 +5148,23 @@
4405
5148
  "relativePath": [
4406
5149
  "dist",
4407
5150
  "commands",
4408
- "templates",
4409
- "presets.js"
5151
+ "verify",
5152
+ "send.js"
4410
5153
  ]
4411
5154
  },
4412
- "templates:publish": {
5155
+ "verify:status": {
4413
5156
  "aliases": [],
4414
5157
  "args": {
4415
5158
  "id": {
4416
- "description": "Template ID",
5159
+ "description": "Verification ID",
4417
5160
  "name": "id",
4418
5161
  "required": true
4419
5162
  }
4420
5163
  },
4421
- "description": "Publish a draft template (locks it for use)",
5164
+ "description": "Get verification status",
4422
5165
  "examples": [
4423
- "<%= config.bin %> templates publish tpl_xxx"
5166
+ "<%= config.bin %> verify status ver_xxx",
5167
+ "<%= config.bin %> verify status ver_xxx --json"
4424
5168
  ],
4425
5169
  "flags": {
4426
5170
  "json": {
@@ -4439,7 +5183,7 @@
4439
5183
  },
4440
5184
  "hasDynamicHelp": false,
4441
5185
  "hiddenAliases": [],
4442
- "id": "templates:publish",
5186
+ "id": "verify:status",
4443
5187
  "pluginAlias": "@sendly/cli",
4444
5188
  "pluginName": "@sendly/cli",
4445
5189
  "pluginType": "core",
@@ -4448,8 +5192,8 @@
4448
5192
  "relativePath": [
4449
5193
  "dist",
4450
5194
  "commands",
4451
- "templates",
4452
- "publish.js"
5195
+ "verify",
5196
+ "status.js"
4453
5197
  ]
4454
5198
  },
4455
5199
  "webhooks:create": {
@@ -5326,6 +6070,192 @@
5326
6070
  "update.js"
5327
6071
  ]
5328
6072
  },
6073
+ "enterprise:analytics:credits": {
6074
+ "aliases": [],
6075
+ "args": {},
6076
+ "description": "Get credit usage analytics over time",
6077
+ "examples": [
6078
+ "<%= config.bin %> enterprise analytics credits",
6079
+ "<%= config.bin %> enterprise analytics credits --period 30d",
6080
+ "<%= config.bin %> enterprise analytics credits --json"
6081
+ ],
6082
+ "flags": {
6083
+ "json": {
6084
+ "description": "Output in JSON format",
6085
+ "name": "json",
6086
+ "allowNo": false,
6087
+ "type": "boolean"
6088
+ },
6089
+ "quiet": {
6090
+ "char": "q",
6091
+ "description": "Minimal output",
6092
+ "name": "quiet",
6093
+ "allowNo": false,
6094
+ "type": "boolean"
6095
+ },
6096
+ "period": {
6097
+ "char": "p",
6098
+ "description": "Time period (7d, 30d, 90d)",
6099
+ "name": "period",
6100
+ "default": "7d",
6101
+ "hasDynamicHelp": false,
6102
+ "multiple": false,
6103
+ "options": [
6104
+ "7d",
6105
+ "30d",
6106
+ "90d"
6107
+ ],
6108
+ "type": "option"
6109
+ }
6110
+ },
6111
+ "hasDynamicHelp": false,
6112
+ "hiddenAliases": [],
6113
+ "id": "enterprise:analytics:credits",
6114
+ "pluginAlias": "@sendly/cli",
6115
+ "pluginName": "@sendly/cli",
6116
+ "pluginType": "core",
6117
+ "strict": true,
6118
+ "isESM": true,
6119
+ "relativePath": [
6120
+ "dist",
6121
+ "commands",
6122
+ "enterprise",
6123
+ "analytics",
6124
+ "credits.js"
6125
+ ]
6126
+ },
6127
+ "enterprise:analytics:delivery": {
6128
+ "aliases": [],
6129
+ "args": {},
6130
+ "description": "Get delivery rate analytics by workspace",
6131
+ "examples": [
6132
+ "<%= config.bin %> enterprise analytics delivery",
6133
+ "<%= config.bin %> enterprise analytics delivery --json"
6134
+ ],
6135
+ "flags": {
6136
+ "json": {
6137
+ "description": "Output in JSON format",
6138
+ "name": "json",
6139
+ "allowNo": false,
6140
+ "type": "boolean"
6141
+ },
6142
+ "quiet": {
6143
+ "char": "q",
6144
+ "description": "Minimal output",
6145
+ "name": "quiet",
6146
+ "allowNo": false,
6147
+ "type": "boolean"
6148
+ }
6149
+ },
6150
+ "hasDynamicHelp": false,
6151
+ "hiddenAliases": [],
6152
+ "id": "enterprise:analytics:delivery",
6153
+ "pluginAlias": "@sendly/cli",
6154
+ "pluginName": "@sendly/cli",
6155
+ "pluginType": "core",
6156
+ "strict": true,
6157
+ "isESM": true,
6158
+ "relativePath": [
6159
+ "dist",
6160
+ "commands",
6161
+ "enterprise",
6162
+ "analytics",
6163
+ "delivery.js"
6164
+ ]
6165
+ },
6166
+ "enterprise:analytics:messages": {
6167
+ "aliases": [],
6168
+ "args": {},
6169
+ "description": "Get message analytics across all workspaces",
6170
+ "examples": [
6171
+ "<%= config.bin %> enterprise analytics messages",
6172
+ "<%= config.bin %> enterprise analytics messages --period 30d",
6173
+ "<%= config.bin %> enterprise analytics messages --period 90d --json"
6174
+ ],
6175
+ "flags": {
6176
+ "json": {
6177
+ "description": "Output in JSON format",
6178
+ "name": "json",
6179
+ "allowNo": false,
6180
+ "type": "boolean"
6181
+ },
6182
+ "quiet": {
6183
+ "char": "q",
6184
+ "description": "Minimal output",
6185
+ "name": "quiet",
6186
+ "allowNo": false,
6187
+ "type": "boolean"
6188
+ },
6189
+ "period": {
6190
+ "char": "p",
6191
+ "description": "Time period (7d, 30d, 90d)",
6192
+ "name": "period",
6193
+ "default": "7d",
6194
+ "hasDynamicHelp": false,
6195
+ "multiple": false,
6196
+ "options": [
6197
+ "7d",
6198
+ "30d",
6199
+ "90d"
6200
+ ],
6201
+ "type": "option"
6202
+ }
6203
+ },
6204
+ "hasDynamicHelp": false,
6205
+ "hiddenAliases": [],
6206
+ "id": "enterprise:analytics:messages",
6207
+ "pluginAlias": "@sendly/cli",
6208
+ "pluginName": "@sendly/cli",
6209
+ "pluginType": "core",
6210
+ "strict": true,
6211
+ "isESM": true,
6212
+ "relativePath": [
6213
+ "dist",
6214
+ "commands",
6215
+ "enterprise",
6216
+ "analytics",
6217
+ "messages.js"
6218
+ ]
6219
+ },
6220
+ "enterprise:analytics:overview": {
6221
+ "aliases": [],
6222
+ "args": {},
6223
+ "description": "Get enterprise-wide analytics overview",
6224
+ "examples": [
6225
+ "<%= config.bin %> enterprise analytics overview",
6226
+ "<%= config.bin %> enterprise analytics overview --json"
6227
+ ],
6228
+ "flags": {
6229
+ "json": {
6230
+ "description": "Output in JSON format",
6231
+ "name": "json",
6232
+ "allowNo": false,
6233
+ "type": "boolean"
6234
+ },
6235
+ "quiet": {
6236
+ "char": "q",
6237
+ "description": "Minimal output",
6238
+ "name": "quiet",
6239
+ "allowNo": false,
6240
+ "type": "boolean"
6241
+ }
6242
+ },
6243
+ "hasDynamicHelp": false,
6244
+ "hiddenAliases": [],
6245
+ "id": "enterprise:analytics:overview",
6246
+ "pluginAlias": "@sendly/cli",
6247
+ "pluginName": "@sendly/cli",
6248
+ "pluginType": "core",
6249
+ "strict": true,
6250
+ "isESM": true,
6251
+ "relativePath": [
6252
+ "dist",
6253
+ "commands",
6254
+ "enterprise",
6255
+ "analytics",
6256
+ "overview.js"
6257
+ ]
6258
+ },
5329
6259
  "enterprise:keys:create": {
5330
6260
  "aliases": [],
5331
6261
  "args": {
@@ -5601,14 +6531,13 @@
5601
6531
  "set.js"
5602
6532
  ]
5603
6533
  },
5604
- "enterprise:analytics:credits": {
6534
+ "enterprise:webhooks:delete": {
5605
6535
  "aliases": [],
5606
6536
  "args": {},
5607
- "description": "Get credit usage analytics over time",
6537
+ "description": "Delete the enterprise webhook",
5608
6538
  "examples": [
5609
- "<%= config.bin %> enterprise analytics credits",
5610
- "<%= config.bin %> enterprise analytics credits --period 30d",
5611
- "<%= config.bin %> enterprise analytics credits --json"
6539
+ "<%= config.bin %> enterprise webhooks delete",
6540
+ "<%= config.bin %> enterprise webhooks delete --yes"
5612
6541
  ],
5613
6542
  "flags": {
5614
6543
  "json": {
@@ -5622,26 +6551,19 @@
5622
6551
  "description": "Minimal output",
5623
6552
  "name": "quiet",
5624
6553
  "allowNo": false,
5625
- "type": "boolean"
5626
- },
5627
- "period": {
5628
- "char": "p",
5629
- "description": "Time period (7d, 30d, 90d)",
5630
- "name": "period",
5631
- "default": "7d",
5632
- "hasDynamicHelp": false,
5633
- "multiple": false,
5634
- "options": [
5635
- "7d",
5636
- "30d",
5637
- "90d"
5638
- ],
5639
- "type": "option"
6554
+ "type": "boolean"
6555
+ },
6556
+ "yes": {
6557
+ "char": "y",
6558
+ "description": "Skip confirmation prompt",
6559
+ "name": "yes",
6560
+ "allowNo": false,
6561
+ "type": "boolean"
5640
6562
  }
5641
6563
  },
5642
6564
  "hasDynamicHelp": false,
5643
6565
  "hiddenAliases": [],
5644
- "id": "enterprise:analytics:credits",
6566
+ "id": "enterprise:webhooks:delete",
5645
6567
  "pluginAlias": "@sendly/cli",
5646
6568
  "pluginName": "@sendly/cli",
5647
6569
  "pluginType": "core",
@@ -5651,17 +6573,17 @@
5651
6573
  "dist",
5652
6574
  "commands",
5653
6575
  "enterprise",
5654
- "analytics",
5655
- "credits.js"
6576
+ "webhooks",
6577
+ "delete.js"
5656
6578
  ]
5657
6579
  },
5658
- "enterprise:analytics:delivery": {
6580
+ "enterprise:webhooks:get": {
5659
6581
  "aliases": [],
5660
6582
  "args": {},
5661
- "description": "Get delivery rate analytics by workspace",
6583
+ "description": "Get the enterprise webhook configuration",
5662
6584
  "examples": [
5663
- "<%= config.bin %> enterprise analytics delivery",
5664
- "<%= config.bin %> enterprise analytics delivery --json"
6585
+ "<%= config.bin %> enterprise webhooks get",
6586
+ "<%= config.bin %> enterprise webhooks get --json"
5665
6587
  ],
5666
6588
  "flags": {
5667
6589
  "json": {
@@ -5680,7 +6602,7 @@
5680
6602
  },
5681
6603
  "hasDynamicHelp": false,
5682
6604
  "hiddenAliases": [],
5683
- "id": "enterprise:analytics:delivery",
6605
+ "id": "enterprise:webhooks:get",
5684
6606
  "pluginAlias": "@sendly/cli",
5685
6607
  "pluginName": "@sendly/cli",
5686
6608
  "pluginType": "core",
@@ -5690,18 +6612,17 @@
5690
6612
  "dist",
5691
6613
  "commands",
5692
6614
  "enterprise",
5693
- "analytics",
5694
- "delivery.js"
6615
+ "webhooks",
6616
+ "get.js"
5695
6617
  ]
5696
6618
  },
5697
- "enterprise:analytics:messages": {
6619
+ "enterprise:webhooks:set": {
5698
6620
  "aliases": [],
5699
6621
  "args": {},
5700
- "description": "Get message analytics across all workspaces",
6622
+ "description": "Create or update the enterprise-level webhook",
5701
6623
  "examples": [
5702
- "<%= config.bin %> enterprise analytics messages",
5703
- "<%= config.bin %> enterprise analytics messages --period 30d",
5704
- "<%= config.bin %> enterprise analytics messages --period 90d --json"
6624
+ "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook",
6625
+ "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events \"message.sent,message.delivered\""
5705
6626
  ],
5706
6627
  "flags": {
5707
6628
  "json": {
@@ -5717,24 +6638,25 @@
5717
6638
  "allowNo": false,
5718
6639
  "type": "boolean"
5719
6640
  },
5720
- "period": {
5721
- "char": "p",
5722
- "description": "Time period (7d, 30d, 90d)",
5723
- "name": "period",
5724
- "default": "7d",
6641
+ "url": {
6642
+ "description": "Webhook endpoint URL",
6643
+ "name": "url",
6644
+ "required": true,
6645
+ "hasDynamicHelp": false,
6646
+ "multiple": false,
6647
+ "type": "option"
6648
+ },
6649
+ "events": {
6650
+ "description": "Comma-separated list of event types to subscribe to",
6651
+ "name": "events",
5725
6652
  "hasDynamicHelp": false,
5726
6653
  "multiple": false,
5727
- "options": [
5728
- "7d",
5729
- "30d",
5730
- "90d"
5731
- ],
5732
6654
  "type": "option"
5733
6655
  }
5734
6656
  },
5735
6657
  "hasDynamicHelp": false,
5736
6658
  "hiddenAliases": [],
5737
- "id": "enterprise:analytics:messages",
6659
+ "id": "enterprise:webhooks:set",
5738
6660
  "pluginAlias": "@sendly/cli",
5739
6661
  "pluginName": "@sendly/cli",
5740
6662
  "pluginType": "core",
@@ -5744,17 +6666,17 @@
5744
6666
  "dist",
5745
6667
  "commands",
5746
6668
  "enterprise",
5747
- "analytics",
5748
- "messages.js"
6669
+ "webhooks",
6670
+ "set.js"
5749
6671
  ]
5750
6672
  },
5751
- "enterprise:analytics:overview": {
6673
+ "enterprise:webhooks:test": {
5752
6674
  "aliases": [],
5753
6675
  "args": {},
5754
- "description": "Get enterprise-wide analytics overview",
6676
+ "description": "Send a test event to the enterprise webhook",
5755
6677
  "examples": [
5756
- "<%= config.bin %> enterprise analytics overview",
5757
- "<%= config.bin %> enterprise analytics overview --json"
6678
+ "<%= config.bin %> enterprise webhooks test",
6679
+ "<%= config.bin %> enterprise webhooks test --json"
5758
6680
  ],
5759
6681
  "flags": {
5760
6682
  "json": {
@@ -5773,7 +6695,7 @@
5773
6695
  },
5774
6696
  "hasDynamicHelp": false,
5775
6697
  "hiddenAliases": [],
5776
- "id": "enterprise:analytics:overview",
6698
+ "id": "enterprise:webhooks:test",
5777
6699
  "pluginAlias": "@sendly/cli",
5778
6700
  "pluginName": "@sendly/cli",
5779
6701
  "pluginType": "core",
@@ -5783,8 +6705,8 @@
5783
6705
  "dist",
5784
6706
  "commands",
5785
6707
  "enterprise",
5786
- "analytics",
5787
- "overview.js"
6708
+ "webhooks",
6709
+ "test.js"
5788
6710
  ]
5789
6711
  },
5790
6712
  "enterprise:workspaces:create": {
@@ -6074,185 +6996,7 @@
6074
6996
  "workspaces",
6075
6997
  "suspend.js"
6076
6998
  ]
6077
- },
6078
- "enterprise:webhooks:delete": {
6079
- "aliases": [],
6080
- "args": {},
6081
- "description": "Delete the enterprise webhook",
6082
- "examples": [
6083
- "<%= config.bin %> enterprise webhooks delete",
6084
- "<%= config.bin %> enterprise webhooks delete --yes"
6085
- ],
6086
- "flags": {
6087
- "json": {
6088
- "description": "Output in JSON format",
6089
- "name": "json",
6090
- "allowNo": false,
6091
- "type": "boolean"
6092
- },
6093
- "quiet": {
6094
- "char": "q",
6095
- "description": "Minimal output",
6096
- "name": "quiet",
6097
- "allowNo": false,
6098
- "type": "boolean"
6099
- },
6100
- "yes": {
6101
- "char": "y",
6102
- "description": "Skip confirmation prompt",
6103
- "name": "yes",
6104
- "allowNo": false,
6105
- "type": "boolean"
6106
- }
6107
- },
6108
- "hasDynamicHelp": false,
6109
- "hiddenAliases": [],
6110
- "id": "enterprise:webhooks:delete",
6111
- "pluginAlias": "@sendly/cli",
6112
- "pluginName": "@sendly/cli",
6113
- "pluginType": "core",
6114
- "strict": true,
6115
- "isESM": true,
6116
- "relativePath": [
6117
- "dist",
6118
- "commands",
6119
- "enterprise",
6120
- "webhooks",
6121
- "delete.js"
6122
- ]
6123
- },
6124
- "enterprise:webhooks:get": {
6125
- "aliases": [],
6126
- "args": {},
6127
- "description": "Get the enterprise webhook configuration",
6128
- "examples": [
6129
- "<%= config.bin %> enterprise webhooks get",
6130
- "<%= config.bin %> enterprise webhooks get --json"
6131
- ],
6132
- "flags": {
6133
- "json": {
6134
- "description": "Output in JSON format",
6135
- "name": "json",
6136
- "allowNo": false,
6137
- "type": "boolean"
6138
- },
6139
- "quiet": {
6140
- "char": "q",
6141
- "description": "Minimal output",
6142
- "name": "quiet",
6143
- "allowNo": false,
6144
- "type": "boolean"
6145
- }
6146
- },
6147
- "hasDynamicHelp": false,
6148
- "hiddenAliases": [],
6149
- "id": "enterprise:webhooks:get",
6150
- "pluginAlias": "@sendly/cli",
6151
- "pluginName": "@sendly/cli",
6152
- "pluginType": "core",
6153
- "strict": true,
6154
- "isESM": true,
6155
- "relativePath": [
6156
- "dist",
6157
- "commands",
6158
- "enterprise",
6159
- "webhooks",
6160
- "get.js"
6161
- ]
6162
- },
6163
- "enterprise:webhooks:set": {
6164
- "aliases": [],
6165
- "args": {},
6166
- "description": "Create or update the enterprise-level webhook",
6167
- "examples": [
6168
- "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook",
6169
- "<%= config.bin %> enterprise webhooks set --url https://example.com/webhook --events \"message.sent,message.delivered\""
6170
- ],
6171
- "flags": {
6172
- "json": {
6173
- "description": "Output in JSON format",
6174
- "name": "json",
6175
- "allowNo": false,
6176
- "type": "boolean"
6177
- },
6178
- "quiet": {
6179
- "char": "q",
6180
- "description": "Minimal output",
6181
- "name": "quiet",
6182
- "allowNo": false,
6183
- "type": "boolean"
6184
- },
6185
- "url": {
6186
- "description": "Webhook endpoint URL",
6187
- "name": "url",
6188
- "required": true,
6189
- "hasDynamicHelp": false,
6190
- "multiple": false,
6191
- "type": "option"
6192
- },
6193
- "events": {
6194
- "description": "Comma-separated list of event types to subscribe to",
6195
- "name": "events",
6196
- "hasDynamicHelp": false,
6197
- "multiple": false,
6198
- "type": "option"
6199
- }
6200
- },
6201
- "hasDynamicHelp": false,
6202
- "hiddenAliases": [],
6203
- "id": "enterprise:webhooks:set",
6204
- "pluginAlias": "@sendly/cli",
6205
- "pluginName": "@sendly/cli",
6206
- "pluginType": "core",
6207
- "strict": true,
6208
- "isESM": true,
6209
- "relativePath": [
6210
- "dist",
6211
- "commands",
6212
- "enterprise",
6213
- "webhooks",
6214
- "set.js"
6215
- ]
6216
- },
6217
- "enterprise:webhooks:test": {
6218
- "aliases": [],
6219
- "args": {},
6220
- "description": "Send a test event to the enterprise webhook",
6221
- "examples": [
6222
- "<%= config.bin %> enterprise webhooks test",
6223
- "<%= config.bin %> enterprise webhooks test --json"
6224
- ],
6225
- "flags": {
6226
- "json": {
6227
- "description": "Output in JSON format",
6228
- "name": "json",
6229
- "allowNo": false,
6230
- "type": "boolean"
6231
- },
6232
- "quiet": {
6233
- "char": "q",
6234
- "description": "Minimal output",
6235
- "name": "quiet",
6236
- "allowNo": false,
6237
- "type": "boolean"
6238
- }
6239
- },
6240
- "hasDynamicHelp": false,
6241
- "hiddenAliases": [],
6242
- "id": "enterprise:webhooks:test",
6243
- "pluginAlias": "@sendly/cli",
6244
- "pluginName": "@sendly/cli",
6245
- "pluginType": "core",
6246
- "strict": true,
6247
- "isESM": true,
6248
- "relativePath": [
6249
- "dist",
6250
- "commands",
6251
- "enterprise",
6252
- "webhooks",
6253
- "test.js"
6254
- ]
6255
6999
  }
6256
7000
  },
6257
- "version": "3.23.0"
7001
+ "version": "3.27.1"
6258
7002
  }