@burdenoff/cli-sdk 2026.1102.2 → 2026.1102.4

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 (51) hide show
  1. package/dist/modules/adaptercloud/index.cjs +6 -3
  2. package/dist/modules/adaptercloud/index.js +6 -3
  3. package/dist/modules/assethandler/index.cjs +22 -57
  4. package/dist/modules/assethandler/index.js +27 -62
  5. package/dist/modules/atheletebridge/index.cjs +33 -19
  6. package/dist/modules/atheletebridge/index.js +32 -18
  7. package/dist/modules/buildmyiq/index.cjs +64 -67
  8. package/dist/modules/buildmyiq/index.js +60 -63
  9. package/dist/modules/comradecircle/index.cjs +23 -15
  10. package/dist/modules/comradecircle/index.js +19 -11
  11. package/dist/modules/coolandlovely/index.cjs +27 -14
  12. package/dist/modules/coolandlovely/index.js +29 -16
  13. package/dist/modules/crewfoundry/index.cjs +63 -116
  14. package/dist/modules/crewfoundry/index.js +62 -115
  15. package/dist/modules/ecoimpacthub/index.cjs +19 -9
  16. package/dist/modules/ecoimpacthub/index.js +19 -9
  17. package/dist/modules/eventfullymanaged/index.cjs +77 -77
  18. package/dist/modules/eventfullymanaged/index.js +78 -78
  19. package/dist/modules/govcitizenhub/index.cjs +7 -4
  20. package/dist/modules/govcitizenhub/index.js +7 -4
  21. package/dist/modules/headshotmarketing/index.cjs +92 -261
  22. package/dist/modules/headshotmarketing/index.js +94 -263
  23. package/dist/modules/hookmovies/index.cjs +17 -6
  24. package/dist/modules/hookmovies/index.js +20 -9
  25. package/dist/modules/housingvista/index.cjs +31 -24
  26. package/dist/modules/housingvista/index.js +26 -19
  27. package/dist/modules/intelwatchtower/index.cjs +24 -12
  28. package/dist/modules/intelwatchtower/index.js +24 -12
  29. package/dist/modules/kadaikodi/index.cjs +56 -90
  30. package/dist/modules/kadaikodi/index.js +60 -94
  31. package/dist/modules/labsofscience/index.cjs +8 -4
  32. package/dist/modules/labsofscience/index.js +8 -4
  33. package/dist/modules/manufacturedops/index.cjs +35 -22
  34. package/dist/modules/manufacturedops/index.js +34 -21
  35. package/dist/modules/movethewheels/index.cjs +103 -231
  36. package/dist/modules/movethewheels/index.js +103 -231
  37. package/dist/modules/planmagnet/index.cjs +21 -21
  38. package/dist/modules/planmagnet/index.js +32 -32
  39. package/dist/modules/proserviceworld/index.cjs +17 -12
  40. package/dist/modules/proserviceworld/index.js +17 -12
  41. package/dist/modules/subscriberbot/index.cjs +43 -19
  42. package/dist/modules/subscriberbot/index.js +46 -22
  43. package/dist/modules/technospam/index.cjs +17 -8
  44. package/dist/modules/technospam/index.js +17 -8
  45. package/dist/modules/theculturepost/index.cjs +27 -22
  46. package/dist/modules/theculturepost/index.js +31 -26
  47. package/dist/modules/theglobalfuel/index.cjs +65 -60
  48. package/dist/modules/theglobalfuel/index.js +65 -60
  49. package/dist/modules/timecampus/index.cjs +31 -85
  50. package/dist/modules/timecampus/index.js +32 -86
  51. package/package.json +1 -1
@@ -6,14 +6,14 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
6
6
  createdAt updatedAt workspaceId
7
7
  }
8
8
  }
9
- `,v=`
9
+ `,R=`
10
10
  query AssetHandlerListAssets($pagination: AssetHandlerPaginationInput) {
11
11
  assets(pagination: $pagination) {
12
12
  id assetNumber name category status condition serialNumber
13
13
  locationName assignedTo tags createdAt updatedAt workspaceId
14
14
  }
15
15
  }
16
- `,S=`
16
+ `,v=`
17
17
  mutation AssetHandlerCreateAsset($input: CreateAssetInput!) {
18
18
  createAsset(input: $input) {
19
19
  id assetNumber name description category status condition
@@ -21,21 +21,21 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
21
21
  createdAt updatedAt workspaceId
22
22
  }
23
23
  }
24
- `,R=`
24
+ `,E=`
25
25
  query AssetHandlerListSoftwareAssets($pagination: AssetHandlerPaginationInput) {
26
26
  softwareAssets(pagination: $pagination) {
27
27
  id name vendor version licenseType seatsPurchased seatsUsed
28
28
  compliancePercent createdAt updatedAt workspaceId
29
29
  }
30
30
  }
31
- `,E=`
31
+ `,O=`
32
32
  mutation AssetHandlerUpsertSoftwareAsset($input: UpsertSoftwareAssetInput!) {
33
33
  upsertSoftwareAsset(input: $input) {
34
34
  id name vendor version licenseType seatsPurchased seatsUsed
35
35
  compliancePercent createdAt updatedAt workspaceId
36
36
  }
37
37
  }
38
- `,O=`
38
+ `,S=`
39
39
  query AssetHandlerListDigitalTwins($pagination: AssetHandlerPaginationInput) {
40
40
  digitalTwins(pagination: $pagination) {
41
41
  id assetId fidelityLevel modelRef geometryRef properties
@@ -56,14 +56,14 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
56
56
  createdAt updatedAt workspaceId
57
57
  }
58
58
  }
59
- `,k=`
59
+ `,D=`
60
60
  mutation AssetHandlerUpsertConfigurationItem($input: UpsertConfigurationItemInput!) {
61
61
  upsertConfigurationItem(input: $input) {
62
62
  id ciNumber name ciType status environment owner attributes
63
63
  createdAt updatedAt workspaceId
64
64
  }
65
65
  }
66
- `,D=`
66
+ `,k=`
67
67
  query AssetHandlerListIotDevices($pagination: AssetHandlerPaginationInput) {
68
68
  iotDevices(pagination: $pagination) {
69
69
  id deviceId name type protocol status assetId metadata
@@ -77,21 +77,21 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
77
77
  createdAt updatedAt workspaceId
78
78
  }
79
79
  }
80
- `,P=`
80
+ `,L=`
81
81
  query AssetHandlerListIncidents($pagination: AssetHandlerPaginationInput) {
82
82
  incidents(pagination: $pagination) {
83
83
  id title description category priority status assignedTo
84
84
  reportedBy reportedAt resolvedAt slaBreached workspaceId
85
85
  }
86
86
  }
87
- `,L=`
87
+ `,_=`
88
88
  mutation AssetHandlerCreateIncident($input: CreateIncidentInput!) {
89
89
  createIncident(input: $input) {
90
90
  id title description category priority status assignedTo
91
91
  reportedBy reportedAt resolvedAt slaBreached workspaceId
92
92
  }
93
93
  }
94
- `,_=`
94
+ `,P=`
95
95
  query AssetHandlerListProblems($pagination: AssetHandlerPaginationInput) {
96
96
  problems(pagination: $pagination) {
97
97
  id title description category priority status rootCause workaround
@@ -141,18 +141,18 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
141
141
  relatedIncidentId createdBy updatedBy publishedAt createdAt updatedAt workspaceId
142
142
  }
143
143
  }
144
- `,V=`
144
+ `,W=`
145
145
  query AssetHandlerListTransactions($pagination: AssetHandlerPaginationInput) {
146
146
  transactions(pagination: $pagination) {
147
147
  id type category description amount currency vendor department
148
148
  status occurredAt workspaceId
149
149
  }
150
150
  }
151
- `,W=`
152
- mutation AssetHandlerCreateTransaction($input: CreateTransactionInput!) {
151
+ `,G=`
152
+ mutation AssetHandlerCreateTransaction($input: CreateAssetTransactionInput!) {
153
153
  createTransaction(input: $input) {
154
- id type category description amount currency vendor department
155
- status occurredAt workspaceId
154
+ id type category description amount currency vendor department status occurredAt
155
+ workspaceId
156
156
  }
157
157
  }
158
158
  `,B=`
@@ -162,7 +162,7 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
162
162
  relatedPO items createdAt updatedAt workspaceId
163
163
  }
164
164
  }
165
- `,G=`
165
+ `,V=`
166
166
  query AssetHandlerListBudgets($pagination: AssetHandlerPaginationInput) {
167
167
  budgets(pagination: $pagination) {
168
168
  id name category department period allocated spent remaining
@@ -170,86 +170,51 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';
170
170
  }
171
171
  }
172
172
  `,J=`
173
- query AssetHandlerListComplianceFrameworks($pagination: AssetHandlerPaginationInput) {
174
- complianceFrameworks(pagination: $pagination) {
175
- id name version status score totalControls passedControls
176
- failedControls lastAssessment nextAssessment createdAt updatedAt workspaceId
177
- }
178
- }
179
- `,F=`
180
- query AssetHandlerListSecurityPolicies($pagination: AssetHandlerPaginationInput) {
181
- assetSecurityPolicies(pagination: $pagination) {
182
- id name version category status owner description applicableTo
183
- effectiveDate reviewDate createdAt updatedAt workspaceId
184
- }
185
- }
186
- `,K=`
187
- query AssetHandlerListSecurityEvents($pagination: AssetHandlerPaginationInput) {
188
- securityEvents(pagination: $pagination) {
189
- id title description eventType severity source resolved
190
- ipAddress userId occurredAt createdAt workspaceId
191
- }
192
- }
193
- `,z=`
194
173
  query AssetHandlerListEsgMetrics($pagination: AssetHandlerPaginationInput) {
195
174
  esgMetrics(pagination: $pagination) {
196
- id category metricKey metricName value unit target trend
197
- periodStart periodEnd updatedBy createdAt updatedAt workspaceId
175
+ id category metricKey metricName value unit target trend periodStart periodEnd createdAt
176
+ updatedAt workspaceId
198
177
  }
199
178
  }
200
- `,j=`
179
+ `,K=`
201
180
  mutation AssetHandlerUpsertEsgMetric($input: UpsertEsgMetricInput!) {
202
181
  upsertEsgMetric(input: $input) {
203
- id category metricKey metricName value unit target trend
204
- periodStart periodEnd updatedBy createdAt updatedAt workspaceId
205
- }
206
- }
207
- `,Y=`
208
- query AssetHandlerListAiPredictions($pagination: AssetHandlerPaginationInput) {
209
- aiPredictions(pagination: $pagination) {
210
- id assetId predictionType modelVersion score confidence
211
- recommendation status features generatedAt createdAt workspaceId
212
- }
213
- }
214
- `,Q=`
215
- mutation AssetHandlerRequestAiPrediction($input: RequestAIPredictionInput!) {
216
- requestAIPrediction(input: $input) {
217
- id assetId predictionType modelVersion score confidence
218
- recommendation status features generatedAt createdAt workspaceId
182
+ id category metricKey metricName value unit target trend periodStart periodEnd createdAt
183
+ updatedAt workspaceId
219
184
  }
220
185
  }
221
- `,X=`
186
+ `,F=`
222
187
  query AssetHandlerListProvenanceRecords($pagination: AssetHandlerPaginationInput) {
223
188
  provenanceRecords(pagination: $pagination) {
224
189
  id assetId chainNetwork txHash blockNumber hash attestedBy
225
190
  attestedAt metadata createdAt workspaceId
226
191
  }
227
192
  }
228
- `,Z=`
193
+ `,z=`
229
194
  mutation AssetHandlerRecordProvenance($input: RecordProvenanceInput!) {
230
195
  recordProvenance(input: $input) {
231
196
  id assetId chainNetwork txHash blockNumber hash attestedBy
232
197
  attestedAt metadata createdAt workspaceId
233
198
  }
234
199
  }
235
- `,tt=`
200
+ `,j=`
236
201
  query AssetHandlerListDiscoveryJobs($pagination: AssetHandlerPaginationInput) {
237
202
  discoveryJobs(pagination: $pagination) {
238
203
  id name source status assetsDiscovered createdBy errorSummary
239
204
  startedAt completedAt createdAt updatedAt workspaceId
240
205
  }
241
206
  }
