@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.
@@ -199,7 +199,7 @@
199
199
  {
200
200
  "path": ["budget", "list"],
201
201
  "legacyAliases": ["list-budgets", "list_budgets"],
202
- "summary": "List budgets. Omit --active for active budgets only; use --active false or --active all for Admin-only historical reads.",
202
+ "summary": "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.",
203
203
  "globalOptions": [
204
204
  {
205
205
  "name": "--help",
@@ -244,12 +244,78 @@
244
244
  {
245
245
  "name": "--active <true|false|all>",
246
246
  "description": "Omit for active budgets only; false or all requires Admin access."
247
+ },
248
+ {
249
+ "name": "--limit <1-100>",
250
+ "description": "Rows per page. Output is { items, pageInfo }."
251
+ },
252
+ {
253
+ "name": "--cursor <token>",
254
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
255
+ },
256
+ {
257
+ "name": "--direction <forward|backward>",
258
+ "description": "forward (default) or backward; backward needs --cursor."
247
259
  }
248
260
  ],
249
261
  "argumentMode": "legacy-passthrough",
250
262
  "effects": [],
251
263
  "legacyTarget": "list-budgets"
252
264
  },
265
+ {
266
+ "path": ["budget", "count"],
267
+ "legacyAliases": ["count-budgets", "count_budgets"],
268
+ "summary": "Count budgets matching filters: totalCount plus status and active facets. Omit --active for active budgets only.",
269
+ "globalOptions": [
270
+ {
271
+ "name": "--help",
272
+ "description": "Show help for this command."
273
+ },
274
+ {
275
+ "name": "--quiet",
276
+ "description": "Suppress non-error diagnostics."
277
+ },
278
+ {
279
+ "name": "--debug",
280
+ "description": "Emit sanitized diagnostic traces."
281
+ },
282
+ {
283
+ "name": "--api-url",
284
+ "description": "Override the Budget Builder API base URL."
285
+ },
286
+ {
287
+ "name": "--no-browser",
288
+ "description": "Print the authorization URL without opening a browser."
289
+ },
290
+ {
291
+ "name": "--allow-state-change",
292
+ "description": "Allow a Budget Builder state change in non-interactive use."
293
+ },
294
+ {
295
+ "name": "--allow-email",
296
+ "description": "Allow sending email in non-interactive use."
297
+ },
298
+ {
299
+ "name": "--allow-external-write",
300
+ "description": "Allow writes to external systems in non-interactive use."
301
+ },
302
+ {
303
+ "name": "--allow-delete",
304
+ "description": "Allow deleting data in non-interactive use."
305
+ },
306
+ {
307
+ "name": "--allow-financial-write",
308
+ "description": "Allow financial-record changes in non-interactive use."
309
+ },
310
+ {
311
+ "name": "--active <true|false|all>",
312
+ "description": "Omit for active budgets only; false or all requires Admin access."
313
+ }
314
+ ],
315
+ "argumentMode": "legacy-passthrough",
316
+ "effects": [],
317
+ "legacyTarget": "count-budgets"
318
+ },
253
319
  {
254
320
  "path": ["budget", "get"],
255
321
  "legacyAliases": ["get-budget", "get_budget"],
@@ -515,7 +581,7 @@
515
581
  {
516
582
  "path": ["budget", "category", "list"],
517
583
  "legacyAliases": ["get-budget-categories", "get_budget_categories"],
518
- "summary": "Get budget categories.",
584
+ "summary": "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.",
519
585
  "globalOptions": [
520
586
  {
521
587
  "name": "--help",
@@ -556,6 +622,18 @@
556
622
  {
557
623
  "name": "--allow-financial-write",
558
624
  "description": "Allow financial-record changes in non-interactive use."
625
+ },
626
+ {
627
+ "name": "--q <text>",
628
+ "description": "Search active category names (name A–Z). A bare --q is rejected; use -q/--quiet to hide logs."
629
+ },
630
+ {
631
+ "name": "--limit <1-100>",
632
+ "description": "Rows per page. Output is { items, pageInfo }."
633
+ },
634
+ {
635
+ "name": "--cursor <token>",
636
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
559
637
  }
560
638
  ],
561
639
  "argumentMode": "legacy-passthrough",
@@ -727,7 +805,7 @@
727
805
  {
728
806
  "path": ["budget", "status", "update"],
729
807
  "legacyAliases": ["update-budget-status", "update_budget_status"],
730
- "summary": "Update Budget Status.",
808
+ "summary": "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.",
731
809
  "globalOptions": [
732
810
  {
733
811
  "name": "--help",
@@ -777,7 +855,7 @@
777
855
  {
778
856
  "path": ["budget", "approval", "create"],
779
857
  "legacyAliases": ["create-budget-approval", "create_budget_approval"],
780
- "summary": "Create Budget Approval.",
858
+ "summary": "Request budget approval for the current content, superseding older pending requests. Existing Lead/Admin autoapproval remains available.",
781
859
  "globalOptions": [
782
860
  {
783
861
  "name": "--help",
@@ -1412,7 +1490,7 @@
1412
1490
  "update-budget-item-supplier",
1413
1491
  "update_budget_item_supplier"
1414
1492
  ],
1415
- "summary": "Update Budget Item Supplier.",
1493
+ "summary": "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.",
1416
1494
  "globalOptions": [
1417
1495
  {
1418
1496
  "name": "--help",
@@ -1965,7 +2043,7 @@
1965
2043
  {
1966
2044
  "path": ["bill", "list"],
1967
2045
  "legacyAliases": ["list-bills", "list_bills"],
1968
- "summary": "List bills.",
2046
+ "summary": "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.",
1969
2047
  "globalOptions": [
1970
2048
  {
1971
2049
  "name": "--help",
@@ -2006,6 +2084,18 @@
2006
2084
  {
2007
2085
  "name": "--allow-financial-write",
2008
2086
  "description": "Allow financial-record changes in non-interactive use."
2087
+ },
2088
+ {
2089
+ "name": "--limit <1-100>",
2090
+ "description": "Rows per page. Output is { items, pageInfo }."
2091
+ },
2092
+ {
2093
+ "name": "--cursor <token>",
2094
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
2095
+ },
2096
+ {
2097
+ "name": "--direction <forward|backward>",
2098
+ "description": "forward (default) or backward; backward needs --cursor."
2009
2099
  }
2010
2100
  ],
2011
2101
  "argumentMode": "legacy-passthrough",
@@ -2015,7 +2105,7 @@
2015
2105
  {
2016
2106
  "path": ["claim", "list"],
2017
2107
  "legacyAliases": ["list-claims", "list_claims"],
2018
- "summary": "List claims.",
2108
+ "summary": "List reimbursable claims with cursor pagination. Same flags as list-bills (--limit 1-100, --cursor, --direction forward|backward); ignores --isClaimable. Returns { items, pageInfo }.",
2019
2109
  "globalOptions": [
2020
2110
  {
2021
2111
  "name": "--help",
@@ -2056,12 +2146,124 @@
2056
2146
  {
2057
2147
  "name": "--allow-financial-write",
2058
2148
  "description": "Allow financial-record changes in non-interactive use."
2149
+ },
2150
+ {
2151
+ "name": "--limit <1-100>",
2152
+ "description": "Rows per page. Output is { items, pageInfo }."
2153
+ },
2154
+ {
2155
+ "name": "--cursor <token>",
2156
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
2157
+ },
2158
+ {
2159
+ "name": "--direction <forward|backward>",
2160
+ "description": "forward (default) or backward; backward needs --cursor."
2059
2161
  }
2060
2162
  ],
2061
2163
  "argumentMode": "legacy-passthrough",
2062
2164
  "effects": [],
2063
2165
  "legacyTarget": "list-claims"
2064
2166
  },
2167
+ {
2168
+ "path": ["bill", "count"],
2169
+ "legacyAliases": ["count-bills", "count_bills"],
2170
+ "summary": "Count Bills.",
2171
+ "globalOptions": [
2172
+ {
2173
+ "name": "--help",
2174
+ "description": "Show help for this command."
2175
+ },
2176
+ {
2177
+ "name": "--quiet",
2178
+ "description": "Suppress non-error diagnostics."
2179
+ },
2180
+ {
2181
+ "name": "--debug",
2182
+ "description": "Emit sanitized diagnostic traces."
2183
+ },
2184
+ {
2185
+ "name": "--api-url",
2186
+ "description": "Override the Budget Builder API base URL."
2187
+ },
2188
+ {
2189
+ "name": "--no-browser",
2190
+ "description": "Print the authorization URL without opening a browser."
2191
+ },
2192
+ {
2193
+ "name": "--allow-state-change",
2194
+ "description": "Allow a Budget Builder state change in non-interactive use."
2195
+ },
2196
+ {
2197
+ "name": "--allow-email",
2198
+ "description": "Allow sending email in non-interactive use."
2199
+ },
2200
+ {
2201
+ "name": "--allow-external-write",
2202
+ "description": "Allow writes to external systems in non-interactive use."
2203
+ },
2204
+ {
2205
+ "name": "--allow-delete",
2206
+ "description": "Allow deleting data in non-interactive use."
2207
+ },
2208
+ {
2209
+ "name": "--allow-financial-write",
2210
+ "description": "Allow financial-record changes in non-interactive use."
2211
+ }
2212
+ ],
2213
+ "argumentMode": "legacy-passthrough",
2214
+ "effects": [],
2215
+ "legacyTarget": "count-bills"
2216
+ },
2217
+ {
2218
+ "path": ["claim", "count"],
2219
+ "legacyAliases": ["count-claims", "count_claims"],
2220
+ "summary": "Count Claims.",
2221
+ "globalOptions": [
2222
+ {
2223
+ "name": "--help",
2224
+ "description": "Show help for this command."
2225
+ },
2226
+ {
2227
+ "name": "--quiet",
2228
+ "description": "Suppress non-error diagnostics."
2229
+ },
2230
+ {
2231
+ "name": "--debug",
2232
+ "description": "Emit sanitized diagnostic traces."
2233
+ },
2234
+ {
2235
+ "name": "--api-url",
2236
+ "description": "Override the Budget Builder API base URL."
2237
+ },
2238
+ {
2239
+ "name": "--no-browser",
2240
+ "description": "Print the authorization URL without opening a browser."
2241
+ },
2242
+ {
2243
+ "name": "--allow-state-change",
2244
+ "description": "Allow a Budget Builder state change in non-interactive use."
2245
+ },
2246
+ {
2247
+ "name": "--allow-email",
2248
+ "description": "Allow sending email in non-interactive use."
2249
+ },
2250
+ {
2251
+ "name": "--allow-external-write",
2252
+ "description": "Allow writes to external systems in non-interactive use."
2253
+ },
2254
+ {
2255
+ "name": "--allow-delete",
2256
+ "description": "Allow deleting data in non-interactive use."
2257
+ },
2258
+ {
2259
+ "name": "--allow-financial-write",
2260
+ "description": "Allow financial-record changes in non-interactive use."
2261
+ }
2262
+ ],
2263
+ "argumentMode": "legacy-passthrough",
2264
+ "effects": [],
2265
+ "legacyTarget": "count-claims"
2266
+ },
2065
2267
  {
2066
2268
  "path": ["bill", "approval", "create"],
2067
2269
  "legacyAliases": ["create-bill-approval", "create_bill_approval"],
@@ -2698,7 +2900,7 @@
2698
2900
  {
2699
2901
  "path": ["bill", "attachment", "list"],
2700
2902
  "legacyAliases": ["get-bill-attachments", "get_bill_attachments"],
2701
- "summary": "Get bill attachments.",
2903
+ "summary": "List bill attachments with cursor pagination. <billId> [--limit 1-50] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.",
2702
2904
  "globalOptions": [
2703
2905
  {
2704
2906
  "name": "--help",
@@ -2739,6 +2941,14 @@
2739
2941
  {
2740
2942
  "name": "--allow-financial-write",
2741
2943
  "description": "Allow financial-record changes in non-interactive use."
2944
+ },
2945
+ {
2946
+ "name": "--limit <1-50>",
2947
+ "description": "Rows per page. Output is { items, pageInfo }."
2948
+ },
2949
+ {
2950
+ "name": "--cursor <token>",
2951
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
2742
2952
  }
2743
2953
  ],
2744
2954
  "argumentMode": "legacy-passthrough",
@@ -3009,7 +3219,7 @@
3009
3219
  {
3010
3220
  "path": ["bill", "get"],
3011
3221
  "legacyAliases": ["get-bill-details", "get_bill_details"],
3012
- "summary": "Get bill details.",
3222
+ "summary": "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>.",
3013
3223
  "globalOptions": [
3014
3224
  {
3015
3225
  "name": "--help",
@@ -3057,9 +3267,9 @@
3057
3267
  "legacyTarget": "get-bill-details"
3058
3268
  },
3059
3269
  {
3060
- "path": ["quotation", "list"],
3061
- "legacyAliases": ["list-quotations", "list_quotations"],
3062
- "summary": "List quotations.",
3270
+ "path": ["bill", "line-item", "list"],
3271
+ "legacyAliases": ["get-bill-line-items", "get_bill_line_items"],
3272
+ "summary": "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.",
3063
3273
  "globalOptions": [
3064
3274
  {
3065
3275
  "name": "--help",
@@ -3100,16 +3310,24 @@
3100
3310
  {
3101
3311
  "name": "--allow-financial-write",
3102
3312
  "description": "Allow financial-record changes in non-interactive use."
3313
+ },
3314
+ {
3315
+ "name": "--limit <1-100>",
3316
+ "description": "Rows per page. Output is { items, pageInfo }."
3317
+ },
3318
+ {
3319
+ "name": "--cursor <token>",
3320
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
3103
3321
  }
3104
3322
  ],
3105
3323
  "argumentMode": "legacy-passthrough",
3106
3324
  "effects": [],
3107
- "legacyTarget": "list-quotations"
3325
+ "legacyTarget": "get-bill-line-items"
3108
3326
  },
3109
3327
  {
3110
- "path": ["quotation", "get"],
3111
- "legacyAliases": ["get-quotation", "get_quotation"],
3112
- "summary": "Get quotation.",
3328
+ "path": ["bill", "approval", "list"],
3329
+ "legacyAliases": ["get-bill-approvals", "get_bill_approvals"],
3330
+ "summary": "List a bill's approval requests with approver, requester and responder. <billId> [--limit 1-50] [--cursor <token>] Newest first. Returns { items, pageInfo }; follow nextCursor.",
3113
3331
  "globalOptions": [
3114
3332
  {
3115
3333
  "name": "--help",
@@ -3150,19 +3368,24 @@
3150
3368
  {
3151
3369
  "name": "--allow-financial-write",
3152
3370
  "description": "Allow financial-record changes in non-interactive use."
3371
+ },
3372
+ {
3373
+ "name": "--limit <1-50>",
3374
+ "description": "Rows per page. Output is { items, pageInfo }."
3375
+ },
3376
+ {
3377
+ "name": "--cursor <token>",
3378
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
3153
3379
  }
3154
3380
  ],
3155
3381
  "argumentMode": "legacy-passthrough",
3156
3382
  "effects": [],
3157
- "legacyTarget": "get-quotation"
3383
+ "legacyTarget": "get-bill-approvals"
3158
3384
  },
3159
3385
  {
3160
- "path": ["quotation", "attachment", "upload"],
3161
- "legacyAliases": [
3162
- "upload-quotation-attachment",
3163
- "upload_quotation_attachment"
3164
- ],
3165
- "summary": "Upload Quotation Attachment.",
3386
+ "path": ["bill", "payment", "get"],
3387
+ "legacyAliases": ["get-bill-payment", "get_bill_payment"],
3388
+ "summary": "Get a bill's payment status, reference, date, tracking URL, QuickBooks link and external payment. Argument: <billId>.",
3166
3389
  "globalOptions": [
3167
3390
  {
3168
3391
  "name": "--help",
@@ -3206,16 +3429,13 @@
3206
3429
  }
3207
3430
  ],
3208
3431
  "argumentMode": "legacy-passthrough",
3209
- "effects": ["state-change"],
3210
- "legacyTarget": "upload-quotation-attachment"
3432
+ "effects": [],
3433
+ "legacyTarget": "get-bill-payment"
3211
3434
  },
3212
3435
  {
3213
- "path": ["quotation", "attachment", "staged", "cleanup"],
3214
- "legacyAliases": [
3215
- "cleanup-staged-quotation-attachments",
3216
- "cleanup_staged_quotation_attachments"
3217
- ],
3218
- "summary": "Cleanup Staged Quotation Attachments.",
3436
+ "path": ["quotation", "list"],
3437
+ "legacyAliases": ["list-quotations", "list_quotations"],
3438
+ "summary": "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.",
3219
3439
  "globalOptions": [
3220
3440
  {
3221
3441
  "name": "--help",
@@ -3256,16 +3476,28 @@
3256
3476
  {
3257
3477
  "name": "--allow-financial-write",
3258
3478
  "description": "Allow financial-record changes in non-interactive use."
3479
+ },
3480
+ {
3481
+ "name": "--limit <1-100>",
3482
+ "description": "Rows per page. Output is { items, pageInfo }."
3483
+ },
3484
+ {
3485
+ "name": "--cursor <token>",
3486
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
3487
+ },
3488
+ {
3489
+ "name": "--direction <forward|backward>",
3490
+ "description": "forward (default) or backward; backward needs --cursor."
3259
3491
  }
3260
3492
  ],
3261
3493
  "argumentMode": "legacy-passthrough",
3262
- "effects": ["state-change", "delete"],
3263
- "legacyTarget": "cleanup-staged-quotation-attachments"
3494
+ "effects": [],
3495
+ "legacyTarget": "list-quotations"
3264
3496
  },
3265
3497
  {
3266
- "path": ["quotation", "create"],
3267
- "legacyAliases": ["create-quotation", "create_quotation"],
3268
- "summary": "Create a quotation with an approved supplier using --payload JSON. Include projectId, budgetId, supplierId, budgetItemIds, amountWithoutGst, gstAmount, and one uploaded attachment in attachments. Multiple budget items require lineAmounts: [{\"budgetItemId\":\"<first-id>\",\"amount\":750},{\"budgetItemId\":\"<second-id>\",\"amount\":450}], covering every selected budget-item ID exactly once and summing to amountWithoutGst. Amounts exclude GST; use gstAmount: 0 for no GST. Example: amountWithoutGst: 1200 with line amounts 750 and 450.",
3498
+ "path": ["quotation", "count"],
3499
+ "legacyAliases": ["count-quotations", "count_quotations"],
3500
+ "summary": "Count Quotations.",
3269
3501
  "globalOptions": [
3270
3502
  {
3271
3503
  "name": "--help",
@@ -3306,21 +3538,16 @@
3306
3538
  {
3307
3539
  "name": "--allow-financial-write",
3308
3540
  "description": "Allow financial-record changes in non-interactive use."
3309
- },
3310
- {
3311
- "name": "--payload",
3312
- "description": "Quotation JSON including lineAmounts for multiple selected budget items; see the payload format above.",
3313
- "required": true
3314
3541
  }
3315
3542
  ],
3316
3543
  "argumentMode": "legacy-passthrough",
3317
- "effects": ["state-change"],
3318
- "legacyTarget": "create-quotation"
3544
+ "effects": [],
3545
+ "legacyTarget": "count-quotations"
3319
3546
  },
3320
3547
  {
3321
- "path": ["quotation", "update"],
3322
- "legacyAliases": ["update-quotation", "update_quotation"],
3323
- "summary": "Update a DRAFT or REJECTED quotation using --payload JSON with id and the complete creation payload. Multiple budget items require lineAmounts: [{\"budgetItemId\":\"<first-id>\",\"amount\":750},{\"budgetItemId\":\"<second-id>\",\"amount\":450}], covering every budgetItemIds entry exactly once and summing to amountWithoutGst. Amounts exclude GST; use gstAmount: 0 for no GST.",
3548
+ "path": ["quotation", "get"],
3549
+ "legacyAliases": ["get-quotation", "get_quotation"],
3550
+ "summary": "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>.",
3324
3551
  "globalOptions": [
3325
3552
  {
3326
3553
  "name": "--help",
@@ -3361,21 +3588,16 @@
3361
3588
  {
3362
3589
  "name": "--allow-financial-write",
3363
3590
  "description": "Allow financial-record changes in non-interactive use."
3364
- },
3365
- {
3366
- "name": "--payload",
3367
- "description": "Complete quotation JSON plus id, including lineAmounts for multiple selected budget items.",
3368
- "required": true
3369
3591
  }
3370
3592
  ],
3371
3593
  "argumentMode": "legacy-passthrough",
3372
- "effects": ["state-change"],
3373
- "legacyTarget": "update-quotation"
3594
+ "effects": [],
3595
+ "legacyTarget": "get-quotation"
3374
3596
  },
3375
3597
  {
3376
- "path": ["quotation", "delete"],
3377
- "legacyAliases": ["delete-quotation", "delete_quotation"],
3378
- "summary": "Delete Quotation.",
3598
+ "path": ["quotation", "line-item", "list"],
3599
+ "legacyAliases": ["get-quotation-line-items", "get_quotation_line_items"],
3600
+ "summary": "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.",
3379
3601
  "globalOptions": [
3380
3602
  {
3381
3603
  "name": "--help",
@@ -3416,16 +3638,27 @@
3416
3638
  {
3417
3639
  "name": "--allow-financial-write",
3418
3640
  "description": "Allow financial-record changes in non-interactive use."
3641
+ },
3642
+ {
3643
+ "name": "--limit <1-100>",
3644
+ "description": "Rows per page. Output is { items, pageInfo }."
3645
+ },
3646
+ {
3647
+ "name": "--cursor <token>",
3648
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
3419
3649
  }
3420
3650
  ],
3421
3651
  "argumentMode": "legacy-passthrough",
3422
- "effects": ["state-change", "delete"],
3423
- "legacyTarget": "delete-quotation"
3652
+ "effects": [],
3653
+ "legacyTarget": "get-quotation-line-items"
3424
3654
  },
3425
3655
  {
3426
- "path": ["quotation", "submit"],
3427
- "legacyAliases": ["submit-quotation", "submit_quotation"],
3428
- "summary": "Submit Quotation.",
3656
+ "path": ["quotation", "attachment", "upload"],
3657
+ "legacyAliases": [
3658
+ "upload-quotation-attachment",
3659
+ "upload_quotation_attachment"
3660
+ ],
3661
+ "summary": "Upload Quotation Attachment.",
3429
3662
  "globalOptions": [
3430
3663
  {
3431
3664
  "name": "--help",
@@ -3470,12 +3703,15 @@
3470
3703
  ],
3471
3704
  "argumentMode": "legacy-passthrough",
3472
3705
  "effects": ["state-change"],
3473
- "legacyTarget": "submit-quotation"
3706
+ "legacyTarget": "upload-quotation-attachment"
3474
3707
  },
3475
3708
  {
3476
- "path": ["quotation", "approve"],
3477
- "legacyAliases": ["approve-quotation", "approve_quotation"],
3478
- "summary": "Approve Quotation.",
3709
+ "path": ["quotation", "attachment", "staged", "cleanup"],
3710
+ "legacyAliases": [
3711
+ "cleanup-staged-quotation-attachments",
3712
+ "cleanup_staged_quotation_attachments"
3713
+ ],
3714
+ "summary": "Queue independent cleanup operations for unattached staged quotation uploads; returns operation IDs and queued/skipped counts, not deletion confirmation. Arguments: <projectId> --keys <csv>.",
3479
3715
  "globalOptions": [
3480
3716
  {
3481
3717
  "name": "--help",
@@ -3519,13 +3755,13 @@
3519
3755
  }
3520
3756
  ],
3521
3757
  "argumentMode": "legacy-passthrough",
3522
- "effects": ["state-change"],
3523
- "legacyTarget": "approve-quotation"
3758
+ "effects": ["state-change", "delete"],
3759
+ "legacyTarget": "cleanup-staged-quotation-attachments"
3524
3760
  },
3525
3761
  {
3526
- "path": ["quotation", "reject"],
3527
- "legacyAliases": ["reject-quotation", "reject_quotation"],
3528
- "summary": "Reject Quotation.",
3762
+ "path": ["quotation", "create"],
3763
+ "legacyAliases": ["create-quotation", "create_quotation"],
3764
+ "summary": "Create a quotation with an approved supplier using --payload JSON. Include projectId, budgetId, supplierId, budgetItemIds, amountWithoutGst, gstAmount, and one uploaded attachment in attachments. Multiple budget items require lineAmounts: [{\"budgetItemId\":\"<first-id>\",\"amount\":750},{\"budgetItemId\":\"<second-id>\",\"amount\":450}], covering every selected budget-item ID exactly once and summing to amountWithoutGst. Amounts exclude GST; use gstAmount: 0 for no GST. Example: amountWithoutGst: 1200 with line amounts 750 and 450.",
3529
3765
  "globalOptions": [
3530
3766
  {
3531
3767
  "name": "--help",
@@ -3566,16 +3802,21 @@
3566
3802
  {
3567
3803
  "name": "--allow-financial-write",
3568
3804
  "description": "Allow financial-record changes in non-interactive use."
3805
+ },
3806
+ {
3807
+ "name": "--payload",
3808
+ "description": "Quotation JSON including lineAmounts for multiple selected budget items; see the payload format above.",
3809
+ "required": true
3569
3810
  }
3570
3811
  ],
3571
3812
  "argumentMode": "legacy-passthrough",
3572
3813
  "effects": ["state-change"],
3573
- "legacyTarget": "reject-quotation"
3814
+ "legacyTarget": "create-quotation"
3574
3815
  },
3575
3816
  {
3576
- "path": ["quotation", "pdf", "download"],
3577
- "legacyAliases": ["download-quotation-pdf", "download_quotation_pdf"],
3578
- "summary": "Download Quotation Pdf.",
3817
+ "path": ["quotation", "update"],
3818
+ "legacyAliases": ["update-quotation", "update_quotation"],
3819
+ "summary": "Update a DRAFT or REJECTED quotation using --payload JSON with id and the complete creation payload. Multiple budget items require lineAmounts: [{\"budgetItemId\":\"<first-id>\",\"amount\":750},{\"budgetItemId\":\"<second-id>\",\"amount\":450}], covering every budgetItemIds entry exactly once and summing to amountWithoutGst. Amounts exclude GST; use gstAmount: 0 for no GST.",
3579
3820
  "globalOptions": [
3580
3821
  {
3581
3822
  "name": "--help",
@@ -3616,19 +3857,21 @@
3616
3857
  {
3617
3858
  "name": "--allow-financial-write",
3618
3859
  "description": "Allow financial-record changes in non-interactive use."
3860
+ },
3861
+ {
3862
+ "name": "--payload",
3863
+ "description": "Complete quotation JSON plus id, including lineAmounts for multiple selected budget items.",
3864
+ "required": true
3619
3865
  }
3620
3866
  ],
3621
3867
  "argumentMode": "legacy-passthrough",
3622
- "effects": [],
3623
- "legacyTarget": "download-quotation-pdf"
3868
+ "effects": ["state-change"],
3869
+ "legacyTarget": "update-quotation"
3624
3870
  },
3625
3871
  {
3626
- "path": ["customer-invoice", "readiness", "check"],
3627
- "legacyAliases": [
3628
- "check-customer-invoice-readiness",
3629
- "check_customer_invoice_readiness"
3630
- ],
3631
- "summary": "Check Customer Invoice Readiness.",
3872
+ "path": ["quotation", "delete"],
3873
+ "legacyAliases": ["delete-quotation", "delete_quotation"],
3874
+ "summary": "Delete Quotation.",
3632
3875
  "globalOptions": [
3633
3876
  {
3634
3877
  "name": "--help",
@@ -3672,16 +3915,13 @@
3672
3915
  }
3673
3916
  ],
3674
3917
  "argumentMode": "legacy-passthrough",
3675
- "effects": [],
3676
- "legacyTarget": "check-customer-invoice-readiness"
3918
+ "effects": ["state-change", "delete"],
3919
+ "legacyTarget": "delete-quotation"
3677
3920
  },
3678
3921
  {
3679
- "path": ["customer-invoice", "eligible-budget", "list"],
3680
- "legacyAliases": [
3681
- "list-eligible-customer-invoice-budgets",
3682
- "list_eligible_customer_invoice_budgets"
3683
- ],
3684
- "summary": "List eligible customer invoice budgets.",
3922
+ "path": ["quotation", "submit"],
3923
+ "legacyAliases": ["submit-quotation", "submit_quotation"],
3924
+ "summary": "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.",
3685
3925
  "globalOptions": [
3686
3926
  {
3687
3927
  "name": "--help",
@@ -3725,16 +3965,13 @@
3725
3965
  }
3726
3966
  ],
3727
3967
  "argumentMode": "legacy-passthrough",
3728
- "effects": [],
3729
- "legacyTarget": "list-eligible-customer-invoice-budgets"
3968
+ "effects": ["state-change"],
3969
+ "legacyTarget": "submit-quotation"
3730
3970
  },
3731
3971
  {
3732
- "path": ["customer-invoice", "amount", "preview"],
3733
- "legacyAliases": [
3734
- "preview-customer-invoice-amount",
3735
- "preview_customer_invoice_amount"
3736
- ],
3737
- "summary": "Preview amount before GST, GST, and total for a percentage of an accepted estimate. Arguments: <budgetId> <percentage-of-estimate>.",
3972
+ "path": ["quotation", "approve"],
3973
+ "legacyAliases": ["approve-quotation", "approve_quotation"],
3974
+ "summary": "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.",
3738
3975
  "globalOptions": [
3739
3976
  {
3740
3977
  "name": "--help",
@@ -3778,16 +4015,13 @@
3778
4015
  }
3779
4016
  ],
3780
4017
  "argumentMode": "legacy-passthrough",
3781
- "effects": [],
3782
- "legacyTarget": "preview-customer-invoice-amount"
4018
+ "effects": ["state-change"],
4019
+ "legacyTarget": "approve-quotation"
3783
4020
  },
3784
4021
  {
3785
- "path": ["customer-invoice", "existing", "list"],
3786
- "legacyAliases": [
3787
- "list-available-qbo-customer-invoices",
3788
- "list_available_qbo_customer_invoices"
3789
- ],
3790
- "summary": "List unlinked QuickBooks invoices available for an accepted or closed estimate. Argument: <budgetId>.",
4022
+ "path": ["quotation", "reject"],
4023
+ "legacyAliases": ["reject-quotation", "reject_quotation"],
4024
+ "summary": "Reject Quotation.",
3791
4025
  "globalOptions": [
3792
4026
  {
3793
4027
  "name": "--help",
@@ -3831,13 +4065,13 @@
3831
4065
  }
3832
4066
  ],
3833
4067
  "argumentMode": "legacy-passthrough",
3834
- "effects": [],
3835
- "legacyTarget": "list-available-qbo-customer-invoices"
4068
+ "effects": ["state-change"],
4069
+ "legacyTarget": "reject-quotation"
3836
4070
  },
3837
4071
  {
3838
- "path": ["customer-invoice", "list"],
3839
- "legacyAliases": ["list-customer-invoices", "list_customer_invoices"],
3840
- "summary": "List customer invoices.",
4072
+ "path": ["quotation", "pdf", "download"],
4073
+ "legacyAliases": ["download-quotation-pdf", "download_quotation_pdf"],
4074
+ "summary": "Download Quotation Pdf.",
3841
4075
  "globalOptions": [
3842
4076
  {
3843
4077
  "name": "--help",
@@ -3882,12 +4116,15 @@
3882
4116
  ],
3883
4117
  "argumentMode": "legacy-passthrough",
3884
4118
  "effects": [],
3885
- "legacyTarget": "list-customer-invoices"
4119
+ "legacyTarget": "download-quotation-pdf"
3886
4120
  },
3887
4121
  {
3888
- "path": ["customer-invoice", "get"],
3889
- "legacyAliases": ["get-customer-invoice", "get_customer_invoice"],
3890
- "summary": "Get customer invoice.",
4122
+ "path": ["customer-invoice", "readiness", "check"],
4123
+ "legacyAliases": [
4124
+ "check-customer-invoice-readiness",
4125
+ "check_customer_invoice_readiness"
4126
+ ],
4127
+ "summary": "Check Customer Invoice Readiness.",
3891
4128
  "globalOptions": [
3892
4129
  {
3893
4130
  "name": "--help",
@@ -3932,15 +4169,15 @@
3932
4169
  ],
3933
4170
  "argumentMode": "legacy-passthrough",
3934
4171
  "effects": [],
3935
- "legacyTarget": "get-customer-invoice"
4172
+ "legacyTarget": "check-customer-invoice-readiness"
3936
4173
  },
3937
4174
  {
3938
- "path": ["customer-invoice", "email-context", "get"],
4175
+ "path": ["customer-invoice", "eligible-budget", "list"],
3939
4176
  "legacyAliases": [
3940
- "get-customer-invoice-email-context",
3941
- "get_customer_invoice_email_context"
4177
+ "list-eligible-customer-invoice-budgets",
4178
+ "list_eligible_customer_invoice_budgets"
3942
4179
  ],
3943
- "summary": "Get customer invoice email context.",
4180
+ "summary": "List eligible customer invoice budgets.",
3944
4181
  "globalOptions": [
3945
4182
  {
3946
4183
  "name": "--help",
@@ -3985,15 +4222,15 @@
3985
4222
  ],
3986
4223
  "argumentMode": "legacy-passthrough",
3987
4224
  "effects": [],
3988
- "legacyTarget": "get-customer-invoice-email-context"
4225
+ "legacyTarget": "list-eligible-customer-invoice-budgets"
3989
4226
  },
3990
4227
  {
3991
- "path": ["customer-invoice", "preview-qbo"],
4228
+ "path": ["customer-invoice", "amount", "preview"],
3992
4229
  "legacyAliases": [
3993
- "preview-qbo-customer-invoice",
3994
- "preview_qbo_customer_invoice"
4230
+ "preview-customer-invoice-amount",
4231
+ "preview_customer_invoice_amount"
3995
4232
  ],
3996
- "summary": "Preview an available QuickBooks invoice selected for a BB budget using read-only QBO access. Arguments: <budgetId> <qboInvoiceId>.",
4233
+ "summary": "Preview amount before GST, GST, and total for a percentage of an accepted estimate. Arguments: <budgetId> <percentage-of-estimate>.",
3997
4234
  "globalOptions": [
3998
4235
  {
3999
4236
  "name": "--help",
@@ -4038,15 +4275,15 @@
4038
4275
  ],
4039
4276
  "argumentMode": "legacy-passthrough",
4040
4277
  "effects": [],
4041
- "legacyTarget": "preview-qbo-customer-invoice"
4278
+ "legacyTarget": "preview-customer-invoice-amount"
4042
4279
  },
4043
4280
  {
4044
- "path": ["customer-invoice", "import-qbo"],
4281
+ "path": ["customer-invoice", "existing", "list"],
4045
4282
  "legacyAliases": [
4046
- "import-qbo-customer-invoice",
4047
- "import_qbo_customer_invoice"
4283
+ "list-available-qbo-customer-invoices",
4284
+ "list_available_qbo_customer_invoices"
4048
4285
  ],
4049
- "summary": "Link an existing QuickBooks invoice in BB only after reviewing preview-qbo. Arguments: <budgetId> <qboInvoiceId> --token <previewToken>. Supports closed estimates; no QBO writes or emails.",
4286
+ "summary": "List unlinked QuickBooks invoices available for an accepted or closed estimate. Argument: <budgetId>.",
4050
4287
  "globalOptions": [
4051
4288
  {
4052
4289
  "name": "--help",
@@ -4090,13 +4327,13 @@
4090
4327
  }
4091
4328
  ],
4092
4329
  "argumentMode": "legacy-passthrough",
4093
- "effects": ["state-change", "financial-write"],
4094
- "legacyTarget": "import-qbo-customer-invoice"
4330
+ "effects": [],
4331
+ "legacyTarget": "list-available-qbo-customer-invoices"
4095
4332
  },
4096
4333
  {
4097
- "path": ["customer-invoice", "create"],
4098
- "legacyAliases": ["create-customer-invoice", "create_customer_invoice"],
4099
- "summary": "Create one invoice from an eligible budget using --payload JSON with invoice date, due date, billing address, customer memo, and a percentage of the original estimate that does not exceed its remaining coverage.",
4334
+ "path": ["customer-invoice", "list"],
4335
+ "legacyAliases": ["list-customer-invoices", "list_customer_invoices"],
4336
+ "summary": "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.",
4100
4337
  "globalOptions": [
4101
4338
  {
4102
4339
  "name": "--help",
@@ -4137,16 +4374,28 @@
4137
4374
  {
4138
4375
  "name": "--allow-financial-write",
4139
4376
  "description": "Allow financial-record changes in non-interactive use."
4377
+ },
4378
+ {
4379
+ "name": "--limit <1-100>",
4380
+ "description": "Rows per page. Output is { items, pageInfo }."
4381
+ },
4382
+ {
4383
+ "name": "--cursor <token>",
4384
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
4385
+ },
4386
+ {
4387
+ "name": "--direction <forward|backward>",
4388
+ "description": "forward (default) or backward; backward needs --cursor."
4140
4389
  }
4141
4390
  ],
4142
4391
  "argumentMode": "legacy-passthrough",
4143
- "effects": ["state-change", "email", "external-write", "financial-write"],
4144
- "legacyTarget": "create-customer-invoice"
4392
+ "effects": [],
4393
+ "legacyTarget": "list-customer-invoices"
4145
4394
  },
4146
4395
  {
4147
- "path": ["customer-invoice", "discard"],
4148
- "legacyAliases": ["discard-customer-invoice", "discard_customer_invoice"],
4149
- "summary": "Discard Customer Invoice.",
4396
+ "path": ["customer-invoice", "count"],
4397
+ "legacyAliases": ["count-customer-invoices", "count_customer_invoices"],
4398
+ "summary": "Count Customer Invoices.",
4150
4399
  "globalOptions": [
4151
4400
  {
4152
4401
  "name": "--help",
@@ -4190,13 +4439,13 @@
4190
4439
  }
4191
4440
  ],
4192
4441
  "argumentMode": "legacy-passthrough",
4193
- "effects": ["state-change", "delete", "external-write"],
4194
- "legacyTarget": "discard-customer-invoice"
4442
+ "effects": [],
4443
+ "legacyTarget": "count-customer-invoices"
4195
4444
  },
4196
4445
  {
4197
- "path": ["customer-invoice", "delete"],
4198
- "legacyAliases": ["delete-customer-invoice", "delete_customer_invoice"],
4199
- "summary": "Delete Customer Invoice.",
4446
+ "path": ["customer-invoice", "get"],
4447
+ "legacyAliases": ["get-customer-invoice", "get_customer_invoice"],
4448
+ "summary": "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>.",
4200
4449
  "globalOptions": [
4201
4450
  {
4202
4451
  "name": "--help",
@@ -4240,13 +4489,16 @@
4240
4489
  }
4241
4490
  ],
4242
4491
  "argumentMode": "legacy-passthrough",
4243
- "effects": ["state-change", "delete", "external-write", "financial-write"],
4244
- "legacyTarget": "delete-customer-invoice"
4492
+ "effects": [],
4493
+ "legacyTarget": "get-customer-invoice"
4245
4494
  },
4246
4495
  {
4247
- "path": ["customer-invoice", "void"],
4248
- "legacyAliases": ["void-customer-invoice", "void_customer_invoice"],
4249
- "summary": "Void Customer Invoice.",
4496
+ "path": ["customer-invoice", "invoice", "list"],
4497
+ "legacyAliases": [
4498
+ "get-customer-invoice-invoices",
4499
+ "get_customer_invoice_invoices"
4500
+ ],
4501
+ "summary": "List a batch's invoices with QuickBooks id/doc number, issue/due dates, amounts, sync state and sender. Argument: <batchId>.",
4250
4502
  "globalOptions": [
4251
4503
  {
4252
4504
  "name": "--help",
@@ -4290,13 +4542,16 @@
4290
4542
  }
4291
4543
  ],
4292
4544
  "argumentMode": "legacy-passthrough",
4293
- "effects": ["state-change", "external-write", "financial-write"],
4294
- "legacyTarget": "void-customer-invoice"
4545
+ "effects": [],
4546
+ "legacyTarget": "get-customer-invoice-invoices"
4295
4547
  },
4296
4548
  {
4297
- "path": ["customer-invoice", "approve"],
4298
- "legacyAliases": ["approve-customer-invoice", "approve_customer_invoice"],
4299
- "summary": "Approve Customer Invoice.",
4549
+ "path": ["customer-invoice", "line", "list"],
4550
+ "legacyAliases": [
4551
+ "get-customer-invoice-lines",
4552
+ "get_customer_invoice_lines"
4553
+ ],
4554
+ "summary": "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.",
4300
4555
  "globalOptions": [
4301
4556
  {
4302
4557
  "name": "--help",
@@ -4337,16 +4592,27 @@
4337
4592
  {
4338
4593
  "name": "--allow-financial-write",
4339
4594
  "description": "Allow financial-record changes in non-interactive use."
4595
+ },
4596
+ {
4597
+ "name": "--limit <1-100>",
4598
+ "description": "Rows per page. Output is { items, pageInfo }."
4599
+ },
4600
+ {
4601
+ "name": "--cursor <token>",
4602
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
4340
4603
  }
4341
4604
  ],
4342
4605
  "argumentMode": "legacy-passthrough",
4343
- "effects": ["state-change", "email", "external-write", "financial-write"],
4344
- "legacyTarget": "approve-customer-invoice"
4606
+ "effects": [],
4607
+ "legacyTarget": "get-customer-invoice-lines"
4345
4608
  },
4346
4609
  {
4347
- "path": ["customer-invoice", "reject"],
4348
- "legacyAliases": ["reject-customer-invoice", "reject_customer_invoice"],
4349
- "summary": "Reject Customer Invoice.",
4610
+ "path": ["customer-invoice", "approval", "list"],
4611
+ "legacyAliases": [
4612
+ "get-customer-invoice-approvals",
4613
+ "get_customer_invoice_approvals"
4614
+ ],
4615
+ "summary": "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.",
4350
4616
  "globalOptions": [
4351
4617
  {
4352
4618
  "name": "--help",
@@ -4387,19 +4653,27 @@
4387
4653
  {
4388
4654
  "name": "--allow-financial-write",
4389
4655
  "description": "Allow financial-record changes in non-interactive use."
4656
+ },
4657
+ {
4658
+ "name": "--limit <1-50>",
4659
+ "description": "Rows per page. Output is { items, pageInfo }."
4660
+ },
4661
+ {
4662
+ "name": "--cursor <token>",
4663
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
4390
4664
  }
4391
4665
  ],
4392
4666
  "argumentMode": "legacy-passthrough",
4393
- "effects": ["state-change", "email", "external-write", "financial-write"],
4394
- "legacyTarget": "reject-customer-invoice"
4667
+ "effects": [],
4668
+ "legacyTarget": "get-customer-invoice-approvals"
4395
4669
  },
4396
4670
  {
4397
- "path": ["customer-invoice", "send"],
4671
+ "path": ["customer-invoice", "history", "list"],
4398
4672
  "legacyAliases": [
4399
- "send-customer-invoice-to-contact-person",
4400
- "send_customer_invoice_to_contact_person"
4673
+ "get-customer-invoice-history",
4674
+ "get_customer_invoice_history"
4401
4675
  ],
4402
- "summary": "Send a customer invoice and update the project billing email.",
4676
+ "summary": "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.",
4403
4677
  "globalOptions": [
4404
4678
  {
4405
4679
  "name": "--help",
@@ -4440,19 +4714,27 @@
4440
4714
  {
4441
4715
  "name": "--allow-financial-write",
4442
4716
  "description": "Allow financial-record changes in non-interactive use."
4717
+ },
4718
+ {
4719
+ "name": "--limit <1-100>",
4720
+ "description": "Rows per page. Output is { items, pageInfo }."
4721
+ },
4722
+ {
4723
+ "name": "--cursor <token>",
4724
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
4443
4725
  }
4444
4726
  ],
4445
4727
  "argumentMode": "legacy-passthrough",
4446
- "effects": ["state-change", "email"],
4447
- "legacyTarget": "send-customer-invoice-to-contact-person"
4728
+ "effects": [],
4729
+ "legacyTarget": "get-customer-invoice-history"
4448
4730
  },
4449
4731
  {
4450
- "path": ["customer-invoice", "pdf", "download"],
4732
+ "path": ["customer-invoice", "email-context", "get"],
4451
4733
  "legacyAliases": [
4452
- "download-customer-invoice-pdf",
4453
- "download_customer_invoice_pdf"
4734
+ "get-customer-invoice-email-context",
4735
+ "get_customer_invoice_email_context"
4454
4736
  ],
4455
- "summary": "Download a customer invoice PDF when permitted.",
4737
+ "summary": "Get customer invoice email context.",
4456
4738
  "globalOptions": [
4457
4739
  {
4458
4740
  "name": "--help",
@@ -4497,12 +4779,15 @@
4497
4779
  ],
4498
4780
  "argumentMode": "legacy-passthrough",
4499
4781
  "effects": [],
4500
- "legacyTarget": "download-customer-invoice-pdf"
4782
+ "legacyTarget": "get-customer-invoice-email-context"
4501
4783
  },
4502
4784
  {
4503
- "path": ["customer-invoice", "sync"],
4504
- "legacyAliases": ["sync-customer-invoice", "sync_customer_invoice"],
4505
- "summary": "Sync Customer Invoice.",
4785
+ "path": ["customer-invoice", "preview-qbo"],
4786
+ "legacyAliases": [
4787
+ "preview-qbo-customer-invoice",
4788
+ "preview_qbo_customer_invoice"
4789
+ ],
4790
+ "summary": "Preview an available QuickBooks invoice selected for a BB budget using read-only QBO access. Arguments: <budgetId> <qboInvoiceId>.",
4506
4791
  "globalOptions": [
4507
4792
  {
4508
4793
  "name": "--help",
@@ -4546,18 +4831,16 @@
4546
4831
  }
4547
4832
  ],
4548
4833
  "argumentMode": "legacy-passthrough",
4549
- "effects": ["state-change", "external-write", "financial-write"],
4550
- "legacyTarget": "sync-customer-invoice"
4834
+ "effects": [],
4835
+ "legacyTarget": "preview-qbo-customer-invoice"
4551
4836
  },
4552
4837
  {
4553
- "path": ["approval", "list"],
4838
+ "path": ["customer-invoice", "import-qbo"],
4554
4839
  "legacyAliases": [
4555
- "list-approvals",
4556
- "list_approvals",
4557
- "get-pending-approvals",
4558
- "get_pending_approvals"
4840
+ "import-qbo-customer-invoice",
4841
+ "import_qbo_customer_invoice"
4559
4842
  ],
4560
- "summary": "List approvals.",
4843
+ "summary": "Link an existing QuickBooks invoice in BB only after reviewing preview-qbo. Arguments: <budgetId> <qboInvoiceId> --token <previewToken>. Supports closed estimates; no QBO writes or emails.",
4561
4844
  "globalOptions": [
4562
4845
  {
4563
4846
  "name": "--help",
@@ -4601,13 +4884,13 @@
4601
4884
  }
4602
4885
  ],
4603
4886
  "argumentMode": "legacy-passthrough",
4604
- "effects": [],
4605
- "legacyTarget": "list-approvals"
4887
+ "effects": ["state-change", "financial-write"],
4888
+ "legacyTarget": "import-qbo-customer-invoice"
4606
4889
  },
4607
4890
  {
4608
- "path": ["bill", "approve"],
4609
- "legacyAliases": ["approve-bill", "approve_bill"],
4610
- "summary": "Approve Bill.",
4891
+ "path": ["customer-invoice", "create"],
4892
+ "legacyAliases": ["create-customer-invoice", "create_customer_invoice"],
4893
+ "summary": "Create one invoice from an eligible budget using --payload JSON with invoice date, due date, billing address, customer memo, and a percentage of the original estimate that does not exceed its remaining coverage.",
4611
4894
  "globalOptions": [
4612
4895
  {
4613
4896
  "name": "--help",
@@ -4652,12 +4935,12 @@
4652
4935
  ],
4653
4936
  "argumentMode": "legacy-passthrough",
4654
4937
  "effects": ["state-change", "email", "external-write", "financial-write"],
4655
- "legacyTarget": "approve-bill"
4938
+ "legacyTarget": "create-customer-invoice"
4656
4939
  },
4657
4940
  {
4658
- "path": ["bill", "reject"],
4659
- "legacyAliases": ["reject-bill", "reject_bill"],
4660
- "summary": "Reject Bill.",
4941
+ "path": ["customer-invoice", "discard"],
4942
+ "legacyAliases": ["discard-customer-invoice", "discard_customer_invoice"],
4943
+ "summary": "Discard Customer Invoice.",
4661
4944
  "globalOptions": [
4662
4945
  {
4663
4946
  "name": "--help",
@@ -4701,13 +4984,13 @@
4701
4984
  }
4702
4985
  ],
4703
4986
  "argumentMode": "legacy-passthrough",
4704
- "effects": ["state-change", "email"],
4705
- "legacyTarget": "reject-bill"
4987
+ "effects": ["state-change", "delete", "external-write"],
4988
+ "legacyTarget": "discard-customer-invoice"
4706
4989
  },
4707
4990
  {
4708
- "path": ["budget", "approve"],
4709
- "legacyAliases": ["approve-budget", "approve_budget"],
4710
- "summary": "Approve Budget.",
4991
+ "path": ["customer-invoice", "delete"],
4992
+ "legacyAliases": ["delete-customer-invoice", "delete_customer_invoice"],
4993
+ "summary": "Delete Customer Invoice.",
4711
4994
  "globalOptions": [
4712
4995
  {
4713
4996
  "name": "--help",
@@ -4751,13 +5034,13 @@
4751
5034
  }
4752
5035
  ],
4753
5036
  "argumentMode": "legacy-passthrough",
4754
- "effects": ["state-change", "email"],
4755
- "legacyTarget": "approve-budget"
5037
+ "effects": ["state-change", "delete", "external-write", "financial-write"],
5038
+ "legacyTarget": "delete-customer-invoice"
4756
5039
  },
4757
5040
  {
4758
- "path": ["budget", "reject"],
4759
- "legacyAliases": ["reject-budget", "reject_budget"],
4760
- "summary": "Reject Budget.",
5041
+ "path": ["customer-invoice", "void"],
5042
+ "legacyAliases": ["void-customer-invoice", "void_customer_invoice"],
5043
+ "summary": "Void Customer Invoice.",
4761
5044
  "globalOptions": [
4762
5045
  {
4763
5046
  "name": "--help",
@@ -4801,13 +5084,13 @@
4801
5084
  }
4802
5085
  ],
4803
5086
  "argumentMode": "legacy-passthrough",
4804
- "effects": ["state-change", "email"],
4805
- "legacyTarget": "reject-budget"
5087
+ "effects": ["state-change", "external-write", "financial-write"],
5088
+ "legacyTarget": "void-customer-invoice"
4806
5089
  },
4807
5090
  {
4808
- "path": ["supplier", "approve"],
4809
- "legacyAliases": ["approve-supplier", "approve_supplier"],
4810
- "summary": "Approve a pending supplier request and send a requester reply email, or directly re-approve a rejected supplier as Admin/Lead without a pending request or email. QuickBooks is synchronized; archived suppliers remain archived. Argument: <supplierId>.",
5091
+ "path": ["customer-invoice", "approve"],
5092
+ "legacyAliases": ["approve-customer-invoice", "approve_customer_invoice"],
5093
+ "summary": "Approve Customer Invoice.",
4811
5094
  "globalOptions": [
4812
5095
  {
4813
5096
  "name": "--help",
@@ -4851,13 +5134,13 @@
4851
5134
  }
4852
5135
  ],
4853
5136
  "argumentMode": "legacy-passthrough",
4854
- "effects": ["state-change", "email", "external-write"],
4855
- "legacyTarget": "approve-supplier"
5137
+ "effects": ["state-change", "email", "external-write", "financial-write"],
5138
+ "legacyTarget": "approve-customer-invoice"
4856
5139
  },
4857
5140
  {
4858
- "path": ["supplier", "reject"],
4859
- "legacyAliases": ["reject-supplier", "reject_supplier"],
4860
- "summary": "Reject Supplier.",
5141
+ "path": ["customer-invoice", "reject"],
5142
+ "legacyAliases": ["reject-customer-invoice", "reject_customer_invoice"],
5143
+ "summary": "Reject Customer Invoice.",
4861
5144
  "globalOptions": [
4862
5145
  {
4863
5146
  "name": "--help",
@@ -4901,13 +5184,16 @@
4901
5184
  }
4902
5185
  ],
4903
5186
  "argumentMode": "legacy-passthrough",
4904
- "effects": ["state-change", "email"],
4905
- "legacyTarget": "reject-supplier"
5187
+ "effects": ["state-change", "email", "external-write", "financial-write"],
5188
+ "legacyTarget": "reject-customer-invoice"
4906
5189
  },
4907
5190
  {
4908
- "path": ["supplier", "detail", "get"],
4909
- "legacyAliases": ["get-supplier-details", "get_supplier_details"],
4910
- "summary": "Get supplier details.",
5191
+ "path": ["customer-invoice", "send"],
5192
+ "legacyAliases": [
5193
+ "send-customer-invoice-to-contact-person",
5194
+ "send_customer_invoice_to_contact_person"
5195
+ ],
5196
+ "summary": "Send a customer invoice and update the project billing email.",
4911
5197
  "globalOptions": [
4912
5198
  {
4913
5199
  "name": "--help",
@@ -4951,13 +5237,16 @@
4951
5237
  }
4952
5238
  ],
4953
5239
  "argumentMode": "legacy-passthrough",
4954
- "effects": [],
4955
- "legacyTarget": "get-supplier-details"
5240
+ "effects": ["state-change", "email"],
5241
+ "legacyTarget": "send-customer-invoice-to-contact-person"
4956
5242
  },
4957
5243
  {
4958
- "path": ["company", "list"],
4959
- "legacyAliases": ["list-companies", "list_companies"],
4960
- "summary": "List companies.",
5244
+ "path": ["customer-invoice", "pdf", "download"],
5245
+ "legacyAliases": [
5246
+ "download-customer-invoice-pdf",
5247
+ "download_customer_invoice_pdf"
5248
+ ],
5249
+ "summary": "Download a customer invoice PDF when permitted.",
4961
5250
  "globalOptions": [
4962
5251
  {
4963
5252
  "name": "--help",
@@ -5002,12 +5291,12 @@
5002
5291
  ],
5003
5292
  "argumentMode": "legacy-passthrough",
5004
5293
  "effects": [],
5005
- "legacyTarget": "list-companies"
5294
+ "legacyTarget": "download-customer-invoice-pdf"
5006
5295
  },
5007
5296
  {
5008
- "path": ["company", "get"],
5009
- "legacyAliases": ["get-company", "get_company"],
5010
- "summary": "Get company.",
5297
+ "path": ["customer-invoice", "sync"],
5298
+ "legacyAliases": ["sync-customer-invoice", "sync_customer_invoice"],
5299
+ "summary": "Sync Customer Invoice.",
5011
5300
  "globalOptions": [
5012
5301
  {
5013
5302
  "name": "--help",
@@ -5051,13 +5340,18 @@
5051
5340
  }
5052
5341
  ],
5053
5342
  "argumentMode": "legacy-passthrough",
5054
- "effects": [],
5055
- "legacyTarget": "get-company"
5343
+ "effects": ["state-change", "external-write", "financial-write"],
5344
+ "legacyTarget": "sync-customer-invoice"
5056
5345
  },
5057
5346
  {
5058
- "path": ["company", "search"],
5059
- "legacyAliases": ["search-existing-companies", "search_existing_companies"],
5060
- "summary": "Search BB and QuickBooks companies without writes. --query <name> [--page <number>].",
5347
+ "path": ["approval", "list"],
5348
+ "legacyAliases": [
5349
+ "list-approvals",
5350
+ "list_approvals",
5351
+ "get-pending-approvals",
5352
+ "get_pending_approvals"
5353
+ ],
5354
+ "summary": "List approvals.",
5061
5355
  "globalOptions": [
5062
5356
  {
5063
5357
  "name": "--help",
@@ -5098,24 +5392,66 @@
5098
5392
  {
5099
5393
  "name": "--allow-financial-write",
5100
5394
  "description": "Allow financial-record changes in non-interactive use."
5395
+ }
5396
+ ],
5397
+ "argumentMode": "legacy-passthrough",
5398
+ "effects": [],
5399
+ "legacyTarget": "list-approvals"
5400
+ },
5401
+ {
5402
+ "path": ["bill", "approve"],
5403
+ "legacyAliases": ["approve-bill", "approve_bill"],
5404
+ "summary": "Approve Bill.",
5405
+ "globalOptions": [
5406
+ {
5407
+ "name": "--help",
5408
+ "description": "Show help for this command."
5101
5409
  },
5102
5410
  {
5103
- "name": "--query",
5104
- "description": "Company name to search in BB and QuickBooks."
5411
+ "name": "--quiet",
5412
+ "description": "Suppress non-error diagnostics."
5413
+ },
5414
+ {
5415
+ "name": "--debug",
5416
+ "description": "Emit sanitized diagnostic traces."
5417
+ },
5418
+ {
5419
+ "name": "--api-url",
5420
+ "description": "Override the Budget Builder API base URL."
5421
+ },
5422
+ {
5423
+ "name": "--no-browser",
5424
+ "description": "Print the authorization URL without opening a browser."
5425
+ },
5426
+ {
5427
+ "name": "--allow-state-change",
5428
+ "description": "Allow a Budget Builder state change in non-interactive use."
5429
+ },
5430
+ {
5431
+ "name": "--allow-email",
5432
+ "description": "Allow sending email in non-interactive use."
5433
+ },
5434
+ {
5435
+ "name": "--allow-external-write",
5436
+ "description": "Allow writes to external systems in non-interactive use."
5437
+ },
5438
+ {
5439
+ "name": "--allow-delete",
5440
+ "description": "Allow deleting data in non-interactive use."
5105
5441
  },
5106
5442
  {
5107
- "name": "--page",
5108
- "description": "Results page (eight companies per page)."
5443
+ "name": "--allow-financial-write",
5444
+ "description": "Allow financial-record changes in non-interactive use."
5109
5445
  }
5110
5446
  ],
5111
5447
  "argumentMode": "legacy-passthrough",
5112
- "effects": [],
5113
- "legacyTarget": "search-existing-companies"
5448
+ "effects": ["state-change", "email", "external-write", "financial-write"],
5449
+ "legacyTarget": "approve-bill"
5114
5450
  },
5115
5451
  {
5116
- "path": ["company", "use"],
5117
- "legacyAliases": ["use-existing-company", "use_existing_company"],
5118
- "summary": "Reuse a company in BB and QuickBooks, creating only its missing counterpart. Supply --companyId <bbId> and/or --quickbooksId <qboId>; both explicitly connect records with different names. --website <url> fills a missing QBO import website only. --confirmDistinct true confirms no similar record represents this entity.",
5452
+ "path": ["bill", "reject"],
5453
+ "legacyAliases": ["reject-bill", "reject_bill"],
5454
+ "summary": "Reject Bill.",
5119
5455
  "globalOptions": [
5120
5456
  {
5121
5457
  "name": "--help",
@@ -5156,32 +5492,66 @@
5156
5492
  {
5157
5493
  "name": "--allow-financial-write",
5158
5494
  "description": "Allow financial-record changes in non-interactive use."
5495
+ }
5496
+ ],
5497
+ "argumentMode": "legacy-passthrough",
5498
+ "effects": ["state-change", "email"],
5499
+ "legacyTarget": "reject-bill"
5500
+ },
5501
+ {
5502
+ "path": ["budget", "approve"],
5503
+ "legacyAliases": ["approve-budget", "approve_budget"],
5504
+ "summary": "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.",
5505
+ "globalOptions": [
5506
+ {
5507
+ "name": "--help",
5508
+ "description": "Show help for this command."
5159
5509
  },
5160
5510
  {
5161
- "name": "--companyId",
5162
- "description": "Existing BB company ID; combine with quickbooksId to explicitly connect both records."
5511
+ "name": "--quiet",
5512
+ "description": "Suppress non-error diagnostics."
5163
5513
  },
5164
5514
  {
5165
- "name": "--quickbooksId",
5166
- "description": "Existing QBO customer ID; alone imports or reuses its BB company."
5515
+ "name": "--debug",
5516
+ "description": "Emit sanitized diagnostic traces."
5167
5517
  },
5168
5518
  {
5169
- "name": "--website",
5170
- "description": "Website only when missing from a QBO-only import."
5519
+ "name": "--api-url",
5520
+ "description": "Override the Budget Builder API base URL."
5171
5521
  },
5172
5522
  {
5173
- "name": "--confirmDistinct",
5174
- "description": "Set true only when similar records do not represent this legal entity."
5523
+ "name": "--no-browser",
5524
+ "description": "Print the authorization URL without opening a browser."
5525
+ },
5526
+ {
5527
+ "name": "--allow-state-change",
5528
+ "description": "Allow a Budget Builder state change in non-interactive use."
5529
+ },
5530
+ {
5531
+ "name": "--allow-email",
5532
+ "description": "Allow sending email in non-interactive use."
5533
+ },
5534
+ {
5535
+ "name": "--allow-external-write",
5536
+ "description": "Allow writes to external systems in non-interactive use."
5537
+ },
5538
+ {
5539
+ "name": "--allow-delete",
5540
+ "description": "Allow deleting data in non-interactive use."
5541
+ },
5542
+ {
5543
+ "name": "--allow-financial-write",
5544
+ "description": "Allow financial-record changes in non-interactive use."
5175
5545
  }
5176
5546
  ],
5177
5547
  "argumentMode": "legacy-passthrough",
5178
- "effects": ["state-change", "external-write"],
5179
- "legacyTarget": "use-existing-company"
5548
+ "effects": ["state-change", "email"],
5549
+ "legacyTarget": "approve-budget"
5180
5550
  },
5181
5551
  {
5182
- "path": ["company", "create"],
5183
- "legacyAliases": ["create-company", "create_company"],
5184
- "summary": "Create or reuse a company in BB and QuickBooks. --name <name> --website <url>. Similar names require --confirmDistinct true; inactive companies are never reactivated.",
5552
+ "path": ["budget", "reject"],
5553
+ "legacyAliases": ["reject-budget", "reject_budget"],
5554
+ "summary": "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.",
5185
5555
  "globalOptions": [
5186
5556
  {
5187
5557
  "name": "--help",
@@ -5222,20 +5592,16 @@
5222
5592
  {
5223
5593
  "name": "--allow-financial-write",
5224
5594
  "description": "Allow financial-record changes in non-interactive use."
5225
- },
5226
- {
5227
- "name": "--confirmDistinct",
5228
- "description": "Set true to confirm a separate legal entity despite similar names."
5229
5595
  }
5230
5596
  ],
5231
5597
  "argumentMode": "legacy-passthrough",
5232
- "effects": ["state-change", "external-write"],
5233
- "legacyTarget": "create-company"
5598
+ "effects": ["state-change", "email"],
5599
+ "legacyTarget": "reject-budget"
5234
5600
  },
5235
5601
  {
5236
- "path": ["company", "update"],
5237
- "legacyAliases": ["update-company", "update_company"],
5238
- "summary": "Update Company.",
5602
+ "path": ["supplier", "approve"],
5603
+ "legacyAliases": ["approve-supplier", "approve_supplier"],
5604
+ "summary": "Approve a pending supplier request and send a requester reply email, or directly re-approve a rejected supplier as Admin/Lead without a pending request or email. QuickBooks is synchronized; archived suppliers remain archived. Argument: <supplierId>.",
5239
5605
  "globalOptions": [
5240
5606
  {
5241
5607
  "name": "--help",
@@ -5279,13 +5645,13 @@
5279
5645
  }
5280
5646
  ],
5281
5647
  "argumentMode": "legacy-passthrough",
5282
- "effects": ["state-change", "external-write"],
5283
- "legacyTarget": "update-company"
5648
+ "effects": ["state-change", "email", "external-write"],
5649
+ "legacyTarget": "approve-supplier"
5284
5650
  },
5285
5651
  {
5286
- "path": ["company", "delete"],
5287
- "legacyAliases": ["delete-company", "delete_company"],
5288
- "summary": "Delete Company.",
5652
+ "path": ["supplier", "reject"],
5653
+ "legacyAliases": ["reject-supplier", "reject_supplier"],
5654
+ "summary": "Reject Supplier.",
5289
5655
  "globalOptions": [
5290
5656
  {
5291
5657
  "name": "--help",
@@ -5329,13 +5695,13 @@
5329
5695
  }
5330
5696
  ],
5331
5697
  "argumentMode": "legacy-passthrough",
5332
- "effects": ["state-change", "delete", "external-write"],
5333
- "legacyTarget": "delete-company"
5698
+ "effects": ["state-change", "email"],
5699
+ "legacyTarget": "reject-supplier"
5334
5700
  },
5335
5701
  {
5336
- "path": ["project", "list"],
5337
- "legacyAliases": ["list-projects", "list_projects"],
5338
- "summary": "List projects.",
5702
+ "path": ["supplier", "detail", "get"],
5703
+ "legacyAliases": ["get-supplier-details", "get_supplier_details"],
5704
+ "summary": "Get supplier details.",
5339
5705
  "globalOptions": [
5340
5706
  {
5341
5707
  "name": "--help",
@@ -5380,12 +5746,12 @@
5380
5746
  ],
5381
5747
  "argumentMode": "legacy-passthrough",
5382
5748
  "effects": [],
5383
- "legacyTarget": "list-projects"
5749
+ "legacyTarget": "get-supplier-details"
5384
5750
  },
5385
5751
  {
5386
- "path": ["project", "hub", "list"],
5387
- "legacyAliases": ["list-project-hubs", "list_project_hubs"],
5388
- "summary": "List project hubs.",
5752
+ "path": ["company", "list"],
5753
+ "legacyAliases": ["list-companies", "list_companies"],
5754
+ "summary": "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.",
5389
5755
  "globalOptions": [
5390
5756
  {
5391
5757
  "name": "--help",
@@ -5428,38 +5794,2099 @@
5428
5794
  "description": "Allow financial-record changes in non-interactive use."
5429
5795
  },
5430
5796
  {
5431
- "name": "--q",
5432
- "description": "Search project and company names."
5797
+ "name": "--name <text>",
5798
+ "description": "Filter by company name substring."
5433
5799
  },
5434
5800
  {
5435
- "name": "--status",
5436
- "description": "Filter by comma-separated project statuses."
5801
+ "name": "--createdBy <userId>",
5802
+ "description": "Filter by one creator user ID."
5437
5803
  },
5438
5804
  {
5439
- "name": "--page",
5440
- "description": "Select a results page."
5805
+ "name": "--createdByIds <csv>",
5806
+ "description": "Filter by a comma-separated creator user ID list."
5441
5807
  },
5442
5808
  {
5443
- "name": "--perPage",
5444
- "description": "Set the results page size."
5809
+ "name": "--active <true|false>",
5810
+ "description": "Filter by active status; omit to include both states."
5445
5811
  },
5446
5812
  {
5447
- "name": "--sortBy",
5448
- "description": "Sort by startDate, name, companyName, or status."
5813
+ "name": "--sortBy <name|createdAt>",
5814
+ "description": "Sort field (default createdAt)."
5449
5815
  },
5450
5816
  {
5451
- "name": "--sortDir",
5452
- "description": "Sort in asc or desc order."
5817
+ "name": "--sortDir <asc|desc>",
5818
+ "description": "Sort direction (default desc)."
5819
+ },
5820
+ {
5821
+ "name": "--limit <1-100>",
5822
+ "description": "Bounded page size (default 20)."
5823
+ },
5824
+ {
5825
+ "name": "--cursor <token>",
5826
+ "description": "Opaque pageInfo cursor; pass nextCursor forward or previousCursor backward unchanged."
5827
+ },
5828
+ {
5829
+ "name": "--direction <forward|backward>",
5830
+ "description": "Use forward by default; backward requires --cursor."
5453
5831
  }
5454
5832
  ],
5455
5833
  "argumentMode": "legacy-passthrough",
5456
5834
  "effects": [],
5457
- "legacyTarget": "list-project-hubs"
5835
+ "legacyTarget": "list-companies"
5458
5836
  },
5459
5837
  {
5460
- "path": ["project", "get"],
5461
- "legacyAliases": ["get-project", "get_project"],
5462
- "summary": "Get project.",
5838
+ "path": ["company", "count"],
5839
+ "legacyAliases": ["count-companies", "count_companies"],
5840
+ "summary": "Count companies independently from list pagination. Returns { totalCount, counts: { active: { true, false } } }; accepts filters only and rejects pagination/sorting flags.",
5841
+ "globalOptions": [
5842
+ {
5843
+ "name": "--help",
5844
+ "description": "Show help for this command."
5845
+ },
5846
+ {
5847
+ "name": "--quiet",
5848
+ "description": "Suppress non-error diagnostics."
5849
+ },
5850
+ {
5851
+ "name": "--debug",
5852
+ "description": "Emit sanitized diagnostic traces."
5853
+ },
5854
+ {
5855
+ "name": "--api-url",
5856
+ "description": "Override the Budget Builder API base URL."
5857
+ },
5858
+ {
5859
+ "name": "--no-browser",
5860
+ "description": "Print the authorization URL without opening a browser."
5861
+ },
5862
+ {
5863
+ "name": "--allow-state-change",
5864
+ "description": "Allow a Budget Builder state change in non-interactive use."
5865
+ },
5866
+ {
5867
+ "name": "--allow-email",
5868
+ "description": "Allow sending email in non-interactive use."
5869
+ },
5870
+ {
5871
+ "name": "--allow-external-write",
5872
+ "description": "Allow writes to external systems in non-interactive use."
5873
+ },
5874
+ {
5875
+ "name": "--allow-delete",
5876
+ "description": "Allow deleting data in non-interactive use."
5877
+ },
5878
+ {
5879
+ "name": "--allow-financial-write",
5880
+ "description": "Allow financial-record changes in non-interactive use."
5881
+ },
5882
+ {
5883
+ "name": "--name <text>",
5884
+ "description": "Filter by company name substring."
5885
+ },
5886
+ {
5887
+ "name": "--createdBy <userId>",
5888
+ "description": "Filter by one creator user ID."
5889
+ },
5890
+ {
5891
+ "name": "--createdByIds <csv>",
5892
+ "description": "Filter by a comma-separated creator user ID list."
5893
+ },
5894
+ {
5895
+ "name": "--active <true|false>",
5896
+ "description": "Filter by active status; facets omit this self-filter."
5897
+ }
5898
+ ],
5899
+ "argumentMode": "legacy-passthrough",
5900
+ "effects": [],
5901
+ "legacyTarget": "count-companies"
5902
+ },
5903
+ {
5904
+ "path": ["company", "get"],
5905
+ "legacyAliases": ["get-company", "get_company"],
5906
+ "summary": "Get company.",
5907
+ "globalOptions": [
5908
+ {
5909
+ "name": "--help",
5910
+ "description": "Show help for this command."
5911
+ },
5912
+ {
5913
+ "name": "--quiet",
5914
+ "description": "Suppress non-error diagnostics."
5915
+ },
5916
+ {
5917
+ "name": "--debug",
5918
+ "description": "Emit sanitized diagnostic traces."
5919
+ },
5920
+ {
5921
+ "name": "--api-url",
5922
+ "description": "Override the Budget Builder API base URL."
5923
+ },
5924
+ {
5925
+ "name": "--no-browser",
5926
+ "description": "Print the authorization URL without opening a browser."
5927
+ },
5928
+ {
5929
+ "name": "--allow-state-change",
5930
+ "description": "Allow a Budget Builder state change in non-interactive use."
5931
+ },
5932
+ {
5933
+ "name": "--allow-email",
5934
+ "description": "Allow sending email in non-interactive use."
5935
+ },
5936
+ {
5937
+ "name": "--allow-external-write",
5938
+ "description": "Allow writes to external systems in non-interactive use."
5939
+ },
5940
+ {
5941
+ "name": "--allow-delete",
5942
+ "description": "Allow deleting data in non-interactive use."
5943
+ },
5944
+ {
5945
+ "name": "--allow-financial-write",
5946
+ "description": "Allow financial-record changes in non-interactive use."
5947
+ }
5948
+ ],
5949
+ "argumentMode": "legacy-passthrough",
5950
+ "effects": [],
5951
+ "legacyTarget": "get-company"
5952
+ },
5953
+ {
5954
+ "path": ["company", "search"],
5955
+ "legacyAliases": ["search-existing-companies", "search_existing_companies"],
5956
+ "summary": "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.",
5957
+ "globalOptions": [
5958
+ {
5959
+ "name": "--help",
5960
+ "description": "Show help for this command."
5961
+ },
5962
+ {
5963
+ "name": "--quiet",
5964
+ "description": "Suppress non-error diagnostics."
5965
+ },
5966
+ {
5967
+ "name": "--debug",
5968
+ "description": "Emit sanitized diagnostic traces."
5969
+ },
5970
+ {
5971
+ "name": "--api-url",
5972
+ "description": "Override the Budget Builder API base URL."
5973
+ },
5974
+ {
5975
+ "name": "--no-browser",
5976
+ "description": "Print the authorization URL without opening a browser."
5977
+ },
5978
+ {
5979
+ "name": "--allow-state-change",
5980
+ "description": "Allow a Budget Builder state change in non-interactive use."
5981
+ },
5982
+ {
5983
+ "name": "--allow-email",
5984
+ "description": "Allow sending email in non-interactive use."
5985
+ },
5986
+ {
5987
+ "name": "--allow-external-write",
5988
+ "description": "Allow writes to external systems in non-interactive use."
5989
+ },
5990
+ {
5991
+ "name": "--allow-delete",
5992
+ "description": "Allow deleting data in non-interactive use."
5993
+ },
5994
+ {
5995
+ "name": "--allow-financial-write",
5996
+ "description": "Allow financial-record changes in non-interactive use."
5997
+ },
5998
+ {
5999
+ "name": "--query",
6000
+ "description": "Company name to search in BB and QuickBooks."
6001
+ },
6002
+ {
6003
+ "name": "--limit",
6004
+ "description": "Matches per page, 1–50 (default 8)."
6005
+ },
6006
+ {
6007
+ "name": "--cursor",
6008
+ "description": "pageInfo.nextCursor from the previous page, unchanged."
6009
+ }
6010
+ ],
6011
+ "argumentMode": "legacy-passthrough",
6012
+ "effects": [],
6013
+ "legacyTarget": "search-existing-companies"
6014
+ },
6015
+ {
6016
+ "path": ["company", "use"],
6017
+ "legacyAliases": ["use-existing-company", "use_existing_company"],
6018
+ "summary": "Reuse a company in BB and QuickBooks, creating only its missing counterpart. Supply --companyId <bbId> and/or --quickbooksId <qboId>; both explicitly connect records with different names. --website <url> fills a missing QBO import website only. --confirmDistinct true confirms no similar record represents this entity.",
6019
+ "globalOptions": [
6020
+ {
6021
+ "name": "--help",
6022
+ "description": "Show help for this command."
6023
+ },
6024
+ {
6025
+ "name": "--quiet",
6026
+ "description": "Suppress non-error diagnostics."
6027
+ },
6028
+ {
6029
+ "name": "--debug",
6030
+ "description": "Emit sanitized diagnostic traces."
6031
+ },
6032
+ {
6033
+ "name": "--api-url",
6034
+ "description": "Override the Budget Builder API base URL."
6035
+ },
6036
+ {
6037
+ "name": "--no-browser",
6038
+ "description": "Print the authorization URL without opening a browser."
6039
+ },
6040
+ {
6041
+ "name": "--allow-state-change",
6042
+ "description": "Allow a Budget Builder state change in non-interactive use."
6043
+ },
6044
+ {
6045
+ "name": "--allow-email",
6046
+ "description": "Allow sending email in non-interactive use."
6047
+ },
6048
+ {
6049
+ "name": "--allow-external-write",
6050
+ "description": "Allow writes to external systems in non-interactive use."
6051
+ },
6052
+ {
6053
+ "name": "--allow-delete",
6054
+ "description": "Allow deleting data in non-interactive use."
6055
+ },
6056
+ {
6057
+ "name": "--allow-financial-write",
6058
+ "description": "Allow financial-record changes in non-interactive use."
6059
+ },
6060
+ {
6061
+ "name": "--companyId",
6062
+ "description": "Existing BB company ID; combine with quickbooksId to explicitly connect both records."
6063
+ },
6064
+ {
6065
+ "name": "--quickbooksId",
6066
+ "description": "Existing QBO customer ID; alone imports or reuses its BB company."
6067
+ },
6068
+ {
6069
+ "name": "--website",
6070
+ "description": "Website only when missing from a QBO-only import."
6071
+ },
6072
+ {
6073
+ "name": "--confirmDistinct",
6074
+ "description": "Set true only when similar records do not represent this legal entity."
6075
+ }
6076
+ ],
6077
+ "argumentMode": "legacy-passthrough",
6078
+ "effects": ["state-change", "external-write"],
6079
+ "legacyTarget": "use-existing-company"
6080
+ },
6081
+ {
6082
+ "path": ["company", "create"],
6083
+ "legacyAliases": ["create-company", "create_company"],
6084
+ "summary": "Create or reuse a company in BB and QuickBooks. --name <name> --website <url>. Similar names require --confirmDistinct true; inactive companies are never reactivated.",
6085
+ "globalOptions": [
6086
+ {
6087
+ "name": "--help",
6088
+ "description": "Show help for this command."
6089
+ },
6090
+ {
6091
+ "name": "--quiet",
6092
+ "description": "Suppress non-error diagnostics."
6093
+ },
6094
+ {
6095
+ "name": "--debug",
6096
+ "description": "Emit sanitized diagnostic traces."
6097
+ },
6098
+ {
6099
+ "name": "--api-url",
6100
+ "description": "Override the Budget Builder API base URL."
6101
+ },
6102
+ {
6103
+ "name": "--no-browser",
6104
+ "description": "Print the authorization URL without opening a browser."
6105
+ },
6106
+ {
6107
+ "name": "--allow-state-change",
6108
+ "description": "Allow a Budget Builder state change in non-interactive use."
6109
+ },
6110
+ {
6111
+ "name": "--allow-email",
6112
+ "description": "Allow sending email in non-interactive use."
6113
+ },
6114
+ {
6115
+ "name": "--allow-external-write",
6116
+ "description": "Allow writes to external systems in non-interactive use."
6117
+ },
6118
+ {
6119
+ "name": "--allow-delete",
6120
+ "description": "Allow deleting data in non-interactive use."
6121
+ },
6122
+ {
6123
+ "name": "--allow-financial-write",
6124
+ "description": "Allow financial-record changes in non-interactive use."
6125
+ },
6126
+ {
6127
+ "name": "--confirmDistinct",
6128
+ "description": "Set true to confirm a separate legal entity despite similar names."
6129
+ }
6130
+ ],
6131
+ "argumentMode": "legacy-passthrough",
6132
+ "effects": ["state-change", "external-write"],
6133
+ "legacyTarget": "create-company"
6134
+ },
6135
+ {
6136
+ "path": ["company", "update"],
6137
+ "legacyAliases": ["update-company", "update_company"],
6138
+ "summary": "Save company fields in BB and queue independent QuickBooks name/website synchronization; returns operation ID, not provider completion.",
6139
+ "globalOptions": [
6140
+ {
6141
+ "name": "--help",
6142
+ "description": "Show help for this command."
6143
+ },
6144
+ {
6145
+ "name": "--quiet",
6146
+ "description": "Suppress non-error diagnostics."
6147
+ },
6148
+ {
6149
+ "name": "--debug",
6150
+ "description": "Emit sanitized diagnostic traces."
6151
+ },
6152
+ {
6153
+ "name": "--api-url",
6154
+ "description": "Override the Budget Builder API base URL."
6155
+ },
6156
+ {
6157
+ "name": "--no-browser",
6158
+ "description": "Print the authorization URL without opening a browser."
6159
+ },
6160
+ {
6161
+ "name": "--allow-state-change",
6162
+ "description": "Allow a Budget Builder state change in non-interactive use."
6163
+ },
6164
+ {
6165
+ "name": "--allow-email",
6166
+ "description": "Allow sending email in non-interactive use."
6167
+ },
6168
+ {
6169
+ "name": "--allow-external-write",
6170
+ "description": "Allow writes to external systems in non-interactive use."
6171
+ },
6172
+ {
6173
+ "name": "--allow-delete",
6174
+ "description": "Allow deleting data in non-interactive use."
6175
+ },
6176
+ {
6177
+ "name": "--allow-financial-write",
6178
+ "description": "Allow financial-record changes in non-interactive use."
6179
+ }
6180
+ ],
6181
+ "argumentMode": "legacy-passthrough",
6182
+ "effects": ["state-change", "external-write"],
6183
+ "legacyTarget": "update-company"
6184
+ },
6185
+ {
6186
+ "path": ["company", "sync", "status"],
6187
+ "legacyAliases": [
6188
+ "get-company-quickbooks-sync-status",
6189
+ "get_company_quickbooks_sync_status"
6190
+ ],
6191
+ "summary": "Read saved company synchronization status without provider calls or polling; use companyId.",
6192
+ "globalOptions": [
6193
+ {
6194
+ "name": "--help",
6195
+ "description": "Show help for this command."
6196
+ },
6197
+ {
6198
+ "name": "--quiet",
6199
+ "description": "Suppress non-error diagnostics."
6200
+ },
6201
+ {
6202
+ "name": "--debug",
6203
+ "description": "Emit sanitized diagnostic traces."
6204
+ },
6205
+ {
6206
+ "name": "--api-url",
6207
+ "description": "Override the Budget Builder API base URL."
6208
+ },
6209
+ {
6210
+ "name": "--no-browser",
6211
+ "description": "Print the authorization URL without opening a browser."
6212
+ },
6213
+ {
6214
+ "name": "--allow-state-change",
6215
+ "description": "Allow a Budget Builder state change in non-interactive use."
6216
+ },
6217
+ {
6218
+ "name": "--allow-email",
6219
+ "description": "Allow sending email in non-interactive use."
6220
+ },
6221
+ {
6222
+ "name": "--allow-external-write",
6223
+ "description": "Allow writes to external systems in non-interactive use."
6224
+ },
6225
+ {
6226
+ "name": "--allow-delete",
6227
+ "description": "Allow deleting data in non-interactive use."
6228
+ },
6229
+ {
6230
+ "name": "--allow-financial-write",
6231
+ "description": "Allow financial-record changes in non-interactive use."
6232
+ }
6233
+ ],
6234
+ "argumentMode": "legacy-passthrough",
6235
+ "effects": [],
6236
+ "legacyTarget": "get-company-quickbooks-sync-status"
6237
+ },
6238
+ {
6239
+ "path": ["company", "delete"],
6240
+ "legacyAliases": ["delete-company", "delete_company"],
6241
+ "summary": "Delete Company.",
6242
+ "globalOptions": [
6243
+ {
6244
+ "name": "--help",
6245
+ "description": "Show help for this command."
6246
+ },
6247
+ {
6248
+ "name": "--quiet",
6249
+ "description": "Suppress non-error diagnostics."
6250
+ },
6251
+ {
6252
+ "name": "--debug",
6253
+ "description": "Emit sanitized diagnostic traces."
6254
+ },
6255
+ {
6256
+ "name": "--api-url",
6257
+ "description": "Override the Budget Builder API base URL."
6258
+ },
6259
+ {
6260
+ "name": "--no-browser",
6261
+ "description": "Print the authorization URL without opening a browser."
6262
+ },
6263
+ {
6264
+ "name": "--allow-state-change",
6265
+ "description": "Allow a Budget Builder state change in non-interactive use."
6266
+ },
6267
+ {
6268
+ "name": "--allow-email",
6269
+ "description": "Allow sending email in non-interactive use."
6270
+ },
6271
+ {
6272
+ "name": "--allow-external-write",
6273
+ "description": "Allow writes to external systems in non-interactive use."
6274
+ },
6275
+ {
6276
+ "name": "--allow-delete",
6277
+ "description": "Allow deleting data in non-interactive use."
6278
+ },
6279
+ {
6280
+ "name": "--allow-financial-write",
6281
+ "description": "Allow financial-record changes in non-interactive use."
6282
+ }
6283
+ ],
6284
+ "argumentMode": "legacy-passthrough",
6285
+ "effects": ["state-change", "delete", "external-write"],
6286
+ "legacyTarget": "delete-company"
6287
+ },
6288
+ {
6289
+ "path": ["project", "list"],
6290
+ "legacyAliases": ["list-projects", "list_projects"],
6291
+ "summary": "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.",
6292
+ "globalOptions": [
6293
+ {
6294
+ "name": "--help",
6295
+ "description": "Show help for this command."
6296
+ },
6297
+ {
6298
+ "name": "--quiet",
6299
+ "description": "Suppress non-error diagnostics."
6300
+ },
6301
+ {
6302
+ "name": "--debug",
6303
+ "description": "Emit sanitized diagnostic traces."
6304
+ },
6305
+ {
6306
+ "name": "--api-url",
6307
+ "description": "Override the Budget Builder API base URL."
6308
+ },
6309
+ {
6310
+ "name": "--no-browser",
6311
+ "description": "Print the authorization URL without opening a browser."
6312
+ },
6313
+ {
6314
+ "name": "--allow-state-change",
6315
+ "description": "Allow a Budget Builder state change in non-interactive use."
6316
+ },
6317
+ {
6318
+ "name": "--allow-email",
6319
+ "description": "Allow sending email in non-interactive use."
6320
+ },
6321
+ {
6322
+ "name": "--allow-external-write",
6323
+ "description": "Allow writes to external systems in non-interactive use."
6324
+ },
6325
+ {
6326
+ "name": "--allow-delete",
6327
+ "description": "Allow deleting data in non-interactive use."
6328
+ },
6329
+ {
6330
+ "name": "--allow-financial-write",
6331
+ "description": "Allow financial-record changes in non-interactive use."
6332
+ },
6333
+ {
6334
+ "name": "--companyId <id>",
6335
+ "description": "Filter by company ID."
6336
+ },
6337
+ {
6338
+ "name": "--name <text>",
6339
+ "description": "Filter by project name substring."
6340
+ },
6341
+ {
6342
+ "name": "--status <status|ALL>",
6343
+ "description": "Legacy single-status filter; use --statuses for multiple statuses."
6344
+ },
6345
+ {
6346
+ "name": "--statuses <csv>",
6347
+ "description": "Filter by a comma-separated project status list."
6348
+ },
6349
+ {
6350
+ "name": "--active <true|false>",
6351
+ "description": "Filter by active status; omit to include both states."
6352
+ },
6353
+ {
6354
+ "name": "--wonFrom <iso>",
6355
+ "description": "Only projects marked WON on or after this ISO date or datetime (UTC)."
6356
+ },
6357
+ {
6358
+ "name": "--wonTo <iso>",
6359
+ "description": "Only projects marked WON on or before this ISO date (inclusive) or datetime (UTC)."
6360
+ },
6361
+ {
6362
+ "name": "--wonWithinDays <1-3650>",
6363
+ "description": "Only projects marked WON in the last N days."
6364
+ },
6365
+ {
6366
+ "name": "--limit <1-100>",
6367
+ "description": "Bounded page size (default 20)."
6368
+ },
6369
+ {
6370
+ "name": "--cursor <token>",
6371
+ "description": "Opaque pageInfo cursor; pass nextCursor forward or previousCursor backward unchanged."
6372
+ },
6373
+ {
6374
+ "name": "--direction <forward|backward>",
6375
+ "description": "Use forward by default; backward requires --cursor."
6376
+ },
6377
+ {
6378
+ "name": "--sortBy <name|createdAt|status|companyName|wonAt>",
6379
+ "description": "Sort field (default createdAt); wonAt puts unwon projects last."
6380
+ },
6381
+ {
6382
+ "name": "--sortDir <asc|desc>",
6383
+ "description": "Sort direction (default desc)."
6384
+ }
6385
+ ],
6386
+ "argumentMode": "legacy-passthrough",
6387
+ "effects": [],
6388
+ "legacyTarget": "list-projects"
6389
+ },
6390
+ {
6391
+ "path": ["project", "count"],
6392
+ "legacyAliases": ["count-projects", "count_projects"],
6393
+ "summary": "Count projects independently from list pagination. Returns { totalCount, counts: { status, active: { true, false } } }; accepts project filters only and rejects pagination/sorting flags.",
6394
+ "globalOptions": [
6395
+ {
6396
+ "name": "--help",
6397
+ "description": "Show help for this command."
6398
+ },
6399
+ {
6400
+ "name": "--quiet",
6401
+ "description": "Suppress non-error diagnostics."
6402
+ },
6403
+ {
6404
+ "name": "--debug",
6405
+ "description": "Emit sanitized diagnostic traces."
6406
+ },
6407
+ {
6408
+ "name": "--api-url",
6409
+ "description": "Override the Budget Builder API base URL."
6410
+ },
6411
+ {
6412
+ "name": "--no-browser",
6413
+ "description": "Print the authorization URL without opening a browser."
6414
+ },
6415
+ {
6416
+ "name": "--allow-state-change",
6417
+ "description": "Allow a Budget Builder state change in non-interactive use."
6418
+ },
6419
+ {
6420
+ "name": "--allow-email",
6421
+ "description": "Allow sending email in non-interactive use."
6422
+ },
6423
+ {
6424
+ "name": "--allow-external-write",
6425
+ "description": "Allow writes to external systems in non-interactive use."
6426
+ },
6427
+ {
6428
+ "name": "--allow-delete",
6429
+ "description": "Allow deleting data in non-interactive use."
6430
+ },
6431
+ {
6432
+ "name": "--allow-financial-write",
6433
+ "description": "Allow financial-record changes in non-interactive use."
6434
+ },
6435
+ {
6436
+ "name": "--companyId <id>",
6437
+ "description": "Filter by company ID."
6438
+ },
6439
+ {
6440
+ "name": "--name <text>",
6441
+ "description": "Filter by project name substring."
6442
+ },
6443
+ {
6444
+ "name": "--status <status|ALL>",
6445
+ "description": "Legacy single-status filter."
6446
+ },
6447
+ {
6448
+ "name": "--statuses <csv>",
6449
+ "description": "Filter by a comma-separated project status list."
6450
+ },
6451
+ {
6452
+ "name": "--active <true|false>",
6453
+ "description": "Filter by active status; facets exclude this self-filter."
6454
+ },
6455
+ {
6456
+ "name": "--wonFrom <iso>",
6457
+ "description": "Only projects marked WON on or after this ISO date or datetime (UTC)."
6458
+ },
6459
+ {
6460
+ "name": "--wonTo <iso>",
6461
+ "description": "Only projects marked WON on or before this ISO date (inclusive) or datetime (UTC)."
6462
+ },
6463
+ {
6464
+ "name": "--wonWithinDays <1-3650>",
6465
+ "description": "Only projects marked WON in the last N days."
6466
+ }
6467
+ ],
6468
+ "argumentMode": "legacy-passthrough",
6469
+ "effects": [],
6470
+ "legacyTarget": "count-projects"
6471
+ },
6472
+ {
6473
+ "path": ["project", "hub", "list"],
6474
+ "legacyAliases": ["list-project-hubs", "list_project_hubs"],
6475
+ "summary": "List project hubs.",
6476
+ "globalOptions": [
6477
+ {
6478
+ "name": "--help",
6479
+ "description": "Show help for this command."
6480
+ },
6481
+ {
6482
+ "name": "--quiet",
6483
+ "description": "Suppress non-error diagnostics."
6484
+ },
6485
+ {
6486
+ "name": "--debug",
6487
+ "description": "Emit sanitized diagnostic traces."
6488
+ },
6489
+ {
6490
+ "name": "--api-url",
6491
+ "description": "Override the Budget Builder API base URL."
6492
+ },
6493
+ {
6494
+ "name": "--no-browser",
6495
+ "description": "Print the authorization URL without opening a browser."
6496
+ },
6497
+ {
6498
+ "name": "--allow-state-change",
6499
+ "description": "Allow a Budget Builder state change in non-interactive use."
6500
+ },
6501
+ {
6502
+ "name": "--allow-email",
6503
+ "description": "Allow sending email in non-interactive use."
6504
+ },
6505
+ {
6506
+ "name": "--allow-external-write",
6507
+ "description": "Allow writes to external systems in non-interactive use."
6508
+ },
6509
+ {
6510
+ "name": "--allow-delete",
6511
+ "description": "Allow deleting data in non-interactive use."
6512
+ },
6513
+ {
6514
+ "name": "--allow-financial-write",
6515
+ "description": "Allow financial-record changes in non-interactive use."
6516
+ },
6517
+ {
6518
+ "name": "--q",
6519
+ "description": "Search project and company names."
6520
+ },
6521
+ {
6522
+ "name": "--status",
6523
+ "description": "Filter by comma-separated project statuses."
6524
+ },
6525
+ {
6526
+ "name": "--limit",
6527
+ "description": "Page size, 1-100 (default 20)."
6528
+ },
6529
+ {
6530
+ "name": "--cursor",
6531
+ "description": "Opaque nextCursor/previousCursor from the last page."
6532
+ },
6533
+ {
6534
+ "name": "--direction",
6535
+ "description": "forward (default) or backward; backward needs --cursor."
6536
+ },
6537
+ {
6538
+ "name": "--sortBy",
6539
+ "description": "Sort by startDate, name, companyName, or status."
6540
+ },
6541
+ {
6542
+ "name": "--sortDir",
6543
+ "description": "Sort in asc or desc order."
6544
+ }
6545
+ ],
6546
+ "argumentMode": "legacy-passthrough",
6547
+ "effects": [],
6548
+ "legacyTarget": "list-project-hubs"
6549
+ },
6550
+ {
6551
+ "path": ["project", "hub", "count"],
6552
+ "legacyAliases": ["count-project-hubs", "count_project_hubs"],
6553
+ "summary": "Count Project Hubs.",
6554
+ "globalOptions": [
6555
+ {
6556
+ "name": "--help",
6557
+ "description": "Show help for this command."
6558
+ },
6559
+ {
6560
+ "name": "--quiet",
6561
+ "description": "Suppress non-error diagnostics."
6562
+ },
6563
+ {
6564
+ "name": "--debug",
6565
+ "description": "Emit sanitized diagnostic traces."
6566
+ },
6567
+ {
6568
+ "name": "--api-url",
6569
+ "description": "Override the Budget Builder API base URL."
6570
+ },
6571
+ {
6572
+ "name": "--no-browser",
6573
+ "description": "Print the authorization URL without opening a browser."
6574
+ },
6575
+ {
6576
+ "name": "--allow-state-change",
6577
+ "description": "Allow a Budget Builder state change in non-interactive use."
6578
+ },
6579
+ {
6580
+ "name": "--allow-email",
6581
+ "description": "Allow sending email in non-interactive use."
6582
+ },
6583
+ {
6584
+ "name": "--allow-external-write",
6585
+ "description": "Allow writes to external systems in non-interactive use."
6586
+ },
6587
+ {
6588
+ "name": "--allow-delete",
6589
+ "description": "Allow deleting data in non-interactive use."
6590
+ },
6591
+ {
6592
+ "name": "--allow-financial-write",
6593
+ "description": "Allow financial-record changes in non-interactive use."
6594
+ },
6595
+ {
6596
+ "name": "--q",
6597
+ "description": "Search project and company names."
6598
+ },
6599
+ {
6600
+ "name": "--status",
6601
+ "description": "Filter by comma-separated project statuses."
6602
+ }
6603
+ ],
6604
+ "argumentMode": "legacy-passthrough",
6605
+ "effects": [],
6606
+ "legacyTarget": "count-project-hubs"
6607
+ },
6608
+ {
6609
+ "path": ["project", "get"],
6610
+ "legacyAliases": ["get-project", "get_project"],
6611
+ "summary": "Get project.",
6612
+ "globalOptions": [
6613
+ {
6614
+ "name": "--help",
6615
+ "description": "Show help for this command."
6616
+ },
6617
+ {
6618
+ "name": "--quiet",
6619
+ "description": "Suppress non-error diagnostics."
6620
+ },
6621
+ {
6622
+ "name": "--debug",
6623
+ "description": "Emit sanitized diagnostic traces."
6624
+ },
6625
+ {
6626
+ "name": "--api-url",
6627
+ "description": "Override the Budget Builder API base URL."
6628
+ },
6629
+ {
6630
+ "name": "--no-browser",
6631
+ "description": "Print the authorization URL without opening a browser."
6632
+ },
6633
+ {
6634
+ "name": "--allow-state-change",
6635
+ "description": "Allow a Budget Builder state change in non-interactive use."
6636
+ },
6637
+ {
6638
+ "name": "--allow-email",
6639
+ "description": "Allow sending email in non-interactive use."
6640
+ },
6641
+ {
6642
+ "name": "--allow-external-write",
6643
+ "description": "Allow writes to external systems in non-interactive use."
6644
+ },
6645
+ {
6646
+ "name": "--allow-delete",
6647
+ "description": "Allow deleting data in non-interactive use."
6648
+ },
6649
+ {
6650
+ "name": "--allow-financial-write",
6651
+ "description": "Allow financial-record changes in non-interactive use."
6652
+ }
6653
+ ],
6654
+ "argumentMode": "legacy-passthrough",
6655
+ "effects": [],
6656
+ "legacyTarget": "get-project"
6657
+ },
6658
+ {
6659
+ "path": ["project", "hub", "status"],
6660
+ "legacyAliases": ["get-project-hub-status", "get_project_hub_status"],
6661
+ "summary": "Get project hub status.",
6662
+ "globalOptions": [
6663
+ {
6664
+ "name": "--help",
6665
+ "description": "Show help for this command."
6666
+ },
6667
+ {
6668
+ "name": "--quiet",
6669
+ "description": "Suppress non-error diagnostics."
6670
+ },
6671
+ {
6672
+ "name": "--debug",
6673
+ "description": "Emit sanitized diagnostic traces."
6674
+ },
6675
+ {
6676
+ "name": "--api-url",
6677
+ "description": "Override the Budget Builder API base URL."
6678
+ },
6679
+ {
6680
+ "name": "--no-browser",
6681
+ "description": "Print the authorization URL without opening a browser."
6682
+ },
6683
+ {
6684
+ "name": "--allow-state-change",
6685
+ "description": "Allow a Budget Builder state change in non-interactive use."
6686
+ },
6687
+ {
6688
+ "name": "--allow-email",
6689
+ "description": "Allow sending email in non-interactive use."
6690
+ },
6691
+ {
6692
+ "name": "--allow-external-write",
6693
+ "description": "Allow writes to external systems in non-interactive use."
6694
+ },
6695
+ {
6696
+ "name": "--allow-delete",
6697
+ "description": "Allow deleting data in non-interactive use."
6698
+ },
6699
+ {
6700
+ "name": "--allow-financial-write",
6701
+ "description": "Allow financial-record changes in non-interactive use."
6702
+ }
6703
+ ],
6704
+ "argumentMode": "legacy-passthrough",
6705
+ "effects": [],
6706
+ "legacyTarget": "get-project-hub-status"
6707
+ },
6708
+ {
6709
+ "path": ["project", "hub", "setup"],
6710
+ "legacyAliases": ["setup-project-hub", "setup_project_hub"],
6711
+ "summary": "Setup Project Hub.",
6712
+ "globalOptions": [
6713
+ {
6714
+ "name": "--help",
6715
+ "description": "Show help for this command."
6716
+ },
6717
+ {
6718
+ "name": "--quiet",
6719
+ "description": "Suppress non-error diagnostics."
6720
+ },
6721
+ {
6722
+ "name": "--debug",
6723
+ "description": "Emit sanitized diagnostic traces."
6724
+ },
6725
+ {
6726
+ "name": "--api-url",
6727
+ "description": "Override the Budget Builder API base URL."
6728
+ },
6729
+ {
6730
+ "name": "--no-browser",
6731
+ "description": "Print the authorization URL without opening a browser."
6732
+ },
6733
+ {
6734
+ "name": "--allow-state-change",
6735
+ "description": "Allow a Budget Builder state change in non-interactive use."
6736
+ },
6737
+ {
6738
+ "name": "--allow-email",
6739
+ "description": "Allow sending email in non-interactive use."
6740
+ },
6741
+ {
6742
+ "name": "--allow-external-write",
6743
+ "description": "Allow writes to external systems in non-interactive use."
6744
+ },
6745
+ {
6746
+ "name": "--allow-delete",
6747
+ "description": "Allow deleting data in non-interactive use."
6748
+ },
6749
+ {
6750
+ "name": "--allow-financial-write",
6751
+ "description": "Allow financial-record changes in non-interactive use."
6752
+ }
6753
+ ],
6754
+ "argumentMode": "legacy-passthrough",
6755
+ "effects": ["state-change", "external-write"],
6756
+ "legacyTarget": "setup-project-hub"
6757
+ },
6758
+ {
6759
+ "path": ["project", "hub", "sync"],
6760
+ "legacyAliases": [
6761
+ "sync-project-hub-commercial-documents",
6762
+ "sync_project_hub_commercial_documents"
6763
+ ],
6764
+ "summary": "Sync Project Hub Commercial Documents.",
6765
+ "globalOptions": [
6766
+ {
6767
+ "name": "--help",
6768
+ "description": "Show help for this command."
6769
+ },
6770
+ {
6771
+ "name": "--quiet",
6772
+ "description": "Suppress non-error diagnostics."
6773
+ },
6774
+ {
6775
+ "name": "--debug",
6776
+ "description": "Emit sanitized diagnostic traces."
6777
+ },
6778
+ {
6779
+ "name": "--api-url",
6780
+ "description": "Override the Budget Builder API base URL."
6781
+ },
6782
+ {
6783
+ "name": "--no-browser",
6784
+ "description": "Print the authorization URL without opening a browser."
6785
+ },
6786
+ {
6787
+ "name": "--allow-state-change",
6788
+ "description": "Allow a Budget Builder state change in non-interactive use."
6789
+ },
6790
+ {
6791
+ "name": "--allow-email",
6792
+ "description": "Allow sending email in non-interactive use."
6793
+ },
6794
+ {
6795
+ "name": "--allow-external-write",
6796
+ "description": "Allow writes to external systems in non-interactive use."
6797
+ },
6798
+ {
6799
+ "name": "--allow-delete",
6800
+ "description": "Allow deleting data in non-interactive use."
6801
+ },
6802
+ {
6803
+ "name": "--allow-financial-write",
6804
+ "description": "Allow financial-record changes in non-interactive use."
6805
+ }
6806
+ ],
6807
+ "argumentMode": "legacy-passthrough",
6808
+ "effects": ["state-change", "external-write"],
6809
+ "legacyTarget": "sync-project-hub-commercial-documents"
6810
+ },
6811
+ {
6812
+ "path": ["project", "create"],
6813
+ "legacyAliases": ["create-project", "create_project"],
6814
+ "summary": "Create a project linked to an existing Asana Deals lead task. Supply --asanaTaskId in non-interactive use; interactive use searches for and selects a lead task (optionally --asanaSearch). The Slack channel is resolved from the selected Asana task unless all three Slack channel flags are supplied. For a new direct client, create the lead task using the website form first.",
6815
+ "globalOptions": [
6816
+ {
6817
+ "name": "--help",
6818
+ "description": "Show help for this command."
6819
+ },
6820
+ {
6821
+ "name": "--quiet",
6822
+ "description": "Suppress non-error diagnostics."
6823
+ },
6824
+ {
6825
+ "name": "--debug",
6826
+ "description": "Emit sanitized diagnostic traces."
6827
+ },
6828
+ {
6829
+ "name": "--api-url",
6830
+ "description": "Override the Budget Builder API base URL."
6831
+ },
6832
+ {
6833
+ "name": "--no-browser",
6834
+ "description": "Print the authorization URL without opening a browser."
6835
+ },
6836
+ {
6837
+ "name": "--allow-state-change",
6838
+ "description": "Allow a Budget Builder state change in non-interactive use."
6839
+ },
6840
+ {
6841
+ "name": "--allow-email",
6842
+ "description": "Allow sending email in non-interactive use."
6843
+ },
6844
+ {
6845
+ "name": "--allow-external-write",
6846
+ "description": "Allow writes to external systems in non-interactive use."
6847
+ },
6848
+ {
6849
+ "name": "--allow-delete",
6850
+ "description": "Allow deleting data in non-interactive use."
6851
+ },
6852
+ {
6853
+ "name": "--allow-financial-write",
6854
+ "description": "Allow financial-record changes in non-interactive use."
6855
+ }
6856
+ ],
6857
+ "argumentMode": "legacy-passthrough",
6858
+ "effects": ["state-change", "external-write"],
6859
+ "legacyTarget": "create-project"
6860
+ },
6861
+ {
6862
+ "path": ["project", "update"],
6863
+ "legacyAliases": ["update-project", "update_project"],
6864
+ "summary": "Update Project.",
6865
+ "globalOptions": [
6866
+ {
6867
+ "name": "--help",
6868
+ "description": "Show help for this command."
6869
+ },
6870
+ {
6871
+ "name": "--quiet",
6872
+ "description": "Suppress non-error diagnostics."
6873
+ },
6874
+ {
6875
+ "name": "--debug",
6876
+ "description": "Emit sanitized diagnostic traces."
6877
+ },
6878
+ {
6879
+ "name": "--api-url",
6880
+ "description": "Override the Budget Builder API base URL."
6881
+ },
6882
+ {
6883
+ "name": "--no-browser",
6884
+ "description": "Print the authorization URL without opening a browser."
6885
+ },
6886
+ {
6887
+ "name": "--allow-state-change",
6888
+ "description": "Allow a Budget Builder state change in non-interactive use."
6889
+ },
6890
+ {
6891
+ "name": "--allow-email",
6892
+ "description": "Allow sending email in non-interactive use."
6893
+ },
6894
+ {
6895
+ "name": "--allow-external-write",
6896
+ "description": "Allow writes to external systems in non-interactive use."
6897
+ },
6898
+ {
6899
+ "name": "--allow-delete",
6900
+ "description": "Allow deleting data in non-interactive use."
6901
+ },
6902
+ {
6903
+ "name": "--allow-financial-write",
6904
+ "description": "Allow financial-record changes in non-interactive use."
6905
+ }
6906
+ ],
6907
+ "argumentMode": "legacy-passthrough",
6908
+ "effects": ["state-change", "external-write"],
6909
+ "legacyTarget": "update-project"
6910
+ },
6911
+ {
6912
+ "path": ["project", "delete"],
6913
+ "legacyAliases": ["delete-project", "delete_project"],
6914
+ "summary": "Delete Project.",
6915
+ "globalOptions": [
6916
+ {
6917
+ "name": "--help",
6918
+ "description": "Show help for this command."
6919
+ },
6920
+ {
6921
+ "name": "--quiet",
6922
+ "description": "Suppress non-error diagnostics."
6923
+ },
6924
+ {
6925
+ "name": "--debug",
6926
+ "description": "Emit sanitized diagnostic traces."
6927
+ },
6928
+ {
6929
+ "name": "--api-url",
6930
+ "description": "Override the Budget Builder API base URL."
6931
+ },
6932
+ {
6933
+ "name": "--no-browser",
6934
+ "description": "Print the authorization URL without opening a browser."
6935
+ },
6936
+ {
6937
+ "name": "--allow-state-change",
6938
+ "description": "Allow a Budget Builder state change in non-interactive use."
6939
+ },
6940
+ {
6941
+ "name": "--allow-email",
6942
+ "description": "Allow sending email in non-interactive use."
6943
+ },
6944
+ {
6945
+ "name": "--allow-external-write",
6946
+ "description": "Allow writes to external systems in non-interactive use."
6947
+ },
6948
+ {
6949
+ "name": "--allow-delete",
6950
+ "description": "Allow deleting data in non-interactive use."
6951
+ },
6952
+ {
6953
+ "name": "--allow-financial-write",
6954
+ "description": "Allow financial-record changes in non-interactive use."
6955
+ }
6956
+ ],
6957
+ "argumentMode": "legacy-passthrough",
6958
+ "effects": ["state-change", "delete", "external-write"],
6959
+ "legacyTarget": "delete-project"
6960
+ },
6961
+ {
6962
+ "path": ["project", "reconciliation", "check"],
6963
+ "legacyAliases": [
6964
+ "check-project-reconciliation",
6965
+ "check_project_reconciliation"
6966
+ ],
6967
+ "summary": "Check Project Reconciliation.",
6968
+ "globalOptions": [
6969
+ {
6970
+ "name": "--help",
6971
+ "description": "Show help for this command."
6972
+ },
6973
+ {
6974
+ "name": "--quiet",
6975
+ "description": "Suppress non-error diagnostics."
6976
+ },
6977
+ {
6978
+ "name": "--debug",
6979
+ "description": "Emit sanitized diagnostic traces."
6980
+ },
6981
+ {
6982
+ "name": "--api-url",
6983
+ "description": "Override the Budget Builder API base URL."
6984
+ },
6985
+ {
6986
+ "name": "--no-browser",
6987
+ "description": "Print the authorization URL without opening a browser."
6988
+ },
6989
+ {
6990
+ "name": "--allow-state-change",
6991
+ "description": "Allow a Budget Builder state change in non-interactive use."
6992
+ },
6993
+ {
6994
+ "name": "--allow-email",
6995
+ "description": "Allow sending email in non-interactive use."
6996
+ },
6997
+ {
6998
+ "name": "--allow-external-write",
6999
+ "description": "Allow writes to external systems in non-interactive use."
7000
+ },
7001
+ {
7002
+ "name": "--allow-delete",
7003
+ "description": "Allow deleting data in non-interactive use."
7004
+ },
7005
+ {
7006
+ "name": "--allow-financial-write",
7007
+ "description": "Allow financial-record changes in non-interactive use."
7008
+ }
7009
+ ],
7010
+ "argumentMode": "legacy-passthrough",
7011
+ "effects": [],
7012
+ "legacyTarget": "check-project-reconciliation"
7013
+ },
7014
+ {
7015
+ "path": ["project", "reconcile"],
7016
+ "legacyAliases": ["reconcile-project", "reconcile_project"],
7017
+ "summary": "Reconcile Project.",
7018
+ "globalOptions": [
7019
+ {
7020
+ "name": "--help",
7021
+ "description": "Show help for this command."
7022
+ },
7023
+ {
7024
+ "name": "--quiet",
7025
+ "description": "Suppress non-error diagnostics."
7026
+ },
7027
+ {
7028
+ "name": "--debug",
7029
+ "description": "Emit sanitized diagnostic traces."
7030
+ },
7031
+ {
7032
+ "name": "--api-url",
7033
+ "description": "Override the Budget Builder API base URL."
7034
+ },
7035
+ {
7036
+ "name": "--no-browser",
7037
+ "description": "Print the authorization URL without opening a browser."
7038
+ },
7039
+ {
7040
+ "name": "--allow-state-change",
7041
+ "description": "Allow a Budget Builder state change in non-interactive use."
7042
+ },
7043
+ {
7044
+ "name": "--allow-email",
7045
+ "description": "Allow sending email in non-interactive use."
7046
+ },
7047
+ {
7048
+ "name": "--allow-external-write",
7049
+ "description": "Allow writes to external systems in non-interactive use."
7050
+ },
7051
+ {
7052
+ "name": "--allow-delete",
7053
+ "description": "Allow deleting data in non-interactive use."
7054
+ },
7055
+ {
7056
+ "name": "--allow-financial-write",
7057
+ "description": "Allow financial-record changes in non-interactive use."
7058
+ }
7059
+ ],
7060
+ "argumentMode": "legacy-passthrough",
7061
+ "effects": ["state-change", "external-write"],
7062
+ "legacyTarget": "reconcile-project"
7063
+ },
7064
+ {
7065
+ "path": ["project", "complete"],
7066
+ "legacyAliases": ["complete-project", "complete_project"],
7067
+ "summary": "Complete Project.",
7068
+ "globalOptions": [
7069
+ {
7070
+ "name": "--help",
7071
+ "description": "Show help for this command."
7072
+ },
7073
+ {
7074
+ "name": "--quiet",
7075
+ "description": "Suppress non-error diagnostics."
7076
+ },
7077
+ {
7078
+ "name": "--debug",
7079
+ "description": "Emit sanitized diagnostic traces."
7080
+ },
7081
+ {
7082
+ "name": "--api-url",
7083
+ "description": "Override the Budget Builder API base URL."
7084
+ },
7085
+ {
7086
+ "name": "--no-browser",
7087
+ "description": "Print the authorization URL without opening a browser."
7088
+ },
7089
+ {
7090
+ "name": "--allow-state-change",
7091
+ "description": "Allow a Budget Builder state change in non-interactive use."
7092
+ },
7093
+ {
7094
+ "name": "--allow-email",
7095
+ "description": "Allow sending email in non-interactive use."
7096
+ },
7097
+ {
7098
+ "name": "--allow-external-write",
7099
+ "description": "Allow writes to external systems in non-interactive use."
7100
+ },
7101
+ {
7102
+ "name": "--allow-delete",
7103
+ "description": "Allow deleting data in non-interactive use."
7104
+ },
7105
+ {
7106
+ "name": "--allow-financial-write",
7107
+ "description": "Allow financial-record changes in non-interactive use."
7108
+ }
7109
+ ],
7110
+ "argumentMode": "legacy-passthrough",
7111
+ "effects": ["state-change", "delete", "external-write", "financial-write"],
7112
+ "legacyTarget": "complete-project"
7113
+ },
7114
+ {
7115
+ "path": ["project", "quickbooks", "import"],
7116
+ "legacyAliases": ["import-qbo-project", "import_qbo_project"],
7117
+ "summary": "Import Qbo Project.",
7118
+ "globalOptions": [
7119
+ {
7120
+ "name": "--help",
7121
+ "description": "Show help for this command."
7122
+ },
7123
+ {
7124
+ "name": "--quiet",
7125
+ "description": "Suppress non-error diagnostics."
7126
+ },
7127
+ {
7128
+ "name": "--debug",
7129
+ "description": "Emit sanitized diagnostic traces."
7130
+ },
7131
+ {
7132
+ "name": "--api-url",
7133
+ "description": "Override the Budget Builder API base URL."
7134
+ },
7135
+ {
7136
+ "name": "--no-browser",
7137
+ "description": "Print the authorization URL without opening a browser."
7138
+ },
7139
+ {
7140
+ "name": "--allow-state-change",
7141
+ "description": "Allow a Budget Builder state change in non-interactive use."
7142
+ },
7143
+ {
7144
+ "name": "--allow-email",
7145
+ "description": "Allow sending email in non-interactive use."
7146
+ },
7147
+ {
7148
+ "name": "--allow-external-write",
7149
+ "description": "Allow writes to external systems in non-interactive use."
7150
+ },
7151
+ {
7152
+ "name": "--allow-delete",
7153
+ "description": "Allow deleting data in non-interactive use."
7154
+ },
7155
+ {
7156
+ "name": "--allow-financial-write",
7157
+ "description": "Allow financial-record changes in non-interactive use."
7158
+ }
7159
+ ],
7160
+ "argumentMode": "legacy-passthrough",
7161
+ "effects": ["state-change", "external-write"],
7162
+ "legacyTarget": "import-qbo-project"
7163
+ },
7164
+ {
7165
+ "path": ["project", "status", "update"],
7166
+ "legacyAliases": ["update-project-status", "update_project_status"],
7167
+ "summary": "Update Project Status.",
7168
+ "globalOptions": [
7169
+ {
7170
+ "name": "--help",
7171
+ "description": "Show help for this command."
7172
+ },
7173
+ {
7174
+ "name": "--quiet",
7175
+ "description": "Suppress non-error diagnostics."
7176
+ },
7177
+ {
7178
+ "name": "--debug",
7179
+ "description": "Emit sanitized diagnostic traces."
7180
+ },
7181
+ {
7182
+ "name": "--api-url",
7183
+ "description": "Override the Budget Builder API base URL."
7184
+ },
7185
+ {
7186
+ "name": "--no-browser",
7187
+ "description": "Print the authorization URL without opening a browser."
7188
+ },
7189
+ {
7190
+ "name": "--allow-state-change",
7191
+ "description": "Allow a Budget Builder state change in non-interactive use."
7192
+ },
7193
+ {
7194
+ "name": "--allow-email",
7195
+ "description": "Allow sending email in non-interactive use."
7196
+ },
7197
+ {
7198
+ "name": "--allow-external-write",
7199
+ "description": "Allow writes to external systems in non-interactive use."
7200
+ },
7201
+ {
7202
+ "name": "--allow-delete",
7203
+ "description": "Allow deleting data in non-interactive use."
7204
+ },
7205
+ {
7206
+ "name": "--allow-financial-write",
7207
+ "description": "Allow financial-record changes in non-interactive use."
7208
+ }
7209
+ ],
7210
+ "argumentMode": "legacy-passthrough",
7211
+ "effects": ["state-change", "delete", "external-write", "financial-write"],
7212
+ "legacyTarget": "update-project-status"
7213
+ },
7214
+ {
7215
+ "path": ["contact", "list"],
7216
+ "legacyAliases": ["list-contacts", "list_contacts"],
7217
+ "summary": "List contacts.",
7218
+ "globalOptions": [
7219
+ {
7220
+ "name": "--help",
7221
+ "description": "Show help for this command."
7222
+ },
7223
+ {
7224
+ "name": "--quiet",
7225
+ "description": "Suppress non-error diagnostics."
7226
+ },
7227
+ {
7228
+ "name": "--debug",
7229
+ "description": "Emit sanitized diagnostic traces."
7230
+ },
7231
+ {
7232
+ "name": "--api-url",
7233
+ "description": "Override the Budget Builder API base URL."
7234
+ },
7235
+ {
7236
+ "name": "--no-browser",
7237
+ "description": "Print the authorization URL without opening a browser."
7238
+ },
7239
+ {
7240
+ "name": "--allow-state-change",
7241
+ "description": "Allow a Budget Builder state change in non-interactive use."
7242
+ },
7243
+ {
7244
+ "name": "--allow-email",
7245
+ "description": "Allow sending email in non-interactive use."
7246
+ },
7247
+ {
7248
+ "name": "--allow-external-write",
7249
+ "description": "Allow writes to external systems in non-interactive use."
7250
+ },
7251
+ {
7252
+ "name": "--allow-delete",
7253
+ "description": "Allow deleting data in non-interactive use."
7254
+ },
7255
+ {
7256
+ "name": "--allow-financial-write",
7257
+ "description": "Allow financial-record changes in non-interactive use."
7258
+ }
7259
+ ],
7260
+ "argumentMode": "legacy-passthrough",
7261
+ "effects": [],
7262
+ "legacyTarget": "list-contacts"
7263
+ },
7264
+ {
7265
+ "path": ["contact", "create"],
7266
+ "legacyAliases": ["create-contact-person", "create_contact_person"],
7267
+ "summary": "Create Contact Person.",
7268
+ "globalOptions": [
7269
+ {
7270
+ "name": "--help",
7271
+ "description": "Show help for this command."
7272
+ },
7273
+ {
7274
+ "name": "--quiet",
7275
+ "description": "Suppress non-error diagnostics."
7276
+ },
7277
+ {
7278
+ "name": "--debug",
7279
+ "description": "Emit sanitized diagnostic traces."
7280
+ },
7281
+ {
7282
+ "name": "--api-url",
7283
+ "description": "Override the Budget Builder API base URL."
7284
+ },
7285
+ {
7286
+ "name": "--no-browser",
7287
+ "description": "Print the authorization URL without opening a browser."
7288
+ },
7289
+ {
7290
+ "name": "--allow-state-change",
7291
+ "description": "Allow a Budget Builder state change in non-interactive use."
7292
+ },
7293
+ {
7294
+ "name": "--allow-email",
7295
+ "description": "Allow sending email in non-interactive use."
7296
+ },
7297
+ {
7298
+ "name": "--allow-external-write",
7299
+ "description": "Allow writes to external systems in non-interactive use."
7300
+ },
7301
+ {
7302
+ "name": "--allow-delete",
7303
+ "description": "Allow deleting data in non-interactive use."
7304
+ },
7305
+ {
7306
+ "name": "--allow-financial-write",
7307
+ "description": "Allow financial-record changes in non-interactive use."
7308
+ }
7309
+ ],
7310
+ "argumentMode": "legacy-passthrough",
7311
+ "effects": ["state-change"],
7312
+ "legacyTarget": "create-contact-person"
7313
+ },
7314
+ {
7315
+ "path": ["contact", "update"],
7316
+ "legacyAliases": ["update-contact-person", "update_contact_person"],
7317
+ "summary": "Update Contact Person.",
7318
+ "globalOptions": [
7319
+ {
7320
+ "name": "--help",
7321
+ "description": "Show help for this command."
7322
+ },
7323
+ {
7324
+ "name": "--quiet",
7325
+ "description": "Suppress non-error diagnostics."
7326
+ },
7327
+ {
7328
+ "name": "--debug",
7329
+ "description": "Emit sanitized diagnostic traces."
7330
+ },
7331
+ {
7332
+ "name": "--api-url",
7333
+ "description": "Override the Budget Builder API base URL."
7334
+ },
7335
+ {
7336
+ "name": "--no-browser",
7337
+ "description": "Print the authorization URL without opening a browser."
7338
+ },
7339
+ {
7340
+ "name": "--allow-state-change",
7341
+ "description": "Allow a Budget Builder state change in non-interactive use."
7342
+ },
7343
+ {
7344
+ "name": "--allow-email",
7345
+ "description": "Allow sending email in non-interactive use."
7346
+ },
7347
+ {
7348
+ "name": "--allow-external-write",
7349
+ "description": "Allow writes to external systems in non-interactive use."
7350
+ },
7351
+ {
7352
+ "name": "--allow-delete",
7353
+ "description": "Allow deleting data in non-interactive use."
7354
+ },
7355
+ {
7356
+ "name": "--allow-financial-write",
7357
+ "description": "Allow financial-record changes in non-interactive use."
7358
+ }
7359
+ ],
7360
+ "argumentMode": "legacy-passthrough",
7361
+ "effects": ["state-change"],
7362
+ "legacyTarget": "update-contact-person"
7363
+ },
7364
+ {
7365
+ "path": ["supplier", "list"],
7366
+ "legacyAliases": ["list-suppliers", "list_suppliers"],
7367
+ "summary": "List suppliers.",
7368
+ "globalOptions": [
7369
+ {
7370
+ "name": "--help",
7371
+ "description": "Show help for this command."
7372
+ },
7373
+ {
7374
+ "name": "--quiet",
7375
+ "description": "Suppress non-error diagnostics."
7376
+ },
7377
+ {
7378
+ "name": "--debug",
7379
+ "description": "Emit sanitized diagnostic traces."
7380
+ },
7381
+ {
7382
+ "name": "--api-url",
7383
+ "description": "Override the Budget Builder API base URL."
7384
+ },
7385
+ {
7386
+ "name": "--no-browser",
7387
+ "description": "Print the authorization URL without opening a browser."
7388
+ },
7389
+ {
7390
+ "name": "--allow-state-change",
7391
+ "description": "Allow a Budget Builder state change in non-interactive use."
7392
+ },
7393
+ {
7394
+ "name": "--allow-email",
7395
+ "description": "Allow sending email in non-interactive use."
7396
+ },
7397
+ {
7398
+ "name": "--allow-external-write",
7399
+ "description": "Allow writes to external systems in non-interactive use."
7400
+ },
7401
+ {
7402
+ "name": "--allow-delete",
7403
+ "description": "Allow deleting data in non-interactive use."
7404
+ },
7405
+ {
7406
+ "name": "--allow-financial-write",
7407
+ "description": "Allow financial-record changes in non-interactive use."
7408
+ },
7409
+ {
7410
+ "name": "--name <text>",
7411
+ "description": "Filter supplier name or email."
7412
+ },
7413
+ {
7414
+ "name": "--createdBy <csv>",
7415
+ "description": "Filter by creator IDs."
7416
+ },
7417
+ {
7418
+ "name": "--gstRegistered <true|false>",
7419
+ "description": "Filter GST registration."
7420
+ },
7421
+ {
7422
+ "name": "--status <csv>",
7423
+ "description": "Filter approval statuses; ALL means no status filter."
7424
+ },
7425
+ {
7426
+ "name": "--supplierTags <csv>",
7427
+ "description": "Filter by supplier tag IDs."
7428
+ },
7429
+ {
7430
+ "name": "--active <true|false>",
7431
+ "description": "Active by default; false selects archived."
7432
+ },
7433
+ {
7434
+ "name": "--limit <1-100>",
7435
+ "description": "Bounded page size (default 10). Retired page/perPage flags are rejected."
7436
+ },
7437
+ {
7438
+ "name": "--cursor <token>",
7439
+ "description": "Opaque nextCursor or previousCursor from items/pageInfo."
7440
+ },
7441
+ {
7442
+ "name": "--direction <forward|backward>",
7443
+ "description": "Forward by default; backward requires a cursor."
7444
+ },
7445
+ {
7446
+ "name": "--sortBy <field>",
7447
+ "description": "name, email, phone, gstRegistered, status, active, createdAt or updatedAt."
7448
+ },
7449
+ {
7450
+ "name": "--sortDir <asc|desc>",
7451
+ "description": "Descending createdAt by default."
7452
+ },
7453
+ {
7454
+ "name": "--sort <json>",
7455
+ "description": "Ordered {id,desc} array for multi-column sorting; cannot combine with sortBy/sortDir."
7456
+ }
7457
+ ],
7458
+ "argumentMode": "legacy-passthrough",
7459
+ "effects": [],
7460
+ "legacyTarget": "list-suppliers"
7461
+ },
7462
+ {
7463
+ "path": ["supplier", "count"],
7464
+ "legacyAliases": ["count-suppliers", "count_suppliers"],
7465
+ "summary": "Count Suppliers.",
7466
+ "globalOptions": [
7467
+ {
7468
+ "name": "--help",
7469
+ "description": "Show help for this command."
7470
+ },
7471
+ {
7472
+ "name": "--quiet",
7473
+ "description": "Suppress non-error diagnostics."
7474
+ },
7475
+ {
7476
+ "name": "--debug",
7477
+ "description": "Emit sanitized diagnostic traces."
7478
+ },
7479
+ {
7480
+ "name": "--api-url",
7481
+ "description": "Override the Budget Builder API base URL."
7482
+ },
7483
+ {
7484
+ "name": "--no-browser",
7485
+ "description": "Print the authorization URL without opening a browser."
7486
+ },
7487
+ {
7488
+ "name": "--allow-state-change",
7489
+ "description": "Allow a Budget Builder state change in non-interactive use."
7490
+ },
7491
+ {
7492
+ "name": "--allow-email",
7493
+ "description": "Allow sending email in non-interactive use."
7494
+ },
7495
+ {
7496
+ "name": "--allow-external-write",
7497
+ "description": "Allow writes to external systems in non-interactive use."
7498
+ },
7499
+ {
7500
+ "name": "--allow-delete",
7501
+ "description": "Allow deleting data in non-interactive use."
7502
+ },
7503
+ {
7504
+ "name": "--allow-financial-write",
7505
+ "description": "Allow financial-record changes in non-interactive use."
7506
+ },
7507
+ {
7508
+ "name": "--name <text>",
7509
+ "description": "Filter supplier name or email."
7510
+ },
7511
+ {
7512
+ "name": "--createdBy <csv>",
7513
+ "description": "Filter by creator IDs."
7514
+ },
7515
+ {
7516
+ "name": "--gstRegistered <true|false>",
7517
+ "description": "Filter GST registration."
7518
+ },
7519
+ {
7520
+ "name": "--status <csv>",
7521
+ "description": "Filter approval statuses."
7522
+ },
7523
+ {
7524
+ "name": "--supplierTags <csv>",
7525
+ "description": "Filter by supplier tag IDs."
7526
+ },
7527
+ {
7528
+ "name": "--active <true|false>",
7529
+ "description": "Active by default; false selects archived. No pagination/sort flags."
7530
+ }
7531
+ ],
7532
+ "argumentMode": "legacy-passthrough",
7533
+ "effects": [],
7534
+ "legacyTarget": "count-suppliers"
7535
+ },
7536
+ {
7537
+ "path": ["supplier", "create"],
7538
+ "legacyAliases": ["create-supplier", "create_supplier"],
7539
+ "summary": "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.",
7540
+ "globalOptions": [
7541
+ {
7542
+ "name": "--help",
7543
+ "description": "Show help for this command."
7544
+ },
7545
+ {
7546
+ "name": "--quiet",
7547
+ "description": "Suppress non-error diagnostics."
7548
+ },
7549
+ {
7550
+ "name": "--debug",
7551
+ "description": "Emit sanitized diagnostic traces."
7552
+ },
7553
+ {
7554
+ "name": "--api-url",
7555
+ "description": "Override the Budget Builder API base URL."
7556
+ },
7557
+ {
7558
+ "name": "--no-browser",
7559
+ "description": "Print the authorization URL without opening a browser."
7560
+ },
7561
+ {
7562
+ "name": "--allow-state-change",
7563
+ "description": "Allow a Budget Builder state change in non-interactive use."
7564
+ },
7565
+ {
7566
+ "name": "--allow-email",
7567
+ "description": "Allow sending email in non-interactive use."
7568
+ },
7569
+ {
7570
+ "name": "--allow-external-write",
7571
+ "description": "Allow writes to external systems in non-interactive use."
7572
+ },
7573
+ {
7574
+ "name": "--allow-delete",
7575
+ "description": "Allow deleting data in non-interactive use."
7576
+ },
7577
+ {
7578
+ "name": "--allow-financial-write",
7579
+ "description": "Allow financial-record changes in non-interactive use."
7580
+ }
7581
+ ],
7582
+ "argumentMode": "legacy-passthrough",
7583
+ "effects": ["state-change", "email", "external-write"],
7584
+ "legacyTarget": "create-supplier"
7585
+ },
7586
+ {
7587
+ "path": ["supplier", "update"],
7588
+ "legacyAliases": ["update-supplier", "update_supplier"],
7589
+ "summary": "Update Supplier.",
7590
+ "globalOptions": [
7591
+ {
7592
+ "name": "--help",
7593
+ "description": "Show help for this command."
7594
+ },
7595
+ {
7596
+ "name": "--quiet",
7597
+ "description": "Suppress non-error diagnostics."
7598
+ },
7599
+ {
7600
+ "name": "--debug",
7601
+ "description": "Emit sanitized diagnostic traces."
7602
+ },
7603
+ {
7604
+ "name": "--api-url",
7605
+ "description": "Override the Budget Builder API base URL."
7606
+ },
7607
+ {
7608
+ "name": "--no-browser",
7609
+ "description": "Print the authorization URL without opening a browser."
7610
+ },
7611
+ {
7612
+ "name": "--allow-state-change",
7613
+ "description": "Allow a Budget Builder state change in non-interactive use."
7614
+ },
7615
+ {
7616
+ "name": "--allow-email",
7617
+ "description": "Allow sending email in non-interactive use."
7618
+ },
7619
+ {
7620
+ "name": "--allow-external-write",
7621
+ "description": "Allow writes to external systems in non-interactive use."
7622
+ },
7623
+ {
7624
+ "name": "--allow-delete",
7625
+ "description": "Allow deleting data in non-interactive use."
7626
+ },
7627
+ {
7628
+ "name": "--allow-financial-write",
7629
+ "description": "Allow financial-record changes in non-interactive use."
7630
+ }
7631
+ ],
7632
+ "argumentMode": "legacy-passthrough",
7633
+ "effects": ["state-change", "email", "external-write"],
7634
+ "legacyTarget": "update-supplier"
7635
+ },
7636
+ {
7637
+ "path": ["supplier", "delete"],
7638
+ "legacyAliases": ["delete-suppliers", "delete_suppliers"],
7639
+ "summary": "Delete Suppliers.",
7640
+ "globalOptions": [
7641
+ {
7642
+ "name": "--help",
7643
+ "description": "Show help for this command."
7644
+ },
7645
+ {
7646
+ "name": "--quiet",
7647
+ "description": "Suppress non-error diagnostics."
7648
+ },
7649
+ {
7650
+ "name": "--debug",
7651
+ "description": "Emit sanitized diagnostic traces."
7652
+ },
7653
+ {
7654
+ "name": "--api-url",
7655
+ "description": "Override the Budget Builder API base URL."
7656
+ },
7657
+ {
7658
+ "name": "--no-browser",
7659
+ "description": "Print the authorization URL without opening a browser."
7660
+ },
7661
+ {
7662
+ "name": "--allow-state-change",
7663
+ "description": "Allow a Budget Builder state change in non-interactive use."
7664
+ },
7665
+ {
7666
+ "name": "--allow-email",
7667
+ "description": "Allow sending email in non-interactive use."
7668
+ },
7669
+ {
7670
+ "name": "--allow-external-write",
7671
+ "description": "Allow writes to external systems in non-interactive use."
7672
+ },
7673
+ {
7674
+ "name": "--allow-delete",
7675
+ "description": "Allow deleting data in non-interactive use."
7676
+ },
7677
+ {
7678
+ "name": "--allow-financial-write",
7679
+ "description": "Allow financial-record changes in non-interactive use."
7680
+ }
7681
+ ],
7682
+ "argumentMode": "legacy-passthrough",
7683
+ "effects": ["state-change", "delete", "external-write"],
7684
+ "legacyTarget": "delete-suppliers"
7685
+ },
7686
+ {
7687
+ "path": ["supplier", "reactivate"],
7688
+ "legacyAliases": ["reactivate-suppliers", "reactivate_suppliers"],
7689
+ "summary": "Reactivate Suppliers.",
7690
+ "globalOptions": [
7691
+ {
7692
+ "name": "--help",
7693
+ "description": "Show help for this command."
7694
+ },
7695
+ {
7696
+ "name": "--quiet",
7697
+ "description": "Suppress non-error diagnostics."
7698
+ },
7699
+ {
7700
+ "name": "--debug",
7701
+ "description": "Emit sanitized diagnostic traces."
7702
+ },
7703
+ {
7704
+ "name": "--api-url",
7705
+ "description": "Override the Budget Builder API base URL."
7706
+ },
7707
+ {
7708
+ "name": "--no-browser",
7709
+ "description": "Print the authorization URL without opening a browser."
7710
+ },
7711
+ {
7712
+ "name": "--allow-state-change",
7713
+ "description": "Allow a Budget Builder state change in non-interactive use."
7714
+ },
7715
+ {
7716
+ "name": "--allow-email",
7717
+ "description": "Allow sending email in non-interactive use."
7718
+ },
7719
+ {
7720
+ "name": "--allow-external-write",
7721
+ "description": "Allow writes to external systems in non-interactive use."
7722
+ },
7723
+ {
7724
+ "name": "--allow-delete",
7725
+ "description": "Allow deleting data in non-interactive use."
7726
+ },
7727
+ {
7728
+ "name": "--allow-financial-write",
7729
+ "description": "Allow financial-record changes in non-interactive use."
7730
+ }
7731
+ ],
7732
+ "argumentMode": "legacy-passthrough",
7733
+ "effects": ["state-change", "external-write"],
7734
+ "legacyTarget": "reactivate-suppliers"
7735
+ },
7736
+ {
7737
+ "path": ["supplier", "certification", "create"],
7738
+ "legacyAliases": ["create-certification", "create_certification"],
7739
+ "summary": "Create Certification.",
7740
+ "globalOptions": [
7741
+ {
7742
+ "name": "--help",
7743
+ "description": "Show help for this command."
7744
+ },
7745
+ {
7746
+ "name": "--quiet",
7747
+ "description": "Suppress non-error diagnostics."
7748
+ },
7749
+ {
7750
+ "name": "--debug",
7751
+ "description": "Emit sanitized diagnostic traces."
7752
+ },
7753
+ {
7754
+ "name": "--api-url",
7755
+ "description": "Override the Budget Builder API base URL."
7756
+ },
7757
+ {
7758
+ "name": "--no-browser",
7759
+ "description": "Print the authorization URL without opening a browser."
7760
+ },
7761
+ {
7762
+ "name": "--allow-state-change",
7763
+ "description": "Allow a Budget Builder state change in non-interactive use."
7764
+ },
7765
+ {
7766
+ "name": "--allow-email",
7767
+ "description": "Allow sending email in non-interactive use."
7768
+ },
7769
+ {
7770
+ "name": "--allow-external-write",
7771
+ "description": "Allow writes to external systems in non-interactive use."
7772
+ },
7773
+ {
7774
+ "name": "--allow-delete",
7775
+ "description": "Allow deleting data in non-interactive use."
7776
+ },
7777
+ {
7778
+ "name": "--allow-financial-write",
7779
+ "description": "Allow financial-record changes in non-interactive use."
7780
+ }
7781
+ ],
7782
+ "argumentMode": "legacy-passthrough",
7783
+ "effects": ["state-change"],
7784
+ "legacyTarget": "create-certification"
7785
+ },
7786
+ {
7787
+ "path": ["supplier", "payment-method", "create"],
7788
+ "legacyAliases": ["create-payment-method", "create_payment_method"],
7789
+ "summary": "Create Payment Method.",
7790
+ "globalOptions": [
7791
+ {
7792
+ "name": "--help",
7793
+ "description": "Show help for this command."
7794
+ },
7795
+ {
7796
+ "name": "--quiet",
7797
+ "description": "Suppress non-error diagnostics."
7798
+ },
7799
+ {
7800
+ "name": "--debug",
7801
+ "description": "Emit sanitized diagnostic traces."
7802
+ },
7803
+ {
7804
+ "name": "--api-url",
7805
+ "description": "Override the Budget Builder API base URL."
7806
+ },
7807
+ {
7808
+ "name": "--no-browser",
7809
+ "description": "Print the authorization URL without opening a browser."
7810
+ },
7811
+ {
7812
+ "name": "--allow-state-change",
7813
+ "description": "Allow a Budget Builder state change in non-interactive use."
7814
+ },
7815
+ {
7816
+ "name": "--allow-email",
7817
+ "description": "Allow sending email in non-interactive use."
7818
+ },
7819
+ {
7820
+ "name": "--allow-external-write",
7821
+ "description": "Allow writes to external systems in non-interactive use."
7822
+ },
7823
+ {
7824
+ "name": "--allow-delete",
7825
+ "description": "Allow deleting data in non-interactive use."
7826
+ },
7827
+ {
7828
+ "name": "--allow-financial-write",
7829
+ "description": "Allow financial-record changes in non-interactive use."
7830
+ }
7831
+ ],
7832
+ "argumentMode": "legacy-passthrough",
7833
+ "effects": ["state-change"],
7834
+ "legacyTarget": "create-payment-method"
7835
+ },
7836
+ {
7837
+ "path": ["supplier", "role", "create"],
7838
+ "legacyAliases": ["create-supplier-role", "create_supplier_role"],
7839
+ "summary": "Create Supplier Role.",
7840
+ "globalOptions": [
7841
+ {
7842
+ "name": "--help",
7843
+ "description": "Show help for this command."
7844
+ },
7845
+ {
7846
+ "name": "--quiet",
7847
+ "description": "Suppress non-error diagnostics."
7848
+ },
7849
+ {
7850
+ "name": "--debug",
7851
+ "description": "Emit sanitized diagnostic traces."
7852
+ },
7853
+ {
7854
+ "name": "--api-url",
7855
+ "description": "Override the Budget Builder API base URL."
7856
+ },
7857
+ {
7858
+ "name": "--no-browser",
7859
+ "description": "Print the authorization URL without opening a browser."
7860
+ },
7861
+ {
7862
+ "name": "--allow-state-change",
7863
+ "description": "Allow a Budget Builder state change in non-interactive use."
7864
+ },
7865
+ {
7866
+ "name": "--allow-email",
7867
+ "description": "Allow sending email in non-interactive use."
7868
+ },
7869
+ {
7870
+ "name": "--allow-external-write",
7871
+ "description": "Allow writes to external systems in non-interactive use."
7872
+ },
7873
+ {
7874
+ "name": "--allow-delete",
7875
+ "description": "Allow deleting data in non-interactive use."
7876
+ },
7877
+ {
7878
+ "name": "--allow-financial-write",
7879
+ "description": "Allow financial-record changes in non-interactive use."
7880
+ }
7881
+ ],
7882
+ "argumentMode": "legacy-passthrough",
7883
+ "effects": ["state-change"],
7884
+ "legacyTarget": "create-supplier-role"
7885
+ },
7886
+ {
7887
+ "path": ["supplier", "tag", "create"],
7888
+ "legacyAliases": ["create-supplier-tag", "create_supplier_tag"],
7889
+ "summary": "Create Supplier Tag.",
5463
7890
  "globalOptions": [
5464
7891
  {
5465
7892
  "name": "--help",
@@ -5503,13 +7930,13 @@
5503
7930
  }
5504
7931
  ],
5505
7932
  "argumentMode": "legacy-passthrough",
5506
- "effects": [],
5507
- "legacyTarget": "get-project"
7933
+ "effects": ["state-change"],
7934
+ "legacyTarget": "create-supplier-tag"
5508
7935
  },
5509
7936
  {
5510
- "path": ["project", "hub", "status"],
5511
- "legacyAliases": ["get-project-hub-status", "get_project_hub_status"],
5512
- "summary": "Get project hub status.",
7937
+ "path": ["supplier", "analytics", "get"],
7938
+ "legacyAliases": ["get-supplier-analytics", "get_supplier_analytics"],
7939
+ "summary": "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.",
5513
7940
  "globalOptions": [
5514
7941
  {
5515
7942
  "name": "--help",
@@ -5550,16 +7977,28 @@
5550
7977
  {
5551
7978
  "name": "--allow-financial-write",
5552
7979
  "description": "Allow financial-record changes in non-interactive use."
7980
+ },
7981
+ {
7982
+ "name": "--limit <1-100>",
7983
+ "description": "Rows per page. Output is { items, pageInfo }."
7984
+ },
7985
+ {
7986
+ "name": "--cursor <token>",
7987
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
7988
+ },
7989
+ {
7990
+ "name": "--direction <forward|backward>",
7991
+ "description": "forward (default) or backward; backward needs --cursor."
5553
7992
  }
5554
7993
  ],
5555
7994
  "argumentMode": "legacy-passthrough",
5556
7995
  "effects": [],
5557
- "legacyTarget": "get-project-hub-status"
7996
+ "legacyTarget": "get-supplier-analytics"
5558
7997
  },
5559
7998
  {
5560
- "path": ["project", "hub", "setup"],
5561
- "legacyAliases": ["setup-project-hub", "setup_project_hub"],
5562
- "summary": "Setup Project Hub.",
7999
+ "path": ["supplier", "analytics", "count"],
8000
+ "legacyAliases": ["count-supplier-analytics", "count_supplier_analytics"],
8001
+ "summary": "Count Supplier Analytics.",
5563
8002
  "globalOptions": [
5564
8003
  {
5565
8004
  "name": "--help",
@@ -5603,16 +8042,13 @@
5603
8042
  }
5604
8043
  ],
5605
8044
  "argumentMode": "legacy-passthrough",
5606
- "effects": ["state-change", "external-write"],
5607
- "legacyTarget": "setup-project-hub"
8045
+ "effects": [],
8046
+ "legacyTarget": "count-supplier-analytics"
5608
8047
  },
5609
8048
  {
5610
- "path": ["project", "hub", "sync"],
5611
- "legacyAliases": [
5612
- "sync-project-hub-commercial-documents",
5613
- "sync_project_hub_commercial_documents"
5614
- ],
5615
- "summary": "Sync Project Hub Commercial Documents.",
8049
+ "path": ["item", "list"],
8050
+ "legacyAliases": ["list-items", "list_items"],
8051
+ "summary": "List one cursor page of catalogue items ({ items, pageInfo }; --limit/--cursor/--direction, optional --sortBy/--sortDir). --page/--perPage are rejected.",
5616
8052
  "globalOptions": [
5617
8053
  {
5618
8054
  "name": "--help",
@@ -5653,16 +8089,28 @@
5653
8089
  {
5654
8090
  "name": "--allow-financial-write",
5655
8091
  "description": "Allow financial-record changes in non-interactive use."
8092
+ },
8093
+ {
8094
+ "name": "--limit <1-100>",
8095
+ "description": "Rows per page. Output is { items, pageInfo }."
8096
+ },
8097
+ {
8098
+ "name": "--cursor <token>",
8099
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
8100
+ },
8101
+ {
8102
+ "name": "--direction <forward|backward>",
8103
+ "description": "forward (default) or backward; backward needs --cursor."
5656
8104
  }
5657
8105
  ],
5658
8106
  "argumentMode": "legacy-passthrough",
5659
- "effects": ["state-change", "external-write"],
5660
- "legacyTarget": "sync-project-hub-commercial-documents"
8107
+ "effects": [],
8108
+ "legacyTarget": "list-items"
5661
8109
  },
5662
8110
  {
5663
- "path": ["project", "create"],
5664
- "legacyAliases": ["create-project", "create_project"],
5665
- "summary": "Create a project linked to an existing Asana Deals lead task. Supply --asanaTaskId in non-interactive use; interactive use searches for and selects a lead task (optionally --asanaSearch). The Slack channel is resolved from the selected Asana task unless all three Slack channel flags are supplied. For a new direct client, create the lead task using the website form first.",
8111
+ "path": ["item", "count"],
8112
+ "legacyAliases": ["count-items", "count_items"],
8113
+ "summary": "Count catalogue items matching filters: total plus category and supplier facets (each ignores its own filter).",
5666
8114
  "globalOptions": [
5667
8115
  {
5668
8116
  "name": "--help",
@@ -5706,13 +8154,13 @@
5706
8154
  }
5707
8155
  ],
5708
8156
  "argumentMode": "legacy-passthrough",
5709
- "effects": ["state-change", "external-write"],
5710
- "legacyTarget": "create-project"
8157
+ "effects": [],
8158
+ "legacyTarget": "count-items"
5711
8159
  },
5712
8160
  {
5713
- "path": ["project", "update"],
5714
- "legacyAliases": ["update-project", "update_project"],
5715
- "summary": "Update Project.",
8161
+ "path": ["item", "get"],
8162
+ "legacyAliases": ["get-item", "get_item"],
8163
+ "summary": "Get item.",
5716
8164
  "globalOptions": [
5717
8165
  {
5718
8166
  "name": "--help",
@@ -5756,13 +8204,16 @@
5756
8204
  }
5757
8205
  ],
5758
8206
  "argumentMode": "legacy-passthrough",
5759
- "effects": ["state-change", "external-write"],
5760
- "legacyTarget": "update-project"
8207
+ "effects": [],
8208
+ "legacyTarget": "get-item"
5761
8209
  },
5762
8210
  {
5763
- "path": ["project", "delete"],
5764
- "legacyAliases": ["delete-project", "delete_project"],
5765
- "summary": "Delete Project.",
8211
+ "path": ["item", "sync", "status"],
8212
+ "legacyAliases": [
8213
+ "get-item-quickbooks-sync-status",
8214
+ "get_item_quickbooks_sync_status"
8215
+ ],
8216
+ "summary": "Read saved item QuickBooks synchronization status without provider calls or polling; use itemId.",
5766
8217
  "globalOptions": [
5767
8218
  {
5768
8219
  "name": "--help",
@@ -5806,16 +8257,13 @@
5806
8257
  }
5807
8258
  ],
5808
8259
  "argumentMode": "legacy-passthrough",
5809
- "effects": ["state-change", "delete", "external-write"],
5810
- "legacyTarget": "delete-project"
8260
+ "effects": [],
8261
+ "legacyTarget": "get-item-quickbooks-sync-status"
5811
8262
  },
5812
8263
  {
5813
- "path": ["project", "reconciliation", "check"],
5814
- "legacyAliases": [
5815
- "check-project-reconciliation",
5816
- "check_project_reconciliation"
5817
- ],
5818
- "summary": "Check Project Reconciliation.",
8264
+ "path": ["item", "create"],
8265
+ "legacyAliases": ["create-item", "create_item"],
8266
+ "summary": "Create Item.",
5819
8267
  "globalOptions": [
5820
8268
  {
5821
8269
  "name": "--help",
@@ -5859,13 +8307,13 @@
5859
8307
  }
5860
8308
  ],
5861
8309
  "argumentMode": "legacy-passthrough",
5862
- "effects": [],
5863
- "legacyTarget": "check-project-reconciliation"
8310
+ "effects": ["state-change", "external-write"],
8311
+ "legacyTarget": "create-item"
5864
8312
  },
5865
8313
  {
5866
- "path": ["project", "reconcile"],
5867
- "legacyAliases": ["reconcile-project", "reconcile_project"],
5868
- "summary": "Reconcile Project.",
8314
+ "path": ["item", "update"],
8315
+ "legacyAliases": ["update-item", "update_item"],
8316
+ "summary": "Update Item.",
5869
8317
  "globalOptions": [
5870
8318
  {
5871
8319
  "name": "--help",
@@ -5910,12 +8358,12 @@
5910
8358
  ],
5911
8359
  "argumentMode": "legacy-passthrough",
5912
8360
  "effects": ["state-change", "external-write"],
5913
- "legacyTarget": "reconcile-project"
8361
+ "legacyTarget": "update-item"
5914
8362
  },
5915
8363
  {
5916
- "path": ["project", "complete"],
5917
- "legacyAliases": ["complete-project", "complete_project"],
5918
- "summary": "Complete Project.",
8364
+ "path": ["item", "archive"],
8365
+ "legacyAliases": ["archive-items", "archive_items"],
8366
+ "summary": "Archive Items.",
5919
8367
  "globalOptions": [
5920
8368
  {
5921
8369
  "name": "--help",
@@ -5959,13 +8407,13 @@
5959
8407
  }
5960
8408
  ],
5961
8409
  "argumentMode": "legacy-passthrough",
5962
- "effects": ["state-change", "delete", "external-write", "financial-write"],
5963
- "legacyTarget": "complete-project"
8410
+ "effects": ["state-change"],
8411
+ "legacyTarget": "archive-items"
5964
8412
  },
5965
8413
  {
5966
- "path": ["project", "quickbooks", "import"],
5967
- "legacyAliases": ["import-qbo-project", "import_qbo_project"],
5968
- "summary": "Import Qbo Project.",
8414
+ "path": ["item", "delete"],
8415
+ "legacyAliases": ["delete-item", "delete_item"],
8416
+ "summary": "Delete Item.",
5969
8417
  "globalOptions": [
5970
8418
  {
5971
8419
  "name": "--help",
@@ -6009,13 +8457,13 @@
6009
8457
  }
6010
8458
  ],
6011
8459
  "argumentMode": "legacy-passthrough",
6012
- "effects": ["state-change", "external-write"],
6013
- "legacyTarget": "import-qbo-project"
8460
+ "effects": ["state-change", "delete", "external-write"],
8461
+ "legacyTarget": "delete-item"
6014
8462
  },
6015
8463
  {
6016
- "path": ["project", "status", "update"],
6017
- "legacyAliases": ["update-project-status", "update_project_status"],
6018
- "summary": "Update Project Status.",
8464
+ "path": ["item", "category", "list"],
8465
+ "legacyAliases": ["list-item-categories", "list_item_categories"],
8466
+ "summary": "List one cursor page of active item categories ({ items, pageInfo }; --limit/--cursor/--direction, optional --name/--sortBy/--sortDir). --page/--perPage are rejected.",
6019
8467
  "globalOptions": [
6020
8468
  {
6021
8469
  "name": "--help",
@@ -6056,16 +8504,28 @@
6056
8504
  {
6057
8505
  "name": "--allow-financial-write",
6058
8506
  "description": "Allow financial-record changes in non-interactive use."
8507
+ },
8508
+ {
8509
+ "name": "--limit <1-100>",
8510
+ "description": "Rows per page. Output is { items, pageInfo }."
8511
+ },
8512
+ {
8513
+ "name": "--cursor <token>",
8514
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
8515
+ },
8516
+ {
8517
+ "name": "--direction <forward|backward>",
8518
+ "description": "forward (default) or backward; backward needs --cursor."
6059
8519
  }
6060
8520
  ],
6061
8521
  "argumentMode": "legacy-passthrough",
6062
- "effects": ["state-change", "delete", "external-write", "financial-write"],
6063
- "legacyTarget": "update-project-status"
8522
+ "effects": [],
8523
+ "legacyTarget": "list-item-categories"
6064
8524
  },
6065
8525
  {
6066
- "path": ["contact", "list"],
6067
- "legacyAliases": ["list-contacts", "list_contacts"],
6068
- "summary": "List contacts.",
8526
+ "path": ["item", "category", "count"],
8527
+ "legacyAliases": ["count-item-categories", "count_item_categories"],
8528
+ "summary": "Count active item categories matching --name: { totalCount }.",
6069
8529
  "globalOptions": [
6070
8530
  {
6071
8531
  "name": "--help",
@@ -6110,12 +8570,12 @@
6110
8570
  ],
6111
8571
  "argumentMode": "legacy-passthrough",
6112
8572
  "effects": [],
6113
- "legacyTarget": "list-contacts"
8573
+ "legacyTarget": "count-item-categories"
6114
8574
  },
6115
8575
  {
6116
- "path": ["contact", "create"],
6117
- "legacyAliases": ["create-contact-person", "create_contact_person"],
6118
- "summary": "Create Contact Person.",
8576
+ "path": ["item", "category", "create"],
8577
+ "legacyAliases": ["create-item-category", "create_item_category"],
8578
+ "summary": "Create Item Category.",
6119
8579
  "globalOptions": [
6120
8580
  {
6121
8581
  "name": "--help",
@@ -6159,13 +8619,13 @@
6159
8619
  }
6160
8620
  ],
6161
8621
  "argumentMode": "legacy-passthrough",
6162
- "effects": ["state-change"],
6163
- "legacyTarget": "create-contact-person"
8622
+ "effects": ["state-change", "external-write"],
8623
+ "legacyTarget": "create-item-category"
6164
8624
  },
6165
8625
  {
6166
- "path": ["contact", "update"],
6167
- "legacyAliases": ["update-contact-person", "update_contact_person"],
6168
- "summary": "Update Contact Person.",
8626
+ "path": ["item", "category", "update"],
8627
+ "legacyAliases": ["update-item-category", "update_item_category"],
8628
+ "summary": "Update Item Category.",
6169
8629
  "globalOptions": [
6170
8630
  {
6171
8631
  "name": "--help",
@@ -6209,13 +8669,13 @@
6209
8669
  }
6210
8670
  ],
6211
8671
  "argumentMode": "legacy-passthrough",
6212
- "effects": ["state-change"],
6213
- "legacyTarget": "update-contact-person"
8672
+ "effects": ["state-change", "external-write"],
8673
+ "legacyTarget": "update-item-category"
6214
8674
  },
6215
8675
  {
6216
- "path": ["supplier", "list"],
6217
- "legacyAliases": ["list-suppliers", "list_suppliers"],
6218
- "summary": "List suppliers.",
8676
+ "path": ["item", "category", "delete"],
8677
+ "legacyAliases": ["delete-item-categories", "delete_item_categories"],
8678
+ "summary": "Delete Item Categories.",
6219
8679
  "globalOptions": [
6220
8680
  {
6221
8681
  "name": "--help",
@@ -6259,13 +8719,13 @@
6259
8719
  }
6260
8720
  ],
6261
8721
  "argumentMode": "legacy-passthrough",
6262
- "effects": [],
6263
- "legacyTarget": "list-suppliers"
8722
+ "effects": ["state-change", "delete"],
8723
+ "legacyTarget": "delete-item-categories"
6264
8724
  },
6265
8725
  {
6266
- "path": ["supplier", "create"],
6267
- "legacyAliases": ["create-supplier", "create_supplier"],
6268
- "summary": "Create Supplier.",
8726
+ "path": ["user", "list"],
8727
+ "legacyAliases": ["list-users", "list_users"],
8728
+ "summary": "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.",
6269
8729
  "globalOptions": [
6270
8730
  {
6271
8731
  "name": "--help",
@@ -6306,16 +8766,28 @@
6306
8766
  {
6307
8767
  "name": "--allow-financial-write",
6308
8768
  "description": "Allow financial-record changes in non-interactive use."
8769
+ },
8770
+ {
8771
+ "name": "--q <text>",
8772
+ "description": "Search user names and emails (name A–Z). A bare --q is rejected; use -q/--quiet to hide logs."
8773
+ },
8774
+ {
8775
+ "name": "--limit <1-100>",
8776
+ "description": "Rows per page. Output is { items, pageInfo }."
8777
+ },
8778
+ {
8779
+ "name": "--cursor <token>",
8780
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
6309
8781
  }
6310
8782
  ],
6311
8783
  "argumentMode": "legacy-passthrough",
6312
- "effects": ["state-change", "email", "external-write"],
6313
- "legacyTarget": "create-supplier"
8784
+ "effects": [],
8785
+ "legacyTarget": "list-users"
6314
8786
  },
6315
8787
  {
6316
- "path": ["supplier", "update"],
6317
- "legacyAliases": ["update-supplier", "update_supplier"],
6318
- "summary": "Update Supplier.",
8788
+ "path": ["user", "count"],
8789
+ "legacyAliases": ["count-users", "count_users"],
8790
+ "summary": "Count Users.",
6319
8791
  "globalOptions": [
6320
8792
  {
6321
8793
  "name": "--help",
@@ -6359,13 +8831,13 @@
6359
8831
  }
6360
8832
  ],
6361
8833
  "argumentMode": "legacy-passthrough",
6362
- "effects": ["state-change", "email", "external-write"],
6363
- "legacyTarget": "update-supplier"
8834
+ "effects": [],
8835
+ "legacyTarget": "count-users"
6364
8836
  },
6365
8837
  {
6366
- "path": ["supplier", "delete"],
6367
- "legacyAliases": ["delete-suppliers", "delete_suppliers"],
6368
- "summary": "Delete Suppliers.",
8838
+ "path": ["user", "create"],
8839
+ "legacyAliases": ["create-user", "create_user"],
8840
+ "summary": "Create User.",
6369
8841
  "globalOptions": [
6370
8842
  {
6371
8843
  "name": "--help",
@@ -6409,13 +8881,13 @@
6409
8881
  }
6410
8882
  ],
6411
8883
  "argumentMode": "legacy-passthrough",
6412
- "effects": ["state-change", "delete", "external-write"],
6413
- "legacyTarget": "delete-suppliers"
8884
+ "effects": ["state-change"],
8885
+ "legacyTarget": "create-user"
6414
8886
  },
6415
8887
  {
6416
- "path": ["supplier", "reactivate"],
6417
- "legacyAliases": ["reactivate-suppliers", "reactivate_suppliers"],
6418
- "summary": "Reactivate Suppliers.",
8888
+ "path": ["user", "api-key", "create"],
8889
+ "legacyAliases": ["create-api-key", "create_api_key"],
8890
+ "summary": "Create Api Key.",
6419
8891
  "globalOptions": [
6420
8892
  {
6421
8893
  "name": "--help",
@@ -6459,13 +8931,13 @@
6459
8931
  }
6460
8932
  ],
6461
8933
  "argumentMode": "legacy-passthrough",
6462
- "effects": ["state-change", "external-write"],
6463
- "legacyTarget": "reactivate-suppliers"
8934
+ "effects": ["state-change"],
8935
+ "legacyTarget": "create-api-key"
6464
8936
  },
6465
8937
  {
6466
- "path": ["supplier", "certification", "create"],
6467
- "legacyAliases": ["create-certification", "create_certification"],
6468
- "summary": "Create Certification.",
8938
+ "path": ["user", "api-key", "list"],
8939
+ "legacyAliases": ["list-api-keys", "list_api_keys"],
8940
+ "summary": "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)",
6469
8941
  "globalOptions": [
6470
8942
  {
6471
8943
  "name": "--help",
@@ -6506,16 +8978,24 @@
6506
8978
  {
6507
8979
  "name": "--allow-financial-write",
6508
8980
  "description": "Allow financial-record changes in non-interactive use."
8981
+ },
8982
+ {
8983
+ "name": "--limit <1-100>",
8984
+ "description": "Rows per page. Output is { items, pageInfo }."
8985
+ },
8986
+ {
8987
+ "name": "--cursor <token>",
8988
+ "description": "pageInfo.nextCursor from the last page, unchanged; pages forward only."
6509
8989
  }
6510
8990
  ],
6511
8991
  "argumentMode": "legacy-passthrough",
6512
- "effects": ["state-change"],
6513
- "legacyTarget": "create-certification"
8992
+ "effects": [],
8993
+ "legacyTarget": "list-api-keys"
6514
8994
  },
6515
8995
  {
6516
- "path": ["supplier", "payment-method", "create"],
6517
- "legacyAliases": ["create-payment-method", "create_payment_method"],
6518
- "summary": "Create Payment Method.",
8996
+ "path": ["user", "api-key", "revoke"],
8997
+ "legacyAliases": ["revoke-api-key", "revoke_api_key"],
8998
+ "summary": "Revoke Api Key.",
6519
8999
  "globalOptions": [
6520
9000
  {
6521
9001
  "name": "--help",
@@ -6560,12 +9040,12 @@
6560
9040
  ],
6561
9041
  "argumentMode": "legacy-passthrough",
6562
9042
  "effects": ["state-change"],
6563
- "legacyTarget": "create-payment-method"
9043
+ "legacyTarget": "revoke-api-key"
6564
9044
  },
6565
9045
  {
6566
- "path": ["supplier", "role", "create"],
6567
- "legacyAliases": ["create-supplier-role", "create_supplier_role"],
6568
- "summary": "Create Supplier Role.",
9046
+ "path": ["user", "performance", "get"],
9047
+ "legacyAliases": ["get-user-performance", "get_user_performance"],
9048
+ "summary": "Get user performance.",
6569
9049
  "globalOptions": [
6570
9050
  {
6571
9051
  "name": "--help",
@@ -6609,13 +9089,13 @@
6609
9089
  }
6610
9090
  ],
6611
9091
  "argumentMode": "legacy-passthrough",
6612
- "effects": ["state-change"],
6613
- "legacyTarget": "create-supplier-role"
9092
+ "effects": [],
9093
+ "legacyTarget": "get-user-performance"
6614
9094
  },
6615
9095
  {
6616
- "path": ["supplier", "tag", "create"],
6617
- "legacyAliases": ["create-supplier-tag", "create_supplier_tag"],
6618
- "summary": "Create Supplier Tag.",
9096
+ "path": ["dashboard", "get"],
9097
+ "legacyAliases": ["get-dashboard", "get_dashboard"],
9098
+ "summary": "Get dashboard.",
6619
9099
  "globalOptions": [
6620
9100
  {
6621
9101
  "name": "--help",
@@ -6659,13 +9139,13 @@
6659
9139
  }
6660
9140
  ],
6661
9141
  "argumentMode": "legacy-passthrough",
6662
- "effects": ["state-change"],
6663
- "legacyTarget": "create-supplier-tag"
9142
+ "effects": [],
9143
+ "legacyTarget": "get-dashboard"
6664
9144
  },
6665
9145
  {
6666
- "path": ["supplier", "analytics", "get"],
6667
- "legacyAliases": ["get-supplier-analytics", "get_supplier_analytics"],
6668
- "summary": "Get supplier analytics.",
9146
+ "path": ["dashboard", "monthly-metrics", "get"],
9147
+ "legacyAliases": ["get-monthly-metrics", "get_monthly_metrics"],
9148
+ "summary": "Get monthly metrics.",
6669
9149
  "globalOptions": [
6670
9150
  {
6671
9151
  "name": "--help",
@@ -6710,12 +9190,12 @@
6710
9190
  ],
6711
9191
  "argumentMode": "legacy-passthrough",
6712
9192
  "effects": [],
6713
- "legacyTarget": "get-supplier-analytics"
9193
+ "legacyTarget": "get-monthly-metrics"
6714
9194
  },
6715
9195
  {
6716
- "path": ["item", "list"],
6717
- "legacyAliases": ["list-items", "list_items"],
6718
- "summary": "List items.",
9196
+ "path": ["dashboard", "system-overview", "get"],
9197
+ "legacyAliases": ["get-system-overview", "get_system_overview"],
9198
+ "summary": "Get system overview.",
6719
9199
  "globalOptions": [
6720
9200
  {
6721
9201
  "name": "--help",
@@ -6760,12 +9240,12 @@
6760
9240
  ],
6761
9241
  "argumentMode": "legacy-passthrough",
6762
9242
  "effects": [],
6763
- "legacyTarget": "list-items"
9243
+ "legacyTarget": "get-system-overview"
6764
9244
  },
6765
9245
  {
6766
- "path": ["item", "get"],
6767
- "legacyAliases": ["get-item", "get_item"],
6768
- "summary": "Get item.",
9246
+ "path": ["dashboard", "estimate-performance", "get"],
9247
+ "legacyAliases": ["get-estimate-performance", "get_estimate_performance"],
9248
+ "summary": "Get estimate performance.",
6769
9249
  "globalOptions": [
6770
9250
  {
6771
9251
  "name": "--help",
@@ -6810,12 +9290,12 @@
6810
9290
  ],
6811
9291
  "argumentMode": "legacy-passthrough",
6812
9292
  "effects": [],
6813
- "legacyTarget": "get-item"
9293
+ "legacyTarget": "get-estimate-performance"
6814
9294
  },
6815
9295
  {
6816
- "path": ["item", "create"],
6817
- "legacyAliases": ["create-item", "create_item"],
6818
- "summary": "Create Item.",
9296
+ "path": ["dashboard", "financial-overview", "get"],
9297
+ "legacyAliases": ["get-financial-overview", "get_financial_overview"],
9298
+ "summary": "Get financial overview.",
6819
9299
  "globalOptions": [
6820
9300
  {
6821
9301
  "name": "--help",
@@ -6859,13 +9339,13 @@
6859
9339
  }
6860
9340
  ],
6861
9341
  "argumentMode": "legacy-passthrough",
6862
- "effects": ["state-change", "external-write"],
6863
- "legacyTarget": "create-item"
9342
+ "effects": [],
9343
+ "legacyTarget": "get-financial-overview"
6864
9344
  },
6865
9345
  {
6866
- "path": ["item", "update"],
6867
- "legacyAliases": ["update-item", "update_item"],
6868
- "summary": "Update Item.",
9346
+ "path": ["error", "recent", "list"],
9347
+ "legacyAliases": ["get-recent-errors", "get_recent_errors"],
9348
+ "summary": "Get recent errors.",
6869
9349
  "globalOptions": [
6870
9350
  {
6871
9351
  "name": "--help",
@@ -6906,16 +9386,40 @@
6906
9386
  {
6907
9387
  "name": "--allow-financial-write",
6908
9388
  "description": "Allow financial-record changes in non-interactive use."
9389
+ },
9390
+ {
9391
+ "name": "--cursor <token>",
9392
+ "description": "Pass a returned pageInfo boundary unchanged, with the same filters."
9393
+ },
9394
+ {
9395
+ "name": "--direction <direction>",
9396
+ "description": "forward (default) uses nextCursor; backward uses previousCursor."
9397
+ },
9398
+ {
9399
+ "name": "--limit <number>",
9400
+ "description": "1–100 rows (default 10). Returns items and pageInfo, without a total."
9401
+ },
9402
+ {
9403
+ "name": "--severity <severity>",
9404
+ "description": "Error severity or ALL."
9405
+ },
9406
+ {
9407
+ "name": "--status <status>",
9408
+ "description": "Error status or ALL."
9409
+ },
9410
+ {
9411
+ "name": "--timeFrame <period>",
9412
+ "description": "all_time (default), last_30_days, last_3_months, last_6_months or last_1_year."
6909
9413
  }
6910
9414
  ],
6911
9415
  "argumentMode": "legacy-passthrough",
6912
- "effects": ["state-change", "external-write"],
6913
- "legacyTarget": "update-item"
9416
+ "effects": [],
9417
+ "legacyTarget": "get-recent-errors"
6914
9418
  },
6915
9419
  {
6916
- "path": ["item", "archive"],
6917
- "legacyAliases": ["archive-items", "archive_items"],
6918
- "summary": "Archive Items.",
9420
+ "path": ["error", "recent", "count"],
9421
+ "legacyAliases": ["count-errors", "count_errors"],
9422
+ "summary": "Count Errors.",
6919
9423
  "globalOptions": [
6920
9424
  {
6921
9425
  "name": "--help",
@@ -6956,16 +9460,28 @@
6956
9460
  {
6957
9461
  "name": "--allow-financial-write",
6958
9462
  "description": "Allow financial-record changes in non-interactive use."
9463
+ },
9464
+ {
9465
+ "name": "--severity <severity>",
9466
+ "description": "Error severity or ALL."
9467
+ },
9468
+ {
9469
+ "name": "--status <status>",
9470
+ "description": "Error status or ALL."
9471
+ },
9472
+ {
9473
+ "name": "--timeFrame <period>",
9474
+ "description": "Same filters as error recent list; returns independent totalCount."
6959
9475
  }
6960
9476
  ],
6961
9477
  "argumentMode": "legacy-passthrough",
6962
- "effects": ["state-change"],
6963
- "legacyTarget": "archive-items"
9478
+ "effects": [],
9479
+ "legacyTarget": "count-errors"
6964
9480
  },
6965
9481
  {
6966
- "path": ["item", "delete"],
6967
- "legacyAliases": ["delete-item", "delete_item"],
6968
- "summary": "Delete Item.",
9482
+ "path": ["error", "get"],
9483
+ "legacyAliases": ["get-error", "get_error"],
9484
+ "summary": "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.",
6969
9485
  "globalOptions": [
6970
9486
  {
6971
9487
  "name": "--help",
@@ -7009,13 +9525,13 @@
7009
9525
  }
7010
9526
  ],
7011
9527
  "argumentMode": "legacy-passthrough",
7012
- "effects": ["state-change", "delete", "external-write"],
7013
- "legacyTarget": "delete-item"
9528
+ "effects": [],
9529
+ "legacyTarget": "get-error"
7014
9530
  },
7015
9531
  {
7016
- "path": ["item", "category", "list"],
7017
- "legacyAliases": ["list-item-categories", "list_item_categories"],
7018
- "summary": "List item categories.",
9532
+ "path": ["error", "metrics", "get"],
9533
+ "legacyAliases": ["get-error-metrics", "get_error_metrics"],
9534
+ "summary": "Get error metrics.",
7019
9535
  "globalOptions": [
7020
9536
  {
7021
9537
  "name": "--help",
@@ -7060,12 +9576,15 @@
7060
9576
  ],
7061
9577
  "argumentMode": "legacy-passthrough",
7062
9578
  "effects": [],
7063
- "legacyTarget": "list-item-categories"
9579
+ "legacyTarget": "get-error-metrics"
7064
9580
  },
7065
9581
  {
7066
- "path": ["item", "category", "create"],
7067
- "legacyAliases": ["create-item-category", "create_item_category"],
7068
- "summary": "Create Item Category.",
9582
+ "path": ["integration", "operation", "list"],
9583
+ "legacyAliases": [
9584
+ "list-integration-operations",
9585
+ "list_integration_operations"
9586
+ ],
9587
+ "summary": "List one cursor page of integration operations, newest first ({ items, pageInfo }; --limit/--cursor/--direction). --page/--perPage are rejected. Admin only.",
7069
9588
  "globalOptions": [
7070
9589
  {
7071
9590
  "name": "--help",
@@ -7106,16 +9625,31 @@
7106
9625
  {
7107
9626
  "name": "--allow-financial-write",
7108
9627
  "description": "Allow financial-record changes in non-interactive use."
9628
+ },
9629
+ {
9630
+ "name": "--limit <1-100>",
9631
+ "description": "Rows per page. Output is { items, pageInfo }."
9632
+ },
9633
+ {
9634
+ "name": "--cursor <token>",
9635
+ "description": "pageInfo.nextCursor (or previousCursor with --direction backward) from the last page, unchanged; keep the same filters and sort."
9636
+ },
9637
+ {
9638
+ "name": "--direction <forward|backward>",
9639
+ "description": "forward (default) or backward; backward needs --cursor."
7109
9640
  }
7110
9641
  ],
7111
9642
  "argumentMode": "legacy-passthrough",
7112
- "effects": ["state-change", "external-write"],
7113
- "legacyTarget": "create-item-category"
9643
+ "effects": [],
9644
+ "legacyTarget": "list-integration-operations"
7114
9645
  },
7115
9646
  {
7116
- "path": ["item", "category", "update"],
7117
- "legacyAliases": ["update-item-category", "update_item_category"],
7118
- "summary": "Update Item Category.",
9647
+ "path": ["integration", "operation", "count"],
9648
+ "legacyAliases": [
9649
+ "count-integration-operations",
9650
+ "count_integration_operations"
9651
+ ],
9652
+ "summary": "Provider filter options for integration operations: { filterOptions }. No total; filter flags are accepted but do not change the result. Admin only.",
7119
9653
  "globalOptions": [
7120
9654
  {
7121
9655
  "name": "--help",
@@ -7159,13 +9693,13 @@
7159
9693
  }
7160
9694
  ],
7161
9695
  "argumentMode": "legacy-passthrough",
7162
- "effects": ["state-change", "external-write"],
7163
- "legacyTarget": "update-item-category"
9696
+ "effects": [],
9697
+ "legacyTarget": "count-integration-operations"
7164
9698
  },
7165
9699
  {
7166
- "path": ["item", "category", "delete"],
7167
- "legacyAliases": ["delete-item-categories", "delete_item_categories"],
7168
- "summary": "Delete Item Categories.",
9700
+ "path": ["integration", "operation", "get"],
9701
+ "legacyAliases": ["get-integration-operation", "get_integration_operation"],
9702
+ "summary": "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>.",
7169
9703
  "globalOptions": [
7170
9704
  {
7171
9705
  "name": "--help",
@@ -7209,13 +9743,16 @@
7209
9743
  }
7210
9744
  ],
7211
9745
  "argumentMode": "legacy-passthrough",
7212
- "effects": ["state-change", "delete"],
7213
- "legacyTarget": "delete-item-categories"
9746
+ "effects": [],
9747
+ "legacyTarget": "get-integration-operation"
7214
9748
  },
7215
9749
  {
7216
- "path": ["user", "list"],
7217
- "legacyAliases": ["list-users", "list_users"],
7218
- "summary": "List users.",
9750
+ "path": ["integration", "operation", "retry"],
9751
+ "legacyAliases": [
9752
+ "retry-integration-operation",
9753
+ "retry_integration_operation"
9754
+ ],
9755
+ "summary": "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>.",
7219
9756
  "globalOptions": [
7220
9757
  {
7221
9758
  "name": "--help",
@@ -7259,13 +9796,16 @@
7259
9796
  }
7260
9797
  ],
7261
9798
  "argumentMode": "legacy-passthrough",
7262
- "effects": [],
7263
- "legacyTarget": "list-users"
9799
+ "effects": ["state-change", "external-write"],
9800
+ "legacyTarget": "retry-integration-operation"
7264
9801
  },
7265
9802
  {
7266
- "path": ["user", "create"],
7267
- "legacyAliases": ["create-user", "create_user"],
7268
- "summary": "Create User.",
9803
+ "path": ["integration", "operation", "reconcile-resource"],
9804
+ "legacyAliases": [
9805
+ "reconcile-resource-operation",
9806
+ "reconcile_resource_operation"
9807
+ ],
9808
+ "summary": "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>.",
7269
9809
  "globalOptions": [
7270
9810
  {
7271
9811
  "name": "--help",
@@ -7310,12 +9850,12 @@
7310
9850
  ],
7311
9851
  "argumentMode": "legacy-passthrough",
7312
9852
  "effects": ["state-change"],
7313
- "legacyTarget": "create-user"
9853
+ "legacyTarget": "reconcile-resource-operation"
7314
9854
  },
7315
9855
  {
7316
- "path": ["user", "api-key", "create"],
7317
- "legacyAliases": ["create-api-key", "create_api_key"],
7318
- "summary": "Create Api Key.",
9856
+ "path": ["webhook", "event-type", "list"],
9857
+ "legacyAliases": ["list-webhook-event-types", "list_webhook_event_types"],
9858
+ "summary": "List the outbound webhook event catalogue with group and live/planned status.",
7319
9859
  "globalOptions": [
7320
9860
  {
7321
9861
  "name": "--help",
@@ -7359,13 +9899,13 @@
7359
9899
  }
7360
9900
  ],
7361
9901
  "argumentMode": "legacy-passthrough",
7362
- "effects": ["state-change"],
7363
- "legacyTarget": "create-api-key"
9902
+ "effects": [],
9903
+ "legacyTarget": "list-webhook-event-types"
7364
9904
  },
7365
9905
  {
7366
- "path": ["user", "api-key", "list"],
7367
- "legacyAliases": ["list-api-keys", "list_api_keys"],
7368
- "summary": "List api keys.",
9906
+ "path": ["webhook", "endpoint", "list"],
9907
+ "legacyAliases": ["list-webhook-endpoints", "list_webhook_endpoints"],
9908
+ "summary": "List webhook endpoints.",
7369
9909
  "globalOptions": [
7370
9910
  {
7371
9911
  "name": "--help",
@@ -7410,12 +9950,12 @@
7410
9950
  ],
7411
9951
  "argumentMode": "legacy-passthrough",
7412
9952
  "effects": [],
7413
- "legacyTarget": "list-api-keys"
9953
+ "legacyTarget": "list-webhook-endpoints"
7414
9954
  },
7415
9955
  {
7416
- "path": ["user", "api-key", "revoke"],
7417
- "legacyAliases": ["revoke-api-key", "revoke_api_key"],
7418
- "summary": "Revoke Api Key.",
9956
+ "path": ["webhook", "endpoint", "get"],
9957
+ "legacyAliases": ["get-webhook-endpoint", "get_webhook_endpoint"],
9958
+ "summary": "Get webhook endpoint.",
7419
9959
  "globalOptions": [
7420
9960
  {
7421
9961
  "name": "--help",
@@ -7459,13 +9999,13 @@
7459
9999
  }
7460
10000
  ],
7461
10001
  "argumentMode": "legacy-passthrough",
7462
- "effects": ["state-change"],
7463
- "legacyTarget": "revoke-api-key"
10002
+ "effects": [],
10003
+ "legacyTarget": "get-webhook-endpoint"
7464
10004
  },
7465
10005
  {
7466
- "path": ["user", "performance", "get"],
7467
- "legacyAliases": ["get-user-performance", "get_user_performance"],
7468
- "summary": "Get user performance.",
10006
+ "path": ["webhook", "endpoint", "create"],
10007
+ "legacyAliases": ["create-webhook-endpoint", "create_webhook_endpoint"],
10008
+ "summary": "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.",
7469
10009
  "globalOptions": [
7470
10010
  {
7471
10011
  "name": "--help",
@@ -7509,13 +10049,13 @@
7509
10049
  }
7510
10050
  ],
7511
10051
  "argumentMode": "legacy-passthrough",
7512
- "effects": [],
7513
- "legacyTarget": "get-user-performance"
10052
+ "effects": ["state-change"],
10053
+ "legacyTarget": "create-webhook-endpoint"
7514
10054
  },
7515
10055
  {
7516
- "path": ["dashboard", "get"],
7517
- "legacyAliases": ["get-dashboard", "get_dashboard"],
7518
- "summary": "Get dashboard.",
10056
+ "path": ["webhook", "endpoint", "update"],
10057
+ "legacyAliases": ["update-webhook-endpoint", "update_webhook_endpoint"],
10058
+ "summary": "Update Webhook Endpoint.",
7519
10059
  "globalOptions": [
7520
10060
  {
7521
10061
  "name": "--help",
@@ -7559,13 +10099,13 @@
7559
10099
  }
7560
10100
  ],
7561
10101
  "argumentMode": "legacy-passthrough",
7562
- "effects": [],
7563
- "legacyTarget": "get-dashboard"
10102
+ "effects": ["state-change"],
10103
+ "legacyTarget": "update-webhook-endpoint"
7564
10104
  },
7565
10105
  {
7566
- "path": ["dashboard", "monthly-metrics", "get"],
7567
- "legacyAliases": ["get-monthly-metrics", "get_monthly_metrics"],
7568
- "summary": "Get monthly metrics.",
10106
+ "path": ["webhook", "endpoint", "delete"],
10107
+ "legacyAliases": ["delete-webhook-endpoint", "delete_webhook_endpoint"],
10108
+ "summary": "Delete Webhook Endpoint.",
7569
10109
  "globalOptions": [
7570
10110
  {
7571
10111
  "name": "--help",
@@ -7609,13 +10149,13 @@
7609
10149
  }
7610
10150
  ],
7611
10151
  "argumentMode": "legacy-passthrough",
7612
- "effects": [],
7613
- "legacyTarget": "get-monthly-metrics"
10152
+ "effects": ["state-change", "delete"],
10153
+ "legacyTarget": "delete-webhook-endpoint"
7614
10154
  },
7615
10155
  {
7616
- "path": ["dashboard", "system-overview", "get"],
7617
- "legacyAliases": ["get-system-overview", "get_system_overview"],
7618
- "summary": "Get system overview.",
10156
+ "path": ["webhook", "secret", "rotate"],
10157
+ "legacyAliases": ["rotate-webhook-secret", "rotate_webhook_secret"],
10158
+ "summary": "Admin-only: issue a new signing secret; older secrets keep signing for --previousSecretTtlHours (default 24). Prints the new secret once. Argument: <endpointId>.",
7619
10159
  "globalOptions": [
7620
10160
  {
7621
10161
  "name": "--help",
@@ -7659,13 +10199,13 @@
7659
10199
  }
7660
10200
  ],
7661
10201
  "argumentMode": "legacy-passthrough",
7662
- "effects": [],
7663
- "legacyTarget": "get-system-overview"
10202
+ "effects": ["state-change"],
10203
+ "legacyTarget": "rotate-webhook-secret"
7664
10204
  },
7665
10205
  {
7666
- "path": ["dashboard", "estimate-performance", "get"],
7667
- "legacyAliases": ["get-estimate-performance", "get_estimate_performance"],
7668
- "summary": "Get estimate performance.",
10206
+ "path": ["webhook", "endpoint", "test"],
10207
+ "legacyAliases": ["send-webhook-test-event", "send_webhook_test_event"],
10208
+ "summary": "Admin-only: send a signed webhook.test event to one endpoint. Argument: <endpointId>.",
7669
10209
  "globalOptions": [
7670
10210
  {
7671
10211
  "name": "--help",
@@ -7709,13 +10249,13 @@
7709
10249
  }
7710
10250
  ],
7711
10251
  "argumentMode": "legacy-passthrough",
7712
- "effects": [],
7713
- "legacyTarget": "get-estimate-performance"
10252
+ "effects": ["state-change"],
10253
+ "legacyTarget": "send-webhook-test-event"
7714
10254
  },
7715
10255
  {
7716
- "path": ["dashboard", "financial-overview", "get"],
7717
- "legacyAliases": ["get-financial-overview", "get_financial_overview"],
7718
- "summary": "Get financial overview.",
10256
+ "path": ["webhook", "delivery", "list"],
10257
+ "legacyAliases": ["list-webhook-deliveries", "list_webhook_deliveries"],
10258
+ "summary": "List webhook deliveries.",
7719
10259
  "globalOptions": [
7720
10260
  {
7721
10261
  "name": "--help",
@@ -7760,12 +10300,12 @@
7760
10300
  ],
7761
10301
  "argumentMode": "legacy-passthrough",
7762
10302
  "effects": [],
7763
- "legacyTarget": "get-financial-overview"
10303
+ "legacyTarget": "list-webhook-deliveries"
7764
10304
  },
7765
10305
  {
7766
- "path": ["error", "recent", "list"],
7767
- "legacyAliases": ["get-recent-errors", "get_recent_errors"],
7768
- "summary": "Get recent errors.",
10306
+ "path": ["webhook", "delivery", "get"],
10307
+ "legacyAliases": ["get-webhook-delivery", "get_webhook_delivery"],
10308
+ "summary": "Admin-only: one webhook delivery with payload and attempts (status codes, errors, durations). Argument: <deliveryId>.",
7769
10309
  "globalOptions": [
7770
10310
  {
7771
10311
  "name": "--help",
@@ -7810,12 +10350,12 @@
7810
10350
  ],
7811
10351
  "argumentMode": "legacy-passthrough",
7812
10352
  "effects": [],
7813
- "legacyTarget": "get-recent-errors"
10353
+ "legacyTarget": "get-webhook-delivery"
7814
10354
  },
7815
10355
  {
7816
- "path": ["error", "metrics", "get"],
7817
- "legacyAliases": ["get-error-metrics", "get_error_metrics"],
7818
- "summary": "Get error metrics.",
10356
+ "path": ["webhook", "delivery", "replay"],
10357
+ "legacyAliases": ["replay-webhook-delivery", "replay_webhook_delivery"],
10358
+ "summary": "Admin-only: resend a finished webhook delivery with the same eventId on a fresh attempt chain. Argument: <deliveryId>.",
7819
10359
  "globalOptions": [
7820
10360
  {
7821
10361
  "name": "--help",
@@ -7859,16 +10399,13 @@
7859
10399
  }
7860
10400
  ],
7861
10401
  "argumentMode": "legacy-passthrough",
7862
- "effects": [],
7863
- "legacyTarget": "get-error-metrics"
10402
+ "effects": ["state-change", "external-write"],
10403
+ "legacyTarget": "replay-webhook-delivery"
7864
10404
  },
7865
10405
  {
7866
- "path": ["integration", "operation", "list"],
7867
- "legacyAliases": [
7868
- "list-integration-operations",
7869
- "list_integration_operations"
7870
- ],
7871
- "summary": "List integration operations.",
10406
+ "path": ["inbound", "source", "list"],
10407
+ "legacyAliases": ["list-inbound-sources", "list_inbound_sources"],
10408
+ "summary": "List inbound sources.",
7872
10409
  "globalOptions": [
7873
10410
  {
7874
10411
  "name": "--help",
@@ -7909,19 +10446,40 @@
7909
10446
  {
7910
10447
  "name": "--allow-financial-write",
7911
10448
  "description": "Allow financial-record changes in non-interactive use."
10449
+ },
10450
+ {
10451
+ "name": "--limit <n>",
10452
+ "description": "Rows per cursor page (1..100; default 25)."
10453
+ },
10454
+ {
10455
+ "name": "--cursor <token>",
10456
+ "description": "Opaque source continuation token returned by pageInfo."
10457
+ },
10458
+ {
10459
+ "name": "--direction <value>",
10460
+ "description": "forward or backward (default forward; backward requires cursor)."
10461
+ },
10462
+ {
10463
+ "name": "--search <text>",
10464
+ "description": "Search source name or Typeform form ID."
10465
+ },
10466
+ {
10467
+ "name": "--processingEnabled <boolean>",
10468
+ "description": "Filter processing enabled state."
10469
+ },
10470
+ {
10471
+ "name": "--processingMode <mode>",
10472
+ "description": "ACTIVE, COLLECT_ONLY or SHADOW."
7912
10473
  }
7913
10474
  ],
7914
10475
  "argumentMode": "legacy-passthrough",
7915
10476
  "effects": [],
7916
- "legacyTarget": "list-integration-operations"
10477
+ "legacyTarget": "list-inbound-sources"
7917
10478
  },
7918
10479
  {
7919
- "path": ["integration", "operation", "retry"],
7920
- "legacyAliases": [
7921
- "retry-integration-operation",
7922
- "retry_integration_operation"
7923
- ],
7924
- "summary": "Retry Integration Operation.",
10480
+ "path": ["inbound", "source", "count"],
10481
+ "legacyAliases": ["count-inbound-sources", "count_inbound_sources"],
10482
+ "summary": "Count Inbound Sources.",
7925
10483
  "globalOptions": [
7926
10484
  {
7927
10485
  "name": "--help",
@@ -7962,16 +10520,28 @@
7962
10520
  {
7963
10521
  "name": "--allow-financial-write",
7964
10522
  "description": "Allow financial-record changes in non-interactive use."
10523
+ },
10524
+ {
10525
+ "name": "--search <text>",
10526
+ "description": "Search source name or Typeform form ID."
10527
+ },
10528
+ {
10529
+ "name": "--processingEnabled <boolean>",
10530
+ "description": "Filter processing enabled state."
10531
+ },
10532
+ {
10533
+ "name": "--processingMode <mode>",
10534
+ "description": "ACTIVE, COLLECT_ONLY or SHADOW."
7965
10535
  }
7966
10536
  ],
7967
10537
  "argumentMode": "legacy-passthrough",
7968
- "effects": ["state-change", "external-write"],
7969
- "legacyTarget": "retry-integration-operation"
10538
+ "effects": [],
10539
+ "legacyTarget": "count-inbound-sources"
7970
10540
  },
7971
10541
  {
7972
- "path": ["inbound", "source", "list"],
7973
- "legacyAliases": ["list-inbound-sources", "list_inbound_sources"],
7974
- "summary": "List inbound sources.",
10542
+ "path": ["inbound", "source", "create"],
10543
+ "legacyAliases": ["create-inbound-source", "create_inbound_source"],
10544
+ "summary": "Create Inbound Source.",
7975
10545
  "globalOptions": [
7976
10546
  {
7977
10547
  "name": "--help",
@@ -8015,13 +10585,13 @@
8015
10585
  }
8016
10586
  ],
8017
10587
  "argumentMode": "legacy-passthrough",
8018
- "effects": [],
8019
- "legacyTarget": "list-inbound-sources"
10588
+ "effects": ["state-change"],
10589
+ "legacyTarget": "create-inbound-source"
8020
10590
  },
8021
10591
  {
8022
- "path": ["inbound", "source", "create"],
8023
- "legacyAliases": ["create-inbound-source", "create_inbound_source"],
8024
- "summary": "Create Inbound Source.",
10592
+ "path": ["inbound", "source", "get"],
10593
+ "legacyAliases": ["get-inbound-source", "get_inbound_source"],
10594
+ "summary": "Get inbound source.",
8025
10595
  "globalOptions": [
8026
10596
  {
8027
10597
  "name": "--help",
@@ -8065,13 +10635,13 @@
8065
10635
  }
8066
10636
  ],
8067
10637
  "argumentMode": "legacy-passthrough",
8068
- "effects": ["state-change"],
8069
- "legacyTarget": "create-inbound-source"
10638
+ "effects": [],
10639
+ "legacyTarget": "get-inbound-source"
8070
10640
  },
8071
10641
  {
8072
- "path": ["inbound", "source", "get"],
8073
- "legacyAliases": ["get-inbound-source", "get_inbound_source"],
8074
- "summary": "Get inbound source.",
10642
+ "path": ["inbound", "source", "update"],
10643
+ "legacyAliases": ["update-inbound-source", "update_inbound_source"],
10644
+ "summary": "Update Inbound Source.",
8075
10645
  "globalOptions": [
8076
10646
  {
8077
10647
  "name": "--help",
@@ -8115,13 +10685,13 @@
8115
10685
  }
8116
10686
  ],
8117
10687
  "argumentMode": "legacy-passthrough",
8118
- "effects": [],
8119
- "legacyTarget": "get-inbound-source"
10688
+ "effects": ["state-change"],
10689
+ "legacyTarget": "update-inbound-source"
8120
10690
  },
8121
10691
  {
8122
- "path": ["inbound", "source", "update"],
8123
- "legacyAliases": ["update-inbound-source", "update_inbound_source"],
8124
- "summary": "Update Inbound Source.",
10692
+ "path": ["inbound", "submission", "list"],
10693
+ "legacyAliases": ["list-inbound-submissions", "list_inbound_submissions"],
10694
+ "summary": "List inbound submissions.",
8125
10695
  "globalOptions": [
8126
10696
  {
8127
10697
  "name": "--help",
@@ -8162,16 +10732,28 @@
8162
10732
  {
8163
10733
  "name": "--allow-financial-write",
8164
10734
  "description": "Allow financial-record changes in non-interactive use."
10735
+ },
10736
+ {
10737
+ "name": "--limit <number>",
10738
+ "description": "Page size from 1 to 100 (default 25). Returns submissions, hasMore and nextCursor; no total."
10739
+ },
10740
+ {
10741
+ "name": "--cursor <token>",
10742
+ "description": "Pass the previous response's nextCursor unchanged. Omit for newest submissions. Replaces --page/--perPage."
10743
+ },
10744
+ {
10745
+ "name": "--sourceId <id>",
10746
+ "description": "Filter submissions to this source; keep the same filter while following cursors."
8165
10747
  }
8166
10748
  ],
8167
10749
  "argumentMode": "legacy-passthrough",
8168
- "effects": ["state-change"],
8169
- "legacyTarget": "update-inbound-source"
10750
+ "effects": [],
10751
+ "legacyTarget": "list-inbound-submissions"
8170
10752
  },
8171
10753
  {
8172
- "path": ["inbound", "submission", "list"],
8173
- "legacyAliases": ["list-inbound-submissions", "list_inbound_submissions"],
8174
- "summary": "List inbound submissions.",
10754
+ "path": ["inbound", "submission", "count"],
10755
+ "legacyAliases": ["count-inbound-submissions", "count_inbound_submissions"],
10756
+ "summary": "Count Inbound Submissions.",
8175
10757
  "globalOptions": [
8176
10758
  {
8177
10759
  "name": "--help",
@@ -8212,11 +10794,15 @@
8212
10794
  {
8213
10795
  "name": "--allow-financial-write",
8214
10796
  "description": "Allow financial-record changes in non-interactive use."
10797
+ },
10798
+ {
10799
+ "name": "--sourceId <id>",
10800
+ "description": "Optional source filter. Returns an independently calculated exact totalCount, not a list snapshot."
8215
10801
  }
8216
10802
  ],
8217
10803
  "argumentMode": "legacy-passthrough",
8218
10804
  "effects": [],
8219
- "legacyTarget": "list-inbound-submissions"
10805
+ "legacyTarget": "count-inbound-submissions"
8220
10806
  },
8221
10807
  {
8222
10808
  "path": ["inbound", "submission", "get"],