@go-labs-sg/bb 2.48.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -51,12 +51,20 @@ Effects: none.
51
51
 
52
52
  ## `bb budget list`
53
53
 
54
- List budgets. Omit --active for active budgets only; use --active false or --active all for Admin-only historical reads.
54
+ List one cursor page of budgets ({ items, pageInfo }; --limit/--cursor/--direction). Omit --active for active budgets only; use --active false or --active all for Admin-only historical reads.
55
55
 
56
56
  Legacy aliases: `list-budgets`, `list_budgets`.
57
57
 
58
58
  Effects: none.
59
59
 
60
+ ## `bb budget count`
61
+
62
+ Count budgets matching filters: totalCount plus status and active facets. Omit --active for active budgets only.
63
+
64
+ Legacy aliases: `count-budgets`, `count_budgets`.
65
+
66
+ Effects: none.
67
+
60
68
  ## `bb budget get`
61
69
 
62
70
  Get a budget by ID. Omit --includeInactive for active budgets only; --includeInactive is an Admin-only historical read.
@@ -99,7 +107,7 @@ Effects: none.
99
107
 
100
108
  ## `bb budget category list`
101
109
 
102
- Get budget categories.
110
+ List budget categories with cursor pagination. [--q] [--limit 1-100] [--cursor <token>] Active categories, name A–Z. Returns { items, pageInfo }; follow nextCursor with the same --q.
103
111
 
104
112
  Legacy aliases: `get-budget-categories`, `get_budget_categories`.
105
113
 
@@ -131,7 +139,7 @@ Effects: state-change, delete, external-write, financial-write.
131
139
 
132
140
  ## `bb budget status update`
133
141
 
134
- Update Budget Status.
142
+ Update budget status. APPROVED requires a current Lead/Admin role; budget management permission alone is insufficient. Ordinary users must request approval. Status changes invalidate old pending requests.
135
143
 
136
144
  Legacy aliases: `update-budget-status`, `update_budget_status`.
137
145
 
@@ -139,7 +147,7 @@ Effects: state-change, external-write, financial-write.
139
147
 
140
148
  ## `bb budget approval create`
141
149
 
142
- Create Budget Approval.
150
+ Request budget approval for the current content, superseding older pending requests. Existing Lead/Admin autoapproval remains available.
143
151
 
144
152
  Legacy aliases: `create-budget-approval`, `create_budget_approval`.
145
153
 
@@ -250,7 +258,7 @@ Effects: state-change.
250
258
 
251
259
  ## `bb budget item supplier update`
252
260
 
253
- Update Budget Item Supplier.
261
+ Change a budget item's eligible supplier/GST snapshot as a material financial edit. Supersede pending approvals and apply the standard budget-to-DRAFT reset policy; inspect and request approval again. An unchanged supplier is a no-op.
254
262
 
255
263
  Legacy aliases: `update-budget-item-supplier`, `update_budget_item_supplier`.
256
264
 
@@ -348,7 +356,7 @@ Effects: state-change, external-write, financial-write.
348
356
 
349
357
  ## `bb bill list`
350
358
 
351
- List bills.
359
+ List bills with cursor pagination. [--projectId] [--budgetId] [--status CSV] [--search <text>] [--isClaimable true|false] [--createdByIds <csv>] [--sortBy createdAt|amount|status] [--sortDir asc|desc] [--limit 1-100] [--cursor <token>] [--direction forward|backward] Returns { items, pageInfo }; pass nextCursor with --direction forward or previousCursor with --direction backward, keeping the same filters and sort. --page/--pageSize/--perPage are rejected.
352
360
 
353
361
  Legacy aliases: `list-bills`, `list_bills`.
354
362
 
@@ -356,12 +364,28 @@ Effects: none.
356
364
 
357
365
  ## `bb claim list`
358
366
 
359
- List claims.
367
+ List reimbursable claims with cursor pagination. Same flags as list-bills (--limit 1-100, --cursor, --direction forward|backward); ignores --isClaimable. Returns { items, pageInfo }.
360
368
 
361
369
  Legacy aliases: `list-claims`, `list_claims`.
362
370
 
363
371
  Effects: none.
