@workbuddy/cli-vnext 1.0.80 → 1.0.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1053 -40
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -4930,7 +4930,7 @@ var operations = [
4930
4930
  type: "string"
4931
4931
  },
4932
4932
  {
4933
- name: "technician",
4933
+ name: "pricebook",
4934
4934
  type: "string"
4935
4935
  },
4936
4936
  {
@@ -5339,7 +5339,7 @@ var operations = [
5339
5339
  type: "string",
5340
5340
  required: false,
5341
5341
  description: "Status filter",
5342
- enumValues: ["Normal", "Variation", "Cancelled", "Requested", "Pending Review", "Declined", "Deleted"]
5342
+ enumValues: ["Normal", "Variation", "Cancelled", "Deleted"]
5343
5343
  },
5344
5344
  {
5345
5345
  name: "invoicingStatus",
@@ -5506,24 +5506,791 @@ var operations = [
5506
5506
  commandPath: ["items", "list"],
5507
5507
  options: [
5508
5508
  {
5509
- name: "integrationId",
5510
- cliName: "integration-id",
5511
- optionKey: "integrationId",
5512
- source: "query",
5513
- type: "string",
5514
- required: true,
5515
- description: "External integration ID for the line item"
5516
- }
5517
- ],
5518
- hasRequestBody: false,
5519
- responseFields: [
5509
+ name: "integrationId",
5510
+ cliName: "integration-id",
5511
+ optionKey: "integrationId",
5512
+ source: "query",
5513
+ type: "string",
5514
+ required: true,
5515
+ description: "External integration ID for the line item"
5516
+ }
5517
+ ],
5518
+ hasRequestBody: false,
5519
+ responseFields: [
5520
+ {
5521
+ name: "items",
5522
+ type: "array"
5523
+ },
5524
+ {
5525
+ name: "pagination",
5526
+ type: "object"
5527
+ }
5528
+ ]
5529
+ },
5530
+ {
5531
+ operationId: "PublicApiPendingItemController_list",
5532
+ displayName: "Find a pending item",
5533
+ description: "Find a pending stage item by its external integration ID.",
5534
+ method: "GET",
5535
+ path: "/pending-items",
5536
+ commandPath: ["pending", "items", "list"],
5537
+ options: [
5538
+ {
5539
+ name: "integrationId",
5540
+ cliName: "integration-id",
5541
+ optionKey: "integrationId",
5542
+ source: "query",
5543
+ type: "string",
5544
+ required: true,
5545
+ description: "External integration ID for the pending item"
5546
+ }
5547
+ ],
5548
+ hasRequestBody: false,
5549
+ responseFields: [
5550
+ {
5551
+ name: "items",
5552
+ type: "array"
5553
+ },
5554
+ {
5555
+ name: "pagination",
5556
+ type: "object"
5557
+ }
5558
+ ]
5559
+ },
5560
+ {
5561
+ operationId: "PublicJobStagePendingItemController_list",
5562
+ displayName: "List stage pending items",
5563
+ description: "List items awaiting approval for a stage.",
5564
+ method: "GET",
5565
+ path: "/jobs/{id}/stages/{stageId}/pending-items",
5566
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "list"],
5567
+ options: [
5568
+ {
5569
+ name: "id",
5570
+ cliName: "id",
5571
+ optionKey: "id",
5572
+ source: "path",
5573
+ type: "string",
5574
+ required: true,
5575
+ description: "Job ID"
5576
+ },
5577
+ {
5578
+ name: "stageId",
5579
+ cliName: "stage-id",
5580
+ optionKey: "stageId",
5581
+ source: "path",
5582
+ type: "string",
5583
+ required: true,
5584
+ description: "Stage ID"
5585
+ },
5586
+ {
5587
+ name: "cursor",
5588
+ cliName: "cursor",
5589
+ optionKey: "cursor",
5590
+ source: "query",
5591
+ type: "string",
5592
+ required: false,
5593
+ description: "Pending item ID after which to continue"
5594
+ },
5595
+ {
5596
+ name: "limit",
5597
+ cliName: "limit",
5598
+ optionKey: "limit",
5599
+ source: "query",
5600
+ type: "number",
5601
+ required: false,
5602
+ description: "Maximum results (1-200)"
5603
+ }
5604
+ ],
5605
+ hasRequestBody: false,
5606
+ responseFields: [
5607
+ {
5608
+ name: "items",
5609
+ type: "array"
5610
+ },
5611
+ {
5612
+ name: "pagination",
5613
+ type: "object"
5614
+ }
5615
+ ]
5616
+ },
5617
+ {
5618
+ operationId: "PublicJobStagePendingItemController_create",
5619
+ displayName: "Create stage pending items",
5620
+ description: "Create one or more items awaiting approval.",
5621
+ method: "POST",
5622
+ path: "/jobs/{id}/stages/{stageId}/pending-items",
5623
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "create"],
5624
+ options: [
5625
+ {
5626
+ name: "id",
5627
+ cliName: "id",
5628
+ optionKey: "id",
5629
+ source: "path",
5630
+ type: "string",
5631
+ required: true,
5632
+ description: "Job ID"
5633
+ },
5634
+ {
5635
+ name: "stageId",
5636
+ cliName: "stage-id",
5637
+ optionKey: "stageId",
5638
+ source: "path",
5639
+ type: "string",
5640
+ required: true,
5641
+ description: "Stage ID"
5642
+ },
5643
+ {
5644
+ name: "items",
5645
+ cliName: "items",
5646
+ optionKey: "items",
5647
+ source: "body",
5648
+ type: "array",
5649
+ required: true,
5650
+ description: ""
5651
+ },
5652
+ {
5653
+ name: "raw-body",
5654
+ cliName: "raw-body",
5655
+ optionKey: "rawBody",
5656
+ source: "body",
5657
+ type: "object",
5658
+ required: false,
5659
+ description: "Raw request body JSON (overrides individual fields)"
5660
+ }
5661
+ ],
5662
+ hasRequestBody: true,
5663
+ responseFields: [
5664
+ {
5665
+ name: "items",
5666
+ type: "array"
5667
+ }
5668
+ ]
5669
+ },
5670
+ {
5671
+ operationId: "PublicJobStagePendingItemController_get",
5672
+ displayName: "Get stage pending item",
5673
+ description: "Get a specific pending item within a stage.",
5674
+ method: "GET",
5675
+ path: "/jobs/{id}/stages/{stageId}/pending-items/{itemId}",
5676
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "get"],
5677
+ options: [
5678
+ {
5679
+ name: "id",
5680
+ cliName: "id",
5681
+ optionKey: "id",
5682
+ source: "path",
5683
+ type: "string",
5684
+ required: true,
5685
+ description: "Job ID"
5686
+ },
5687
+ {
5688
+ name: "stageId",
5689
+ cliName: "stage-id",
5690
+ optionKey: "stageId",
5691
+ source: "path",
5692
+ type: "string",
5693
+ required: true,
5694
+ description: "Stage ID"
5695
+ },
5696
+ {
5697
+ name: "itemId",
5698
+ cliName: "item-id",
5699
+ optionKey: "itemId",
5700
+ source: "path",
5701
+ type: "string",
5702
+ required: true,
5703
+ description: "Pending item ID"
5704
+ }
5705
+ ],
5706
+ hasRequestBody: false,
5707
+ responseFields: [
5708
+ {
5709
+ name: "id",
5710
+ type: "string",
5711
+ description: "Entity ID"
5712
+ },
5713
+ {
5714
+ name: "jobId",
5715
+ type: "string",
5716
+ description: "Job ID or job number (e.g. J12345)"
5717
+ },
5718
+ {
5719
+ name: "stageId",
5720
+ type: "string",
5721
+ description: "Stage ID or stage number"
5722
+ },
5723
+ {
5724
+ name: "integrationId",
5725
+ type: "string",
5726
+ description: "integration ID"
5727
+ },
5728
+ {
5729
+ name: "code",
5730
+ type: "string"
5731
+ },
5732
+ {
5733
+ name: "description",
5734
+ type: "string",
5735
+ description: "Detailed description"
5736
+ },
5737
+ {
5738
+ name: "type",
5739
+ type: "string"
5740
+ },
5741
+ {
5742
+ name: "quantity",
5743
+ type: "number"
5744
+ },
5745
+ {
5746
+ name: "unit",
5747
+ type: "string"
5748
+ },
5749
+ {
5750
+ name: "location",
5751
+ type: "string"
5752
+ },
5753
+ {
5754
+ name: "note",
5755
+ type: "string"
5756
+ },
5757
+ {
5758
+ name: "itemStatus",
5759
+ type: "object"
5760
+ },
5761
+ {
5762
+ name: "buyPrice",
5763
+ type: "number"
5764
+ },
5765
+ {
5766
+ name: "sellPrice",
5767
+ type: "number"
5768
+ },
5769
+ {
5770
+ name: "invoicingStatus",
5771
+ type: "string"
5772
+ },
5773
+ {
5774
+ name: "suppliedBySubcontractor",
5775
+ type: "boolean"
5776
+ },
5777
+ {
5778
+ name: "createdAt",
5779
+ type: "string"
5780
+ },
5781
+ {
5782
+ name: "updatedAt",
5783
+ type: "string",
5784
+ description: "For optimistic concurrency — update fails if entity was modified after this timestamp"
5785
+ }
5786
+ ]
5787
+ },
5788
+ {
5789
+ operationId: "PublicJobStagePendingItemController_update",
5790
+ displayName: "Update stage pending item",
5791
+ description: "Update general pending-item fields. Use the status route for itemStatus.",
5792
+ method: "PATCH",
5793
+ path: "/jobs/{id}/stages/{stageId}/pending-items/{itemId}",
5794
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "update"],
5795
+ options: [
5796
+ {
5797
+ name: "id",
5798
+ cliName: "id",
5799
+ optionKey: "id",
5800
+ source: "path",
5801
+ type: "string",
5802
+ required: true,
5803
+ description: "Job ID"
5804
+ },
5805
+ {
5806
+ name: "stageId",
5807
+ cliName: "stage-id",
5808
+ optionKey: "stageId",
5809
+ source: "path",
5810
+ type: "string",
5811
+ required: true,
5812
+ description: "Stage ID"
5813
+ },
5814
+ {
5815
+ name: "itemId",
5816
+ cliName: "item-id",
5817
+ optionKey: "itemId",
5818
+ source: "path",
5819
+ type: "string",
5820
+ required: true,
5821
+ description: "Pending item ID"
5822
+ },
5823
+ {
5824
+ name: "updatedAt",
5825
+ cliName: "updated-at",
5826
+ optionKey: "updatedAt",
5827
+ source: "body",
5828
+ type: "string",
5829
+ required: false,
5830
+ description: "For optimistic concurrency — update fails if entity was modified after this timestamp",
5831
+ format: "date-time"
5832
+ },
5833
+ {
5834
+ name: "quantity",
5835
+ cliName: "quantity",
5836
+ optionKey: "quantity",
5837
+ source: "body",
5838
+ type: "number",
5839
+ required: false,
5840
+ description: ""
5841
+ },
5842
+ {
5843
+ name: "unit",
5844
+ cliName: "unit",
5845
+ optionKey: "unit",
5846
+ source: "body",
5847
+ type: "string",
5848
+ required: false,
5849
+ description: ""
5850
+ },
5851
+ {
5852
+ name: "location",
5853
+ cliName: "location",
5854
+ optionKey: "location",
5855
+ source: "body",
5856
+ type: "string",
5857
+ required: false,
5858
+ description: ""
5859
+ },
5860
+ {
5861
+ name: "note",
5862
+ cliName: "note",
5863
+ optionKey: "note",
5864
+ source: "body",
5865
+ type: "string",
5866
+ required: false,
5867
+ description: ""
5868
+ },
5869
+ {
5870
+ name: "buyPrice",
5871
+ cliName: "buy-price",
5872
+ optionKey: "buyPrice",
5873
+ source: "body",
5874
+ type: "number",
5875
+ required: false,
5876
+ description: ""
5877
+ },
5878
+ {
5879
+ name: "sellPrice",
5880
+ cliName: "sell-price",
5881
+ optionKey: "sellPrice",
5882
+ source: "body",
5883
+ type: "number",
5884
+ required: false,
5885
+ description: ""
5886
+ },
5887
+ {
5888
+ name: "invoicingStatus",
5889
+ cliName: "invoicing-status",
5890
+ optionKey: "invoicingStatus",
5891
+ source: "body",
5892
+ type: "string",
5893
+ required: false,
5894
+ description: "",
5895
+ enumValues: ["Billable", "No Charge", "Not Billable"]
5896
+ },
5897
+ {
5898
+ name: "suppliedBySubcontractor",
5899
+ cliName: "supplied-by-subcontractor",
5900
+ optionKey: "suppliedBySubcontractor",
5901
+ source: "body",
5902
+ type: "boolean",
5903
+ required: false,
5904
+ description: ""
5905
+ },
5906
+ {
5907
+ name: "raw-body",
5908
+ cliName: "raw-body",
5909
+ optionKey: "rawBody",
5910
+ source: "body",
5911
+ type: "object",
5912
+ required: false,
5913
+ description: "Raw request body JSON (overrides individual fields)"
5914
+ }
5915
+ ],
5916
+ hasRequestBody: true,
5917
+ responseFields: [
5918
+ {
5919
+ name: "id",
5920
+ type: "string",
5921
+ description: "Entity ID"
5922
+ },
5923
+ {
5924
+ name: "jobId",
5925
+ type: "string",
5926
+ description: "Job ID or job number (e.g. J12345)"
5927
+ },
5928
+ {
5929
+ name: "stageId",
5930
+ type: "string",
5931
+ description: "Stage ID or stage number"
5932
+ },
5933
+ {
5934
+ name: "integrationId",
5935
+ type: "string",
5936
+ description: "integration ID"
5937
+ },
5938
+ {
5939
+ name: "code",
5940
+ type: "string"
5941
+ },
5942
+ {
5943
+ name: "description",
5944
+ type: "string",
5945
+ description: "Detailed description"
5946
+ },
5947
+ {
5948
+ name: "type",
5949
+ type: "string"
5950
+ },
5951
+ {
5952
+ name: "quantity",
5953
+ type: "number"
5954
+ },
5955
+ {
5956
+ name: "unit",
5957
+ type: "string"
5958
+ },
5959
+ {
5960
+ name: "location",
5961
+ type: "string"
5962
+ },
5963
+ {
5964
+ name: "note",
5965
+ type: "string"
5966
+ },
5967
+ {
5968
+ name: "itemStatus",
5969
+ type: "object"
5970
+ },
5971
+ {
5972
+ name: "buyPrice",
5973
+ type: "number"
5974
+ },
5975
+ {
5976
+ name: "sellPrice",
5977
+ type: "number"
5978
+ },
5979
+ {
5980
+ name: "invoicingStatus",
5981
+ type: "string"
5982
+ },
5983
+ {
5984
+ name: "suppliedBySubcontractor",
5985
+ type: "boolean"
5986
+ },
5987
+ {
5988
+ name: "createdAt",
5989
+ type: "string"
5990
+ },
5991
+ {
5992
+ name: "updatedAt",
5993
+ type: "string",
5994
+ description: "For optimistic concurrency — update fails if entity was modified after this timestamp"
5995
+ }
5996
+ ]
5997
+ },
5998
+ {
5999
+ operationId: "PublicJobStagePendingItemController_delete",
6000
+ displayName: "Delete stage pending item",
6001
+ description: "Delete or decline a pending item according to tenant deletion settings.",
6002
+ method: "DELETE",
6003
+ path: "/jobs/{id}/stages/{stageId}/pending-items/{itemId}",
6004
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "delete"],
6005
+ options: [
6006
+ {
6007
+ name: "id",
6008
+ cliName: "id",
6009
+ optionKey: "id",
6010
+ source: "path",
6011
+ type: "string",
6012
+ required: true,
6013
+ description: "Job ID"
6014
+ },
6015
+ {
6016
+ name: "stageId",
6017
+ cliName: "stage-id",
6018
+ optionKey: "stageId",
6019
+ source: "path",
6020
+ type: "string",
6021
+ required: true,
6022
+ description: "Stage ID"
6023
+ },
6024
+ {
6025
+ name: "itemId",
6026
+ cliName: "item-id",
6027
+ optionKey: "itemId",
6028
+ source: "path",
6029
+ type: "string",
6030
+ required: true,
6031
+ description: "Pending item ID"
6032
+ }
6033
+ ],
6034
+ hasRequestBody: false,
6035
+ responseFields: [
6036
+ {
6037
+ name: "deleted",
6038
+ type: "boolean"
6039
+ }
6040
+ ]
6041
+ },
6042
+ {
6043
+ operationId: "PublicJobStagePendingItemController_updateStatus",
6044
+ displayName: "Update pending-item status",
6045
+ description: "Set the dedicated pending-item status. No general item fields are accepted.",
6046
+ method: "PATCH",
6047
+ path: "/jobs/{id}/stages/{stageId}/pending-items/{itemId}/status",
6048
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "status", "update-status"],
6049
+ options: [
6050
+ {
6051
+ name: "id",
6052
+ cliName: "id",
6053
+ optionKey: "id",
6054
+ source: "path",
6055
+ type: "string",
6056
+ required: true,
6057
+ description: "Job ID"
6058
+ },
6059
+ {
6060
+ name: "stageId",
6061
+ cliName: "stage-id",
6062
+ optionKey: "stageId",
6063
+ source: "path",
6064
+ type: "string",
6065
+ required: true,
6066
+ description: "Stage ID"
6067
+ },
6068
+ {
6069
+ name: "itemId",
6070
+ cliName: "item-id",
6071
+ optionKey: "itemId",
6072
+ source: "path",
6073
+ type: "string",
6074
+ required: true,
6075
+ description: "Pending item ID"
6076
+ },
6077
+ {
6078
+ name: "itemStatusId",
6079
+ cliName: "item-status-id",
6080
+ optionKey: "itemStatusId",
6081
+ source: "body",
6082
+ type: "string",
6083
+ required: true,
6084
+ description: "item status ID"
6085
+ },
6086
+ {
6087
+ name: "raw-body",
6088
+ cliName: "raw-body",
6089
+ optionKey: "rawBody",
6090
+ source: "body",
6091
+ type: "object",
6092
+ required: false,
6093
+ description: "Raw request body JSON (overrides individual fields)"
6094
+ }
6095
+ ],
6096
+ hasRequestBody: true,
6097
+ responseFields: [
6098
+ {
6099
+ name: "id",
6100
+ type: "string",
6101
+ description: "Entity ID"
6102
+ },
6103
+ {
6104
+ name: "jobId",
6105
+ type: "string",
6106
+ description: "Job ID or job number (e.g. J12345)"
6107
+ },
6108
+ {
6109
+ name: "stageId",
6110
+ type: "string",
6111
+ description: "Stage ID or stage number"
6112
+ },
6113
+ {
6114
+ name: "integrationId",
6115
+ type: "string",
6116
+ description: "integration ID"
6117
+ },
6118
+ {
6119
+ name: "code",
6120
+ type: "string"
6121
+ },
6122
+ {
6123
+ name: "description",
6124
+ type: "string",
6125
+ description: "Detailed description"
6126
+ },
6127
+ {
6128
+ name: "type",
6129
+ type: "string"
6130
+ },
6131
+ {
6132
+ name: "quantity",
6133
+ type: "number"
6134
+ },
6135
+ {
6136
+ name: "unit",
6137
+ type: "string"
6138
+ },
6139
+ {
6140
+ name: "location",
6141
+ type: "string"
6142
+ },
6143
+ {
6144
+ name: "note",
6145
+ type: "string"
6146
+ },
6147
+ {
6148
+ name: "itemStatus",
6149
+ type: "object"
6150
+ },
6151
+ {
6152
+ name: "buyPrice",
6153
+ type: "number"
6154
+ },
6155
+ {
6156
+ name: "sellPrice",
6157
+ type: "number"
6158
+ },
6159
+ {
6160
+ name: "invoicingStatus",
6161
+ type: "string"
6162
+ },
6163
+ {
6164
+ name: "suppliedBySubcontractor",
6165
+ type: "boolean"
6166
+ },
6167
+ {
6168
+ name: "createdAt",
6169
+ type: "string"
6170
+ },
6171
+ {
6172
+ name: "updatedAt",
6173
+ type: "string",
6174
+ description: "For optimistic concurrency — update fails if entity was modified after this timestamp"
6175
+ }
6176
+ ]
6177
+ },
6178
+ {
6179
+ operationId: "PublicJobStagePendingItemController_approve",
6180
+ displayName: "Approve stage pending item",
6181
+ description: "Approve a pending item and promote it to a standard stage item.",
6182
+ method: "POST",
6183
+ path: "/jobs/{id}/stages/{stageId}/pending-items/{itemId}/approve",
6184
+ commandPath: ["stages", "pending", "items", "stages", "pending-items", "approve"],
6185
+ options: [
6186
+ {
6187
+ name: "id",
6188
+ cliName: "id",
6189
+ optionKey: "id",
6190
+ source: "path",
6191
+ type: "string",
6192
+ required: true,
6193
+ description: "Job ID"
6194
+ },
6195
+ {
6196
+ name: "stageId",
6197
+ cliName: "stage-id",
6198
+ optionKey: "stageId",
6199
+ source: "path",
6200
+ type: "string",
6201
+ required: true,
6202
+ description: "Stage ID"
6203
+ },
6204
+ {
6205
+ name: "itemId",
6206
+ cliName: "item-id",
6207
+ optionKey: "itemId",
6208
+ source: "path",
6209
+ type: "string",
6210
+ required: true,
6211
+ description: "Pending item ID"
6212
+ }
6213
+ ],
6214
+ hasRequestBody: false,
6215
+ responseFields: [
6216
+ {
6217
+ name: "id",
6218
+ type: "string",
6219
+ description: "Entity ID"
6220
+ },
6221
+ {
6222
+ name: "jobId",
6223
+ type: "string",
6224
+ description: "Job ID or job number (e.g. J12345)"
6225
+ },
6226
+ {
6227
+ name: "stageId",
6228
+ type: "string",
6229
+ description: "Stage ID or stage number"
6230
+ },
6231
+ {
6232
+ name: "integrationId",
6233
+ type: "string",
6234
+ description: "integration ID"
6235
+ },
6236
+ {
6237
+ name: "code",
6238
+ type: "string"
6239
+ },
6240
+ {
6241
+ name: "description",
6242
+ type: "string",
6243
+ description: "Detailed description"
6244
+ },
6245
+ {
6246
+ name: "type",
6247
+ type: "string"
6248
+ },
6249
+ {
6250
+ name: "quantity",
6251
+ type: "number"
6252
+ },
6253
+ {
6254
+ name: "unit",
6255
+ type: "string"
6256
+ },
6257
+ {
6258
+ name: "location",
6259
+ type: "string"
6260
+ },
6261
+ {
6262
+ name: "note",
6263
+ type: "string"
6264
+ },
6265
+ {
6266
+ name: "status",
6267
+ type: "string",
6268
+ description: "Status filter"
6269
+ },
6270
+ {
6271
+ name: "buyPrice",
6272
+ type: "number"
6273
+ },
6274
+ {
6275
+ name: "sellPrice",
6276
+ type: "number"
6277
+ },
6278
+ {
6279
+ name: "invoicingStatus",
6280
+ type: "string"
6281
+ },
6282
+ {
6283
+ name: "suppliedBySubcontractor",
6284
+ type: "boolean"
6285
+ },
5520
6286
  {
5521
- name: "items",
5522
- type: "array"
6287
+ name: "createdAt",
6288
+ type: "string"
5523
6289
  },
5524
6290
  {
5525
- name: "pagination",
5526
- type: "object"
6291
+ name: "updatedAt",
6292
+ type: "string",
6293
+ description: "For optimistic concurrency — update fails if entity was modified after this timestamp"
5527
6294
  }
5528
6295
  ]
5529
6296
  },
