@go-labs-sg/bb 3.0.0 → 3.2.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.
@@ -396,7 +396,7 @@ Effects: state-change, email.
396
396
 
397
397
  ## `bb bill create`
398
398
 
399
- Create a bill or claim with an approved supplier. All amount fields exclude GST: amount is the portion billed; extractedAmount is the full invoice subtotal; lineAmounts and quotationAllocations also exclude GST. Example: 1800 + 162 GST = 1962 total requires amount=1800 and extractedAmount=1800 for a full bill. The CLI does not strip GST from input. --draft-only guarantees DRAFT without email or external writes; otherwise unpaid creation skips email permission but keeps external-write permission.
399
+ Create a bill or claim with an approved supplier. All amount fields exclude GST: amount is the portion billed; extractedAmount is the full invoice subtotal; lineAmounts and quotationAllocations also exclude GST. Example: 1800 + 162 GST = 1962 total requires amount=1800 and extractedAmount=1800 for a full bill. The CLI does not strip GST from input. If the selected quotations cannot split the bill amount across every selected line (a line without a quoted amount that cannot be derived from the quotation total), pass lineAmounts; updates that keep the same amount and lines reuse the existing line amounts. --draft-only guarantees DRAFT without email or external writes; otherwise unpaid creation skips email permission but keeps external-write permission.
400
400
 
401
401
  Legacy aliases: `create-bill`, `create_bill`.
402
402
 
@@ -409,7 +409,7 @@ Payload fields (--payload JSON)
409
409
 
410
410
  ## `bb bill selection validate`
411
411
 
412
- Validate the approved supplier and selected bill line items.
412
+ Validate the approved supplier and selected bill line items. Supplier bills need approved quotation sources (quotationIds, legacy quotationId, or quotationAllocations with lineAmounts) for every line that is not quotation-exempt (Go Internal lines, or projects/budgets created before the quotation cutoff). With billId, lines already on the bill keep their stored sources unless new sources are supplied. Exemption is decided by the server, so there is no --quotation-exempt flag here. Amounts (amount, lineAmounts, quotationAllocations) are ex-GST dollars with at most 2 decimal places.
413
413
 
414
414
  Legacy aliases: `validate-bill-selection`, `validate_bill_selection`.
415
415
 
@@ -435,7 +435,7 @@ Payload fields (--payload JSON)
435
435
 
436
436
  ## `bb bill update`
437
437
 
438
- Update a bill or claim with a partial payload including id; omitted fields are preserved. Comment-only updates are allowed on approved/paid bills without altering financial data or QuickBooks. All amount fields exclude GST: amount is the portion billed; extractedAmount is the full invoice subtotal; lineAmounts and quotationAllocations also exclude GST. Example: 1800 + 162 GST = 1962 total requires amount=1800 and extractedAmount=1800 for a full bill. The CLI does not strip GST from input. Re-read and verify both amount fields and allocations after correcting a gross/net mistake.
438
+ Update a bill or claim with a partial payload including id; omitted fields are preserved. Comment-only updates are allowed on approved/paid bills without altering financial data or QuickBooks. All amount fields exclude GST: amount is the portion billed; extractedAmount is the full invoice subtotal; lineAmounts and quotationAllocations also exclude GST. Example: 1800 + 162 GST = 1962 total requires amount=1800 and extractedAmount=1800 for a full bill. The CLI does not strip GST from input. If the selected quotations cannot split the bill amount across every selected line (a line without a quoted amount that cannot be derived from the quotation total), pass lineAmounts; updates that keep the same amount and lines reuse the existing line amounts. Re-read and verify both amount fields and allocations after correcting a gross/net mistake.
439
439
 
440
440
  Legacy aliases: `update-bill`, `update_bill`.
441
441
 
@@ -557,12 +557,36 @@ Effects: state-change.
557
557
 
558
558
  ## `bb bill get`
559
559
 
560
- 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>.
561
561
 
562
562
  Legacy aliases: `get-bill-details`, `get_bill_details`.
563
563
 
564
564
  Effects: none.
565
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
+
566
590
  ## `bb quotation list`
567
591
 
568
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.
@@ -581,12 +605,20 @@ Effects: none.
581
605
 
582
606
  ## `bb quotation get`
583
607
 
584
- 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>.
585
609
 
586
610
  Legacy aliases: `get-quotation`, `get_quotation`.
587
611
 
588
612
  Effects: none.
589
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
+
590
622
  ## `bb quotation attachment upload`
591
623
 
592
624
  Upload Quotation Attachment.
@@ -719,12 +751,44 @@ Effects: none.
719
751
 
720
752
  ## `bb customer-invoice get`
721
753
 
722
- 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>.
723
755
 
724
756
  Legacy aliases: `get-customer-invoice`, `get_customer_invoice`.
725
757
 
726
758
  Effects: none.
727
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
+
728
792
  ## `bb customer-invoice email-context get`
729
793
 
730
794
  Get customer invoice email context.
@@ -1054,7 +1118,7 @@ Effects: state-change, external-write.
1054
1118
 
1055
1119
  Payload fields (--payload JSON)
1056
1120
  Required: id: string; name: string; companyId: string; contactPersonId: string; asanaTaskId: string; insideSalesId: string; businessDevelopmentId: string; venue: string; dateRange: {from: ISO date}
1057
- 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.
1058
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"}}'
1059
1123
 
1060
1124
  ## `bb project delete`
@@ -1471,6 +1535,14 @@ Legacy aliases: `count-errors`, `count_errors`.
1471
1535
 
1472
1536
  Effects: none.
1473
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
+
1474
1546
  ## `bb error metrics get`
1475
1547
 
1476
1548
  Get error metrics.
@@ -1489,7 +1561,7 @@ Effects: none.
1489
1561
 
1490
1562
  ## `bb integration operation count`
1491
1563
 
1492
- Count integration operations matching filters: { totalCount, filterOptions }. Admin only.
1564
+ Provider filter options for integration operations: { filterOptions }. No total; filter flags are accepted but do not change the result. Admin only.
1493
1565
 
1494
1566
  Legacy aliases: `count-integration-operations`, `count_integration_operations`.
1495
1567
 
@@ -1585,7 +1657,7 @@ Effects: state-change.
1585
1657
 
1586
1658
  ## `bb webhook delivery list`
1587
1659
 
1588
- List webhook deliveries.
1660
+ Admin-only: list webhook deliveries newest first. Returns { items, pageInfo }; follow pageInfo.nextCursor (or previousCursor with --direction backward). Cursors are opaque and filter-bound; raw delivery ids are rejected.
1589
1661
 
1590
1662
  Legacy aliases: `list-webhook-deliveries`, `list_webhook_deliveries`.
1591
1663