364
372
 
373
+ ## `bb bill count`
374
+
375
+ Count Bills.
376
+
377
+ Legacy aliases: `count-bills`, `count_bills`.
378
+
379
+ Effects: none.
380
+
381
+ ## `bb claim count`
382
+
383
+ Count Claims.
384
+
385
+ Legacy aliases: `count-claims`, `count_claims`.
386
+
387
+ Effects: none.
388
+
365
389
  ## `bb bill approval create`
366
390
 
367
391
  Create Bill Approval.
@@ -485,7 +509,7 @@ Effects: state-change.
485
509
 
486
510
  ## `bb bill attachment list`
487
511
 
488
- Get bill attachments.
512
+ List bill attachments with cursor pagination. <billId> [--limit 1-50] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
489
513
 
490
514
  Legacy aliases: `get-bill-attachments`, `get_bill_attachments`.
491
515
 
@@ -533,28 +557,68 @@ Effects: state-change.
533
557
 
534
558
  ## `bb bill get`
535
559
 
536
- Get bill details.
560
+ Get a bill's summary as shown in the web app: status, amounts, people, payment and line totals. Use get-bill-line-items, get-bill-approvals, get-bill-attachments or get-bill-payment for more detail. Argument: <billId>.
537
561
 
538
562
  Legacy aliases: `get-bill-details`, `get_bill_details`.
539
563
 
540
564
  Effects: none.
541
565
 
566
+ ## `bb bill line-item list`
567
+
568
+ List a bill's line items with budget-item and quotation-allocation detail. <billId> [--limit 1-100] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
569
+
570
+ Legacy aliases: `get-bill-line-items`, `get_bill_line_items`.
571
+
572
+ Effects: none.
573
+
574
+ ## `bb bill approval list`
575
+
576
+ List a bill's approval requests with approver, requester and responder. <billId> [--limit 1-50] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
577
+
578
+ Legacy aliases: `get-bill-approvals`, `get_bill_approvals`.
579
+
580
+ Effects: none.
581
+
582
+ ## `bb bill payment get`
583
+
584
+ Get a bill's payment status, reference, date, tracking URL, QuickBooks link and external payment. Argument: <billId>.
585
+
586
+ Legacy aliases: `get-bill-payment`, `get_bill_payment`.
587
+
588
+ Effects: none.
589
+
542
590
  ## `bb quotation list`
543
591
 
544
- List quotations.
592
+ List quotations with cursor pagination. [--projectId] [--budgetId] [--supplierId] [--status CSV] [--createdBy CSV] [--search] [--limit 1-100] [--cursor <token>] [--direction forward|backward] Newest first; returns { items, pageInfo }. Follow nextCursor/previousCursor with the same filters. --page/--pageSize/--perPage are rejected; --requesterIds remains an alias for --createdBy.
545
593
 
546
594
  Legacy aliases: `list-quotations`, `list_quotations`.
547
595
 
548
596
  Effects: none.
549
597
 
598
+ ## `bb quotation count`
599
+
600
+ Count Quotations.
601
+
602
+ Legacy aliases: `count-quotations`, `count_quotations`.
603
+
604
+ Effects: none.
605
+
550
606
  ## `bb quotation get`
551
607
 
552
- Get quotation.
608
+ Get a quotation as shown in the web app: status, amounts, people, line totals, files and approvals. Use get-quotation-line-items for budget-item detail. Argument: <quotationId>.
553
609
 
554
610
  Legacy aliases: `get-quotation`, `get_quotation`.
555
611
 
556
612
  Effects: none.
557
613
 
614
+ ## `bb quotation line-item list`
615
+
616
+ List a quotation's line items with budget-item, supplier and budget detail. <quotationId> [--limit 1-100] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
617
+
618
+ Legacy aliases: `get-quotation-line-items`, `get_quotation_line_items`.
619
+
620
+ Effects: none.
621
+
558
622
  ## `bb quotation attachment upload`
559
623
 
560
624
  Upload Quotation Attachment.
@@ -565,7 +629,7 @@ Effects: state-change.
565
629
 
566
630
  ## `bb quotation attachment staged cleanup`
567
631
 