@@ -5644,7 +6411,7 @@ var operations = [
5644
6411
  type: "string"
5645
6412
  },
5646
6413
  {
5647
- name: "technician",
6414
+ name: "pricebook",
5648
6415
  type: "string"
5649
6416
  },
5650
6417
  {
@@ -5894,7 +6661,7 @@ var operations = [
5894
6661
  type: "string"
5895
6662
  },
5896
6663
  {
5897
- name: "technician",
6664
+ name: "pricebook",
5898
6665
  type: "string"
5899
6666
  },
5900
6667
  {
@@ -6055,7 +6822,7 @@ var operations = [
6055
6822
  type: "string"
6056
6823
  },
6057
6824
  {
6058
- name: "technician",
6825
+ name: "pricebook",
6059
6826
  type: "string"
6060
6827
  },
6061
6828
  {
@@ -6131,7 +6898,7 @@ var operations = [
6131
6898
  {
6132
6899
  operationId: "PublicJobStageController_complete",
6133
6900
  displayName: "Complete a stage",
6134
- description: "Mark a stage as completed. Field work is done but stage may still need finalisation/billing.",
6901
+ description: "Mark a stage as completed. Field work is done but stage may still need finalisation/billing. Optional statusId selects a tenant Completed status from GET /settings/stage-statuses (systemStatus Completed); omit to use the system Completed status (MAI-2101).",
6135
6902
  method: "POST",
6136
6903
  path: "/stages/{id}/complete",
6137
6904
  commandPath: ["stages", "complete"],
@@ -6145,6 +6912,15 @@ var operations = [
6145
6912
  required: true,
6146
6913
  description: "Stage ID"
6147
6914
  },
6915
+ {
6916
+ name: "statusId",
6917
+ cliName: "status-id",
6918
+ optionKey: "statusId",
6919
+ source: "body",
6920
+ type: "string",
6921
+ required: false,
6922
+ description: "status ID"
6923
+ },
6148
6924
  {
6149
6925
  name: "completedDate",
6150
6926
  cliName: "completed-date",
@@ -6218,7 +6994,169 @@ var operations = [
6218
6994
  type: "string"
6219
6995
  },
6220
6996
  {
6221
- name: "technician",
6997
+ name: "pricebook",
6998
+ type: "string"
6999
+ },
7000
+ {
7001
+ name: "resources",
7002
+ type: "string"
7003
+ },
7004
+ {
7005
+ name: "startDate",
7006
+ type: "string",
7007
+ description: "Start date (ISO 8601 datetime)"
7008
+ },
7009
+ {
7010
+ name: "dueDate",
7011
+ type: "string",
7012
+ description: "Due date (ISO 8601 datetime)"
7013
+ },
7014
+ {
7015
+ name: "completedDate",
7016
+ type: "string",
7017
+ description: "Completion date (ISO 8601 datetime)"
7018
+ },
7019
+ {
7020
+ name: "completedBy",
7021
+ type: "string"
7022
+ },
7023
+ {
7024
+ name: "completedNote",
7025
+ type: "string"
7026
+ },
7027
+ {
7028
+ name: "finalisedDate",
7029
+ type: "string",
7030
+ description: "Finalisation date (ISO 8601 datetime)"
7031
+ },
7032
+ {
7033
+ name: "tags",
7034
+ type: "string",
7035
+ description: "Tag operation — use set, add, or remove (mutually exclusive: set vs add/remove)"
7036
+ },
7037
+ {
7038
+ name: "systemTags",
7039
+ type: "string"
7040
+ },
7041
+ {
7042
+ name: "schedulingTags",
7043
+ type: "string",
7044
+ description: "Scheduling tag operation — use set, add, or remove"
7045
+ },
7046
+ {
7047
+ name: "items",
7048
+ type: "array"
7049
+ },
7050
+ {
7051
+ name: "totals",
7052
+ type: "object"
7053
+ },
7054
+ {
7055
+ name: "customFields",
7056
+ type: "string",
7057
+ description: "Custom fields as key-value pairs — validated against tenant field definitions"
7058
+ },
7059
+ {
7060
+ name: "createdAt",
7061
+ type: "string"
7062
+ },
7063
+ {
7064
+ name: "updatedAt",
7065
+ type: "string",
7066
+ description: "For optimistic concurrency — update fails if entity was modified after this timestamp"
7067
+ }
7068
+ ]
7069
+ },
7070
+ {
7071
+ operationId: "PublicJobStageController_inProgress",
7072
+ displayName: "Mark a stage in progress",
7073
+ description: "Set the stage to an In Progress status. Pass statusId from GET /settings/stage-statuses with systemStatus In Progress (multiple peer statuses may share that systemStatus) (MAI-2101).",
7074
+ method: "POST",
7075
+ path: "/stages/{id}/in-progress",
7076
+ commandPath: ["stages", "in-progress"],
7077
+ options: [
7078
+ {
7079
+ name: "id",
7080
+ cliName: "id",
7081
+ optionKey: "id",
7082
+ source: "path",
7083
+ type: "string",
7084
+ required: true,
7085
+ description: "Stage ID"
7086
+ },
7087
+ {
7088
+ name: "statusId",
7089
+ cliName: "status-id",
7090
+ optionKey: "statusId",
7091
+ source: "body",
7092
+ type: "string",
7093
+ required: true,
7094
+ description: "status ID"
7095
+ },
7096
+ {
7097
+ name: "note",
7098
+ cliName: "note",
7099
+ optionKey: "note",
7100
+ source: "body",
7101
+ type: "string",
7102
+ required: false,
7103
+ description: ""
7104
+ },
7105
+ {
7106
+ name: "raw-body",
7107
+ cliName: "raw-body",
7108
+ optionKey: "rawBody",
7109
+ source: "body",
7110
+ type: "object",
7111
+ required: false,
7112
+ description: "Raw request body JSON (overrides individual fields)"
7113
+ }
7114
+ ],
7115
+ hasRequestBody: true,
7116
+ responseFields: [
7117
+ {
7118
+ name: "id",
7119
+ type: "string",
7120
+ description: "Entity ID"
7121
+ },
7122
+ {
7123
+ name: "stageNumber",
7124
+ type: "string"
7125
+ },
7126
+ {
7127
+ name: "jobId",
7128
+ type: "string",
7129
+ description: "Job ID or job number (e.g. J12345)"
7130
+ },
7131
+ {
7132
+ name: "job",
7133
+ type: "object"
7134
+ },
7135
+ {
7136
+ name: "name",
7137
+ type: "string",
7138
+ description: "Display name"
7139
+ },
7140
+ {
7141
+ name: "status",
7142
+ type: "object",
7143
+ description: "Status filter"
7144
+ },
7145
+ {
7146
+ name: "sequence",
7147
+ type: "string",
7148
+ description: "Display order / sequence number"
7149
+ },
7150
+ {
7151
+ name: "owner",
7152
+ type: "string"
7153
+ },
7154
+ {
7155
+ name: "contractor",
7156
+ type: "string"
7157
+ },
7158
+ {
7159
+ name: "pricebook",
6222
7160
  type: "string"
6223
7161
  },
6224
7162
  {
@@ -6381,7 +7319,7 @@ var operations = [
6381
7319
  type: "string"
6382
7320
  },
6383
7321
  {
6384
- name: "technician",
7322
+ name: "pricebook",
6385
7323
  type: "string"
6386
7324
  },
6387
7325
  {
@@ -6534,7 +7472,7 @@ var operations = [
6534
7472
  type: "string"
6535
7473
  },
6536
7474
  {
6537
- name: "technician",
7475
+ name: "pricebook",
6538
7476
  type: "string"
6539
7477
  },
6540
7478
  {
@@ -6696,7 +7634,7 @@ var operations = [
6696
7634
  type: "string"
6697
7635
  },
6698
7636
  {
6699
- name: "technician",
7637
+ name: "pricebook",
6700
7638
  type: "string"
6701
7639
  },
6702
7640
  {
@@ -6859,7 +7797,7 @@ var operations = [
6859
7797
  type: "string"
6860
7798
  },
6861
7799
  {
6862
- name: "technician",
7800
+ name: "pricebook",
6863
7801
  type: "string"
6864
7802
  },
6865
7803
  {
@@ -6961,7 +7899,7 @@ var operations = [
6961
7899
  {
6962
7900
  operationId: "PublicJobStageResourceController_list",
6963
7901
  displayName: "List stage resources",
6964
- description: "Get all assigned resources for a stage.",
7902
+ description: "List people assigned to the stage via this API: employees (resource rows) and the stage contractor when set. Contractors assigned with POST .../resources appear here with isContractor=true (same shape as the assign response) (WBS-10448). Login contacts auto-created for contractor dispatch are excluded.",
6965
7903
  method: "GET",
6966
7904
  path: "/jobs/{jobId}/stages/{stageId}/resources",
6967
7905
  commandPath: ["stages", "resources", "list"],
@@ -7018,7 +7956,7 @@ var operations = [
7018
7956
  {
7019
7957
  operationId: "PublicJobStageResourceController_assign",
7020
7958
  displayName: "Assign resource to stage",
7021
- description: "Assign a technician or contractor.",
7959
+ description: "Assign an Employee or Subcontractor by contactId. Employee → resource row. Subcontractor → stage contractor (isContractor=true). Both appear on GET list (WBS-10448). contactId is a person Contact id (use /employees for staff), not a CRM Contact from /contacts (WBS-10445 / WBS-10442).",
7022
7960
  method: "POST",
7023
7961
  path: "/jobs/{jobId}/stages/{stageId}/resources",
7024
7962
  commandPath: ["stages", "resources", "assign"],
@@ -7104,7 +8042,7 @@ var operations = [
7104
8042
  {
7105
8043
  operationId: "PublicJobStageResourceController_get",
7106
8044
  displayName: "Get stage resource",
7107
- description: "Get a specific resource assignment.",
8045
+ description: "Get one assignment by id. Employee rows use the resource/contact id; the stage contractor uses the contractor contact id (same id as POST assign when isContractor=true) (WBS-10448).",
7108
8046
  method: "GET",
7109
8047
  path: "/jobs/{jobId}/stages/{stageId}/resources/{resourceId}",
7110
8048
  commandPath: ["stages", "resources", "get"],
@@ -7134,7 +8072,7 @@ var operations = [
7134
8072
  source: "path",
7135
8073
  type: "string",
7136
8074
  required: true,
7137
- description: "Resource ID"
8075
+ description: "Resource or contractor contact ID"
7138
8076
  }
7139
8077
  ],
7140
8078
  hasRequestBody: false,
@@ -7322,7 +8260,7 @@ var operations = [
7322
8260
  {
7323
8261
  operationId: "PublicApiEntityStatusController_list",
7324
8262
  displayName: "List entity statuses",
7325
- description: "Retrieve all active statuses for a given entity type. Supported entities: customer, contractor, supplier, contact, external-user",
8263
+ description: "Retrieve all active statuses for a given entity type. Supported entities: customer, contractor, supplier, contact, external-user, pending-item",
7326
8264
  method: "GET",
7327
8265
  path: "/settings/entity-statuses/{entity}",
7328
8266
  commandPath: ["settings", "reference", "data", "entity-statuses", "get"],
@@ -7334,8 +8272,8 @@ var operations = [
7334
8272
  source: "path",
7335
8273
  type: "string",
7336
8274
  required: true,
7337
- description: "Entity type (customer, contractor, supplier, contact, external-user)",
7338
- enumValues: ["customer", "contractor", "supplier", "contact", "external-user"]
8275
+ description: "Entity type (customer, contractor, supplier, contact, external-user, pending-item)",
8276
+ enumValues: ["customer", "contractor", "supplier", "contact", "external-user", "pending-item"]
7339
8277
  }
7340
8278
  ],
7341
8279
  hasRequestBody: false,
@@ -7413,7 +8351,7 @@ var operations = [
7413
8351
  {
7414
8352
  operationId: "PublicApiPriceBookController_list",
7415
8353
  displayName: "List pricebooks",
7416
- description: "Discover tenant pricebooks for a category (customer / contractor / supplier). Use category=customer&status=current&assignableOnly=true for job-create candidates. Optional accountId scopes to a CRM account (includeGlobal defaults true).",
8354
+ description: "Discover tenant pricebooks for a category (customer / contractor / supplier). Use category=customer&status=current&assignableOnly=true for job-create candidates. Optional accountId scopes to a CRM account (includeGlobal defaults true). Each item includes company (owning company) and optional account — both match Settings UI fields.",
7417
8355
  method: "GET",
7418
8356
  path: "/settings/pricebooks",
7419
8357
  commandPath: ["settings", "reference", "data", "pricebooks", "list"],
@@ -7505,7 +8443,7 @@ var operations = [
7505
8443
  {
7506
8444
  operationId: "PublicApiPriceBookController_getByIdOrName",
7507
8445
  displayName: "Get pricebook",
7508
- description: "Retrieve a pricebook by id (preferred) or exact name (case-insensitive). Pass category when the name may exist in more than one category.",
8446
+ description: "Retrieve a pricebook by id (preferred) or exact name (case-insensitive). Pass category when the name may exist in more than one category. Response includes company (owning company) and optional account, matching Settings UI.",
7509
8447
  method: "GET",
7510
8448
  path: "/settings/pricebooks/{idOrName}",
7511
8449
  commandPath: ["settings", "reference", "data", "pricebooks", "get"],
@@ -7573,6 +8511,10 @@ var operations = [
7573
8511
  name: "account",
7574
8512
  type: "string"
7575
8513
  },
8514
+ {
8515
+ name: "company",
8516
+ type: "string"
8517
+ },
7576
8518
  {
7577
8519
  name: "dateStart",
7578
8520
  type: "string"
@@ -7586,7 +8528,21 @@ var operations = [
7586
8528
  {
7587
8529
  operationId: "PublicApiStageStatusController_list",
7588
8530
  displayName: "List stage statuses",
7589
- description: "Retrieve all stage statuses configured for the tenant. Stage statuses represent the workflow states a stage (work order) can transition through (e.g., New, Dispatched, En Route, On Site, Completed, Finalised).",
8531
+ description: `Retrieve all stage statuses configured for the tenant (Settings > Stage Status).
8532
+ Each item is a workflow state a stage (work order) can use (e.g. New, Dispatched, En Route, On Site, Completed, Finalised).
8533
+
8534
+ Response fields include:
8535
+ - identity: id, name, systemName, systemStatus, sortOrder
8536
+ - description (nullable)
8537
+ - activityOptions: shareWithCustomer, shareWithField (always present; unset = false)
8538
+ - displayOptions: showInContractorPortal, showInFieldApp (always present)
8539
+
8540
+ Display Options rules (match Settings UI):
8541
+ - Only systemStatus On Hold or In Progress support display options; other systemStatus values return both flags as false
8542
+ - showInFieldApp is not configurable for In Progress and is always false
8543
+ - When supported and not configured, visibility defaults to true (Settings UI default)
8544
+
8545
+ Requires scope: settings:read`,
7590
8546
  method: "GET",
7591
8547
  path: "/settings/stage-statuses",
7592
8548
  commandPath: ["settings", "reference", "data", "stage-statuses", "list"],
@@ -13479,7 +14435,7 @@ var operations = [
13479
14435
  {
13480
14436
  operationId: "PublicCrmExternalUserController_getById",
13481
14437
  displayName: "Get external user by ID",
13482
- description: "Get external user by ID",
14438
+ description: "Login Contact (portal user). parents lists active parent accounts only; portal role is parents[].role.",
13483
14439
  method: "GET",
13484
14440
  path: "/external-users/{id}",
13485
14441
  commandPath: ["crm", "external", "users", "get"],
@@ -13544,7 +14500,7 @@ var operations = [
13544
14500
  {
13545
14501
  operationId: "PublicCrmContactController_getById",
13546
14502
  displayName: "Get contact by ID",
13547
- description: "Get contact by ID",
14503
+ description: "Returns a people contact (basic or Login Contact). parents lists active parent accounts only (inactive/soft-deleted omitted); portal role for Login Contacts is parents[].role.",
13548
14504
  method: "GET",
13549
14505
  path: "/contacts/{id}",
13550
14506
  commandPath: ["crm", "contacts", "get"],
@@ -13814,11 +14770,20 @@ var operations = [
13814
14770
  {
13815
14771
  operationId: "PublicCrmSiteController_list",
13816
14772
  displayName: "List all sites",
13817
- description: "List all sites",
14773
+ description: "List CRM sites for the tenant (Managed and Account only — Adhoc sites are excluded). Each item includes type (Managed | Account), optional primaryContact, and address. Optional search filters by site name/address tokens (space-separated words; all must match).",
13818
14774
  method: "GET",
13819
14775
  path: "/sites",
13820
14776
  commandPath: ["crm", "sites", "list"],
13821
14777
  options: [
14778
+ {
14779
+ name: "search",
14780
+ cliName: "search",
14781
+ optionKey: "search",
14782
+ source: "query",
14783
+ type: "string",
14784
+ required: false,
14785
+ description: "Search by name/address (space-separated words; all must match as token prefixes)"
14786
+ },
13822
14787
  {
13823
14788
  name: "status",
13824
14789
  cliName: "status",
@@ -13862,7 +14827,7 @@ var operations = [
13862
14827
  {
13863
14828
  operationId: "PublicCrmSiteController_getById",
13864
14829
  displayName: "Get site by ID",
13865
- description: "Get site by ID",
14830
+ description: "Retrieve a CRM site by id (Managed or Account only). Adhoc sites are not exposed. Includes primaryContact when set (UI Primary Contact). type is CRM Site Type — not address.type.",
13866
14831
  method: "GET",
13867
14832
  path: "/sites/{id}",
13868
14833
  commandPath: ["crm", "sites", "get"],
@@ -13885,6 +14850,54 @@ var operations = [
13885
14850
  }
13886
14851
  ]
13887
14852
  },
14853
+ {
14854
+ operationId: "PublicCrmSiteController_listContacts",
14855
+ displayName: "List contacts for site",
14856
+ description: "List contacts linked to this site (same pattern as GET /customers/{id}/contacts). Returns basic contacts and external users parented to the site.",
14857
+ method: "GET",
14858
+ path: "/sites/{id}/contacts",
14859
+ commandPath: ["crm", "sites", "contacts", "list"],
14860
+ options: [
14861
+ {
14862
+ name: "id",
14863
+ cliName: "id",
14864
+ optionKey: "id",
14865
+ source: "path",
14866
+ type: "string",
14867
+ required: true,
14868
+ description: "Site ID"
14869
+ },
14870
+ {
14871
+ name: "cursor",
14872
+ cliName: "cursor",
14873
+ optionKey: "cursor",
14874
+ source: "query",
14875
+ type: "string",
14876
+ required: false,
14877
+ description: ""
14878
+ },
14879
+ {
14880
+ name: "limit",
14881
+ cliName: "limit",
14882
+ optionKey: "limit",
14883
+ source: "query",
14884
+ type: "number",
14885
+ required: false,
14886
+ description: ""
14887
+ }
14888
+ ],
14889
+ hasRequestBody: false,
14890
+ responseFields: [
14891
+ {
14892
+ name: "items",
14893
+ type: "array"
14894
+ },
14895
+ {
14896
+ name: "pagination",
14897
+ type: "object"
14898
+ }
14899
+ ]
14900
+ },
13888
14901
  {
13889
14902
  operationId: "PublicApiWebhookV2Controller_listEntities",
13890
14903
  displayName: "List webhook-supported entity types and their available events",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workbuddy/cli-vnext",
3
- "version": "1.0.80",
3
+ "version": "1.0.82",
4
4
  "description": "WorkBuddy command line interface",
5
5
  "license": "MIT",
6
6
  "type": "module",