242
- `,et=`
207
+ `,Y=`
243
208
  mutation AssetHandlerStartDiscoveryJob($input: StartDiscoveryJobInput!) {
244
209
  startDiscoveryJob(input: $input) {
245
210
  id name source status assetsDiscovered createdBy errorSummary
246
211
  startedAt completedAt createdAt updatedAt workspaceId
247
212
  }
248
213
  }
249
- `,rt=`
214
+ `,Q=`
250
215
  query AssetHandlerDashboardOverview {
251
216
  dashboardOverview {
252
217
  totalAssets totalTransactions openIncidents openWorkOrders
253
218
  }
254
219
  }
255
- `;function l(i,n){try{return JSON.parse(n)}catch{throw new o(`--${i} must be valid JSON`)}}function d(i){let n=Number.parseInt(i,10);if(Number.isNaN(n))throw new o(`Expected an integer but got "${i}"`);return n}function I(i){let n=Number.parseFloat(i);if(Number.isNaN(n))throw new o(`Expected a number but got "${i}"`);return n}function A(i){return i.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function p(i,n){let t={};return i!==void 0&&(t.limit=i),n&&(t.cursor=n),Object.keys(t).length?t:void 0}function it(i$1){let n=i$1.command("assets").description("Assethandler assets");n.command("list").description("List assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(v,{pagination:p(t.limit,t.cursor)});i(t,e.assets,{headers:["ID","Asset #","Name","Category","Status","Condition"],rows:e.assets.map(r$1=>[r(r$1.id,12),r$1.assetNumber,r$1.name,r$1.category,r$1.status,r$1.condition])});}catch(e){h$1(e);}}),n.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let r=await b$1(C,{id:t});if(!r.asset)throw new o(`Asset ${t} not found`);i(e,r.asset);}catch(r){h$1(r);}}),n.command("create").description("Create an asset").requiredOption("--asset-number <s>","Asset number").requiredOption("--name <name>","Asset name").requiredOption("--category <c>","Category").option("--description <s>","Description").option("--status <s>","ACTIVE|INACTIVE|MAINTENANCE|RETIRED|DISPOSED").option("--condition <c>","EXCELLENT|GOOD|FAIR|POOR|DAMAGED").option("--serial-number <s>","Serial number").option("--location-name <s>","Location name").option("--assigned-to <s>","Assignee").option("--tags <csv>","Comma-separated tags").option("--custom-attributes <json>","Custom attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetNumber:t.assetNumber,name:t.name,category:t.category};t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.condition&&(e.condition=t.condition.toUpperCase()),t.serialNumber&&(e.serialNumber=t.serialNumber),t.locationName&&(e.locationName=t.locationName),t.assignedTo&&(e.assignedTo=t.assignedTo),t.tags&&(e.tags=A(t.tags)),t.customAttributes&&(e.customAttributes=l("custom-attributes",t.customAttributes));let r=await b$1(S,{input:e});k$1(`Asset created: ${r.createAsset.assetNumber}`),i(t,r.createAsset);}catch(e){h$1(e);}});}function nt(i){pt(i),mt(i),ut(i),gt(i);}function pt(i$1){let n=i$1.command("software-assets").description("Assethandler software assets & licenses");n.command("list").description("List software assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(R,{pagination:p(t.limit,t.cursor)});i(t,e.softwareAssets,{headers:["ID","Name","Vendor","Version","License","Seats","Compliance %"],rows:e.softwareAssets.map(r$1=>[r(r$1.id,12),r$1.name,r$1.vendor,r$1.version,r$1.licenseType,`${r$1.seatsUsed??0}/${r$1.seatsPurchased??0}`,String(r$1.compliancePercent)])});}catch(e){h$1(e);}}),n.command("upsert").description("Create or update a software asset").requiredOption("--name <name>","Name").requiredOption("--vendor <v>","Vendor").requiredOption("--version <v>","Version").requiredOption("--license-type <t>","License type").option("--id <id>","Existing software asset ID (update)").option("--seats-purchased <n>","Seats purchased",d).option("--seats-used <n>","Seats used",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,vendor:t.vendor,version:t.version,licenseType:t.licenseType};t.id&&(e.id=t.id),t.seatsPurchased!==void 0&&(e.seatsPurchased=t.seatsPurchased),t.seatsUsed!==void 0&&(e.seatsUsed=t.seatsUsed);let r=await b$1(E,{input:e});k$1(`Software asset saved: ${r.upsertSoftwareAsset.name}`),i(t,r.upsertSoftwareAsset);}catch(e){h$1(e);}});}function mt(i$1){let n=i$1.command("digital-twins").description("Assethandler digital twins");n.command("list").description("List digital twins").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(O,{pagination:p(t.limit,t.cursor)});i(t,e.digitalTwins,{headers:["ID","Asset","Fidelity","Model Ref"],rows:e.digitalTwins.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.fidelityLevel,r$1.modelRef])});}catch(e){h$1(e);}}),n.command("create").description("Create a digital twin for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--fidelity-level <l>","Fidelity level").requiredOption("--model-ref <ref>","Model reference").option("--geometry-ref <ref>","Geometry reference").option("--properties <json>","Properties JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,fidelityLevel:t.fidelityLevel,modelRef:t.modelRef};t.geometryRef&&(e.geometryRef=t.geometryRef),t.properties&&(e.properties=l("properties",t.properties));let r=await b$1(b,{input:e});k$1(`Digital twin created for asset ${r.createDigitalTwin.assetId}`),i(t,r.createDigitalTwin);}catch(e){h$1(e);}});}function ut(i$1){let n=i$1.command("config-items").description("Assethandler configuration items (CMDB)");n.command("list").description("List configuration items").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{pagination:p(t.limit,t.cursor)});i(t,e.configurationItems,{headers:["ID","CI #","Name","Type","Status","Environment"],rows:e.configurationItems.map(r$1=>[r(r$1.id,12),r$1.ciNumber,r$1.name,r$1.ciType,r$1.status,r$1.environment??"-"])});}catch(e){h$1(e);}}),n.command("upsert").description("Create or update a configuration item").requiredOption("--ci-number <s>","CI number").requiredOption("--name <name>","Name").requiredOption("--ci-type <t>","CI type").requiredOption("--status <s>","Status").option("--id <id>","Existing CI ID (update)").option("--environment <e>","Environment").option("--owner <o>","Owner").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={ciNumber:t.ciNumber,name:t.name,ciType:t.ciType,status:t.status};t.id&&(e.id=t.id),t.environment&&(e.environment=t.environment),t.owner&&(e.owner=t.owner),t.attributes&&(e.attributes=l("attributes",t.attributes));let r=await b$1(k,{input:e});k$1(`Configuration item saved: ${r.upsertConfigurationItem.ciNumber}`),i(t,r.upsertConfigurationItem);}catch(e){h$1(e);}});}function gt(i$1){let n=i$1.command("iot-devices").description("Assethandler IoT devices");n.command("list").description("List IoT devices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(D,{pagination:p(t.limit,t.cursor)});i(t,e.iotDevices,{headers:["ID","Device","Name","Type","Protocol","Status"],rows:e.iotDevices.map(r$1=>[r(r$1.id,12),r(r$1.deviceId,16),r$1.name,r$1.type,r$1.protocol,r$1.status])});}catch(e){h$1(e);}}),n.command("register").description("Register an IoT device").requiredOption("--device-id <s>","Device ID").requiredOption("--name <name>","Name").requiredOption("--type <t>","Type").requiredOption("--protocol <p>","Protocol").option("--status <s>","Status").option("--asset <id>","Linked asset ID").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={deviceId:t.deviceId,name:t.name,type:t.type,protocol:t.protocol};t.status&&(e.status=t.status),t.asset&&(e.assetId=t.asset),t.metadata&&(e.metadata=l("metadata",t.metadata));let r=await b$1(N,{input:e});k$1(`IoT device registered: ${r.registerIoTDevice.deviceId}`),i(t,r.registerIoTDevice);}catch(e){h$1(e);}});}function st(i){lt(i),ft(i),yt(i),It(i),At(i),wt(i);}function lt(i$1){let n=i$1.command("incidents").description("Assethandler ITSM incidents");n.command("list").description("List incidents").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(P,{pagination:p(t.limit,t.cursor)});i(t,e.incidents,{headers:["ID","Title","Category","Priority","Status","SLA"],rows:e.incidents.map(r$1=>[r(r$1.id,12),r$1.title,r$1.category,r$1.priority,r$1.status,r$1.slaBreached?"breached":"ok"])});}catch(e){h$1(e);}}),n.command("create").description("Create an incident").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").requiredOption("--category <c>","Category").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:t.category};t.priority&&(e.priority=t.priority.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let r=await b$1(L,{input:e});k$1(`Incident created: ${r.createIncident.title}`),i(t,r.createIncident);}catch(e){h$1(e);}});}function ft(i$1){i$1.command("problems").description("Assethandler ITSM problems").command("list").description("List problems").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(_,{pagination:p(t.limit,t.cursor)});i(t,e.problems,{headers:["ID","Title","Category","Priority","Status"],rows:e.problems.map(r$1=>[r(r$1.id,12),r$1.title,r$1.category,r$1.priority,r$1.status])});}catch(e){h$1(e);}});}function yt(i$1){i$1.command("change-requests").description("Assethandler change requests").command("list").description("List change requests").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(q,{pagination:p(t.limit,t.cursor)});i(t,e.changeRequests,{headers:["ID","Title","Type","Risk","Status","Requested By"],rows:e.changeRequests.map(r$1=>[r(r$1.id,12),r$1.title,r$1.type,r$1.risk,r$1.status,r(r$1.requestedBy,16)])});}catch(e){h$1(e);}});}function It(i$1){let n=i$1.command("work-orders").description("Assethandler work orders");n.command("list").description("List work orders").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(x,{pagination:p(t.limit,t.cursor)});i(t,e.workOrders,{headers:["ID","Title","Type","Priority","Status","Asset"],rows:e.workOrders.map(r$1=>[r(r$1.id,12),r$1.title,r$1.type,r$1.priority,r$1.status,r$1.assetId?r(r$1.assetId,12):"-"])});}catch(e){h$1(e);}}),n.command("create").description("Create a work order").requiredOption("--title <t>","Title").requiredOption("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|EMERGENCY").option("--description <s>","Description").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--status <s>","DRAFT|SCHEDULED|APPROVED|IN_PROGRESS|COMPLETED|CANCELLED").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,type:t.type.toUpperCase()};t.description&&(e.description=t.description),t.priority&&(e.priority=t.priority.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let r=await b$1($,{input:e});k$1(`Work order created: ${r.createWorkOrder.title}`),i(t,r.createWorkOrder);}catch(e){h$1(e);}});}function At(i$1){i$1.command("maintenance").description("Assethandler maintenance records").command("list").description("List maintenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(H,{pagination:p(t.limit,t.cursor)});i(t,e.maintenanceRecords,{headers:["ID","Asset","Title","Type","Priority","Status"],rows:e.maintenanceRecords.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.title,r$1.type,r$1.priority,r$1.status])});}catch(e){h$1(e);}});}function wt(i$1){let n=i$1.command("knowledge-articles").description("Assethandler knowledge base articles");n.command("list").description("List knowledge articles").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{pagination:p(t.limit,t.cursor)});i(t,e.knowledgeArticles,{headers:["ID","Title","Slug","Status","Views"],rows:e.knowledgeArticles.map(r$1=>[r(r$1.id,12),r$1.title,r$1.slug,r$1.status,String(r$1.views)])});}catch(e){h$1(e);}}),n.command("create").description("Create a knowledge article").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").requiredOption("--content <s>","Article content").option("--summary <s>","Summary").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("--tags <csv>","Comma-separated tags").option("--related-asset <id>","Related asset ID").option("--related-incident <id>","Related incident ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,slug:t.slug,content:t.content};t.summary&&(e.summary=t.summary),t.status&&(e.status=t.status.toUpperCase()),t.tags&&(e.tags=A(t.tags)),t.relatedAsset&&(e.relatedAssetId=t.relatedAsset),t.relatedIncident&&(e.relatedIncidentId=t.relatedIncident);let r=await b$1(U,{input:e});k$1(`Knowledge article created: ${r.createKnowledgeArticle.slug}`),i(t,r.createKnowledgeArticle);}catch(e){h$1(e);}});}function ot(i){Tt(i),Ct(i),vt(i);}function Tt(i$1){let n=i$1.command("transactions").description("Assethandler asset finance transactions");n.command("list").description("List transactions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{pagination:p(t.limit,t.cursor)});i(t,e.transactions,{headers:["ID","Type","Category","Amount","Currency","Status"],rows:e.transactions.map(r$1=>[r(r$1.id,12),r$1.type,r$1.category,String(r$1.amount),r$1.currency,r$1.status])});}catch(e){h$1(e);}}),n.command("create").description("Create a transaction").requiredOption("--type <t>","PURCHASE|LEASE|MAINTENANCE|DISPOSAL|TRANSFER").requiredOption("--category <c>","Category").requiredOption("--description <s>","Description").requiredOption("--amount <n>","Amount",I).option("--currency <c>","Currency code").option("--vendor <v>","Vendor").option("--department <d>","Department").option("--status <s>","PENDING|APPROVED|COMPLETED|REJECTED").option("-f, --format <format>","Output format").action(async t=>{try{let e={type:t.type.toUpperCase(),category:t.category,description:t.description,amount:t.amount};t.currency&&(e.currency=t.currency),t.vendor&&(e.vendor=t.vendor),t.department&&(e.department=t.department),t.status&&(e.status=t.status.toUpperCase());let r=await b$1(W,{input:e});k$1(`Transaction created: ${r.createTransaction.id}`),i(t,r.createTransaction);}catch(e){h$1(e);}});}function Ct(i$1){i$1.command("invoices").description("Assethandler invoices").command("list").description("List invoices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(B,{pagination:p(t.limit,t.cursor)});i(t,e.invoices,{headers:["ID","Number","Vendor","Amount","Status","Due"],rows:e.invoices.map(r$1=>[r(r$1.id,12),r$1.number,r$1.vendor,`${r$1.amount} ${r$1.currency}`,r$1.status,q$1(r$1.dueDate)])});}catch(e){h$1(e);}});}function vt(i$1){i$1.command("budgets").description("Assethandler asset budgets").command("list").description("List budgets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{pagination:p(t.limit,t.cursor)});i(t,e.budgets,{headers:["ID","Name","Department","Allocated","Spent","Remaining","Status"],rows:e.budgets.map(r$1=>[r(r$1.id,12),r$1.name,r$1.department,String(r$1.allocated),String(r$1.spent),String(r$1.remaining),r$1.status])});}catch(e){h$1(e);}});}function at(i){St(i),Rt(i),Et(i),Ot(i);}function St(i$1){i$1.command("compliance").description("Assethandler compliance frameworks").command("list").description("List compliance frameworks").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(J,{pagination:p(t.limit,t.cursor)});i(t,e.complianceFrameworks,{headers:["ID","Name","Version","Status","Score","Passed","Failed"],rows:e.complianceFrameworks.map(r$1=>[r(r$1.id,12),r$1.name,r$1.version,r$1.status,String(r$1.score),String(r$1.passedControls),String(r$1.failedControls)])});}catch(e){h$1(e);}});}function Rt(i$1){i$1.command("security-policies").description("Assethandler asset security policies").command("list").description("List security policies").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{pagination:p(t.limit,t.cursor)});i(t,e.assetSecurityPolicies,{headers:["ID","Name","Version","Category","Status","Owner"],rows:e.assetSecurityPolicies.map(r$1=>[r(r$1.id,12),r$1.name,r$1.version,r$1.category,r$1.status,r(r$1.owner,16)])});}catch(e){h$1(e);}});}function Et(i$1){i$1.command("security-events").description("Assethandler security events").command("list").description("List security events").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(K,{pagination:p(t.limit,t.cursor)});i(t,e.securityEvents,{headers:["ID","Title","Type","Severity","Source","Resolved"],rows:e.securityEvents.map(r$1=>[r(r$1.id,12),r$1.title,r$1.eventType,r$1.severity,r$1.source,r$1.resolved?"yes":"no"])});}catch(e){h$1(e);}});}function Ot(i$1){let n=i$1.command("esg-metrics").description("Assethandler ESG metrics");n.command("list").description("List ESG metrics").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(z,{pagination:p(t.limit,t.cursor)});i(t,e.esgMetrics,{headers:["ID","Category","Metric","Value","Unit","Target","Trend"],rows:e.esgMetrics.map(r$1=>[r(r$1.id,12),r$1.category,r$1.metricName,String(r$1.value),r$1.unit,r$1.target!=null?String(r$1.target):"-",r$1.trend??"-"])});}catch(e){h$1(e);}}),n.command("upsert").description("Create or update an ESG metric").requiredOption("--category <c>","Category").requiredOption("--metric-key <k>","Metric key").requiredOption("--metric-name <n>","Metric name").requiredOption("--value <n>","Value",I).requiredOption("--unit <u>","Unit").requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--target <n>","Target value",I).option("--trend <t>","Trend").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,metricKey:t.metricKey,metricName:t.metricName,value:t.value,unit:t.unit,periodStart:t.periodStart,periodEnd:t.periodEnd};t.target!==void 0&&(e.target=t.target),t.trend&&(e.trend=t.trend);let r=await b$1(j,{input:e});k$1(`ESG metric saved: ${r.upsertEsgMetric.metricKey}`),i(t,r.upsertEsgMetric);}catch(e){h$1(e);}});}function ct(i){bt(i),ht(i),kt(i);}function bt(i$1){let n=i$1.command("predictions").description("Assethandler AI predictions");n.command("list").description("List AI predictions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Y,{pagination:p(t.limit,t.cursor)});i(t,e.aiPredictions,{headers:["ID","Asset","Type","Model","Score","Confidence","Status"],rows:e.aiPredictions.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.predictionType,r$1.modelVersion,String(r$1.score),String(r$1.confidence),r$1.status])});}catch(e){h$1(e);}}),n.command("request").description("Request an AI prediction for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--prediction-type <t>","Prediction type").option("--feature-vector <json>","Feature vector JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,predictionType:t.predictionType};t.featureVector&&(e.featureVector=l("feature-vector",t.featureVector));let r=await b$1(Q,{input:e});k$1(`Prediction requested: ${r.requestAIPrediction.id}`),i(t,r.requestAIPrediction);}catch(e){h$1(e);}});}function ht(i$1){let n=i$1.command("provenance").description("Assethandler asset provenance records");n.command("list").description("List provenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(X,{pagination:p(t.limit,t.cursor)});i(t,e.provenanceRecords,{headers:["ID","Asset","Chain","Hash","Attested By"],rows:e.provenanceRecords.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.chainNetwork,r(r$1.hash,16),r(r$1.attestedBy,16)])});}catch(e){h$1(e);}}),n.command("record").description("Record an asset provenance attestation").requiredOption("--asset <id>","Asset ID").requiredOption("--chain-network <n>","Chain network").requiredOption("--hash <h>","Attestation hash").option("--tx-hash <h>","Transaction hash").option("--block-number <n>","Block number",d).option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,chainNetwork:t.chainNetwork,hash:t.hash};t.txHash&&(e.txHash=t.txHash),t.blockNumber!==void 0&&(e.blockNumber=t.blockNumber),t.metadata&&(e.metadata=l("metadata",t.metadata));let r=await b$1(Z,{input:e});k$1(`Provenance recorded: ${r.recordProvenance.id}`),i(t,r.recordProvenance);}catch(e){h$1(e);}});}function kt(i$1){let n=i$1.command("discovery-jobs").description("Assethandler asset discovery jobs");n.command("list").description("List discovery jobs").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(tt,{pagination:p(t.limit,t.cursor)});i(t,e.discoveryJobs,{headers:["ID","Name","Source","Status","Discovered"],rows:e.discoveryJobs.map(r$1=>[r(r$1.id,12),r$1.name,r$1.source,r$1.status,String(r$1.assetsDiscovered)])});}catch(e){h$1(e);}}),n.command("start").description("Start an asset discovery job").requiredOption("--name <name>","Job name").requiredOption("--source <s>","Discovery source").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,source:t.source},r=await b$1(et,{input:e});k$1(`Discovery job started: ${r.startDiscoveryJob.name}`),i(t,r.startDiscoveryJob);}catch(e){h$1(e);}});}function dt(i$1){i$1.command("dashboard").description("Assethandler dashboard overview").command("overview").description("Asset / transaction / incident / work-order counts").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(rt);i(t,e.dashboardOverview);}catch(e){h$1(e);}});}var Dt={id:"assethandler",version:"1.0.0",displayName:"Assethandler",dependsOn:["auth","workspaces"],register(i,n){a(n);let t=i.command("assethandler").description("Assethandler enterprise asset management platform");it(t),nt(t),st(t),ot(t),at(t),ct(t),dt(t);}},Ie=Dt;export{Ie as default};
220
+ `;function l(n,i){try{return JSON.parse(i)}catch{throw new o(`--${n} must be valid JSON`)}}function d(n){let i=Number.parseInt(n,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${n}"`);return i}function I(n){let i=Number.parseFloat(n);if(Number.isNaN(i))throw new o(`Expected a number but got "${n}"`);return i}function A(n){return n.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function p(n,i){let t={};return n!==void 0&&(t.limit=n),i&&(t.cursor=i),Object.keys(t).length?t:void 0}function X(n){let i$1=n.command("assets").description("Assethandler assets");i$1.command("list").description("List assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(R,{pagination:p(t.limit,t.cursor)});i(t,e.assets,{headers:["ID","Asset #","Name","Category","Status","Condition"],rows:e.assets.map(r$1=>[r(r$1.id,12),r$1.assetNumber,r$1.name,r$1.category,r$1.status,r$1.condition])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let r=await b$1(C,{id:t});if(!r.asset)throw new o(`Asset ${t} not found`);i(e,r.asset);}catch(r){h$1(r);}}),i$1.command("create").description("Create an asset").requiredOption("--asset-number <s>","Asset number").requiredOption("--name <name>","Asset name").requiredOption("--category <c>","Category").option("--description <s>","Description").option("--status <s>","ACTIVE|INACTIVE|MAINTENANCE|RETIRED|DISPOSED").option("--condition <c>","EXCELLENT|GOOD|FAIR|POOR|DAMAGED").option("--serial-number <s>","Serial number").option("--location-name <s>","Location name").option("--assigned-to <s>","Assignee").option("--tags <csv>","Comma-separated tags").option("--custom-attributes <json>","Custom attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetNumber:t.assetNumber,name:t.name,category:t.category};t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.condition&&(e.condition=t.condition.toUpperCase()),t.serialNumber&&(e.serialNumber=t.serialNumber),t.locationName&&(e.locationName=t.locationName),t.assignedTo&&(e.assignedTo=t.assignedTo),t.tags&&(e.tags=A(t.tags)),t.customAttributes&&(e.customAttributes=l("custom-attributes",t.customAttributes));let r=await b$1(v,{input:e});k$1(`Asset created: ${r.createAsset.assetNumber}`),i(t,r.createAsset);}catch(e){h$1(e);}});}function Z(n){st(n),at(n),ot(n),ct(n);}function st(n){let i$1=n.command("software-assets").description("Assethandler software assets & licenses");i$1.command("list").description("List software assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(E,{pagination:p(t.limit,t.cursor)});i(t,e.softwareAssets,{headers:["ID","Name","Vendor","Version","License","Seats","Compliance %"],rows:e.softwareAssets.map(r$1=>[r(r$1.id,12),r$1.name,r$1.vendor,r$1.version,r$1.licenseType,`${r$1.seatsUsed??0}/${r$1.seatsPurchased??0}`,String(r$1.compliancePercent)])});}catch(e){h$1(e);}}),i$1.command("upsert").description("Create or update a software asset").requiredOption("--name <name>","Name").requiredOption("--vendor <v>","Vendor").requiredOption("--version <v>","Version").requiredOption("--license-type <t>","License type").option("--id <id>","Existing software asset ID (update)").option("--seats-purchased <n>","Seats purchased",d).option("--seats-used <n>","Seats used",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,vendor:t.vendor,version:t.version,licenseType:t.licenseType};t.id&&(e.id=t.id),t.seatsPurchased!==void 0&&(e.seatsPurchased=t.seatsPurchased),t.seatsUsed!==void 0&&(e.seatsUsed=t.seatsUsed);let r=await b$1(O,{input:e});k$1(`Software asset saved: ${r.upsertSoftwareAsset.name}`),i(t,r.upsertSoftwareAsset);}catch(e){h$1(e);}});}function at(n){let i$1=n.command("digital-twins").description("Assethandler digital twins");i$1.command("list").description("List digital twins").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(S,{pagination:p(t.limit,t.cursor)});i(t,e.digitalTwins,{headers:["ID","Asset","Fidelity","Model Ref"],rows:e.digitalTwins.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.fidelityLevel,r$1.modelRef])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a digital twin for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--fidelity-level <l>","Fidelity level").requiredOption("--model-ref <ref>","Model reference").option("--geometry-ref <ref>","Geometry reference").option("--properties <json>","Properties JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,fidelityLevel:t.fidelityLevel,modelRef:t.modelRef};t.geometryRef&&(e.geometryRef=t.geometryRef),t.properties&&(e.properties=l("properties",t.properties));let r=await b$1(b,{input:e});k$1(`Digital twin created for asset ${r.createDigitalTwin.assetId}`),i(t,r.createDigitalTwin);}catch(e){h$1(e);}});}function ot(n){let i$1=n.command("config-items").description("Assethandler configuration items (CMDB)");i$1.command("list").description("List configuration items").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{pagination:p(t.limit,t.cursor)});i(t,e.configurationItems,{headers:["ID","CI #","Name","Type","Status","Environment"],rows:e.configurationItems.map(r$1=>[r(r$1.id,12),r$1.ciNumber,r$1.name,r$1.ciType,r$1.status,r$1.environment??"-"])});}catch(e){h$1(e);}}),i$1.command("upsert").description("Create or update a configuration item").requiredOption("--ci-number <s>","CI number").requiredOption("--name <name>","Name").requiredOption("--ci-type <t>","CI type").requiredOption("--status <s>","Status").option("--id <id>","Existing CI ID (update)").option("--environment <e>","Environment").option("--owner <o>","Owner").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={ciNumber:t.ciNumber,name:t.name,ciType:t.ciType,status:t.status};t.id&&(e.id=t.id),t.environment&&(e.environment=t.environment),t.owner&&(e.owner=t.owner),t.attributes&&(e.attributes=l("attributes",t.attributes));let r=await b$1(D,{input:e});k$1(`Configuration item saved: ${r.upsertConfigurationItem.ciNumber}`),i(t,r.upsertConfigurationItem);}catch(e){h$1(e);}});}function ct(n){let i$1=n.command("iot-devices").description("Assethandler IoT devices");i$1.command("list").description("List IoT devices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(k,{pagination:p(t.limit,t.cursor)});i(t,e.iotDevices,{headers:["ID","Device","Name","Type","Protocol","Status"],rows:e.iotDevices.map(r$1=>[r(r$1.id,12),r(r$1.deviceId,16),r$1.name,r$1.type,r$1.protocol,r$1.status])});}catch(e){h$1(e);}}),i$1.command("register").description("Register an IoT device").requiredOption("--device-id <s>","Device ID").requiredOption("--name <name>","Name").requiredOption("--type <t>","Type").requiredOption("--protocol <p>","Protocol").option("--status <s>","Status").option("--asset <id>","Linked asset ID").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={deviceId:t.deviceId,name:t.name,type:t.type,protocol:t.protocol};t.status&&(e.status=t.status),t.asset&&(e.assetId=t.asset),t.metadata&&(e.metadata=l("metadata",t.metadata));let r=await b$1(N,{input:e});k$1(`IoT device registered: ${r.registerIoTDevice.deviceId}`),i(t,r.registerIoTDevice);}catch(e){h$1(e);}});}function tt(n){dt(n),pt(n),mt(n),ut(n),gt(n),lt(n);}function dt(n){let i$1=n.command("incidents").description("Assethandler ITSM incidents");i$1.command("list").description("List incidents").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(L,{pagination:p(t.limit,t.cursor)});i(t,e.incidents,{headers:["ID","Title","Category","Priority","Status","SLA"],rows:e.incidents.map(r$1=>[r(r$1.id,12),r$1.title,r$1.category,r$1.priority,r$1.status,r$1.slaBreached?"breached":"ok"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create an incident").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").requiredOption("--category <c>","Category").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:t.category};t.priority&&(e.priority=t.priority.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let r=await b$1(_,{input:e});k$1(`Incident created: ${r.createIncident.title}`),i(t,r.createIncident);}catch(e){h$1(e);}});}function pt(n){n.command("problems").description("Assethandler ITSM problems").command("list").description("List problems").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(P,{pagination:p(t.limit,t.cursor)});i(t,e.problems,{headers:["ID","Title","Category","Priority","Status"],rows:e.problems.map(r$1=>[r(r$1.id,12),r$1.title,r$1.category,r$1.priority,r$1.status])});}catch(e){h$1(e);}});}function mt(n){n.command("change-requests").description("Assethandler change requests").command("list").description("List change requests").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(q,{pagination:p(t.limit,t.cursor)});i(t,e.changeRequests,{headers:["ID","Title","Type","Risk","Status","Requested By"],rows:e.changeRequests.map(r$1=>[r(r$1.id,12),r$1.title,r$1.type,r$1.risk,r$1.status,r(r$1.requestedBy,16)])});}catch(e){h$1(e);}});}function ut(n){let i$1=n.command("work-orders").description("Assethandler work orders");i$1.command("list").description("List work orders").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(x,{pagination:p(t.limit,t.cursor)});i(t,e.workOrders,{headers:["ID","Title","Type","Priority","Status","Asset"],rows:e.workOrders.map(r$1=>[r(r$1.id,12),r$1.title,r$1.type,r$1.priority,r$1.status,r$1.assetId?r(r$1.assetId,12):"-"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a work order").requiredOption("--title <t>","Title").requiredOption("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|EMERGENCY").option("--description <s>","Description").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--status <s>","DRAFT|SCHEDULED|APPROVED|IN_PROGRESS|COMPLETED|CANCELLED").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,type:t.type.toUpperCase()};t.description&&(e.description=t.description),t.priority&&(e.priority=t.priority.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let r=await b$1($,{input:e});k$1(`Work order created: ${r.createWorkOrder.title}`),i(t,r.createWorkOrder);}catch(e){h$1(e);}});}function gt(n){n.command("maintenance").description("Assethandler maintenance records").command("list").description("List maintenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(H,{pagination:p(t.limit,t.cursor)});i(t,e.maintenanceRecords,{headers:["ID","Asset","Title","Type","Priority","Status"],rows:e.maintenanceRecords.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.title,r$1.type,r$1.priority,r$1.status])});}catch(e){h$1(e);}});}function lt(n){let i$1=n.command("knowledge-articles").description("Assethandler knowledge base articles");i$1.command("list").description("List knowledge articles").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{pagination:p(t.limit,t.cursor)});i(t,e.knowledgeArticles,{headers:["ID","Title","Slug","Status","Views"],rows:e.knowledgeArticles.map(r$1=>[r(r$1.id,12),r$1.title,r$1.slug,r$1.status,String(r$1.views)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a knowledge article").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").requiredOption("--content <s>","Article content").option("--summary <s>","Summary").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("--tags <csv>","Comma-separated tags").option("--related-asset <id>","Related asset ID").option("--related-incident <id>","Related incident ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,slug:t.slug,content:t.content};t.summary&&(e.summary=t.summary),t.status&&(e.status=t.status.toUpperCase()),t.tags&&(e.tags=A(t.tags)),t.relatedAsset&&(e.relatedAssetId=t.relatedAsset),t.relatedIncident&&(e.relatedIncidentId=t.relatedIncident);let r=await b$1(U,{input:e});k$1(`Knowledge article created: ${r.createKnowledgeArticle.slug}`),i(t,r.createKnowledgeArticle);}catch(e){h$1(e);}});}function et(n){ft(n),yt(n),It(n);}function ft(n){let i$1=n.command("transactions").description("Assethandler asset finance transactions");i$1.command("list").description("List transactions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{pagination:p(t.limit,t.cursor)});i(t,e.transactions,{headers:["ID","Type","Category","Amount","Currency","Status"],rows:e.transactions.map(r$1=>[r(r$1.id,12),r$1.type,r$1.category,String(r$1.amount),r$1.currency,r$1.status])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a transaction").requiredOption("--type <t>","PURCHASE|LEASE|MAINTENANCE|DISPOSAL|TRANSFER").requiredOption("--category <c>","Category").requiredOption("--description <s>","Description").requiredOption("--amount <n>","Amount",I).option("--currency <c>","Currency code").option("--vendor <v>","Vendor").option("--department <d>","Department").option("--status <s>","PENDING|APPROVED|COMPLETED|REJECTED").option("-f, --format <format>","Output format").action(async t=>{try{let e={type:t.type.toUpperCase(),category:t.category,description:t.description,amount:t.amount};t.currency&&(e.currency=t.currency),t.vendor&&(e.vendor=t.vendor),t.department&&(e.department=t.department),t.status&&(e.status=t.status.toUpperCase());let r=await b$1(G,{input:e});k$1(`Transaction created: ${r.createTransaction.id}`),i(t,r.createTransaction);}catch(e){h$1(e);}});}function yt(n){n.command("invoices").description("Assethandler invoices").command("list").description("List invoices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(B,{pagination:p(t.limit,t.cursor)});i(t,e.invoices,{headers:["ID","Number","Vendor","Amount","Status","Due"],rows:e.invoices.map(r$1=>[r(r$1.id,12),r$1.number,r$1.vendor,`${r$1.amount} ${r$1.currency}`,r$1.status,q$1(r$1.dueDate)])});}catch(e){h$1(e);}});}function It(n){n.command("budgets").description("Assethandler asset budgets").command("list").description("List budgets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{pagination:p(t.limit,t.cursor)});i(t,e.budgets,{headers:["ID","Name","Department","Allocated","Spent","Remaining","Status"],rows:e.budgets.map(r$1=>[r(r$1.id,12),r$1.name,r$1.department,String(r$1.allocated),String(r$1.spent),String(r$1.remaining),r$1.status])});}catch(e){h$1(e);}});}function rt(n){At(n);}function At(n){let i$1=n.command("esg-metrics").description("Assethandler ESG metrics");i$1.command("list").description("List ESG metrics").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(J,{pagination:p(t.limit,t.cursor)});i(t,e.esgMetrics,{headers:["ID","Category","Metric","Value","Unit","Target","Trend"],rows:e.esgMetrics.map(r$1=>[r(r$1.id,12),r$1.category,r$1.metricName,String(r$1.value),r$1.unit,r$1.target!=null?String(r$1.target):"-",r$1.trend??"-"])});}catch(e){h$1(e);}}),i$1.command("upsert").description("Create or update an ESG metric").requiredOption("--category <c>","Category").requiredOption("--metric-key <k>","Metric key").requiredOption("--metric-name <n>","Metric name").requiredOption("--value <n>","Value",I).requiredOption("--unit <u>","Unit").requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--target <n>","Target value",I).option("--trend <t>","Trend").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,metricKey:t.metricKey,metricName:t.metricName,value:t.value,unit:t.unit,periodStart:t.periodStart,periodEnd:t.periodEnd};t.target!==void 0&&(e.target=t.target),t.trend&&(e.trend=t.trend);let r=await b$1(K,{input:e});k$1(`ESG metric saved: ${r.upsertEsgMetric.metricKey}`),i(t,r.upsertEsgMetric);}catch(e){h$1(e);}});}function nt(n){wt(n),Tt(n);}function wt(n){let i$1=n.command("provenance").description("Assethandler asset provenance records");i$1.command("list").description("List provenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{pagination:p(t.limit,t.cursor)});i(t,e.provenanceRecords,{headers:["ID","Asset","Chain","Hash","Attested By"],rows:e.provenanceRecords.map(r$1=>[r(r$1.id,12),r(r$1.assetId,12),r$1.chainNetwork,r(r$1.hash,16),r(r$1.attestedBy,16)])});}catch(e){h$1(e);}}),i$1.command("record").description("Record an asset provenance attestation").requiredOption("--asset <id>","Asset ID").requiredOption("--chain-network <n>","Chain network").requiredOption("--hash <h>","Attestation hash").option("--tx-hash <h>","Transaction hash").option("--block-number <n>","Block number",d).option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,chainNetwork:t.chainNetwork,hash:t.hash};t.txHash&&(e.txHash=t.txHash),t.blockNumber!==void 0&&(e.blockNumber=t.blockNumber),t.metadata&&(e.metadata=l("metadata",t.metadata));let r=await b$1(z,{input:e});k$1(`Provenance recorded: ${r.recordProvenance.id}`),i(t,r.recordProvenance);}catch(e){h$1(e);}});}function Tt(n){let i$1=n.command("discovery-jobs").description("Assethandler asset discovery jobs");i$1.command("list").description("List discovery jobs").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{pagination:p(t.limit,t.cursor)});i(t,e.discoveryJobs,{headers:["ID","Name","Source","Status","Discovered"],rows:e.discoveryJobs.map(r$1=>[r(r$1.id,12),r$1.name,r$1.source,r$1.status,String(r$1.assetsDiscovered)])});}catch(e){h$1(e);}}),i$1.command("start").description("Start an asset discovery job").requiredOption("--name <name>","Job name").requiredOption("--source <s>","Discovery source").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,source:t.source},r=await b$1(Y,{input:e});k$1(`Discovery job started: ${r.startDiscoveryJob.name}`),i(t,r.startDiscoveryJob);}catch(e){h$1(e);}});}function it(n){n.command("dashboard").description("Assethandler dashboard overview").command("overview").description("Asset / transaction / incident / work-order counts").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q);i(t,e.dashboardOverview);}catch(e){h$1(e);}});}var Ct={id:"assethandler",version:"1.0.0",displayName:"Assethandler",dependsOn:["auth","workspaces"],register(n,i){a(i);let t=n.command("assethandler").description("Assethandler enterprise asset management platform");X(t),Z(t),tt(t),et(t),rt(t),nt(t),it(t);}},ce=Ct;export{ce as default};
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(r,n){super(r),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},I=class extends p{constructor(r,n){super(r,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(r,n){super(r),this.name="CliInternalError",this.cause=n;}};var C=null;function S(i){C=i;}function w(){if(!C)throw new f("vibecontrols module helpers used before setHelpersContext was called");return C}function Tt(){let i=w();if(!i.auth.isAuthenticated())throw new I("Authentication required.",{hint:`Run \`${i.productName} auth login\` to authenticate.`})}async function u(i,r){return Tt(),w().gql.workspace.request(i,r)}async function k(i,r){return w().gql.workspaceAuthOnly.request(i,r)}function s(i){let r=i instanceof Error?i.message:String(i);throw new p(r)}function a(i,r,n){w().output.formatAndOutput(i,r,n);}function d(i){w().output.printSuccess(i);}function l(i,r){return w().output.truncate(i,r)}var x=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(n,r){super(n),this.name="CliUserError",this.exitCode=r?.exitCode??1,this.hint=r?.hint;}},I=class extends p{constructor(n,r){super(n,{exitCode:2,hint:r?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(n,r){super(n),this.name="CliInternalError",this.cause=r;}};var C=null;function S(i){C=i;}function w(){if(!C)throw new f("vibecontrols module helpers used before setHelpersContext was called");return C}function Tt(){let i=w();if(!i.auth.isAuthenticated())throw new I("Authentication required.",{hint:`Run \`${i.productName} auth login\` to authenticate.`})}async function u(i,n){return Tt(),w().gql.workspace.request(i,n)}async function k(i,n){return w().gql.workspaceAuthOnly.request(i,n)}function s(i){let n=i instanceof Error?i.message:String(i);throw new p(n)}function a(i,n,r){w().output.formatAndOutput(i,n,r);}function d(i){w().output.printSuccess(i);}function l(i,n){return w().output.truncate(i,n)}var x=`
2
2
  query AthListTeams(
3
3
  $pagination: PaginationInput
4
4
  $sport: AthSport
@@ -15,10 +15,16 @@
15
15
  `,T=`
16
16
  query AthTeam($id: ID!) {
17
17
  athTeam(id: $id) {
18
- id name description sport status season ageGroup homeVenue headCoachId
19
- tags createdAt updatedAt workspaceId
20
- members { id displayName role status jerseyNumber position userId }
21
- fixtures { id homeTeamId awayTeamId scheduledAt status type competition }
18
+ id name description sport status season ageGroup homeVenue headCoachId tags createdAt
19
+ updatedAt workspaceId
20
+ members {
21
+ items { id displayName role status jerseyNumber position userId }
22
+ pageInfo { cursor hasMore }
23
+ }
24
+ fixtures {
25
+ items { id homeTeamId awayTeamId scheduledAt status type competition }
26
+ pageInfo { cursor hasMore }
27
+ }
22
28
  }
23
29
  }
24
30
  `,E=`
@@ -42,8 +48,11 @@
42
48
  `,O=`
43
49
  query AthListMembers($teamId: ID!, $status: AthMemberStatus) {
44
50
  athListMembers(teamId: $teamId, status: $status) {
45
- id teamId userId displayName role status jerseyNumber position
46
- dominantSide height weight joinedAt notes createdAt updatedAt workspaceId
51
+ items {
52
+ id teamId userId displayName role status jerseyNumber position dominantSide height
53
+ weight joinedAt notes createdAt updatedAt workspaceId
54
+ }
55
+ pageInfo { cursor hasMore }
47
56
  }
48
57
  }
49
58
  `,D=`
@@ -87,11 +96,11 @@
87
96
  `,M=`
88
97
  query AthProgram($id: ID!) {
89
98
  athProgram(id: $id) {
90
- id name summary sport level status weeks isTemplate coachId
91
- tags createdAt updatedAt workspaceId
99
+ id name summary sport level status weeks isTemplate coachId tags createdAt updatedAt
100
+ workspaceId
92
101
  drills {
93
- id name description weekNumber orderIndex sets reps durationSec
94
- restSec
102
+ items { id name description weekNumber orderIndex sets reps durationSec restSec }
103
+ pageInfo { cursor hasMore }
95
104
  }
96
105
  }
97
106
  }
@@ -211,8 +220,10 @@
211
220
  `,Y=`
212
221
  query AthPerformanceMetrics($athleteId: ID!, $type: AthMetricType) {
213
222
  athPerformanceMetrics(athleteId: $athleteId, type: $type) {
214
- id athleteId label type value unit source recordedAt
215
- createdAt updatedAt workspaceId
223
+ items {
224
+ id athleteId label type value unit source recordedAt createdAt updatedAt workspaceId
225
+ }
226
+ pageInfo { cursor hasMore }
216
227
  }
217
228
  }
218
229
  `,X=`
@@ -261,16 +272,19 @@
261
272
  homeScore awayScore updatedAt
262
273
  }
263
274
  }
264
- `,nt=`
275
+ `,rt=`
265
276
  query AthStandings($competition: String!) {
266
277
  athStandings(competition: $competition) {
267
- id competition teamId rank played won drawn lost
268
- goalsFor goalsAgainst points createdAt updatedAt workspaceId
269
- team { id name }
278
+ items {
279
+ id competition teamId rank played won drawn lost goalsFor goalsAgainst points
280
+ createdAt updatedAt workspaceId
281
+ team { id name }
282
+ }
283
+ pageInfo { cursor hasMore }
270
284
  }
271
285
  }
272
- `,rt=`
286
+ `,nt=`
273
287
  query AthHealth {
274
288
  athHealth
275
289
  }
276
- `;function ot(i,r){try{return JSON.parse(r)}catch{throw new p(`--${i} must be valid JSON`)}}function c(i){let r=Number.parseInt(i,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${i}"`);return r}function g(i){let r=Number.parseFloat(i);if(Number.isNaN(r))throw new p(`Expected a number but got "${i}"`);return r}function y(i){return i.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function it(i){let r=i.command("teams").description("AtheleteBridge teams");r.command("list").description("List teams").option("--sport <s>","Filter by sport").option("--status <s>","Filter by team status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(x,{pagination:{limit:n.limit,offset:n.offset},sport:n.sport?n.sport.toUpperCase():void 0,status:n.status?n.status.toUpperCase():void 0});a(n,t.athListTeams.items,{headers:["ID","Name","Sport","Status","Season"],rows:t.athListTeams.items.map(e=>[l(e.id,12),e.name,e.sport,e.status,e.season??"-"])});}catch(t){s(t);}}),r.command("get").description("Get a team by id").argument("<id>","Team ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(T,{id:n});if(!e.athTeam)throw new p(`Team ${n} not found`);a(t,e.athTeam);}catch(e){s(e);}}),r.command("create").description("Create a team").requiredOption("--name <name>","Team name").option("--description <s>","Description").option("--sport <s>","Sport","OTHER").option("--status <s>","Team status","FORMING").option("--season <s>","Season").option("--age-group <s>","Age group").option("--home-venue <s>","Home venue").option("--head-coach-id <id>","Head coach user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async n=>{try{let t={name:n.name,sport:(n.sport??"OTHER").toUpperCase(),status:(n.status??"FORMING").toUpperCase()};n.description&&(t.description=n.description),n.season&&(t.season=n.season),n.ageGroup&&(t.ageGroup=n.ageGroup),n.homeVenue&&(t.homeVenue=n.homeVenue),n.headCoachId&&(t.headCoachId=n.headCoachId),n.tags&&(t.tags=y(n.tags));let e=await u(E,{input:t});d(`Team created: ${e.athCreateTeam.name}`),a(n,e.athCreateTeam);}catch(t){s(t);}}),r.command("update").description("Update a team").argument("<id>","Team ID").option("--name <name>","Team name").option("--description <s>","Description").option("--sport <s>","Sport").option("--status <s>","Team status").option("--season <s>","Season").option("--age-group <s>","Age group").option("--home-venue <s>","Home venue").option("--head-coach-id <id>","Head coach user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e={};if(t.name&&(e.name=t.name),t.description!==void 0&&(e.description=t.description),t.sport&&(e.sport=t.sport.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.season&&(e.season=t.season),t.ageGroup&&(e.ageGroup=t.ageGroup),t.homeVenue&&(e.homeVenue=t.homeVenue),t.headCoachId&&(e.headCoachId=t.headCoachId),t.tags&&(e.tags=y(t.tags)),!Object.keys(e).length)throw new p("No updates specified");let o=await u(v,{id:n,input:e});d("Team updated"),a(t,o.athUpdateTeam);}catch(e){s(e);}}),r.command("archive").description("Archive a team").argument("<id>","Team ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(R,{id:n});d(e.athArchiveTeam?`Team ${n} archived`:`Team ${n} not archived`),a(t,{archived:e.athArchiveTeam});}catch(e){s(e);}});}function st(i){let r=i.command("members").description("AtheleteBridge team members");r.command("list").description("List members of a team").requiredOption("--team <id>","Team ID").option("--status <s>","Filter by member status").option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(O,{teamId:n.team,status:n.status?n.status.toUpperCase():void 0});a(n,t.athListMembers,{headers:["ID","Name","Role","Status","Jersey","Position"],rows:t.athListMembers.map(e=>[l(e.id,12),e.displayName,e.role,e.status,e.jerseyNumber!==void 0&&e.jerseyNumber!==null?String(e.jerseyNumber):"-",e.position??"-"])});}catch(t){s(t);}}),r.command("add").description("Add a member to a team").requiredOption("--team <id>","Team ID").requiredOption("--user <id>","User ID").requiredOption("--display-name <name>","Display name").option("--role <r>","Member role","PLAYER").option("--status <s>","Member status","ACTIVE").option("--jersey-number <n>","Jersey number",c).option("--position <s>","Position").option("--dominant-side <s>","Dominant side").option("--height <n>","Height",g).option("--weight <n>","Weight",g).option("--joined-at <iso>","Joined at (ISO timestamp)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async n=>{try{let t={teamId:n.team,userId:n.user,displayName:n.displayName,role:(n.role??"PLAYER").toUpperCase(),status:(n.status??"ACTIVE").toUpperCase()};n.jerseyNumber!==void 0&&(t.jerseyNumber=n.jerseyNumber),n.position&&(t.position=n.position),n.dominantSide&&(t.dominantSide=n.dominantSide),n.height!==void 0&&(t.height=n.height),n.weight!==void 0&&(t.weight=n.weight),n.joinedAt&&(t.joinedAt=n.joinedAt),n.notes&&(t.notes=n.notes);let e=await u(D,{input:t});d(`Member added: ${e.athAddMember.displayName}`),a(n,e.athAddMember);}catch(t){s(t);}}),r.command("update").description("Update a team member").argument("<id>","Member ID").option("--display-name <name>","Display name").option("--role <r>","Member role").option("--status <s>","Member status").option("--jersey-number <n>","Jersey number",c).option("--position <s>","Position").option("--dominant-side <s>","Dominant side").option("--height <n>","Height",g).option("--weight <n>","Weight",g).option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e={};if(t.displayName&&(e.displayName=t.displayName),t.role&&(e.role=t.role.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.jerseyNumber!==void 0&&(e.jerseyNumber=t.jerseyNumber),t.position&&(e.position=t.position),t.dominantSide&&(e.dominantSide=t.dominantSide),t.height!==void 0&&(e.height=t.height),t.weight!==void 0&&(e.weight=t.weight),t.notes!==void 0&&(e.notes=t.notes),!Object.keys(e).length)throw new p("No updates specified");let o=await u($,{id:n,input:e});d("Member updated"),a(t,o.athUpdateMember);}catch(e){s(e);}}),r.command("remove").description("Remove a team member").argument("<id>","Member ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(L,{id:n});d(e.athRemoveMember?`Member ${n} removed`:`Member ${n} not removed`),a(t,{removed:e.athRemoveMember});}catch(e){s(e);}});}function at(i){let r=i.command("programs").description("AtheleteBridge training programs");r.command("list").description("List training programs").option("--level <l>","Filter by program level").option("--sport <s>","Filter by sport").option("--status <s>","Filter by program status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await u(P,{pagination:{limit:t.limit,offset:t.offset},level:t.level?t.level.toUpperCase():void 0,sport:t.sport?t.sport.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});a(t,e.athListPrograms.items,{headers:["ID","Name","Sport","Level","Status","Weeks"],rows:e.athListPrograms.items.map(o=>[l(o.id,12),o.name,o.sport,o.level,o.status,o.weeks!==void 0&&o.weeks!==null?String(o.weeks):"-"])});}catch(e){s(e);}}),r.command("get").description("Get a training program by id").argument("<id>","Program ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(M,{id:t});if(!o.athProgram)throw new p(`Program ${t} not found`);a(e,o.athProgram);}catch(o){s(o);}}),r.command("create").description("Create a training program").requiredOption("--name <name>","Program name").option("--summary <s>","Summary").option("--sport <s>","Sport","OTHER").option("--level <l>","Level","BEGINNER").option("--weeks <n>","Number of weeks",c).option("--template","Mark as a template").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,sport:(t.sport??"OTHER").toUpperCase(),level:(t.level??"BEGINNER").toUpperCase(),isTemplate:!!t.template};t.summary&&(e.summary=t.summary),t.weeks!==void 0&&(e.weeks=t.weeks),t.tags&&(e.tags=y(t.tags));let o=await u(N,{input:e});d(`Program created: ${o.athCreateProgram.name}`),a(t,o.athCreateProgram);}catch(e){s(e);}}),r.command("update").description("Update a training program").argument("<id>","Program ID").option("--name <name>","Program name").option("--summary <s>","Summary").option("--sport <s>","Sport").option("--level <l>","Level").option("--weeks <n>","Number of weeks",c).option("--template <bool>","Template flag (true|false)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.summary!==void 0&&(o.summary=e.summary),e.sport&&(o.sport=e.sport.toUpperCase()),e.level&&(o.level=e.level.toUpperCase()),e.weeks!==void 0&&(o.weeks=e.weeks),e.template!==void 0&&(o.isTemplate=e.template==="true"),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new p("No updates specified");let gt=await u(_,{id:t,input:o});d("Program updated"),a(e,gt.athUpdateProgram);}catch(o){s(o);}}),r.command("transition").description("Advance a program through its publish lifecycle (DRAFT -> PUBLISHED -> ARCHIVED)").argument("<id>","Program ID").requiredOption("--status <s>","Target status: DRAFT|PUBLISHED|ARCHIVED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(F,{id:t,status:e.status.toUpperCase()});d(`Program transitioned to ${o.athTransitionProgram.status}`),a(e,o.athTransitionProgram);}catch(o){s(o);}}),r.command("archive").description("Archive a training program").argument("<id>","Program ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(U,{id:t});d(o.athArchiveProgram?`Program ${t} archived`:`Program ${t} not archived`),a(e,{archived:o.athArchiveProgram});}catch(o){s(o);}});let n=r.command("drills").description("AtheleteBridge program drills");n.command("add").description("Add a drill to a program").requiredOption("--program <id>","Program ID").requiredOption("--name <name>","Drill name").option("--description <s>","Description").option("--week-number <n>","Week number",c,1).option("--order-index <n>","Order index",c,0).option("--sets <n>","Sets",c).option("--reps <n>","Reps",c).option("--duration-sec <n>","Duration (seconds)",c).option("--rest-sec <n>","Rest (seconds)",c).option("--video-file-id <id>","Video file ID (wspace-files-svc)").option("-f, --format <format>","Output format").action(async t=>{try{let e={programId:t.program,name:t.name,weekNumber:t.weekNumber??1,orderIndex:t.orderIndex??0};t.description&&(e.description=t.description),t.sets!==void 0&&(e.sets=t.sets),t.reps!==void 0&&(e.reps=t.reps),t.durationSec!==void 0&&(e.durationSec=t.durationSec),t.restSec!==void 0&&(e.restSec=t.restSec),t.videoFileId&&(e.videoFileId=t.videoFileId);let o=await u(q,{input:e});d(`Drill added: ${o.athAddDrill.name}`),a(t,o.athAddDrill);}catch(e){s(e);}}),n.command("remove").description("Remove a drill").argument("<id>","Drill ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(G,{id:t});d(o.athRemoveDrill?`Drill ${t} removed`:`Drill ${t} not removed`),a(e,{removed:o.athRemoveDrill});}catch(o){s(o);}});}function ut(i){let r=i.command("sessions").description("AtheleteBridge coaching sessions");r.command("list").description("List sessions").option("--athlete <id>","Filter by athlete ID").option("--coach <id>","Filter by coach ID").option("--status <s>","Filter by session status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(W,{pagination:{limit:n.limit,offset:n.offset},athleteId:n.athlete,coachId:n.coach,status:n.status?n.status.toUpperCase():void 0});a(n,t.athListSessions.items,{headers:["ID","Title","Type","Status","Scheduled"],rows:t.athListSessions.items.map(e=>[l(e.id,12),e.title,e.type,e.status,e.scheduledAt])});}catch(t){s(t);}}),r.command("get").description("Get a session by id").argument("<id>","Session ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(j,{id:n});if(!e.athSession)throw new p(`Session ${n} not found`);a(t,e.athSession);}catch(e){s(e);}}),r.command("book").description("Book a coaching session").requiredOption("--athlete <id>","Athlete ID").requiredOption("--coach <id>","Coach ID").requiredOption("--title <s>","Session title").requiredOption("--scheduled-at <iso>","Scheduled at (ISO timestamp)").option("--type <t>","Session type","IN_PERSON").option("--duration-min <n>","Duration (minutes)",c).option("--location <s>","Location").option("--meeting-url <url>","Meeting URL").option("--program <id>","Program ID").option("-f, --format <format>","Output format").action(async n=>{try{let t={athleteId:n.athlete,coachId:n.coach,title:n.title,scheduledAt:n.scheduledAt,type:(n.type??"IN_PERSON").toUpperCase()};n.durationMin!==void 0&&(t.durationMin=n.durationMin),n.location&&(t.location=n.location),n.meetingUrl&&(t.meetingUrl=n.meetingUrl),n.program&&(t.programId=n.program);let e=await u(B,{input:t});d(`Session booked: ${e.athBookSession.title}`),a(n,e.athBookSession);}catch(t){s(t);}}),r.command("confirm").description("Confirm a requested session").argument("<id>","Session ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(H,{id:n});d(`Session confirmed: ${e.athConfirmSession.status}`),a(t,e.athConfirmSession);}catch(e){s(e);}}),r.command("cancel").description("Cancel a session").argument("<id>","Session ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(V,{id:n});d(`Session cancelled: ${e.athCancelSession.status}`),a(t,e.athCancelSession);}catch(e){s(e);}}),r.command("complete").description("Complete a session (optionally with rating and feedback)").argument("<id>","Session ID").option("--rating <n>","Rating",c).option("--feedback <s>","Feedback").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e={};t.rating!==void 0&&(e.rating=t.rating),t.feedback&&(e.feedback=t.feedback);let o=await u(z,{id:n,input:Object.keys(e).length?e:void 0});d(`Session completed: ${o.athCompleteSession.status}`),a(t,o.athCompleteSession);}catch(e){s(e);}});}function ct(i){let r=i.command("workouts").description("AtheleteBridge workout logs");r.command("list").description("List workout logs").option("--athlete <id>","Filter by athlete ID").option("--program <id>","Filter by program ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(J,{pagination:{limit:n.limit,offset:n.offset},athleteId:n.athlete,programId:n.program});a(n,t.athListWorkoutLogs.items,{headers:["ID","Title","Status","Performed","Load","RPE"],rows:t.athListWorkoutLogs.items.map(e=>[l(e.id,12),e.title,e.status,e.performedAt,e.totalLoad!==void 0&&e.totalLoad!==null?String(e.totalLoad):"-",e.rpe!==void 0&&e.rpe!==null?String(e.rpe):"-"])});}catch(t){s(t);}}),r.command("log").description("Log a workout").requiredOption("--title <s>","Workout title").requiredOption("--performed-at <iso>","Performed at (ISO timestamp)").option("--athlete <id>","Athlete ID").option("--program <id>","Program ID").option("--status <s>","Workout status","COMPLETED").option("--duration-min <n>","Duration (minutes)",c).option("--total-load <n>","Total load",g).option("--rpe <n>","Rate of perceived exertion",c).option("--notes <s>","Notes").option("--metrics <json>","Metrics JSON object").option("-f, --format <format>","Output format").action(async n=>{try{let t={title:n.title,performedAt:n.performedAt,status:(n.status??"COMPLETED").toUpperCase()};n.athlete&&(t.athleteId=n.athlete),n.program&&(t.programId=n.program),n.durationMin!==void 0&&(t.durationMin=n.durationMin),n.totalLoad!==void 0&&(t.totalLoad=n.totalLoad),n.rpe!==void 0&&(t.rpe=n.rpe),n.notes&&(t.notes=n.notes),n.metrics&&(t.metrics=ot("metrics",n.metrics));let e=await u(K,{input:t});d(`Workout logged: ${e.athLogWorkout.title}`),a(n,e.athLogWorkout);}catch(t){s(t);}});}function dt(i){let r=i.command("metrics").description("AtheleteBridge performance metrics");r.command("list").description("List performance metrics for an athlete").requiredOption("--athlete <id>","Athlete ID").option("--type <t>","Filter by metric type").option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(Y,{athleteId:n.athlete,type:n.type?n.type.toUpperCase():void 0});a(n,t.athPerformanceMetrics,{headers:["ID","Label","Type","Value","Unit","Recorded"],rows:t.athPerformanceMetrics.map(e=>[l(e.id,12),e.label,e.type,String(e.value),e.unit??"-",e.recordedAt])});}catch(t){s(t);}}),r.command("record").description("Record a performance metric").requiredOption("--label <s>","Metric label").requiredOption("--value <n>","Metric value",g).requiredOption("--recorded-at <iso>","Recorded at (ISO timestamp)").option("--athlete <id>","Athlete ID").option("--type <t>","Metric type","CUSTOM").option("--unit <s>","Unit").option("--source <s>","Source").option("-f, --format <format>","Output format").action(async n=>{try{let t={label:n.label,value:n.value,recordedAt:n.recordedAt,type:(n.type??"CUSTOM").toUpperCase()};n.athlete&&(t.athleteId=n.athlete),n.unit&&(t.unit=n.unit),n.source&&(t.source=n.source);let e=await u(X,{input:t});d(`Metric recorded: ${e.athRecordMetric.label}`),a(n,e.athRecordMetric);}catch(t){s(t);}});}function pt(i){let r=i.command("fixtures").description("AtheleteBridge fixtures");r.command("list").description("List fixtures").option("--team <id>","Filter by team ID").option("--status <s>","Filter by fixture status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(Q,{pagination:{limit:n.limit,offset:n.offset},status:n.status?n.status.toUpperCase():void 0,teamId:n.team});a(n,t.athListFixtures.items,{headers:["ID","Type","Status","Competition","Scheduled","Score"],rows:t.athListFixtures.items.map(e=>[l(e.id,12),e.type,e.status,e.competition??"-",e.scheduledAt,e.homeScore!==void 0&&e.homeScore!==null&&e.awayScore!==void 0&&e.awayScore!==null?`${e.homeScore}-${e.awayScore}`:"-"])});}catch(t){s(t);}}),r.command("get").description("Get a fixture by id").argument("<id>","Fixture ID").option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(Z,{id:n});if(!e.athFixture)throw new p(`Fixture ${n} not found`);a(t,e.athFixture);}catch(e){s(e);}}),r.command("schedule").description("Schedule a fixture").requiredOption("--home-team <id>","Home team ID").requiredOption("--scheduled-at <iso>","Scheduled at (ISO timestamp)").option("--away-team <id>","Away team ID").option("--type <t>","Fixture type","FRIENDLY").option("--competition <s>","Competition").option("--round <s>","Round").option("--kickoff-at <iso>","Kickoff at (ISO timestamp)").option("--venue <s>","Venue").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async n=>{try{let t={homeTeamId:n.homeTeam,scheduledAt:n.scheduledAt,type:(n.type??"FRIENDLY").toUpperCase()};n.awayTeam&&(t.awayTeamId=n.awayTeam),n.competition&&(t.competition=n.competition),n.round&&(t.round=n.round),n.kickoffAt&&(t.kickoffAt=n.kickoffAt),n.venue&&(t.venue=n.venue),n.notes&&(t.notes=n.notes);let e=await u(tt,{input:t});d(`Fixture scheduled: ${e.athScheduleFixture.id}`),a(n,e.athScheduleFixture);}catch(t){s(t);}}),r.command("record-result").description("Record a final result for a fixture and recompute standings").argument("<id>","Fixture ID").requiredOption("--home-score <n>","Home score",c).requiredOption("--away-score <n>","Away score",c).option("-f, --format <format>","Output format").action(async(n,t)=>{try{let e=await u(et,{id:n,input:{homeScore:t.homeScore,awayScore:t.awayScore}});d(`Result recorded: ${e.athRecordFixtureResult.homeScore??0}-${e.athRecordFixtureResult.awayScore??0}`),a(t,e.athRecordFixtureResult);}catch(e){s(e);}});}function mt(i){i.command("standings").description("AtheleteBridge standings").command("list").description("List standings for a competition").requiredOption("--competition <s>","Competition name").option("-f, --format <format>","Output format").action(async n=>{try{let t=await u(nt,{competition:n.competition});a(n,t.athStandings,{headers:["Rank","Team","P","W","D","L","Pts"],rows:t.athStandings.map(e=>[e.rank!==void 0&&e.rank!==null?String(e.rank):"-",l(e.teamId,12),String(e.played),String(e.won),String(e.drawn),String(e.lost),String(e.points)])});}catch(t){s(t);}});}function lt(i){i.command("health").description("AtheleteBridge service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let n=await k(rt);d(n.athHealth),a(r,{health:n.athHealth});}catch(n){s(n);}});}var Et={id:"atheletebridge",version:"1.0.0",displayName:"AtheleteBridge",dependsOn:["auth","workspaces"],register(i,r){S(r);let n=i.command("atheletebridge").description("AtheleteBridge sports team & athlete management");it(n),st(n),at(n),ut(n),ct(n),dt(n),pt(n),mt(n),lt(n);}},ln=Et;module.exports=ln;
290
+ `;function ot(i,n){try{return JSON.parse(n)}catch{throw new p(`--${i} must be valid JSON`)}}function c(i){let n=Number.parseInt(i,10);if(Number.isNaN(n))throw new p(`Expected an integer but got "${i}"`);return n}function g(i){let n=Number.parseFloat(i);if(Number.isNaN(n))throw new p(`Expected a number but got "${i}"`);return n}function y(i){return i.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function it(i){let n=i.command("teams").description("AtheleteBridge teams");n.command("list").description("List teams").option("--sport <s>","Filter by sport").option("--status <s>","Filter by team status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(x,{pagination:{limit:r.limit,offset:r.offset},sport:r.sport?r.sport.toUpperCase():void 0,status:r.status?r.status.toUpperCase():void 0});a(r,t.athListTeams.items,{headers:["ID","Name","Sport","Status","Season"],rows:t.athListTeams.items.map(e=>[l(e.id,12),e.name,e.sport,e.status,e.season??"-"])});}catch(t){s(t);}}),n.command("get").description("Get a team by id").argument("<id>","Team ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(T,{id:r});if(!e.athTeam)throw new p(`Team ${r} not found`);a(t,e.athTeam);}catch(e){s(e);}}),n.command("create").description("Create a team").requiredOption("--name <name>","Team name").option("--description <s>","Description").option("--sport <s>","Sport","OTHER").option("--status <s>","Team status","FORMING").option("--season <s>","Season").option("--age-group <s>","Age group").option("--home-venue <s>","Home venue").option("--head-coach-id <id>","Head coach user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async r=>{try{let t={name:r.name,sport:(r.sport??"OTHER").toUpperCase(),status:(r.status??"FORMING").toUpperCase()};r.description&&(t.description=r.description),r.season&&(t.season=r.season),r.ageGroup&&(t.ageGroup=r.ageGroup),r.homeVenue&&(t.homeVenue=r.homeVenue),r.headCoachId&&(t.headCoachId=r.headCoachId),r.tags&&(t.tags=y(r.tags));let e=await u(E,{input:t});d(`Team created: ${e.athCreateTeam.name}`),a(r,e.athCreateTeam);}catch(t){s(t);}}),n.command("update").description("Update a team").argument("<id>","Team ID").option("--name <name>","Team name").option("--description <s>","Description").option("--sport <s>","Sport").option("--status <s>","Team status").option("--season <s>","Season").option("--age-group <s>","Age group").option("--home-venue <s>","Home venue").option("--head-coach-id <id>","Head coach user ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e={};if(t.name&&(e.name=t.name),t.description!==void 0&&(e.description=t.description),t.sport&&(e.sport=t.sport.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.season&&(e.season=t.season),t.ageGroup&&(e.ageGroup=t.ageGroup),t.homeVenue&&(e.homeVenue=t.homeVenue),t.headCoachId&&(e.headCoachId=t.headCoachId),t.tags&&(e.tags=y(t.tags)),!Object.keys(e).length)throw new p("No updates specified");let o=await u(v,{id:r,input:e});d("Team updated"),a(t,o.athUpdateTeam);}catch(e){s(e);}}),n.command("archive").description("Archive a team").argument("<id>","Team ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(R,{id:r});d(e.athArchiveTeam?`Team ${r} archived`:`Team ${r} not archived`),a(t,{archived:e.athArchiveTeam});}catch(e){s(e);}});}function st(i){let n=i.command("members").description("AtheleteBridge team members");n.command("list").description("List members of a team").requiredOption("--team <id>","Team ID").option("--status <s>","Filter by member status").option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(O,{teamId:r.team,status:r.status?r.status.toUpperCase():void 0});a(r,t.athListMembers.items,{headers:["ID","Name","Role","Status","Jersey","Position"],rows:t.athListMembers.items.map(e=>[l(e.id,12),e.displayName,e.role,e.status,e.jerseyNumber!==void 0&&e.jerseyNumber!==null?String(e.jerseyNumber):"-",e.position??"-"])});}catch(t){s(t);}}),n.command("add").description("Add a member to a team").requiredOption("--team <id>","Team ID").requiredOption("--user <id>","User ID").requiredOption("--display-name <name>","Display name").option("--role <r>","Member role","PLAYER").option("--status <s>","Member status","ACTIVE").option("--jersey-number <n>","Jersey number",c).option("--position <s>","Position").option("--dominant-side <s>","Dominant side").option("--height <n>","Height",g).option("--weight <n>","Weight",g).option("--joined-at <iso>","Joined at (ISO timestamp)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async r=>{try{let t={teamId:r.team,userId:r.user,displayName:r.displayName,role:(r.role??"PLAYER").toUpperCase(),status:(r.status??"ACTIVE").toUpperCase()};r.jerseyNumber!==void 0&&(t.jerseyNumber=r.jerseyNumber),r.position&&(t.position=r.position),r.dominantSide&&(t.dominantSide=r.dominantSide),r.height!==void 0&&(t.height=r.height),r.weight!==void 0&&(t.weight=r.weight),r.joinedAt&&(t.joinedAt=r.joinedAt),r.notes&&(t.notes=r.notes);let e=await u(D,{input:t});d(`Member added: ${e.athAddMember.displayName}`),a(r,e.athAddMember);}catch(t){s(t);}}),n.command("update").description("Update a team member").argument("<id>","Member ID").option("--display-name <name>","Display name").option("--role <r>","Member role").option("--status <s>","Member status").option("--jersey-number <n>","Jersey number",c).option("--position <s>","Position").option("--dominant-side <s>","Dominant side").option("--height <n>","Height",g).option("--weight <n>","Weight",g).option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e={};if(t.displayName&&(e.displayName=t.displayName),t.role&&(e.role=t.role.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.jerseyNumber!==void 0&&(e.jerseyNumber=t.jerseyNumber),t.position&&(e.position=t.position),t.dominantSide&&(e.dominantSide=t.dominantSide),t.height!==void 0&&(e.height=t.height),t.weight!==void 0&&(e.weight=t.weight),t.notes!==void 0&&(e.notes=t.notes),!Object.keys(e).length)throw new p("No updates specified");let o=await u($,{id:r,input:e});d("Member updated"),a(t,o.athUpdateMember);}catch(e){s(e);}}),n.command("remove").description("Remove a team member").argument("<id>","Member ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(L,{id:r});d(e.athRemoveMember?`Member ${r} removed`:`Member ${r} not removed`),a(t,{removed:e.athRemoveMember});}catch(e){s(e);}});}function at(i){let n=i.command("programs").description("AtheleteBridge training programs");n.command("list").description("List training programs").option("--level <l>","Filter by program level").option("--sport <s>","Filter by sport").option("--status <s>","Filter by program status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await u(P,{pagination:{limit:t.limit,offset:t.offset},level:t.level?t.level.toUpperCase():void 0,sport:t.sport?t.sport.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});a(t,e.athListPrograms.items,{headers:["ID","Name","Sport","Level","Status","Weeks"],rows:e.athListPrograms.items.map(o=>[l(o.id,12),o.name,o.sport,o.level,o.status,o.weeks!==void 0&&o.weeks!==null?String(o.weeks):"-"])});}catch(e){s(e);}}),n.command("get").description("Get a training program by id").argument("<id>","Program ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(M,{id:t});if(!o.athProgram)throw new p(`Program ${t} not found`);a(e,o.athProgram);}catch(o){s(o);}}),n.command("create").description("Create a training program").requiredOption("--name <name>","Program name").option("--summary <s>","Summary").option("--sport <s>","Sport","OTHER").option("--level <l>","Level","BEGINNER").option("--weeks <n>","Number of weeks",c).option("--template","Mark as a template").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,sport:(t.sport??"OTHER").toUpperCase(),level:(t.level??"BEGINNER").toUpperCase(),isTemplate:!!t.template};t.summary&&(e.summary=t.summary),t.weeks!==void 0&&(e.weeks=t.weeks),t.tags&&(e.tags=y(t.tags));let o=await u(N,{input:e});d(`Program created: ${o.athCreateProgram.name}`),a(t,o.athCreateProgram);}catch(e){s(e);}}),n.command("update").description("Update a training program").argument("<id>","Program ID").option("--name <name>","Program name").option("--summary <s>","Summary").option("--sport <s>","Sport").option("--level <l>","Level").option("--weeks <n>","Number of weeks",c).option("--template <bool>","Template flag (true|false)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.summary!==void 0&&(o.summary=e.summary),e.sport&&(o.sport=e.sport.toUpperCase()),e.level&&(o.level=e.level.toUpperCase()),e.weeks!==void 0&&(o.weeks=e.weeks),e.template!==void 0&&(o.isTemplate=e.template==="true"),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new p("No updates specified");let gt=await u(_,{id:t,input:o});d("Program updated"),a(e,gt.athUpdateProgram);}catch(o){s(o);}}),n.command("transition").description("Advance a program through its publish lifecycle (DRAFT -> PUBLISHED -> ARCHIVED)").argument("<id>","Program ID").requiredOption("--status <s>","Target status: DRAFT|PUBLISHED|ARCHIVED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(F,{id:t,status:e.status.toUpperCase()});d(`Program transitioned to ${o.athTransitionProgram.status}`),a(e,o.athTransitionProgram);}catch(o){s(o);}}),n.command("archive").description("Archive a training program").argument("<id>","Program ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(U,{id:t});d(o.athArchiveProgram?`Program ${t} archived`:`Program ${t} not archived`),a(e,{archived:o.athArchiveProgram});}catch(o){s(o);}});let r=n.command("drills").description("AtheleteBridge program drills");r.command("add").description("Add a drill to a program").requiredOption("--program <id>","Program ID").requiredOption("--name <name>","Drill name").option("--description <s>","Description").option("--week-number <n>","Week number",c,1).option("--order-index <n>","Order index",c,0).option("--sets <n>","Sets",c).option("--reps <n>","Reps",c).option("--duration-sec <n>","Duration (seconds)",c).option("--rest-sec <n>","Rest (seconds)",c).option("--video-file-id <id>","Video file ID (wspace-files-svc)").option("-f, --format <format>","Output format").action(async t=>{try{let e={programId:t.program,name:t.name,weekNumber:t.weekNumber??1,orderIndex:t.orderIndex??0};t.description&&(e.description=t.description),t.sets!==void 0&&(e.sets=t.sets),t.reps!==void 0&&(e.reps=t.reps),t.durationSec!==void 0&&(e.durationSec=t.durationSec),t.restSec!==void 0&&(e.restSec=t.restSec),t.videoFileId&&(e.videoFileId=t.videoFileId);let o=await u(q,{input:e});d(`Drill added: ${o.athAddDrill.name}`),a(t,o.athAddDrill);}catch(e){s(e);}}),r.command("remove").description("Remove a drill").argument("<id>","Drill ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await u(G,{id:t});d(o.athRemoveDrill?`Drill ${t} removed`:`Drill ${t} not removed`),a(e,{removed:o.athRemoveDrill});}catch(o){s(o);}});}function ut(i){let n=i.command("sessions").description("AtheleteBridge coaching sessions");n.command("list").description("List sessions").option("--athlete <id>","Filter by athlete ID").option("--coach <id>","Filter by coach ID").option("--status <s>","Filter by session status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(W,{pagination:{limit:r.limit,offset:r.offset},athleteId:r.athlete,coachId:r.coach,status:r.status?r.status.toUpperCase():void 0});a(r,t.athListSessions.items,{headers:["ID","Title","Type","Status","Scheduled"],rows:t.athListSessions.items.map(e=>[l(e.id,12),e.title,e.type,e.status,e.scheduledAt])});}catch(t){s(t);}}),n.command("get").description("Get a session by id").argument("<id>","Session ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(j,{id:r});if(!e.athSession)throw new p(`Session ${r} not found`);a(t,e.athSession);}catch(e){s(e);}}),n.command("book").description("Book a coaching session").requiredOption("--athlete <id>","Athlete ID").requiredOption("--coach <id>","Coach ID").requiredOption("--title <s>","Session title").requiredOption("--scheduled-at <iso>","Scheduled at (ISO timestamp)").option("--type <t>","Session type","IN_PERSON").option("--duration-min <n>","Duration (minutes)",c).option("--location <s>","Location").option("--meeting-url <url>","Meeting URL").option("--program <id>","Program ID").option("-f, --format <format>","Output format").action(async r=>{try{let t={athleteId:r.athlete,coachId:r.coach,title:r.title,scheduledAt:r.scheduledAt,type:(r.type??"IN_PERSON").toUpperCase()};r.durationMin!==void 0&&(t.durationMin=r.durationMin),r.location&&(t.location=r.location),r.meetingUrl&&(t.meetingUrl=r.meetingUrl),r.program&&(t.programId=r.program);let e=await u(B,{input:t});d(`Session booked: ${e.athBookSession.title}`),a(r,e.athBookSession);}catch(t){s(t);}}),n.command("confirm").description("Confirm a requested session").argument("<id>","Session ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(H,{id:r});d(`Session confirmed: ${e.athConfirmSession.status}`),a(t,e.athConfirmSession);}catch(e){s(e);}}),n.command("cancel").description("Cancel a session").argument("<id>","Session ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(V,{id:r});d(`Session cancelled: ${e.athCancelSession.status}`),a(t,e.athCancelSession);}catch(e){s(e);}}),n.command("complete").description("Complete a session (optionally with rating and feedback)").argument("<id>","Session ID").option("--rating <n>","Rating",c).option("--feedback <s>","Feedback").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e={};t.rating!==void 0&&(e.rating=t.rating),t.feedback&&(e.feedback=t.feedback);let o=await u(z,{id:r,input:Object.keys(e).length?e:void 0});d(`Session completed: ${o.athCompleteSession.status}`),a(t,o.athCompleteSession);}catch(e){s(e);}});}function ct(i){let n=i.command("workouts").description("AtheleteBridge workout logs");n.command("list").description("List workout logs").option("--athlete <id>","Filter by athlete ID").option("--program <id>","Filter by program ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(J,{pagination:{limit:r.limit,offset:r.offset},athleteId:r.athlete,programId:r.program});a(r,t.athListWorkoutLogs.items,{headers:["ID","Title","Status","Performed","Load","RPE"],rows:t.athListWorkoutLogs.items.map(e=>[l(e.id,12),e.title,e.status,e.performedAt,e.totalLoad!==void 0&&e.totalLoad!==null?String(e.totalLoad):"-",e.rpe!==void 0&&e.rpe!==null?String(e.rpe):"-"])});}catch(t){s(t);}}),n.command("log").description("Log a workout").requiredOption("--title <s>","Workout title").requiredOption("--performed-at <iso>","Performed at (ISO timestamp)").option("--athlete <id>","Athlete ID").option("--program <id>","Program ID").option("--status <s>","Workout status","COMPLETED").option("--duration-min <n>","Duration (minutes)",c).option("--total-load <n>","Total load",g).option("--rpe <n>","Rate of perceived exertion",c).option("--notes <s>","Notes").option("--metrics <json>","Metrics JSON object").option("-f, --format <format>","Output format").action(async r=>{try{let t={title:r.title,performedAt:r.performedAt,status:(r.status??"COMPLETED").toUpperCase()};r.athlete&&(t.athleteId=r.athlete),r.program&&(t.programId=r.program),r.durationMin!==void 0&&(t.durationMin=r.durationMin),r.totalLoad!==void 0&&(t.totalLoad=r.totalLoad),r.rpe!==void 0&&(t.rpe=r.rpe),r.notes&&(t.notes=r.notes),r.metrics&&(t.metrics=ot("metrics",r.metrics));let e=await u(K,{input:t});d(`Workout logged: ${e.athLogWorkout.title}`),a(r,e.athLogWorkout);}catch(t){s(t);}});}function dt(i){let n=i.command("metrics").description("AtheleteBridge performance metrics");n.command("list").description("List performance metrics for an athlete").requiredOption("--athlete <id>","Athlete ID").option("--type <t>","Filter by metric type").option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(Y,{athleteId:r.athlete,type:r.type?r.type.toUpperCase():void 0});a(r,t.athPerformanceMetrics.items,{headers:["ID","Label","Type","Value","Unit","Recorded"],rows:t.athPerformanceMetrics.items.map(e=>[l(e.id,12),e.label,e.type,String(e.value),e.unit??"-",e.recordedAt])});}catch(t){s(t);}}),n.command("record").description("Record a performance metric").requiredOption("--label <s>","Metric label").requiredOption("--value <n>","Metric value",g).requiredOption("--recorded-at <iso>","Recorded at (ISO timestamp)").option("--athlete <id>","Athlete ID").option("--type <t>","Metric type","CUSTOM").option("--unit <s>","Unit").option("--source <s>","Source").option("-f, --format <format>","Output format").action(async r=>{try{let t={label:r.label,value:r.value,recordedAt:r.recordedAt,type:(r.type??"CUSTOM").toUpperCase()};r.athlete&&(t.athleteId=r.athlete),r.unit&&(t.unit=r.unit),r.source&&(t.source=r.source);let e=await u(X,{input:t});d(`Metric recorded: ${e.athRecordMetric.label}`),a(r,e.athRecordMetric);}catch(t){s(t);}});}function pt(i){let n=i.command("fixtures").description("AtheleteBridge fixtures");n.command("list").description("List fixtures").option("--team <id>","Filter by team ID").option("--status <s>","Filter by fixture status").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(Q,{pagination:{limit:r.limit,offset:r.offset},status:r.status?r.status.toUpperCase():void 0,teamId:r.team});a(r,t.athListFixtures.items,{headers:["ID","Type","Status","Competition","Scheduled","Score"],rows:t.athListFixtures.items.map(e=>[l(e.id,12),e.type,e.status,e.competition??"-",e.scheduledAt,e.homeScore!==void 0&&e.homeScore!==null&&e.awayScore!==void 0&&e.awayScore!==null?`${e.homeScore}-${e.awayScore}`:"-"])});}catch(t){s(t);}}),n.command("get").description("Get a fixture by id").argument("<id>","Fixture ID").option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(Z,{id:r});if(!e.athFixture)throw new p(`Fixture ${r} not found`);a(t,e.athFixture);}catch(e){s(e);}}),n.command("schedule").description("Schedule a fixture").requiredOption("--home-team <id>","Home team ID").requiredOption("--scheduled-at <iso>","Scheduled at (ISO timestamp)").option("--away-team <id>","Away team ID").option("--type <t>","Fixture type","FRIENDLY").option("--competition <s>","Competition").option("--round <s>","Round").option("--kickoff-at <iso>","Kickoff at (ISO timestamp)").option("--venue <s>","Venue").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async r=>{try{let t={homeTeamId:r.homeTeam,scheduledAt:r.scheduledAt,type:(r.type??"FRIENDLY").toUpperCase()};r.awayTeam&&(t.awayTeamId=r.awayTeam),r.competition&&(t.competition=r.competition),r.round&&(t.round=r.round),r.kickoffAt&&(t.kickoffAt=r.kickoffAt),r.venue&&(t.venue=r.venue),r.notes&&(t.notes=r.notes);let e=await u(tt,{input:t});d(`Fixture scheduled: ${e.athScheduleFixture.id}`),a(r,e.athScheduleFixture);}catch(t){s(t);}}),n.command("record-result").description("Record a final result for a fixture and recompute standings").argument("<id>","Fixture ID").requiredOption("--home-score <n>","Home score",c).requiredOption("--away-score <n>","Away score",c).option("-f, --format <format>","Output format").action(async(r,t)=>{try{let e=await u(et,{id:r,input:{homeScore:t.homeScore,awayScore:t.awayScore}});d(`Result recorded: ${e.athRecordFixtureResult.homeScore??0}-${e.athRecordFixtureResult.awayScore??0}`),a(t,e.athRecordFixtureResult);}catch(e){s(e);}});}function mt(i){i.command("standings").description("AtheleteBridge standings").command("list").description("List standings for a competition").requiredOption("--competition <s>","Competition name").option("-f, --format <format>","Output format").action(async r=>{try{let t=await u(rt,{competition:r.competition});a(r,t.athStandings.items,{headers:["Rank","Team","P","W","D","L","Pts"],rows:t.athStandings.items.map(e=>[e.rank!==void 0&&e.rank!==null?String(e.rank):"-",l(e.teamId,12),String(e.played),String(e.won),String(e.drawn),String(e.lost),String(e.points)])});}catch(t){s(t);}});}function lt(i){i.command("health").description("AtheleteBridge service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let r=await k(nt);d(r.athHealth),a(n,{health:r.athHealth});}catch(r){s(r);}});}var Et={id:"atheletebridge",version:"1.0.0",displayName:"AtheleteBridge",dependsOn:["auth","workspaces"],register(i,n){S(n);let r=i.command("atheletebridge").description("AtheleteBridge sports team & athlete management");it(r),st(r),at(r),ut(r),ct(r),dt(r),pt(r),mt(r),lt(r);}},mr=Et;module.exports=mr;