568
- Cleanup Staged Quotation Attachments.
632
+ Queue independent cleanup operations for unattached staged quotation uploads; returns operation IDs and queued/skipped counts, not deletion confirmation. Arguments: <projectId> --keys <csv>.
569
633
 
570
634
  Legacy aliases: `cleanup-staged-quotation-attachments`, `cleanup_staged_quotation_attachments`.
571
635
 
@@ -607,7 +671,7 @@ Effects: state-change, delete.
607
671
 
608
672
  ## `bb quotation submit`
609
673
 
610
- Submit Quotation.
674
+ Submit a quotation for signing and approval. Claim the captured revision and exact allocation selection; concurrent edits, budget-item deletion or restore cascades conflict instead of attaching old signed PDFs. Refresh and resubmit the current content.
611
675
 
612
676
  Legacy aliases: `submit-quotation`, `submit_quotation`.
613
677
 
@@ -615,7 +679,7 @@ Effects: state-change.
615
679
 
616
680
  ## `bb quotation approve`
617
681
 
618
- Approve Quotation.
682
+ Approve your assigned pending quotation as a current Admin. Claim the captured revision and exact allocation selection after signing; concurrent changes conflict and roll back the decision, signed attachment and email/outbox. Refresh and review the current content before retrying.
619
683
 
620
684
  Legacy aliases: `approve-quotation`, `approve_quotation`.
621
685
 
@@ -671,20 +735,60 @@ Effects: none.
671
735
 
672
736
  ## `bb customer-invoice list`
673
737
 
674
- List customer invoices.
738
+ List customer invoice batches with cursor pagination. [budgetId] [--projectId <id>] [--companyIds CSV] [--projectIds CSV] [--budgetIds CSV] [--createdByIds CSV] [--status CSV] [--search] [--sortBy createdAt|status|totalInvoiceAmount|approvalExpiresAt] [--sortDir asc|desc] [--limit 1-100] [--cursor <token>] [--direction forward|backward] Returns { items, pageInfo }; follow nextCursor/previousCursor with the same filters and sort. --page/--perPage are rejected. No scope flag lists invoices globally. --projectId uses the project scope. A positional budgetId is a backward-compatible shortcut for --budgetIds.
675
739
 
676
740
  Legacy aliases: `list-customer-invoices`, `list_customer_invoices`.
677
741
 
678
742
  Effects: none.
679
743
 
744
+ ## `bb customer-invoice count`
745
+
746
+ Count Customer Invoices.
747
+
748
+ Legacy aliases: `count-customer-invoices`, `count_customer_invoices`.
749
+
750
+ Effects: none.
751
+
680
752
  ## `bb customer-invoice get`
681
753
 
682
- Get customer invoice.
754
+ Get an invoice batch as shown in the web app: status, totals, people, approvals and invoice summaries. Use get-customer-invoice-invoices, get-customer-invoice-lines, get-customer-invoice-approvals or get-customer-invoice-history for more detail. Argument: <batchId>.
683
755
 
684
756
  Legacy aliases: `get-customer-invoice`, `get_customer_invoice`.
685
757
 
686
758
  Effects: none.
687
759
 
760
+ ## `bb customer-invoice invoice list`
761
+
762
+ List a batch's invoices with QuickBooks id/doc number, issue/due dates, amounts, sync state and sender. Argument: <batchId>.
763
+
764
+ Legacy aliases: `get-customer-invoice-invoices`, `get_customer_invoice_invoices`.
765
+
766
+ Effects: none.
767
+
768
+ ## `bb customer-invoice line list`
769
+
770
+ List one invoice's lines (name, description, QuickBooks item/tax code, quantity, amounts). <invoiceId> [--limit 1-100] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
771
+
772
+ Legacy aliases: `get-customer-invoice-lines`, `get_customer_invoice_lines`.
773
+
774
+ Effects: none.
775
+
776
+ ## `bb customer-invoice approval list`
777
+
778
+ List an invoice batch's approval requests with approver, requester and responder. <batchId> [--limit 1-50] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
779
+
780
+ Legacy aliases: `get-customer-invoice-approvals`, `get_customer_invoice_approvals`.
781
+
782
+ Effects: none.
783
+
784
+ ## `bb customer-invoice history list`
785
+
786
+ List an invoice batch's status history (batch/invoice status changes, source, note, actor). <batchId> [--limit 1-100] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.
787
+
788
+ Legacy aliases: `get-customer-invoice-history`, `get_customer_invoice_history`.
789
+
790
+ Effects: none.
791
+
688
792
  ## `bb customer-invoice email-context get`
689
793
 
690
794
  Get customer invoice email context.
@@ -817,7 +921,7 @@ Effects: state-change, email.
817
921
 
818
922
  ## `bb budget approve`
819
923
 
820
- Approve Budget.
924
+ Decide your assigned pending budget approval as a current Lead/Admin. Material edits supersede old requests; inspect the latest content and use a fresh request after edits.
821
925
 
822
926
  Legacy aliases: `approve-budget`, `approve_budget`.
823
927
 
@@ -825,7 +929,7 @@ Effects: state-change, email.
825
929
 
826
930
  ## `bb budget reject`
827
931
 
828
- Reject Budget.
932
+ Decide your assigned pending budget approval as a current Lead/Admin. Material edits supersede old requests; inspect the latest content and use a fresh request after edits.
829
933
 
830
934
  Legacy aliases: `reject-budget`, `reject_budget`.
831
935
 
@@ -857,12 +961,20 @@ Effects: none.
857
961
 
858
962
  ## `bb company list`
859
963
 
860
- List companies.
964
+ List companies with cursor pagination. Returns { items, pageInfo }; default sort is createdAt descending with limit 20. Pass nextCursor forward or previousCursor backward unchanged. Legacy page/perPage flags are rejected.
861
965
 
862
966
  Legacy aliases: `list-companies`, `list_companies`.
863
967
 
864
968
  Effects: none.
865
969
 
970
+ ## `bb company count`
971
+
972
+ Count companies independently from list pagination. Returns { totalCount, counts: { active: { true, false } } }; accepts filters only and rejects pagination/sorting flags.
973
+
974
+ Legacy aliases: `count-companies`, `count_companies`.
975
+
976
+ Effects: none.
977
+
866
978
  ## `bb company get`
867
979
 
868
980
  Get company.
@@ -873,7 +985,7 @@ Effects: none.
873
985
 
874
986
  ## `bb company search`
875
987
 
876
- Search BB and QuickBooks companies without writes. --query <name> [--page <number>].
988
+ Search BB and QuickBooks companies without writes. --query <name> [--limit 1-50] [--cursor <token>]. Returns { items, totalCount, pageInfo }; follow pageInfo.nextCursor with the same --query. Legacy --page is rejected.
877
989
 
878
990
  Legacy aliases: `search-existing-companies`, `search_existing_companies`.
879
991
 
@@ -897,7 +1009,7 @@ Effects: state-change, external-write.
897
1009
 
898
1010
  ## `bb company update`
899
1011
 
900
- Update Company.
1012
+ Save company fields in BB and queue independent QuickBooks name/website synchronization; returns operation ID, not provider completion.
901
1013
 
902
1014
  Legacy aliases: `update-company`, `update_company`.
903
1015
 
@@ -908,6 +1020,14 @@ Payload fields (--payload JSON)
908
1020
  Optional: confirmDistinct: boolean
909
1021
  Example: bb update-company --payload '{"id":"<company-id>","name":"Example Co","website":"https://example.com"}'
910
1022
 
1023
+ ## `bb company sync status`
1024
+
1025
+ Read saved company synchronization status without provider calls or polling; use companyId.
1026
+
1027
+ Legacy aliases: `get-company-quickbooks-sync-status`, `get_company_quickbooks_sync_status`.
1028
+
1029
+ Effects: none.
1030
+
911
1031
  ## `bb company delete`
912
1032
 
913
1033
  Delete Company.
@@ -918,12 +1038,20 @@ Effects: state-change, delete, external-write.
918
1038
 
919
1039
  ## `bb project list`
920
1040
 
921
- List projects.
1041
+ List projects with cursor pagination. Returns { items, pageInfo }; default sort is createdAt descending with limit 20. Supports legacy --status plus optional --statuses, WON-date filters (--wonFrom, --wonTo, --wonWithinDays) and --sortBy wonAt; pass nextCursor forward or previousCursor backward unchanged. Legacy page/perPage flags are rejected.
922
1042
 
923
1043
  Legacy aliases: `list-projects`, `list_projects`.
924
1044
 
925
1045
  Effects: none.
926
1046
 
1047
+ ## `bb project count`
1048
+
1049
+ Count projects independently from list pagination. Returns { totalCount, counts: { status, active: { true, false } } }; accepts project filters only and rejects pagination/sorting flags.
1050
+
1051
+ Legacy aliases: `count-projects`, `count_projects`.
1052
+
1053
+ Effects: none.
1054
+
927
1055
  ## `bb project hub list`
928
1056
 
929
1057
  List project hubs.
@@ -932,6 +1060,14 @@ Legacy aliases: `list-project-hubs`, `list_project_hubs`.
932
1060
 
933
1061
  Effects: none.
934
1062
 
1063
+ ## `bb project hub count`
1064
+
1065
+ Count Project Hubs.
1066
+
1067
+ Legacy aliases: `count-project-hubs`, `count_project_hubs`.
1068
+
1069
+ Effects: none.
1070
+
935
1071
  ## `bb project get`
936
1072
 
937
1073
  Get project.
@@ -982,7 +1118,7 @@ Effects: state-change, external-write.
982
1118
 
983
1119
  Payload fields (--payload JSON)
984
1120
  Required: id: string; name: string; companyId: string; contactPersonId: string; asanaTaskId: string; insideSalesId: string; businessDevelopmentId: string; venue: string; dateRange: {from: ISO date}
985
- Optional: dateRange.to: ISO date; projectManagerId: string; pax: string; description: string; slackChannelId/slackChannelUrl/slackChannelName: strings (supply all three); requestQboAccountantNotification: boolean; confirmEstimateInvalidation: boolean
1121
+ Optional: dateRange.to: ISO date; projectManagerId: string; pax: string; description: string; slackChannelId/slackChannelUrl/slackChannelName: strings (supply all three); requestQboAccountantNotification: boolean; confirmEstimateInvalidation: boolean. Changing companyId requires a contactPersonId from the new company; the company change itself does not reject existing estimates or touch existing invoices, but date, pax or venue changes in the same save still require confirmEstimateInvalidation.
986
1122
  Example: bb update-project --payload '{"id":"<project-id>","name":"Launch","companyId":"<company-id>","contactPersonId":"<contact-id>","asanaTaskId":"<asana-task-id>","insideSalesId":"<user-id>","businessDevelopmentId":"<user-id>","venue":"Hall","dateRange":{"from":"2026-10-01T09:00:00Z"}}'
987
1123
 
988
1124
  ## `bb project delete`
@@ -1075,9 +1211,17 @@ Legacy aliases: `list-suppliers`, `list_suppliers`.
1075
1211
 
1076
1212
  Effects: none.
1077
1213
 
1214
+ ## `bb supplier count`
1215
+
1216
+ Count Suppliers.
1217
+
1218
+ Legacy aliases: `count-suppliers`, `count_suppliers`.
1219
+
1220
+ Effects: none.
1221
+
1078
1222
  ## `bb supplier create`
1079
1223
 
1080
- Create Supplier.
1224
+ Create a supplier using --payload JSON; pending-approval suppliers also request approval and send emails. Reusing an archived name requires Admin; normal users and Leads must ask an Admin to reactivate it before editing. Recreation preserves the existing approval status and creator.
1081
1225
 
1082
1226
  Legacy aliases: `create-supplier`, `create_supplier`.
1083
1227
 
@@ -1151,20 +1295,36 @@ Effects: state-change.
1151
1295
 
1152
1296
  ## `bb supplier analytics get`
1153
1297
 
1154
- Get supplier analytics.
1298
+ List supplier analytics rows with cursor pagination. [--name] [--status CSV] [--gstRegistered true|false] [--createdBy <text>] [--timeFrame ALL|LAST_YEAR|LAST_6_MONTHS|LAST_3_MONTHS|CUSTOM] [--startDate <ISO> --endDate <ISO>] [--sortBy name|gstRegistered|status|phone|email|updatedAt|createdAt] [--sortDir asc|desc] [--limit 1-100] [--cursor <token>] [--direction forward|backward] Admin. Returns { items, pageInfo }; follow nextCursor/previousCursor with the same filters and sort. --page/--perPage are rejected.
1155
1299
 
1156
1300
  Legacy aliases: `get-supplier-analytics`, `get_supplier_analytics`.
1157
1301
 
1158
1302
  Effects: none.
1159
1303
 
1304
+ ## `bb supplier analytics count`
1305
+
1306
+ Count Supplier Analytics.
1307
+
1308
+ Legacy aliases: `count-supplier-analytics`, `count_supplier_analytics`.
1309
+
1310
+ Effects: none.
1311
+
1160
1312
  ## `bb item list`
1161
1313
 
1162
- List items.
1314
+ List one cursor page of catalogue items ({ items, pageInfo }; --limit/--cursor/--direction, optional --sortBy/--sortDir). --page/--perPage are rejected.
1163
1315
 
1164
1316
  Legacy aliases: `list-items`, `list_items`.
1165
1317
 
1166
1318
  Effects: none.
1167
1319
 
1320
+ ## `bb item count`
1321
+
1322
+ Count catalogue items matching filters: total plus category and supplier facets (each ignores its own filter).
1323
+
1324
+ Legacy aliases: `count-items`, `count_items`.
1325
+
1326
+ Effects: none.
1327
+
1168
1328
  ## `bb item get`
1169
1329
 
1170
1330
  Get item.
@@ -1173,6 +1333,14 @@ Legacy aliases: `get-item`, `get_item`.
1173
1333
 
1174
1334
  Effects: none.
1175
1335
 
1336
+ ## `bb item sync status`
1337
+
1338
+ Read saved item QuickBooks synchronization status without provider calls or polling; use itemId.
1339
+
1340
+ Legacy aliases: `get-item-quickbooks-sync-status`, `get_item_quickbooks_sync_status`.
1341
+
1342
+ Effects: none.
1343
+
1176
1344
  ## `bb item create`
1177
1345
 
1178
1346
  Create Item.
@@ -1217,12 +1385,20 @@ Effects: state-change, delete, external-write.
1217
1385
 
1218
1386
  ## `bb item category list`
1219
1387
 
1220
- List item categories.
1388
+ List one cursor page of active item categories ({ items, pageInfo }; --limit/--cursor/--direction, optional --name/--sortBy/--sortDir). --page/--perPage are rejected.
1221
1389
 
1222
1390
  Legacy aliases: `list-item-categories`, `list_item_categories`.
1223
1391
 
1224
1392
  Effects: none.
1225
1393
 
1394
+ ## `bb item category count`
1395
+
1396
+ Count active item categories matching --name: { totalCount }.
1397
+
1398
+ Legacy aliases: `count-item-categories`, `count_item_categories`.
1399
+
1400
+ Effects: none.
1401
+
1226
1402
  ## `bb item category create`
1227
1403
 
1228
1404
  Create Item Category.
@@ -1249,12 +1425,20 @@ Effects: state-change, delete.
1249
1425
 
1250
1426
  ## `bb user list`
1251
1427
 
1252
- List users.
1428
+ List users with cursor pagination. [--q] [--limit 1-100] [--cursor <token>] Name A–Z. Returns { items, pageInfo }; follow nextCursor with the same --q. --page/--perPage are rejected.
1253
1429
 
1254
1430
  Legacy aliases: `list-users`, `list_users`.
1255
1431
 
1256
1432
  Effects: none.
1257
1433
 
1434
+ ## `bb user count`
1435
+
1436
+ Count Users.
1437
+
1438
+ Legacy aliases: `count-users`, `count_users`.
1439
+
1440
+ Effects: none.
1441
+
1258
1442
  ## `bb user create`
1259
1443
 
1260
1444
  Create User.
@@ -1273,7 +1457,7 @@ Effects: state-change.
1273
1457
 
1274
1458
  ## `bb user api-key list`
1275
1459
 
1276
- List api keys.
1460
+ List API keys with cursor pagination. [--userId <userId>] [--limit 1-100] [--cursor <token>] (newest first, { items, pageInfo }; defaults to the caller; admin required for another user)
1277
1461
 
1278
1462
  Legacy aliases: `list-api-keys`, `list_api_keys`.
1279
1463
 
@@ -1343,6 +1527,22 @@ Legacy aliases: `get-recent-errors`, `get_recent_errors`.
1343
1527
 
1344
1528
  Effects: none.
1345
1529
 
1530
+ ## `bb error recent count`
1531
+
1532
+ Count Errors.
1533
+
1534
+ Legacy aliases: `count-errors`, `count_errors`.
1535
+
1536
+ Effects: none.
1537
+
1538
+ ## `bb error get`
1539
+
1540
+ Admin-only: one error log with full diagnostics (stack, cause, request details, metadata, AI summary, resolution). Argument: <errorId>. error recent list returns table columns only.
1541
+
1542
+ Legacy aliases: `get-error`, `get_error`.
1543
+
1544
+ Effects: none.
1545
+
1346
1546
  ## `bb error metrics get`
1347
1547
 
1348
1548
  Get error metrics.
@@ -1353,20 +1553,132 @@ Effects: none.
1353
1553
 
1354
1554
  ## `bb integration operation list`
1355
1555
 
1356
- List integration operations.
1556
+ List one cursor page of integration operations, newest first ({ items, pageInfo }; --limit/--cursor/--direction). --page/--perPage are rejected. Admin only.
1357
1557
 
1358
1558
  Legacy aliases: `list-integration-operations`, `list_integration_operations`.
1359
1559
 
1360
1560
  Effects: none.
1361
1561
 
1562
+ ## `bb integration operation count`
1563
+
1564
+ Provider filter options for integration operations: { filterOptions }. No total; filter flags are accepted but do not change the result. Admin only.
1565
+
1566
+ Legacy aliases: `count-integration-operations`, `count_integration_operations`.
1567
+
1568
+ Effects: none.
1569
+
1570
+ ## `bb integration operation get`
1571
+
1572
+ Admin-only read of one integration job: who queued it, the records it is for with app links, saved QuickBooks progress, admin actions and Retry state. No provider calls. Argument: <operationId>.
1573
+
1574
+ Legacy aliases: `get-integration-operation`, `get_integration_operation`.
1575
+
1576
+ Effects: none.
1577
+
1362
1578
  ## `bb integration operation retry`
1363
1579
 
1364
- Retry Integration Operation.
1580
+ Admin-only retry of a failed integration job. QuickBooks jobs with a saved attempt check QuickBooks first: applied changes finish without resending, provably unapplied ones are sent again, unprovable ones stay stopped with the reason. Argument: <operationId>.
1365
1581
 
1366
1582
  Legacy aliases: `retry-integration-operation`, `retry_integration_operation`.
1367
1583
 
1368
1584
  Effects: state-change, external-write.
1369
1585
 
1586
+ ## `bb integration operation reconcile-resource`
1587
+
1588
+ Admin-only check of a saved QuickBooks invoice/company/item job outcome; reads the provider only when uncertain. Applied changes are finished locally without repeating the provider mutation; provably unapplied ones are queued again. Argument: <operationId>.
1589
+
1590
+ Legacy aliases: `reconcile-resource-operation`, `reconcile_resource_operation`.
1591
+
1592
+ Effects: state-change.
1593
+
1594
+ ## `bb webhook event-type list`
1595
+
1596
+ List the outbound webhook event catalogue with group and live/planned status.
1597
+
1598
+ Legacy aliases: `list-webhook-event-types`, `list_webhook_event_types`.
1599
+
1600
+ Effects: none.
1601
+
1602
+ ## `bb webhook endpoint list`
1603
+
1604
+ List webhook endpoints.
1605
+
1606
+ Legacy aliases: `list-webhook-endpoints`, `list_webhook_endpoints`.
1607
+
1608
+ Effects: none.
1609
+
1610
+ ## `bb webhook endpoint get`
1611
+
1612
+ Get webhook endpoint.
1613
+
1614
+ Legacy aliases: `get-webhook-endpoint`, `get_webhook_endpoint`.
1615
+
1616
+ Effects: none.
1617
+
1618
+ ## `bb webhook endpoint create`
1619
+
1620
+ Admin-only: subscribe an HTTPS endpoint to BB events. --name --url --events <type|prefix.*|*,...>. Prints the whsec_ signing secret once; deliveries use Standard Webhooks headers.
1621
+
1622
+ Legacy aliases: `create-webhook-endpoint`, `create_webhook_endpoint`.
1623
+
1624
+ Effects: state-change.
1625
+
1626
+ ## `bb webhook endpoint update`
1627
+
1628
+ Update Webhook Endpoint.
1629
+
1630
+ Legacy aliases: `update-webhook-endpoint`, `update_webhook_endpoint`.
1631
+
1632
+ Effects: state-change.
1633
+
1634
+ ## `bb webhook endpoint delete`
1635
+
1636
+ Delete Webhook Endpoint.
1637
+
1638
+ Legacy aliases: `delete-webhook-endpoint`, `delete_webhook_endpoint`.
1639
+
1640
+ Effects: state-change, delete.
1641
+
1642
+ ## `bb webhook secret rotate`
1643
+
1644
+ Admin-only: issue a new signing secret; older secrets keep signing for --previousSecretTtlHours (default 24). Prints the new secret once. Argument: <endpointId>.
1645
+
1646
+ Legacy aliases: `rotate-webhook-secret`, `rotate_webhook_secret`.
1647
+
1648
+ Effects: state-change.
1649
+
1650
+ ## `bb webhook endpoint test`
1651
+
1652
+ Admin-only: send a signed webhook.test event to one endpoint. Argument: <endpointId>.
1653
+
1654
+ Legacy aliases: `send-webhook-test-event`, `send_webhook_test_event`.
1655
+
1656
+ Effects: state-change.
1657
+
1658
+ ## `bb webhook delivery list`
1659
+
1660
+ List webhook deliveries.
1661
+
1662
+ Legacy aliases: `list-webhook-deliveries`, `list_webhook_deliveries`.
1663
+
1664
+ Effects: none.
1665
+
1666
+ ## `bb webhook delivery get`
1667
+
1668
+ Admin-only: one webhook delivery with payload and attempts (status codes, errors, durations). Argument: <deliveryId>.
1669
+
1670
+ Legacy aliases: `get-webhook-delivery`, `get_webhook_delivery`.
1671
+
1672
+ Effects: none.
1673
+
1674
+ ## `bb webhook delivery replay`
1675
+
1676
+ Admin-only: resend a finished webhook delivery with the same eventId on a fresh attempt chain. Argument: <deliveryId>.
1677
+
1678
+ Legacy aliases: `replay-webhook-delivery`, `replay_webhook_delivery`.
1679
+
1680
+ Effects: state-change, external-write.
1681
+
1370
1682
  ## `bb inbound source list`
1371
1683
 
1372
1684
  List inbound sources.
@@ -1375,6 +1687,14 @@ Legacy aliases: `list-inbound-sources`, `list_inbound_sources`.
1375
1687
 
1376
1688
  Effects: none.
1377
1689
 
1690
+ ## `bb inbound source count`
1691
+
1692
+ Count Inbound Sources.
1693
+
1694
+ Legacy aliases: `count-inbound-sources`, `count_inbound_sources`.
1695
+
1696
+ Effects: none.
1697
+
1378
1698
  ## `bb inbound source create`
1379
1699
 
1380
1700
  Create Inbound Source.
@@ -1407,6 +1727,14 @@ Legacy aliases: `list-inbound-submissions`, `list_inbound_submissions`.
1407
1727
 
1408
1728
  Effects: none.
1409
1729
 
1730
+ ## `bb inbound submission count`
1731
+
1732
+ Count Inbound Submissions.
1733
+
1734
+ Legacy aliases: `count-inbound-submissions`, `count_inbound_submissions`.
1735
+
1736
+ Effects: none.
1737
+
1410
1738
  ## `bb inbound submission get`
1411
1739
 
1412
1740
  Get inbound submission.