@burdenoff/cli-sdk 2026.1102.1 → 2026.1102.3

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 (104) hide show
  1. package/dist/chunk-O6UCQ5IT.js +1 -0
  2. package/dist/{chunk-AYNNSLCL.js → chunk-ZGT7IIOP.js} +409 -418
  3. package/dist/modules/adaptercloud/index.cjs +9 -6
  4. package/dist/modules/adaptercloud/index.js +7 -4
  5. package/dist/modules/artistrybase/index.js +2 -2
  6. package/dist/modules/assethandler/index.cjs +2 -2
  7. package/dist/modules/assethandler/index.js +2 -2
  8. package/dist/modules/atheletebridge/index.cjs +35 -21
  9. package/dist/modules/atheletebridge/index.js +33 -19
  10. package/dist/modules/auth/index.cjs +37 -37
  11. package/dist/modules/auth/index.js +33 -29
  12. package/dist/modules/billing/index.cjs +1 -1
  13. package/dist/modules/billing/index.js +2 -2
  14. package/dist/modules/brainyrich/index.cjs +44 -28
  15. package/dist/modules/brainyrich/index.js +47 -31
  16. package/dist/modules/buildmyiq/index.cjs +64 -67
  17. package/dist/modules/buildmyiq/index.js +60 -63
  18. package/dist/modules/channels/index.cjs +3 -3
  19. package/dist/modules/channels/index.js +2 -2
  20. package/dist/modules/collabkin/index.cjs +4 -4
  21. package/dist/modules/collabkin/index.js +2 -2
  22. package/dist/modules/comradecircle/index.cjs +24 -16
  23. package/dist/modules/comradecircle/index.js +20 -12
  24. package/dist/modules/conversations/index.cjs +7 -7
  25. package/dist/modules/conversations/index.js +2 -2
  26. package/dist/modules/coolandlovely/index.cjs +28 -15
  27. package/dist/modules/coolandlovely/index.js +30 -17
  28. package/dist/modules/cosmicintersection/index.cjs +6 -6
  29. package/dist/modules/cosmicintersection/index.js +2 -2
  30. package/dist/modules/crewfoundry/index.js +2 -2
  31. package/dist/modules/devportal/index.cjs +2 -2
  32. package/dist/modules/devportal/index.js +2 -2
  33. package/dist/modules/ecoimpacthub/index.cjs +23 -13
  34. package/dist/modules/ecoimpacthub/index.js +20 -10
  35. package/dist/modules/eventfullymanaged/index.cjs +74 -74
  36. package/dist/modules/eventfullymanaged/index.js +78 -78
  37. package/dist/modules/export/index.cjs +4 -4
  38. package/dist/modules/export/index.js +2 -2
  39. package/dist/modules/files/index.cjs +3 -3
  40. package/dist/modules/files/index.js +4 -4
  41. package/dist/modules/fluidgrids/index.cjs +16 -16
  42. package/dist/modules/fluidgrids/index.js +3 -3
  43. package/dist/modules/ggnomad/index.cjs +4 -4
  44. package/dist/modules/ggnomad/index.js +2 -2
  45. package/dist/modules/govcitizenhub/index.cjs +10 -7
  46. package/dist/modules/govcitizenhub/index.js +8 -5
  47. package/dist/modules/groups/index.cjs +4 -4
  48. package/dist/modules/groups/index.js +2 -2
  49. package/dist/modules/headshotmarketing/index.js +2 -2
  50. package/dist/modules/hookmovies/index.cjs +6 -6
  51. package/dist/modules/hookmovies/index.js +2 -2
  52. package/dist/modules/housingvista/index.cjs +3 -3
  53. package/dist/modules/housingvista/index.js +2 -2
  54. package/dist/modules/integrations/index.cjs +5 -5
  55. package/dist/modules/integrations/index.js +2 -2
  56. package/dist/modules/intelwatchtower/index.cjs +28 -16
  57. package/dist/modules/intelwatchtower/index.js +25 -13
  58. package/dist/modules/kadaikodi/index.cjs +2 -2
  59. package/dist/modules/kadaikodi/index.js +2 -2
  60. package/dist/modules/labsofscience/index.cjs +10 -6
  61. package/dist/modules/labsofscience/index.js +9 -5
  62. package/dist/modules/manufacturedops/index.cjs +35 -22
  63. package/dist/modules/manufacturedops/index.js +35 -22
  64. package/dist/modules/movethewheels/index.js +2 -2
  65. package/dist/modules/notifications/index.cjs +2 -2
  66. package/dist/modules/notifications/index.js +2 -2
  67. package/dist/modules/organizations/index.js +2 -2
  68. package/dist/modules/planmagnet/index.cjs +21 -21
  69. package/dist/modules/planmagnet/index.js +32 -32
  70. package/dist/modules/products/index.cjs +4 -4
  71. package/dist/modules/products/index.js +2 -2
  72. package/dist/modules/proserviceworld/index.cjs +18 -13
  73. package/dist/modules/proserviceworld/index.js +18 -13
  74. package/dist/modules/rbac/index.js +2 -2
  75. package/dist/modules/sandbox/index.cjs +17 -17
  76. package/dist/modules/sandbox/index.js +1 -1
  77. package/dist/modules/scheduler/index.cjs +2 -2
  78. package/dist/modules/scheduler/index.js +2 -2
  79. package/dist/modules/security/index.cjs +3 -3
  80. package/dist/modules/security/index.js +2 -2
  81. package/dist/modules/semanticfed/index.cjs +3 -3
  82. package/dist/modules/semanticfed/index.js +2 -2
  83. package/dist/modules/store/index.cjs +3 -3
  84. package/dist/modules/store/index.js +2 -2
  85. package/dist/modules/subscriberbot/index.cjs +43 -19
  86. package/dist/modules/subscriberbot/index.js +47 -23
  87. package/dist/modules/support/index.cjs +2 -2
  88. package/dist/modules/support/index.js +2 -2
  89. package/dist/modules/tags/index.js +2 -2
  90. package/dist/modules/technospam/index.cjs +18 -9
  91. package/dist/modules/technospam/index.js +18 -9
  92. package/dist/modules/theculturepost/index.cjs +27 -22
  93. package/dist/modules/theculturepost/index.js +32 -27
  94. package/dist/modules/theglobalfuel/index.cjs +65 -60
  95. package/dist/modules/theglobalfuel/index.js +65 -60
  96. package/dist/modules/timecampus/index.js +2 -2
  97. package/dist/modules/tours/index.cjs +2 -2
  98. package/dist/modules/tours/index.js +2 -2
  99. package/dist/modules/vibecontrols/index.cjs +563 -567
  100. package/dist/modules/vibecontrols/index.js +5 -4
  101. package/dist/modules/workspaces/index.cjs +4 -4
  102. package/dist/modules/workspaces/index.js +2 -2
  103. package/package.json +1 -1
  104. package/dist/chunk-W4JZR7RJ.js +0 -1
@@ -1,15 +1,19 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var u=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},O=class extends u{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var y=null;function R(o){y=o;}function w(){if(!y)throw new I("vibecontrols module helpers used before setHelpersContext was called");return y}function bt(){let o=w();if(!o.auth.isAuthenticated())throw new O("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function a(o,r){return bt(),w().gql.workspace.request(o,r)}async function k(o,r){return w().gql.workspaceAuthOnly.request(o,r)}function i(o){let r=o instanceof Error?o.message:String(o);throw new u(r)}function s(o,r,t){w().output.formatAndOutput(o,r,t);}function c(o){w().output.printSuccess(o);}function d(o,r){return w().output.truncate(o,r)}var h=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var c=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},O=class extends c{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var y=null;function h(o){y=o;}function w(){if(!y)throw new I("vibecontrols module helpers used before setHelpersContext was called");return y}function bt(){let o=w();if(!o.auth.isAuthenticated())throw new O("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function a(o,r){return bt(),w().gql.workspace.request(o,r)}async function k(o,r){return w().gql.workspaceAuthOnly.request(o,r)}function i(o){let r=o instanceof Error?o.message:String(o);throw new c(r)}function s(o,r,t){w().output.formatAndOutput(o,r,t);}function u(o){w().output.printSuccess(o);}function d(o,r){return w().output.truncate(o,r)}var R=`
2
2
  query ManGetWorkCenter($id: ID!) {
3
3
  manWorkCenter(id: $id) {
4
- id code name type description capacityHours idealRunRate isActive
5
- tags createdAt updatedAt workspaceId
6
- operations { id name sequence status workCenterId }
4
+ id code name type description capacityHours idealRunRate isActive tags createdAt
5
+ updatedAt workspaceId
6
+ operations {
7
+ items { id name sequence status workCenterId }
8
+ pageInfo { cursor hasMore }
9
+ }
7
10
  }
8
11
  }
9
12
  `,S=`
10
13
  query ManListWorkCenters($isActive: Boolean) {
11
14
  manListWorkCenters(isActive: $isActive) {
12
- id code name type capacityHours idealRunRate isActive tags createdAt
15
+ items { id code name type capacityHours idealRunRate isActive tags createdAt }
16
+ pageInfo { cursor hasMore }
13
17
  }
14
18
  }
15
19
  `,T=`
@@ -33,10 +37,9 @@
33
37
  `,D=`
34
38
  query ManGetAsset($id: ID!) {
35
39
  manAsset(id: $id) {
36
- id assetTag name manufacturer model serialNumber status
37
- pmIntervalHours runningHours installedAt lastServicedAt workCenterId
38
- tags createdAt updatedAt workspaceId
39
- workOrders { id woNumber title status type }
40
+ id assetTag name manufacturer model serialNumber status pmIntervalHours runningHours
41
+ installedAt lastServicedAt workCenterId tags createdAt updatedAt workspaceId
42
+ workOrders { items { id woNumber title status type } pageInfo { cursor hasMore } }
40
43
  }
41
44
  }
42
45
  `,x=`
@@ -66,11 +69,17 @@
66
69
  `,L=`
67
70
  query ManGetProductionOrder($id: ID!) {
68
71
  manProductionOrder(id: $id) {
69
- id orderNumber productName productSku status priority quantity
70
- quantityDone uom erpReference notes plannedStart plannedEnd
71
- actualStart actualEnd dueDate tags createdAt updatedAt workspaceId
72
- operations { id name sequence status workCenterId goodCount scrapCount }
73
- materialLots { id lotNumber materialSku status quantity }
72
+ id orderNumber productName productSku status priority quantity quantityDone uom
73
+ erpReference notes plannedStart plannedEnd actualStart actualEnd dueDate tags createdAt
74
+ updatedAt workspaceId
75
+ operations {
76
+ items { id name sequence status workCenterId goodCount scrapCount }
77
+ pageInfo { cursor hasMore }
78
+ }
79
+ materialLots {
80
+ items { id lotNumber materialSku status quantity }
81
+ pageInfo { cursor hasMore }
82
+ }
74
83
  }
75
84
  }
76
85
  `,$=`
@@ -184,7 +193,8 @@
184
193
  `,B=`
185
194
  query ManListInspectionPlans($isActive: Boolean, $stage: ManInspectionStage) {
186
195
  manListInspectionPlans(isActive: $isActive, stage: $stage) {
187
- id code name stage productSku isActive description createdAt
196
+ items { id code name stage productSku isActive description createdAt }
197
+ pageInfo { cursor hasMore }
188
198
  }
189
199
  }
190
200
  `,J=`
@@ -197,11 +207,11 @@
197
207
  `,Q=`
198
208
  query ManGetInspection($id: ID!) {
199
209
  manInspection(id: $id) {
200
- id stage result sampleSize defectCount inspectionPlanId inspectorId
201
- materialLotId productionOrderId workCenterId measurements notes
202
- inspectedAt createdAt updatedAt workspaceId
210
+ id stage result sampleSize defectCount inspectionPlanId inspectorId materialLotId
211
+ productionOrderId workCenterId measurements notes inspectedAt createdAt updatedAt
212
+ workspaceId
203
213
  inspectionPlan { id code name }
204
- nonConformances { id ncrNumber status severity }
214
+ nonConformances { items { id ncrNumber status severity } pageInfo { cursor hasMore } }
205
215
  }
206
216
  }
207
217
  `,Y=`
@@ -274,8 +284,11 @@
274
284
  `,ot=`
275
285
  query ManListDowntimeEvents($assetId: ID, $reason: ManDowntimeReason, $workCenterId: ID) {
276
286
  manListDowntimeEvents(assetId: $assetId, reason: $reason, workCenterId: $workCenterId) {
277
- id reason durationMinutes startedAt endedAt assetId workCenterId
278
- productionOrderId description createdAt
287
+ items {
288
+ id reason durationMinutes startedAt endedAt assetId workCenterId productionOrderId
289
+ description createdAt
290
+ }
291
+ pageInfo { cursor hasMore }
279
292
  }
280
293
  }
281
294
  `,it=`
@@ -289,4 +302,4 @@
289
302
  query ManHealth {
290
303
  manHealth
291
304
  }
292
- `;function A(o,r){try{return JSON.parse(r)}catch{throw new u(`--${o} must be valid JSON`)}}function p(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new u(`Expected an integer but got "${o}"`);return r}function f(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new u(`Expected a number but got "${o}"`);return r}function l(o){return o.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function at(o){let r=o.command("work-centers").description("Manufacturing work centers");r.command("list").description("List work centers").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(S,{isActive:t.active});s(t,e.manListWorkCenters,{headers:["ID","Code","Name","Type","Capacity","Active"],rows:e.manListWorkCenters.map(n=>[d(n.id,12),n.code,n.name,n.type,String(n.capacityHours??0),n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("get").description("Get a work center by id").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(h,{id:t});if(!n.manWorkCenter)throw new u(`Work center ${t} not found`);s(e,n.manWorkCenter);}catch(n){i(n);}}),r.command("create").description("Create a work center").requiredOption("--code <code>","Work center code").requiredOption("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL","MACHINE").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",f).option("--ideal-run-rate <n>","Ideal run rate",f).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,type:(t.type??"MACHINE").toUpperCase()};t.description&&(e.description=t.description),t.capacityHours!==void 0&&(e.capacityHours=t.capacityHours),t.idealRunRate!==void 0&&(e.idealRunRate=t.idealRunRate),t.tags&&(e.tags=l(t.tags));let n=await a(T,{input:e});c(`Work center created: ${n.manCreateWorkCenter.code}`),s(t,n.manCreateWorkCenter);}catch(e){i(e);}}),r.command("update").description("Update a work center").argument("<id>","Work center ID").option("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",f).option("--ideal-run-rate <n>","Ideal run rate",f).option("--active <bool>","Active flag (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.capacityHours!==void 0&&(n.capacityHours=e.capacityHours),e.idealRunRate!==void 0&&(n.idealRunRate=e.idealRunRate),e.active!==void 0&&(n.isActive=e.active),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(b,{id:t,input:n});c("Work center updated"),s(e,C.manUpdateWorkCenter);}catch(n){i(n);}}),r.command("archive").description("Archive (soft-delete) a work center").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(v,{id:t});c(`Work center archived: ${n.manArchiveWorkCenter}`),s(e,{archived:n.manArchiveWorkCenter});}catch(n){i(n);}});}function ct(o){let r=o.command("assets").description("Manufacturing assets / equipment");r.command("list").description("List assets").option("--status <s>","Filter by asset status").option("--work-center <id>","Filter by work center ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(x,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,workCenterId:t.workCenter});s(t,e.manListAssets.items,{headers:["ID","Tag","Name","Status","Run Hrs","PM Interval"],rows:e.manListAssets.items.map(n=>[d(n.id,12),n.assetTag,n.name,n.status,String(n.runningHours??0),String(n.pmIntervalHours??0)])});}catch(e){i(e);}}),r.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});if(!n.manAsset)throw new u(`Asset ${t} not found`);s(e,n.manAsset);}catch(n){i(n);}}),r.command("create").description("Create an asset").requiredOption("--asset-tag <tag>","Asset tag").requiredOption("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",f).option("--running-hours <n>","Initial running hours",f).option("--installed-at <date>","Installed-at timestamp (ISO 8601)").option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetTag:t.assetTag,name:t.name};t.manufacturer&&(e.manufacturer=t.manufacturer),t.model&&(e.model=t.model),t.serialNumber&&(e.serialNumber=t.serialNumber),t.pmIntervalHours!==void 0&&(e.pmIntervalHours=t.pmIntervalHours),t.runningHours!==void 0&&(e.runningHours=t.runningHours),t.installedAt&&(e.installedAt=t.installedAt),t.workCenter&&(e.workCenterId=t.workCenter),t.tags&&(e.tags=l(t.tags));let n=await a(M,{input:e});c(`Asset created: ${n.manCreateAsset.assetTag}`),s(t,n.manCreateAsset);}catch(e){i(e);}}),r.command("update").description("Update an asset").argument("<id>","Asset ID").option("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--status <s>","DEGRADED|DOWN|MAINTENANCE|OPERATIONAL|RETIRED").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",f).option("--running-hours <n>","Running hours",f).option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.manufacturer!==void 0&&(n.manufacturer=e.manufacturer),e.model!==void 0&&(n.model=e.model),e.serialNumber!==void 0&&(n.serialNumber=e.serialNumber),e.status&&(n.status=e.status.toUpperCase()),e.pmIntervalHours!==void 0&&(n.pmIntervalHours=e.pmIntervalHours),e.runningHours!==void 0&&(n.runningHours=e.runningHours),e.workCenter&&(n.workCenterId=e.workCenter),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(P,{id:t,input:n});c("Asset updated"),s(e,C.manUpdateAsset);}catch(n){i(n);}});}function ut(o){let r=o.command("production-orders").description("Production (work) orders");r.command("list").description("List production orders").option("--product-sku <sku>","Filter by product SKU").option("--status <s>","Filter by order status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{pagination:{limit:t.limit,offset:t.offset},productSku:t.productSku,status:t.status?t.status.toUpperCase():void 0});s(t,e.manListProductionOrders.items,{headers:["ID","Order #","Product","Status","Priority","Qty","Done"],rows:e.manListProductionOrders.items.map(n=>[d(n.id,12),n.orderNumber,d(n.productName,20),n.status,n.priority,String(n.quantity??0),String(n.quantityDone??0)])});}catch(e){i(e);}}),r.command("get").description("Get a production order by id").argument("<id>","Production order ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t});if(!n.manProductionOrder)throw new u(`Production order ${t} not found`);s(e,n.manProductionOrder);}catch(n){i(n);}}),r.command("create").description("Create a production order").requiredOption("--order-number <n>","Order number").requiredOption("--product-name <name>","Product name").requiredOption("--product-sku <sku>","Product SKU").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--quantity <n>","Quantity",f).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={orderNumber:t.orderNumber,productName:t.productName,productSku:t.productSku,priority:(t.priority??"NORMAL").toUpperCase()};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.erpReference&&(e.erpReference=t.erpReference),t.notes&&(e.notes=t.notes),t.plannedStart&&(e.plannedStart=t.plannedStart),t.plannedEnd&&(e.plannedEnd=t.plannedEnd),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=l(t.tags));let n=await a(_,{input:e});c(`Production order created: ${n.manCreateProductionOrder.orderNumber}`),s(t,n.manCreateProductionOrder);}catch(e){i(e);}}),r.command("update").description("Update a production order").argument("<id>","Production order ID").option("--product-name <name>","Product name").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--quantity <n>","Quantity",f).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.productName&&(n.productName=e.productName),e.priority&&(n.priority=e.priority.toUpperCase()),e.quantity!==void 0&&(n.quantity=e.quantity),e.uom&&(n.uom=e.uom),e.erpReference!==void 0&&(n.erpReference=e.erpReference),e.notes!==void 0&&(n.notes=e.notes),e.plannedStart&&(n.plannedStart=e.plannedStart),e.plannedEnd&&(n.plannedEnd=e.plannedEnd),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(q,{id:t,input:n});c("Production order updated"),s(e,C.manUpdateProductionOrder);}catch(n){i(n);}}),r.command("transition").description("Advance a production order through its execution lifecycle").argument("<id>","Production order ID").requiredOption("--status <s>","PLANNED|RELEASED|IN_PROGRESS|PAUSED|COMPLETED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(W,{id:t,status:e.status.toUpperCase()});c(`Production order status set to ${n.manTransitionProductionOrder.status}`),s(e,n.manTransitionProductionOrder);}catch(n){i(n);}});}function dt(o){let r=o.command("operations").description("Routing operations on production orders");r.command("add").description("Add a routing operation to a production order").requiredOption("--production-order <id>","Production order ID").requiredOption("--name <name>","Operation name").option("--sequence <n>","Sequence number",p).option("--work-center <id>","Work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={productionOrderId:t.productionOrder,name:t.name};t.sequence!==void 0&&(e.sequence=t.sequence),t.workCenter&&(e.workCenterId=t.workCenter);let n=await a(U,{input:e});c(`Operation added: ${n.manAddOperation.name}`),s(t,n.manAddOperation);}catch(e){i(e);}}),r.command("record").description("Record progress against a routing operation (setup/run time, good/scrap counts)").argument("<id>","Operation ID").option("--status <s>","PENDING|SETUP|RUNNING|DONE|SKIPPED").option("--setup-minutes <n>","Setup minutes",p).option("--run-minutes <n>","Run minutes",p).option("--good-count <n>","Good count",f).option("--scrap-count <n>","Scrap count",f).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.status&&(n.status=e.status.toUpperCase()),e.setupMinutes!==void 0&&(n.setupMinutes=e.setupMinutes),e.runMinutes!==void 0&&(n.runMinutes=e.runMinutes),e.goodCount!==void 0&&(n.goodCount=e.goodCount),e.scrapCount!==void 0&&(n.scrapCount=e.scrapCount),!Object.keys(n).length)throw new u("No progress fields specified");let C=await a(H,{id:t,input:n});c("Operation progress recorded"),s(e,C.manRecordOperation);}catch(n){i(n);}});}function pt(o){let r=o.command("material-lots").description("Material lots (traceability)");r.command("list").description("List material lots").option("--production-order <id>","Filter by production order ID").option("--status <s>","Filter by lot status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,status:t.status?t.status.toUpperCase():void 0});s(t,e.manListMaterialLots.items,{headers:["ID","Lot #","Material","SKU","Status","Qty"],rows:e.manListMaterialLots.items.map(n=>[d(n.id,12),n.lotNumber,d(n.materialName,20),n.materialSku,n.status,`${n.quantity??0} ${n.uom??""}`.trim()])});}catch(e){i(e);}}),r.command("create").description("Create a material lot").requiredOption("--lot-number <n>","Lot number").requiredOption("--material-name <name>","Material name").requiredOption("--material-sku <sku>","Material SKU").option("--quantity <n>","Quantity",f).option("--uom <u>","Unit of measure").option("--supplier <s>","Supplier").option("--parent-lot <id>","Parent lot ID").option("--production-order <id>","Production order ID").option("--received-at <date>","Received-at timestamp (ISO 8601)").option("--expires-at <date>","Expiry timestamp (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={lotNumber:t.lotNumber,materialName:t.materialName,materialSku:t.materialSku};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.supplier&&(e.supplier=t.supplier),t.parentLot&&(e.parentLotId=t.parentLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.receivedAt&&(e.receivedAt=t.receivedAt),t.expiresAt&&(e.expiresAt=t.expiresAt),t.tags&&(e.tags=l(t.tags));let n=await a(G,{input:e});c(`Material lot created: ${n.manCreateMaterialLot.lotNumber}`),s(t,n.manCreateMaterialLot);}catch(e){i(e);}}),r.command("set-status").description("Set the status of a material lot").argument("<id>","Material lot ID").requiredOption("--status <s>","AVAILABLE|ALLOCATED|CONSUMED|QUARANTINED|SCRAPPED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(j,{id:t,status:e.status.toUpperCase()});c(`Material lot status set to ${n.manSetMaterialLotStatus.status}`),s(e,n.manSetMaterialLotStatus);}catch(n){i(n);}});}function mt(o){let r=o.command("maintenance").description("Maintenance work orders");r.command("list").description("List maintenance work orders").option("--asset <id>","Filter by asset ID").option("--status <s>","Filter by status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{assetId:t.asset,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});s(t,e.manListMaintenanceWorkOrders.items,{headers:["ID","WO #","Title","Type","Status","Asset"],rows:e.manListMaintenanceWorkOrders.items.map(n=>[d(n.id,12),n.woNumber,d(n.title,24),n.type,n.status,d(n.assetId??"-",12)])});}catch(e){i(e);}}),r.command("create").description("Create a maintenance work order").requiredOption("--wo-number <n>","Work order number").requiredOption("--asset <id>","Asset ID").requiredOption("--title <t>","Title").option("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|INSPECTION","PREVENTIVE").option("--description <s>","Description").option("--technician <id>","Technician ID").option("--scheduled-for <date>","Scheduled-for timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={woNumber:t.woNumber,assetId:t.asset,title:t.title,type:(t.type??"PREVENTIVE").toUpperCase()};t.description&&(e.description=t.description),t.technician&&(e.technicianId=t.technician),t.scheduledFor&&(e.scheduledFor=t.scheduledFor);let n=await a(V,{input:e});c(`Maintenance WO created: ${n.manCreateMaintenanceWorkOrder.woNumber}`),s(t,n.manCreateMaintenanceWorkOrder);}catch(e){i(e);}}),r.command("transition").description("Advance a maintenance work order through its lifecycle").argument("<id>","Maintenance work order ID").requiredOption("--status <s>","SCHEDULED|IN_PROGRESS|ON_HOLD|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t,status:e.status.toUpperCase()});c(`Maintenance WO status set to ${n.manTransitionMaintenanceWorkOrder.status}`),s(e,n.manTransitionMaintenanceWorkOrder);}catch(n){i(n);}});}function ft(o){let r=o.command("inspection-plans").description("Quality inspection plans");r.command("list").description("List inspection plans").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{isActive:t.active,stage:t.stage?t.stage.toUpperCase():void 0});s(t,e.manListInspectionPlans,{headers:["ID","Code","Name","Stage","Product SKU","Active"],rows:e.manListInspectionPlans.map(n=>[d(n.id,12),n.code,d(n.name,24),n.stage,n.productSku??"-",n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("create").description("Create an inspection plan").requiredOption("--code <code>","Plan code").requiredOption("--name <name>","Plan name").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--product-sku <sku>","Product SKU").option("--description <s>","Description").option("--characteristics <json>","Characteristics JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,stage:(t.stage??"IN_PROCESS").toUpperCase()};t.productSku&&(e.productSku=t.productSku),t.description&&(e.description=t.description),t.characteristics&&(e.characteristics=A("characteristics",t.characteristics));let n=await a(J,{input:e});c(`Inspection plan created: ${n.manCreateInspectionPlan.code}`),s(t,n.manCreateInspectionPlan);}catch(e){i(e);}});}function lt(o){let r=o.command("inspections").description("Quality inspections");r.command("list").description("List quality inspections").option("--production-order <id>","Filter by production order ID").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Y,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,result:t.result?t.result.toUpperCase():void 0});s(t,e.manListInspections.items,{headers:["ID","Stage","Result","Sample","Defects","Order"],rows:e.manListInspections.items.map(n=>[d(n.id,12),n.stage,n.result,String(n.sampleSize??0),String(n.defectCount??0),d(n.productionOrderId??"-",12)])});}catch(e){i(e);}}),r.command("get").description("Get a quality inspection by id").argument("<id>","Inspection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Q,{id:t});if(!n.manInspection)throw new u(`Inspection ${t} not found`);s(e,n.manInspection);}catch(n){i(n);}}),r.command("record").description("Record a quality inspection").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL","PENDING").option("--sample-size <n>","Sample size",p).option("--defect-count <n>","Defect count",p).option("--inspection-plan <id>","Inspection plan ID").option("--material-lot <id>","Material lot ID").option("--production-order <id>","Production order ID").option("--work-center <id>","Work center ID").option("--measurements <json>","Measurements JSON").option("--notes <s>","Notes").option("--inspected-at <date>","Inspected-at timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={stage:(t.stage??"IN_PROCESS").toUpperCase(),result:(t.result??"PENDING").toUpperCase()};t.sampleSize!==void 0&&(e.sampleSize=t.sampleSize),t.defectCount!==void 0&&(e.defectCount=t.defectCount),t.inspectionPlan&&(e.inspectionPlanId=t.inspectionPlan),t.materialLot&&(e.materialLotId=t.materialLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.workCenter&&(e.workCenterId=t.workCenter),t.measurements&&(e.measurements=A("measurements",t.measurements)),t.notes&&(e.notes=t.notes),t.inspectedAt&&(e.inspectedAt=t.inspectedAt);let n=await a(X,{input:e});c(`Inspection recorded: ${n.manRecordInspection.result}`),s(t,n.manRecordInspection);}catch(e){i(e);}});}function gt(o){let r=o.command("non-conformances").description("Non-conformances (NCR / CAPA)");r.command("list").description("List non-conformances").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--status <s>","Filter by status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(tt,{pagination:{limit:t.limit,offset:t.offset},severity:t.severity?t.severity.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});s(t,e.manListNonConformances.items,{headers:["ID","NCR #","Title","Severity","Status","Disposition"],rows:e.manListNonConformances.items.map(n=>[d(n.id,12),n.ncrNumber,d(n.title,24),n.severity,n.status,n.disposition])});}catch(e){i(e);}}),r.command("get").description("Get a non-conformance by id").argument("<id>","Non-conformance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t});if(!n.manNonConformance)throw new u(`Non-conformance ${t} not found`);s(e,n.manNonConformance);}catch(n){i(n);}}),r.command("raise").description("Raise a non-conformance").requiredOption("--ncr-number <n>","NCR number").requiredOption("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL","MINOR").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER","OPEN").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",f).option("--owner <id>","Owner ID").option("--inspection <id>","Source inspection ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={ncrNumber:t.ncrNumber,title:t.title,severity:(t.severity??"MINOR").toUpperCase(),disposition:(t.disposition??"OPEN").toUpperCase()};t.description&&(e.description=t.description),t.quantityAffected!==void 0&&(e.quantityAffected=t.quantityAffected),t.owner&&(e.ownerId=t.owner),t.inspection&&(e.inspectionId=t.inspection),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=l(t.tags));let n=await a(et,{input:e});c(`Non-conformance raised: ${n.manRaiseNonConformance.ncrNumber}`),s(t,n.manRaiseNonConformance);}catch(e){i(e);}}),r.command("update").description("Update a non-conformance").argument("<id>","Non-conformance ID").option("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",f).option("--root-cause <s>","Root cause").option("--corrective-action <s>","Corrective action").option("--owner <id>","Owner ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.severity&&(n.severity=e.severity.toUpperCase()),e.disposition&&(n.disposition=e.disposition.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.quantityAffected!==void 0&&(n.quantityAffected=e.quantityAffected),e.rootCause!==void 0&&(n.rootCause=e.rootCause),e.correctiveAction!==void 0&&(n.correctiveAction=e.correctiveAction),e.owner&&(n.ownerId=e.owner),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(nt,{id:t,input:n});c("Non-conformance updated"),s(e,C.manUpdateNonConformance);}catch(n){i(n);}}),r.command("transition").description("Advance an NCR/CAPA through its resolution lifecycle").argument("<id>","Non-conformance ID").requiredOption("--status <s>","OPEN|INVESTIGATING|CONTAINED|CORRECTIVE_ACTION|CLOSED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(rt,{id:t,status:e.status.toUpperCase()});c(`Non-conformance status set to ${n.manTransitionNonConformance.status}`),s(e,n.manTransitionNonConformance);}catch(n){i(n);}});}function Ct(o){let r=o.command("downtime").description("Downtime events");r.command("list").description("List downtime events").option("--asset <id>","Filter by asset ID").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER").option("--work-center <id>","Filter by work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(ot,{assetId:t.asset,reason:t.reason?t.reason.toUpperCase():void 0,workCenterId:t.workCenter});s(t,e.manListDowntimeEvents,{headers:["ID","Reason","Minutes","Started","Asset","Work Center"],rows:e.manListDowntimeEvents.map(n=>[d(n.id,12),n.reason,String(n.durationMinutes),n.startedAt,d(n.assetId??"-",12),d(n.workCenterId??"-",12)])});}catch(e){i(e);}}),r.command("record").description("Record a downtime event").requiredOption("--started-at <date>","Started-at timestamp (ISO 8601)").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER","BREAKDOWN").option("--duration-minutes <n>","Duration minutes",p).option("--ended-at <date>","Ended-at timestamp (ISO 8601)").option("--asset <id>","Asset ID").option("--work-center <id>","Work center ID").option("--production-order <id>","Production order ID").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={startedAt:t.startedAt,reason:(t.reason??"BREAKDOWN").toUpperCase()};t.durationMinutes!==void 0&&(e.durationMinutes=t.durationMinutes),t.endedAt&&(e.endedAt=t.endedAt),t.asset&&(e.assetId=t.asset),t.workCenter&&(e.workCenterId=t.workCenter),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.description&&(e.description=t.description);let n=await a(it,{input:e});c(`Downtime recorded: ${n.manRecordDowntime.reason}`),s(t,n.manRecordDowntime);}catch(e){i(e);}});}function It(o){o.command("health").description("Manufacturedops service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await k(st);c(t.manHealth),s(r,{health:t.manHealth});}catch(t){i(t);}});}var vt={id:"manufacturedops",version:"1.0.0",displayName:"Manufacturedops",dependsOn:["auth","workspaces"],register(o,r){R(r);let t=o.command("manufacturedops").description("Manufacturedops manufacturing execution system");at(t),ct(t),ut(t),dt(t),pt(t),mt(t),ft(t),lt(t),gt(t),Ct(t),It(t);}},xn=vt;module.exports=xn;
305
+ `;function A(o,r){try{return JSON.parse(r)}catch{throw new c(`--${o} must be valid JSON`)}}function p(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new c(`Expected an integer but got "${o}"`);return r}function f(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new c(`Expected a number but got "${o}"`);return r}function l(o){return o.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function at(o){let r=o.command("work-centers").description("Manufacturing work centers");r.command("list").description("List work centers").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(S,{isActive:t.active});s(t,e.manListWorkCenters.items,{headers:["ID","Code","Name","Type","Capacity","Active"],rows:e.manListWorkCenters.items.map(n=>[d(n.id,12),n.code,n.name,n.type,String(n.capacityHours??0),n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("get").description("Get a work center by id").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(R,{id:t});if(!n.manWorkCenter)throw new c(`Work center ${t} not found`);s(e,n.manWorkCenter);}catch(n){i(n);}}),r.command("create").description("Create a work center").requiredOption("--code <code>","Work center code").requiredOption("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL","MACHINE").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",f).option("--ideal-run-rate <n>","Ideal run rate",f).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,type:(t.type??"MACHINE").toUpperCase()};t.description&&(e.description=t.description),t.capacityHours!==void 0&&(e.capacityHours=t.capacityHours),t.idealRunRate!==void 0&&(e.idealRunRate=t.idealRunRate),t.tags&&(e.tags=l(t.tags));let n=await a(T,{input:e});u(`Work center created: ${n.manCreateWorkCenter.code}`),s(t,n.manCreateWorkCenter);}catch(e){i(e);}}),r.command("update").description("Update a work center").argument("<id>","Work center ID").option("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",f).option("--ideal-run-rate <n>","Ideal run rate",f).option("--active <bool>","Active flag (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.capacityHours!==void 0&&(n.capacityHours=e.capacityHours),e.idealRunRate!==void 0&&(n.idealRunRate=e.idealRunRate),e.active!==void 0&&(n.isActive=e.active),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new c("No updates specified");let C=await a(b,{id:t,input:n});u("Work center updated"),s(e,C.manUpdateWorkCenter);}catch(n){i(n);}}),r.command("archive").description("Archive (soft-delete) a work center").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(v,{id:t});u(`Work center archived: ${n.manArchiveWorkCenter}`),s(e,{archived:n.manArchiveWorkCenter});}catch(n){i(n);}});}function ut(o){let r=o.command("assets").description("Manufacturing assets / equipment");r.command("list").description("List assets").option("--status <s>","Filter by asset status").option("--work-center <id>","Filter by work center ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(x,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,workCenterId:t.workCenter});s(t,e.manListAssets.items,{headers:["ID","Tag","Name","Status","Run Hrs","PM Interval"],rows:e.manListAssets.items.map(n=>[d(n.id,12),n.assetTag,n.name,n.status,String(n.runningHours??0),String(n.pmIntervalHours??0)])});}catch(e){i(e);}}),r.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});if(!n.manAsset)throw new c(`Asset ${t} not found`);s(e,n.manAsset);}catch(n){i(n);}}),r.command("create").description("Create an asset").requiredOption("--asset-tag <tag>","Asset tag").requiredOption("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",f).option("--running-hours <n>","Initial running hours",f).option("--installed-at <date>","Installed-at timestamp (ISO 8601)").option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetTag:t.assetTag,name:t.name};t.manufacturer&&(e.manufacturer=t.manufacturer),t.model&&(e.model=t.model),t.serialNumber&&(e.serialNumber=t.serialNumber),t.pmIntervalHours!==void 0&&(e.pmIntervalHours=t.pmIntervalHours),t.runningHours!==void 0&&(e.runningHours=t.runningHours),t.installedAt&&(e.installedAt=t.installedAt),t.workCenter&&(e.workCenterId=t.workCenter),t.tags&&(e.tags=l(t.tags));let n=await a(M,{input:e});u(`Asset created: ${n.manCreateAsset.assetTag}`),s(t,n.manCreateAsset);}catch(e){i(e);}}),r.command("update").description("Update an asset").argument("<id>","Asset ID").option("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--status <s>","DEGRADED|DOWN|MAINTENANCE|OPERATIONAL|RETIRED").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",f).option("--running-hours <n>","Running hours",f).option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.manufacturer!==void 0&&(n.manufacturer=e.manufacturer),e.model!==void 0&&(n.model=e.model),e.serialNumber!==void 0&&(n.serialNumber=e.serialNumber),e.status&&(n.status=e.status.toUpperCase()),e.pmIntervalHours!==void 0&&(n.pmIntervalHours=e.pmIntervalHours),e.runningHours!==void 0&&(n.runningHours=e.runningHours),e.workCenter&&(n.workCenterId=e.workCenter),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new c("No updates specified");let C=await a(P,{id:t,input:n});u("Asset updated"),s(e,C.manUpdateAsset);}catch(n){i(n);}});}function ct(o){let r=o.command("production-orders").description("Production (work) orders");r.command("list").description("List production orders").option("--product-sku <sku>","Filter by product SKU").option("--status <s>","Filter by order status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{pagination:{limit:t.limit,offset:t.offset},productSku:t.productSku,status:t.status?t.status.toUpperCase():void 0});s(t,e.manListProductionOrders.items,{headers:["ID","Order #","Product","Status","Priority","Qty","Done"],rows:e.manListProductionOrders.items.map(n=>[d(n.id,12),n.orderNumber,d(n.productName,20),n.status,n.priority,String(n.quantity??0),String(n.quantityDone??0)])});}catch(e){i(e);}}),r.command("get").description("Get a production order by id").argument("<id>","Production order ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t});if(!n.manProductionOrder)throw new c(`Production order ${t} not found`);s(e,n.manProductionOrder);}catch(n){i(n);}}),r.command("create").description("Create a production order").requiredOption("--order-number <n>","Order number").requiredOption("--product-name <name>","Product name").requiredOption("--product-sku <sku>","Product SKU").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--quantity <n>","Quantity",f).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={orderNumber:t.orderNumber,productName:t.productName,productSku:t.productSku,priority:(t.priority??"NORMAL").toUpperCase()};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.erpReference&&(e.erpReference=t.erpReference),t.notes&&(e.notes=t.notes),t.plannedStart&&(e.plannedStart=t.plannedStart),t.plannedEnd&&(e.plannedEnd=t.plannedEnd),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=l(t.tags));let n=await a(_,{input:e});u(`Production order created: ${n.manCreateProductionOrder.orderNumber}`),s(t,n.manCreateProductionOrder);}catch(e){i(e);}}),r.command("update").description("Update a production order").argument("<id>","Production order ID").option("--product-name <name>","Product name").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--quantity <n>","Quantity",f).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.productName&&(n.productName=e.productName),e.priority&&(n.priority=e.priority.toUpperCase()),e.quantity!==void 0&&(n.quantity=e.quantity),e.uom&&(n.uom=e.uom),e.erpReference!==void 0&&(n.erpReference=e.erpReference),e.notes!==void 0&&(n.notes=e.notes),e.plannedStart&&(n.plannedStart=e.plannedStart),e.plannedEnd&&(n.plannedEnd=e.plannedEnd),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new c("No updates specified");let C=await a(q,{id:t,input:n});u("Production order updated"),s(e,C.manUpdateProductionOrder);}catch(n){i(n);}}),r.command("transition").description("Advance a production order through its execution lifecycle").argument("<id>","Production order ID").requiredOption("--status <s>","PLANNED|RELEASED|IN_PROGRESS|PAUSED|COMPLETED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(W,{id:t,status:e.status.toUpperCase()});u(`Production order status set to ${n.manTransitionProductionOrder.status}`),s(e,n.manTransitionProductionOrder);}catch(n){i(n);}});}function dt(o){let r=o.command("operations").description("Routing operations on production orders");r.command("add").description("Add a routing operation to a production order").requiredOption("--production-order <id>","Production order ID").requiredOption("--name <name>","Operation name").option("--sequence <n>","Sequence number",p).option("--work-center <id>","Work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={productionOrderId:t.productionOrder,name:t.name};t.sequence!==void 0&&(e.sequence=t.sequence),t.workCenter&&(e.workCenterId=t.workCenter);let n=await a(U,{input:e});u(`Operation added: ${n.manAddOperation.name}`),s(t,n.manAddOperation);}catch(e){i(e);}}),r.command("record").description("Record progress against a routing operation (setup/run time, good/scrap counts)").argument("<id>","Operation ID").option("--status <s>","PENDING|SETUP|RUNNING|DONE|SKIPPED").option("--setup-minutes <n>","Setup minutes",p).option("--run-minutes <n>","Run minutes",p).option("--good-count <n>","Good count",f).option("--scrap-count <n>","Scrap count",f).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.status&&(n.status=e.status.toUpperCase()),e.setupMinutes!==void 0&&(n.setupMinutes=e.setupMinutes),e.runMinutes!==void 0&&(n.runMinutes=e.runMinutes),e.goodCount!==void 0&&(n.goodCount=e.goodCount),e.scrapCount!==void 0&&(n.scrapCount=e.scrapCount),!Object.keys(n).length)throw new c("No progress fields specified");let C=await a(H,{id:t,input:n});u("Operation progress recorded"),s(e,C.manRecordOperation);}catch(n){i(n);}});}function pt(o){let r=o.command("material-lots").description("Material lots (traceability)");r.command("list").description("List material lots").option("--production-order <id>","Filter by production order ID").option("--status <s>","Filter by lot status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,status:t.status?t.status.toUpperCase():void 0});s(t,e.manListMaterialLots.items,{headers:["ID","Lot #","Material","SKU","Status","Qty"],rows:e.manListMaterialLots.items.map(n=>[d(n.id,12),n.lotNumber,d(n.materialName,20),n.materialSku,n.status,`${n.quantity??0} ${n.uom??""}`.trim()])});}catch(e){i(e);}}),r.command("create").description("Create a material lot").requiredOption("--lot-number <n>","Lot number").requiredOption("--material-name <name>","Material name").requiredOption("--material-sku <sku>","Material SKU").option("--quantity <n>","Quantity",f).option("--uom <u>","Unit of measure").option("--supplier <s>","Supplier").option("--parent-lot <id>","Parent lot ID").option("--production-order <id>","Production order ID").option("--received-at <date>","Received-at timestamp (ISO 8601)").option("--expires-at <date>","Expiry timestamp (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={lotNumber:t.lotNumber,materialName:t.materialName,materialSku:t.materialSku};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.supplier&&(e.supplier=t.supplier),t.parentLot&&(e.parentLotId=t.parentLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.receivedAt&&(e.receivedAt=t.receivedAt),t.expiresAt&&(e.expiresAt=t.expiresAt),t.tags&&(e.tags=l(t.tags));let n=await a(G,{input:e});u(`Material lot created: ${n.manCreateMaterialLot.lotNumber}`),s(t,n.manCreateMaterialLot);}catch(e){i(e);}}),r.command("set-status").description("Set the status of a material lot").argument("<id>","Material lot ID").requiredOption("--status <s>","AVAILABLE|ALLOCATED|CONSUMED|QUARANTINED|SCRAPPED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(j,{id:t,status:e.status.toUpperCase()});u(`Material lot status set to ${n.manSetMaterialLotStatus.status}`),s(e,n.manSetMaterialLotStatus);}catch(n){i(n);}});}function mt(o){let r=o.command("maintenance").description("Maintenance work orders");r.command("list").description("List maintenance work orders").option("--asset <id>","Filter by asset ID").option("--status <s>","Filter by status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{assetId:t.asset,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});s(t,e.manListMaintenanceWorkOrders.items,{headers:["ID","WO #","Title","Type","Status","Asset"],rows:e.manListMaintenanceWorkOrders.items.map(n=>[d(n.id,12),n.woNumber,d(n.title,24),n.type,n.status,d(n.assetId??"-",12)])});}catch(e){i(e);}}),r.command("create").description("Create a maintenance work order").requiredOption("--wo-number <n>","Work order number").requiredOption("--asset <id>","Asset ID").requiredOption("--title <t>","Title").option("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|INSPECTION","PREVENTIVE").option("--description <s>","Description").option("--technician <id>","Technician ID").option("--scheduled-for <date>","Scheduled-for timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={woNumber:t.woNumber,assetId:t.asset,title:t.title,type:(t.type??"PREVENTIVE").toUpperCase()};t.description&&(e.description=t.description),t.technician&&(e.technicianId=t.technician),t.scheduledFor&&(e.scheduledFor=t.scheduledFor);let n=await a(V,{input:e});u(`Maintenance WO created: ${n.manCreateMaintenanceWorkOrder.woNumber}`),s(t,n.manCreateMaintenanceWorkOrder);}catch(e){i(e);}}),r.command("transition").description("Advance a maintenance work order through its lifecycle").argument("<id>","Maintenance work order ID").requiredOption("--status <s>","SCHEDULED|IN_PROGRESS|ON_HOLD|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t,status:e.status.toUpperCase()});u(`Maintenance WO status set to ${n.manTransitionMaintenanceWorkOrder.status}`),s(e,n.manTransitionMaintenanceWorkOrder);}catch(n){i(n);}});}function ft(o){let r=o.command("inspection-plans").description("Quality inspection plans");r.command("list").description("List inspection plans").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(B,{isActive:t.active,stage:t.stage?t.stage.toUpperCase():void 0});s(t,e.manListInspectionPlans.items,{headers:["ID","Code","Name","Stage","Product SKU","Active"],rows:e.manListInspectionPlans.items.map(n=>[d(n.id,12),n.code,d(n.name,24),n.stage,n.productSku??"-",n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("create").description("Create an inspection plan").requiredOption("--code <code>","Plan code").requiredOption("--name <name>","Plan name").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--product-sku <sku>","Product SKU").option("--description <s>","Description").option("--characteristics <json>","Characteristics JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,stage:(t.stage??"IN_PROCESS").toUpperCase()};t.productSku&&(e.productSku=t.productSku),t.description&&(e.description=t.description),t.characteristics&&(e.characteristics=A("characteristics",t.characteristics));let n=await a(J,{input:e});u(`Inspection plan created: ${n.manCreateInspectionPlan.code}`),s(t,n.manCreateInspectionPlan);}catch(e){i(e);}});}function lt(o){let r=o.command("inspections").description("Quality inspections");r.command("list").description("List quality inspections").option("--production-order <id>","Filter by production order ID").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Y,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,result:t.result?t.result.toUpperCase():void 0});s(t,e.manListInspections.items,{headers:["ID","Stage","Result","Sample","Defects","Order"],rows:e.manListInspections.items.map(n=>[d(n.id,12),n.stage,n.result,String(n.sampleSize??0),String(n.defectCount??0),d(n.productionOrderId??"-",12)])});}catch(e){i(e);}}),r.command("get").description("Get a quality inspection by id").argument("<id>","Inspection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Q,{id:t});if(!n.manInspection)throw new c(`Inspection ${t} not found`);s(e,n.manInspection);}catch(n){i(n);}}),r.command("record").description("Record a quality inspection").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL","PENDING").option("--sample-size <n>","Sample size",p).option("--defect-count <n>","Defect count",p).option("--inspection-plan <id>","Inspection plan ID").option("--material-lot <id>","Material lot ID").option("--production-order <id>","Production order ID").option("--work-center <id>","Work center ID").option("--measurements <json>","Measurements JSON").option("--notes <s>","Notes").option("--inspected-at <date>","Inspected-at timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={stage:(t.stage??"IN_PROCESS").toUpperCase(),result:(t.result??"PENDING").toUpperCase()};t.sampleSize!==void 0&&(e.sampleSize=t.sampleSize),t.defectCount!==void 0&&(e.defectCount=t.defectCount),t.inspectionPlan&&(e.inspectionPlanId=t.inspectionPlan),t.materialLot&&(e.materialLotId=t.materialLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.workCenter&&(e.workCenterId=t.workCenter),t.measurements&&(e.measurements=A("measurements",t.measurements)),t.notes&&(e.notes=t.notes),t.inspectedAt&&(e.inspectedAt=t.inspectedAt);let n=await a(X,{input:e});u(`Inspection recorded: ${n.manRecordInspection.result}`),s(t,n.manRecordInspection);}catch(e){i(e);}});}function gt(o){let r=o.command("non-conformances").description("Non-conformances (NCR / CAPA)");r.command("list").description("List non-conformances").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--status <s>","Filter by status").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(tt,{pagination:{limit:t.limit,offset:t.offset},severity:t.severity?t.severity.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});s(t,e.manListNonConformances.items,{headers:["ID","NCR #","Title","Severity","Status","Disposition"],rows:e.manListNonConformances.items.map(n=>[d(n.id,12),n.ncrNumber,d(n.title,24),n.severity,n.status,n.disposition])});}catch(e){i(e);}}),r.command("get").description("Get a non-conformance by id").argument("<id>","Non-conformance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t});if(!n.manNonConformance)throw new c(`Non-conformance ${t} not found`);s(e,n.manNonConformance);}catch(n){i(n);}}),r.command("raise").description("Raise a non-conformance").requiredOption("--ncr-number <n>","NCR number").requiredOption("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL","MINOR").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER","OPEN").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",f).option("--owner <id>","Owner ID").option("--inspection <id>","Source inspection ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={ncrNumber:t.ncrNumber,title:t.title,severity:(t.severity??"MINOR").toUpperCase(),disposition:(t.disposition??"OPEN").toUpperCase()};t.description&&(e.description=t.description),t.quantityAffected!==void 0&&(e.quantityAffected=t.quantityAffected),t.owner&&(e.ownerId=t.owner),t.inspection&&(e.inspectionId=t.inspection),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=l(t.tags));let n=await a(et,{input:e});u(`Non-conformance raised: ${n.manRaiseNonConformance.ncrNumber}`),s(t,n.manRaiseNonConformance);}catch(e){i(e);}}),r.command("update").description("Update a non-conformance").argument("<id>","Non-conformance ID").option("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",f).option("--root-cause <s>","Root cause").option("--corrective-action <s>","Corrective action").option("--owner <id>","Owner ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.severity&&(n.severity=e.severity.toUpperCase()),e.disposition&&(n.disposition=e.disposition.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.quantityAffected!==void 0&&(n.quantityAffected=e.quantityAffected),e.rootCause!==void 0&&(n.rootCause=e.rootCause),e.correctiveAction!==void 0&&(n.correctiveAction=e.correctiveAction),e.owner&&(n.ownerId=e.owner),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new c("No updates specified");let C=await a(nt,{id:t,input:n});u("Non-conformance updated"),s(e,C.manUpdateNonConformance);}catch(n){i(n);}}),r.command("transition").description("Advance an NCR/CAPA through its resolution lifecycle").argument("<id>","Non-conformance ID").requiredOption("--status <s>","OPEN|INVESTIGATING|CONTAINED|CORRECTIVE_ACTION|CLOSED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(rt,{id:t,status:e.status.toUpperCase()});u(`Non-conformance status set to ${n.manTransitionNonConformance.status}`),s(e,n.manTransitionNonConformance);}catch(n){i(n);}});}function Ct(o){let r=o.command("downtime").description("Downtime events");r.command("list").description("List downtime events").option("--asset <id>","Filter by asset ID").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER").option("--work-center <id>","Filter by work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(ot,{assetId:t.asset,reason:t.reason?t.reason.toUpperCase():void 0,workCenterId:t.workCenter});s(t,e.manListDowntimeEvents.items,{headers:["ID","Reason","Minutes","Started","Asset","Work Center"],rows:e.manListDowntimeEvents.items.map(n=>[d(n.id,12),n.reason,String(n.durationMinutes),n.startedAt,d(n.assetId??"-",12),d(n.workCenterId??"-",12)])});}catch(e){i(e);}}),r.command("record").description("Record a downtime event").requiredOption("--started-at <date>","Started-at timestamp (ISO 8601)").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER","BREAKDOWN").option("--duration-minutes <n>","Duration minutes",p).option("--ended-at <date>","Ended-at timestamp (ISO 8601)").option("--asset <id>","Asset ID").option("--work-center <id>","Work center ID").option("--production-order <id>","Production order ID").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={startedAt:t.startedAt,reason:(t.reason??"BREAKDOWN").toUpperCase()};t.durationMinutes!==void 0&&(e.durationMinutes=t.durationMinutes),t.endedAt&&(e.endedAt=t.endedAt),t.asset&&(e.assetId=t.asset),t.workCenter&&(e.workCenterId=t.workCenter),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.description&&(e.description=t.description);let n=await a(it,{input:e});u(`Downtime recorded: ${n.manRecordDowntime.reason}`),s(t,n.manRecordDowntime);}catch(e){i(e);}});}function It(o){o.command("health").description("Manufacturedops service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await k(st);u(t.manHealth),s(r,{health:t.manHealth});}catch(t){i(t);}});}var vt={id:"manufacturedops",version:"1.0.0",displayName:"Manufacturedops",dependsOn:["auth","workspaces"],register(o,r){h(r);let t=o.command("manufacturedops").description("Manufacturedops manufacturing execution system");at(t),ut(t),ct(t),dt(t),pt(t),mt(t),ft(t),lt(t),gt(t),Ct(t),It(t);}},xn=vt;module.exports=xn;
@@ -1,15 +1,19 @@
1
- import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var R=`
1
+ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var R=`
2
2
  query ManGetWorkCenter($id: ID!) {
3
3
  manWorkCenter(id: $id) {
4
- id code name type description capacityHours idealRunRate isActive
5
- tags createdAt updatedAt workspaceId
6
- operations { id name sequence status workCenterId }
4
+ id code name type description capacityHours idealRunRate isActive tags createdAt
5
+ updatedAt workspaceId
6
+ operations {
7
+ items { id name sequence status workCenterId }
8
+ pageInfo { cursor hasMore }
9
+ }
7
10
  }
8
11
  }
9
12
  `,E=`
10
13
  query ManListWorkCenters($isActive: Boolean) {
11
14
  manListWorkCenters(isActive: $isActive) {
12
- id code name type capacityHours idealRunRate isActive tags createdAt
15
+ items { id code name type capacityHours idealRunRate isActive tags createdAt }
16
+ pageInfo { cursor hasMore }
13
17
  }
14
18
  }
15
19
  `,y=`
@@ -33,10 +37,9 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
33
37
  `,k=`
34
38
  query ManGetAsset($id: ID!) {
35
39
  manAsset(id: $id) {
36
- id assetTag name manufacturer model serialNumber status
37
- pmIntervalHours runningHours installedAt lastServicedAt workCenterId
38
- tags createdAt updatedAt workspaceId
39
- workOrders { id woNumber title status type }
40
+ id assetTag name manufacturer model serialNumber status pmIntervalHours runningHours
41
+ installedAt lastServicedAt workCenterId tags createdAt updatedAt workspaceId
42
+ workOrders { items { id woNumber title status type } pageInfo { cursor hasMore } }
40
43
  }
41
44
  }
42
45
  `,M=`
@@ -66,11 +69,17 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
66
69
  `,L=`
67
70
  query ManGetProductionOrder($id: ID!) {
68
71
  manProductionOrder(id: $id) {
69
- id orderNumber productName productSku status priority quantity
70
- quantityDone uom erpReference notes plannedStart plannedEnd
71
- actualStart actualEnd dueDate tags createdAt updatedAt workspaceId
72
- operations { id name sequence status workCenterId goodCount scrapCount }
73
- materialLots { id lotNumber materialSku status quantity }
72
+ id orderNumber productName productSku status priority quantity quantityDone uom
73
+ erpReference notes plannedStart plannedEnd actualStart actualEnd dueDate tags createdAt
74
+ updatedAt workspaceId
75
+ operations {
76
+ items { id name sequence status workCenterId goodCount scrapCount }
77
+ pageInfo { cursor hasMore }
78
+ }
79
+ materialLots {
80
+ items { id lotNumber materialSku status quantity }
81
+ pageInfo { cursor hasMore }
82
+ }
74
83
  }
75
84
  }
76
85
  `,P=`
@@ -184,7 +193,8 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
184
193
  `,G=`
185
194
  query ManListInspectionPlans($isActive: Boolean, $stage: ManInspectionStage) {
186
195
  manListInspectionPlans(isActive: $isActive, stage: $stage) {
187
- id code name stage productSku isActive description createdAt
196
+ items { id code name stage productSku isActive description createdAt }
197
+ pageInfo { cursor hasMore }
188
198
  }
189
199
  }
190
200
  `,K=`
@@ -197,11 +207,11 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
197
207
  `,z=`
198
208
  query ManGetInspection($id: ID!) {
199
209
  manInspection(id: $id) {
200
- id stage result sampleSize defectCount inspectionPlanId inspectorId
201
- materialLotId productionOrderId workCenterId measurements notes
202
- inspectedAt createdAt updatedAt workspaceId
210
+ id stage result sampleSize defectCount inspectionPlanId inspectorId materialLotId
211
+ productionOrderId workCenterId measurements notes inspectedAt createdAt updatedAt
212
+ workspaceId
203
213
  inspectionPlan { id code name }
204
- nonConformances { id ncrNumber status severity }
214
+ nonConformances { items { id ncrNumber status severity } pageInfo { cursor hasMore } }
205
215
  }
206
216
  }
207
217
  `,V=`
@@ -274,8 +284,11 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
274
284
  `,Z=`
275
285
  query ManListDowntimeEvents($assetId: ID, $reason: ManDowntimeReason, $workCenterId: ID) {
276
286
  manListDowntimeEvents(assetId: $assetId, reason: $reason, workCenterId: $workCenterId) {
277
- id reason durationMinutes startedAt endedAt assetId workCenterId
278
- productionOrderId description createdAt
287
+ items {
288
+ id reason durationMinutes startedAt endedAt assetId workCenterId productionOrderId
289
+ description createdAt
290
+ }
291
+ pageInfo { cursor hasMore }
279
292
  }
280
293
  }
281
294
  `,tt=`
@@ -289,4 +302,4 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
289
302
  query ManHealth {
290
303
  manHealth
291
304
  }
292
- `;function O(s,r){try{return JSON.parse(r)}catch{throw new o(`--${s} must be valid JSON`)}}function c(s){let r=Number.parseInt(s,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${s}"`);return r}function m(s){let r=Number.parseFloat(s);if(Number.isNaN(r))throw new o(`Expected a number but got "${s}"`);return r}function f(s){return s.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function nt(s){let r=s.command("work-centers").description("Manufacturing work centers");r.command("list").description("List work centers").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(E,{isActive:t.active});h$1(t,e.manListWorkCenters,{headers:["ID","Code","Name","Type","Capacity","Active"],rows:e.manListWorkCenters.map(n=>[p(n.id,12),n.code,n.name,n.type,String(n.capacityHours??0),n.isActive?"yes":"no"])});}catch(e){g(e);}}),r.command("get").description("Get a work center by id").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(R,{id:t});if(!n.manWorkCenter)throw new o(`Work center ${t} not found`);h$1(e,n.manWorkCenter);}catch(n){g(n);}}),r.command("create").description("Create a work center").requiredOption("--code <code>","Work center code").requiredOption("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL","MACHINE").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",m).option("--ideal-run-rate <n>","Ideal run rate",m).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,type:(t.type??"MACHINE").toUpperCase()};t.description&&(e.description=t.description),t.capacityHours!==void 0&&(e.capacityHours=t.capacityHours),t.idealRunRate!==void 0&&(e.idealRunRate=t.idealRunRate),t.tags&&(e.tags=f(t.tags));let n=await b$1(y,{input:e});i(`Work center created: ${n.manCreateWorkCenter.code}`),h$1(t,n.manCreateWorkCenter);}catch(e){g(e);}}),r.command("update").description("Update a work center").argument("<id>","Work center ID").option("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",m).option("--ideal-run-rate <n>","Ideal run rate",m).option("--active <bool>","Active flag (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.capacityHours!==void 0&&(n.capacityHours=e.capacityHours),e.idealRunRate!==void 0&&(n.idealRunRate=e.idealRunRate),e.active!==void 0&&(n.isActive=e.active),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(S,{id:t,input:n});i("Work center updated"),h$1(e,C.manUpdateWorkCenter);}catch(n){g(n);}}),r.command("archive").description("Archive (soft-delete) a work center").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(w,{id:t});i(`Work center archived: ${n.manArchiveWorkCenter}`),h$1(e,{archived:n.manArchiveWorkCenter});}catch(n){g(n);}});}function rt(s){let r=s.command("assets").description("Manufacturing assets / equipment");r.command("list").description("List assets").option("--status <s>","Filter by asset status").option("--work-center <id>","Filter by work center ID").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 b$1(M,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,workCenterId:t.workCenter});h$1(t,e.manListAssets.items,{headers:["ID","Tag","Name","Status","Run Hrs","PM Interval"],rows:e.manListAssets.items.map(n=>[p(n.id,12),n.assetTag,n.name,n.status,String(n.runningHours??0),String(n.pmIntervalHours??0)])});}catch(e){g(e);}}),r.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(k,{id:t});if(!n.manAsset)throw new o(`Asset ${t} not found`);h$1(e,n.manAsset);}catch(n){g(n);}}),r.command("create").description("Create an asset").requiredOption("--asset-tag <tag>","Asset tag").requiredOption("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",m).option("--running-hours <n>","Initial running hours",m).option("--installed-at <date>","Installed-at timestamp (ISO 8601)").option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetTag:t.assetTag,name:t.name};t.manufacturer&&(e.manufacturer=t.manufacturer),t.model&&(e.model=t.model),t.serialNumber&&(e.serialNumber=t.serialNumber),t.pmIntervalHours!==void 0&&(e.pmIntervalHours=t.pmIntervalHours),t.runningHours!==void 0&&(e.runningHours=t.runningHours),t.installedAt&&(e.installedAt=t.installedAt),t.workCenter&&(e.workCenterId=t.workCenter),t.tags&&(e.tags=f(t.tags));let n=await b$1(D,{input:e});i(`Asset created: ${n.manCreateAsset.assetTag}`),h$1(t,n.manCreateAsset);}catch(e){g(e);}}),r.command("update").description("Update an asset").argument("<id>","Asset ID").option("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--status <s>","DEGRADED|DOWN|MAINTENANCE|OPERATIONAL|RETIRED").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",m).option("--running-hours <n>","Running hours",m).option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.manufacturer!==void 0&&(n.manufacturer=e.manufacturer),e.model!==void 0&&(n.model=e.model),e.serialNumber!==void 0&&(n.serialNumber=e.serialNumber),e.status&&(n.status=e.status.toUpperCase()),e.pmIntervalHours!==void 0&&(n.pmIntervalHours=e.pmIntervalHours),e.runningHours!==void 0&&(n.runningHours=e.runningHours),e.workCenter&&(n.workCenterId=e.workCenter),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(T,{id:t,input:n});i("Asset updated"),h$1(e,C.manUpdateAsset);}catch(n){g(n);}});}function ot(s){let r=s.command("production-orders").description("Production (work) orders");r.command("list").description("List production orders").option("--product-sku <sku>","Filter by product SKU").option("--status <s>","Filter by order 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 b$1(P,{pagination:{limit:t.limit,offset:t.offset},productSku:t.productSku,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.manListProductionOrders.items,{headers:["ID","Order #","Product","Status","Priority","Qty","Done"],rows:e.manListProductionOrders.items.map(n=>[p(n.id,12),n.orderNumber,p(n.productName,20),n.status,n.priority,String(n.quantity??0),String(n.quantityDone??0)])});}catch(e){g(e);}}),r.command("get").description("Get a production order by id").argument("<id>","Production order ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(L,{id:t});if(!n.manProductionOrder)throw new o(`Production order ${t} not found`);h$1(e,n.manProductionOrder);}catch(n){g(n);}}),r.command("create").description("Create a production order").requiredOption("--order-number <n>","Order number").requiredOption("--product-name <name>","Product name").requiredOption("--product-sku <sku>","Product SKU").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--quantity <n>","Quantity",m).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={orderNumber:t.orderNumber,productName:t.productName,productSku:t.productSku,priority:(t.priority??"NORMAL").toUpperCase()};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.erpReference&&(e.erpReference=t.erpReference),t.notes&&(e.notes=t.notes),t.plannedStart&&(e.plannedStart=t.plannedStart),t.plannedEnd&&(e.plannedEnd=t.plannedEnd),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=f(t.tags));let n=await b$1(b,{input:e});i(`Production order created: ${n.manCreateProductionOrder.orderNumber}`),h$1(t,n.manCreateProductionOrder);}catch(e){g(e);}}),r.command("update").description("Update a production order").argument("<id>","Production order ID").option("--product-name <name>","Product name").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--quantity <n>","Quantity",m).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.productName&&(n.productName=e.productName),e.priority&&(n.priority=e.priority.toUpperCase()),e.quantity!==void 0&&(n.quantity=e.quantity),e.uom&&(n.uom=e.uom),e.erpReference!==void 0&&(n.erpReference=e.erpReference),e.notes!==void 0&&(n.notes=e.notes),e.plannedStart&&(n.plannedStart=e.plannedStart),e.plannedEnd&&(n.plannedEnd=e.plannedEnd),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(h,{id:t,input:n});i("Production order updated"),h$1(e,C.manUpdateProductionOrder);}catch(n){g(n);}}),r.command("transition").description("Advance a production order through its execution lifecycle").argument("<id>","Production order ID").requiredOption("--status <s>","PLANNED|RELEASED|IN_PROGRESS|PAUSED|COMPLETED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(v,{id:t,status:e.status.toUpperCase()});i(`Production order status set to ${n.manTransitionProductionOrder.status}`),h$1(e,n.manTransitionProductionOrder);}catch(n){g(n);}});}function it(s){let r=s.command("operations").description("Routing operations on production orders");r.command("add").description("Add a routing operation to a production order").requiredOption("--production-order <id>","Production order ID").requiredOption("--name <name>","Operation name").option("--sequence <n>","Sequence number",c).option("--work-center <id>","Work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={productionOrderId:t.productionOrder,name:t.name};t.sequence!==void 0&&(e.sequence=t.sequence),t.workCenter&&(e.workCenterId=t.workCenter);let n=await b$1(_,{input:e});i(`Operation added: ${n.manAddOperation.name}`),h$1(t,n.manAddOperation);}catch(e){g(e);}}),r.command("record").description("Record progress against a routing operation (setup/run time, good/scrap counts)").argument("<id>","Operation ID").option("--status <s>","PENDING|SETUP|RUNNING|DONE|SKIPPED").option("--setup-minutes <n>","Setup minutes",c).option("--run-minutes <n>","Run minutes",c).option("--good-count <n>","Good count",m).option("--scrap-count <n>","Scrap count",m).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.status&&(n.status=e.status.toUpperCase()),e.setupMinutes!==void 0&&(n.setupMinutes=e.setupMinutes),e.runMinutes!==void 0&&(n.runMinutes=e.runMinutes),e.goodCount!==void 0&&(n.goodCount=e.goodCount),e.scrapCount!==void 0&&(n.scrapCount=e.scrapCount),!Object.keys(n).length)throw new o("No progress fields specified");let C=await b$1($,{id:t,input:n});i("Operation progress recorded"),h$1(e,C.manRecordOperation);}catch(n){g(n);}});}function at(s){let r=s.command("material-lots").description("Material lots (traceability)");r.command("list").description("List material lots").option("--production-order <id>","Filter by production order ID").option("--status <s>","Filter by lot 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 b$1(W,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.manListMaterialLots.items,{headers:["ID","Lot #","Material","SKU","Status","Qty"],rows:e.manListMaterialLots.items.map(n=>[p(n.id,12),n.lotNumber,p(n.materialName,20),n.materialSku,n.status,`${n.quantity??0} ${n.uom??""}`.trim()])});}catch(e){g(e);}}),r.command("create").description("Create a material lot").requiredOption("--lot-number <n>","Lot number").requiredOption("--material-name <name>","Material name").requiredOption("--material-sku <sku>","Material SKU").option("--quantity <n>","Quantity",m).option("--uom <u>","Unit of measure").option("--supplier <s>","Supplier").option("--parent-lot <id>","Parent lot ID").option("--production-order <id>","Production order ID").option("--received-at <date>","Received-at timestamp (ISO 8601)").option("--expires-at <date>","Expiry timestamp (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={lotNumber:t.lotNumber,materialName:t.materialName,materialSku:t.materialSku};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.supplier&&(e.supplier=t.supplier),t.parentLot&&(e.parentLotId=t.parentLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.receivedAt&&(e.receivedAt=t.receivedAt),t.expiresAt&&(e.expiresAt=t.expiresAt),t.tags&&(e.tags=f(t.tags));let n=await b$1(U,{input:e});i(`Material lot created: ${n.manCreateMaterialLot.lotNumber}`),h$1(t,n.manCreateMaterialLot);}catch(e){g(e);}}),r.command("set-status").description("Set the status of a material lot").argument("<id>","Material lot ID").requiredOption("--status <s>","AVAILABLE|ALLOCATED|CONSUMED|QUARANTINED|SCRAPPED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(q,{id:t,status:e.status.toUpperCase()});i(`Material lot status set to ${n.manSetMaterialLotStatus.status}`),h$1(e,n.manSetMaterialLotStatus);}catch(n){g(n);}});}function st(s){let r=s.command("maintenance").description("Maintenance work orders");r.command("list").description("List maintenance work orders").option("--asset <id>","Filter by asset ID").option("--status <s>","Filter by 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 b$1(H,{assetId:t.asset,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});h$1(t,e.manListMaintenanceWorkOrders.items,{headers:["ID","WO #","Title","Type","Status","Asset"],rows:e.manListMaintenanceWorkOrders.items.map(n=>[p(n.id,12),n.woNumber,p(n.title,24),n.type,n.status,p(n.assetId??"-",12)])});}catch(e){g(e);}}),r.command("create").description("Create a maintenance work order").requiredOption("--wo-number <n>","Work order number").requiredOption("--asset <id>","Asset ID").requiredOption("--title <t>","Title").option("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|INSPECTION","PREVENTIVE").option("--description <s>","Description").option("--technician <id>","Technician ID").option("--scheduled-for <date>","Scheduled-for timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={woNumber:t.woNumber,assetId:t.asset,title:t.title,type:(t.type??"PREVENTIVE").toUpperCase()};t.description&&(e.description=t.description),t.technician&&(e.technicianId=t.technician),t.scheduledFor&&(e.scheduledFor=t.scheduledFor);let n=await b$1(x,{input:e});i(`Maintenance WO created: ${n.manCreateMaintenanceWorkOrder.woNumber}`),h$1(t,n.manCreateMaintenanceWorkOrder);}catch(e){g(e);}}),r.command("transition").description("Advance a maintenance work order through its lifecycle").argument("<id>","Maintenance work order ID").requiredOption("--status <s>","SCHEDULED|IN_PROGRESS|ON_HOLD|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(F,{id:t,status:e.status.toUpperCase()});i(`Maintenance WO status set to ${n.manTransitionMaintenanceWorkOrder.status}`),h$1(e,n.manTransitionMaintenanceWorkOrder);}catch(n){g(n);}});}function dt(s){let r=s.command("inspection-plans").description("Quality inspection plans");r.command("list").description("List inspection plans").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{isActive:t.active,stage:t.stage?t.stage.toUpperCase():void 0});h$1(t,e.manListInspectionPlans,{headers:["ID","Code","Name","Stage","Product SKU","Active"],rows:e.manListInspectionPlans.map(n=>[p(n.id,12),n.code,p(n.name,24),n.stage,n.productSku??"-",n.isActive?"yes":"no"])});}catch(e){g(e);}}),r.command("create").description("Create an inspection plan").requiredOption("--code <code>","Plan code").requiredOption("--name <name>","Plan name").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--product-sku <sku>","Product SKU").option("--description <s>","Description").option("--characteristics <json>","Characteristics JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,stage:(t.stage??"IN_PROCESS").toUpperCase()};t.productSku&&(e.productSku=t.productSku),t.description&&(e.description=t.description),t.characteristics&&(e.characteristics=O("characteristics",t.characteristics));let n=await b$1(K,{input:e});i(`Inspection plan created: ${n.manCreateInspectionPlan.code}`),h$1(t,n.manCreateInspectionPlan);}catch(e){g(e);}});}function ut(s){let r=s.command("inspections").description("Quality inspections");r.command("list").description("List quality inspections").option("--production-order <id>","Filter by production order ID").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL").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 b$1(V,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,result:t.result?t.result.toUpperCase():void 0});h$1(t,e.manListInspections.items,{headers:["ID","Stage","Result","Sample","Defects","Order"],rows:e.manListInspections.items.map(n=>[p(n.id,12),n.stage,n.result,String(n.sampleSize??0),String(n.defectCount??0),p(n.productionOrderId??"-",12)])});}catch(e){g(e);}}),r.command("get").description("Get a quality inspection by id").argument("<id>","Inspection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(z,{id:t});if(!n.manInspection)throw new o(`Inspection ${t} not found`);h$1(e,n.manInspection);}catch(n){g(n);}}),r.command("record").description("Record a quality inspection").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL","PENDING").option("--sample-size <n>","Sample size",c).option("--defect-count <n>","Defect count",c).option("--inspection-plan <id>","Inspection plan ID").option("--material-lot <id>","Material lot ID").option("--production-order <id>","Production order ID").option("--work-center <id>","Work center ID").option("--measurements <json>","Measurements JSON").option("--notes <s>","Notes").option("--inspected-at <date>","Inspected-at timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={stage:(t.stage??"IN_PROCESS").toUpperCase(),result:(t.result??"PENDING").toUpperCase()};t.sampleSize!==void 0&&(e.sampleSize=t.sampleSize),t.defectCount!==void 0&&(e.defectCount=t.defectCount),t.inspectionPlan&&(e.inspectionPlanId=t.inspectionPlan),t.materialLot&&(e.materialLotId=t.materialLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.workCenter&&(e.workCenterId=t.workCenter),t.measurements&&(e.measurements=O("measurements",t.measurements)),t.notes&&(e.notes=t.notes),t.inspectedAt&&(e.inspectedAt=t.inspectedAt);let n=await b$1(Q,{input:e});i(`Inspection recorded: ${n.manRecordInspection.result}`),h$1(t,n.manRecordInspection);}catch(e){g(e);}});}function ct(s){let r=s.command("non-conformances").description("Non-conformances (NCR / CAPA)");r.command("list").description("List non-conformances").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--status <s>","Filter by 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 b$1(j,{pagination:{limit:t.limit,offset:t.offset},severity:t.severity?t.severity.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.manListNonConformances.items,{headers:["ID","NCR #","Title","Severity","Status","Disposition"],rows:e.manListNonConformances.items.map(n=>[p(n.id,12),n.ncrNumber,p(n.title,24),n.severity,n.status,n.disposition])});}catch(e){g(e);}}),r.command("get").description("Get a non-conformance by id").argument("<id>","Non-conformance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(J,{id:t});if(!n.manNonConformance)throw new o(`Non-conformance ${t} not found`);h$1(e,n.manNonConformance);}catch(n){g(n);}}),r.command("raise").description("Raise a non-conformance").requiredOption("--ncr-number <n>","NCR number").requiredOption("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL","MINOR").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER","OPEN").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",m).option("--owner <id>","Owner ID").option("--inspection <id>","Source inspection ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={ncrNumber:t.ncrNumber,title:t.title,severity:(t.severity??"MINOR").toUpperCase(),disposition:(t.disposition??"OPEN").toUpperCase()};t.description&&(e.description=t.description),t.quantityAffected!==void 0&&(e.quantityAffected=t.quantityAffected),t.owner&&(e.ownerId=t.owner),t.inspection&&(e.inspectionId=t.inspection),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=f(t.tags));let n=await b$1(B,{input:e});i(`Non-conformance raised: ${n.manRaiseNonConformance.ncrNumber}`),h$1(t,n.manRaiseNonConformance);}catch(e){g(e);}}),r.command("update").description("Update a non-conformance").argument("<id>","Non-conformance ID").option("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",m).option("--root-cause <s>","Root cause").option("--corrective-action <s>","Corrective action").option("--owner <id>","Owner ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.severity&&(n.severity=e.severity.toUpperCase()),e.disposition&&(n.disposition=e.disposition.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.quantityAffected!==void 0&&(n.quantityAffected=e.quantityAffected),e.rootCause!==void 0&&(n.rootCause=e.rootCause),e.correctiveAction!==void 0&&(n.correctiveAction=e.correctiveAction),e.owner&&(n.ownerId=e.owner),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(Y,{id:t,input:n});i("Non-conformance updated"),h$1(e,C.manUpdateNonConformance);}catch(n){g(n);}}),r.command("transition").description("Advance an NCR/CAPA through its resolution lifecycle").argument("<id>","Non-conformance ID").requiredOption("--status <s>","OPEN|INVESTIGATING|CONTAINED|CORRECTIVE_ACTION|CLOSED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(X,{id:t,status:e.status.toUpperCase()});i(`Non-conformance status set to ${n.manTransitionNonConformance.status}`),h$1(e,n.manTransitionNonConformance);}catch(n){g(n);}});}function pt(s){let r=s.command("downtime").description("Downtime events");r.command("list").description("List downtime events").option("--asset <id>","Filter by asset ID").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER").option("--work-center <id>","Filter by work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Z,{assetId:t.asset,reason:t.reason?t.reason.toUpperCase():void 0,workCenterId:t.workCenter});h$1(t,e.manListDowntimeEvents,{headers:["ID","Reason","Minutes","Started","Asset","Work Center"],rows:e.manListDowntimeEvents.map(n=>[p(n.id,12),n.reason,String(n.durationMinutes),n.startedAt,p(n.assetId??"-",12),p(n.workCenterId??"-",12)])});}catch(e){g(e);}}),r.command("record").description("Record a downtime event").requiredOption("--started-at <date>","Started-at timestamp (ISO 8601)").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER","BREAKDOWN").option("--duration-minutes <n>","Duration minutes",c).option("--ended-at <date>","Ended-at timestamp (ISO 8601)").option("--asset <id>","Asset ID").option("--work-center <id>","Work center ID").option("--production-order <id>","Production order ID").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={startedAt:t.startedAt,reason:(t.reason??"BREAKDOWN").toUpperCase()};t.durationMinutes!==void 0&&(e.durationMinutes=t.durationMinutes),t.endedAt&&(e.endedAt=t.endedAt),t.asset&&(e.assetId=t.asset),t.workCenter&&(e.workCenterId=t.workCenter),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.description&&(e.description=t.description);let n=await b$1(tt,{input:e});i(`Downtime recorded: ${n.manRecordDowntime.reason}`),h$1(t,n.manRecordDowntime);}catch(e){g(e);}});}function mt(s){s.command("health").description("Manufacturedops service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await d(et);i(t.manHealth),h$1(r,{health:t.manHealth});}catch(t){g(t);}});}var ft={id:"manufacturedops",version:"1.0.0",displayName:"Manufacturedops",dependsOn:["auth","workspaces"],register(s,r){a(r);let t=s.command("manufacturedops").description("Manufacturedops manufacturing execution system");nt(t),rt(t),ot(t),it(t),at(t),st(t),dt(t),ut(t),ct(t),pt(t),mt(t);}},pe=ft;export{pe as default};
305
+ `;function O(s,r){try{return JSON.parse(r)}catch{throw new o(`--${s} must be valid JSON`)}}function c(s){let r=Number.parseInt(s,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${s}"`);return r}function m(s){let r=Number.parseFloat(s);if(Number.isNaN(r))throw new o(`Expected a number but got "${s}"`);return r}function f(s){return s.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function nt(s){let r$1=s.command("work-centers").description("Manufacturing work centers");r$1.command("list").description("List work centers").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(E,{isActive:t.active});i(t,e.manListWorkCenters.items,{headers:["ID","Code","Name","Type","Capacity","Active"],rows:e.manListWorkCenters.items.map(n=>[r(n.id,12),n.code,n.name,n.type,String(n.capacityHours??0),n.isActive?"yes":"no"])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a work center by id").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(R,{id:t});if(!n.manWorkCenter)throw new o(`Work center ${t} not found`);i(e,n.manWorkCenter);}catch(n){h$1(n);}}),r$1.command("create").description("Create a work center").requiredOption("--code <code>","Work center code").requiredOption("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL","MACHINE").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",m).option("--ideal-run-rate <n>","Ideal run rate",m).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,type:(t.type??"MACHINE").toUpperCase()};t.description&&(e.description=t.description),t.capacityHours!==void 0&&(e.capacityHours=t.capacityHours),t.idealRunRate!==void 0&&(e.idealRunRate=t.idealRunRate),t.tags&&(e.tags=f(t.tags));let n=await b$1(y,{input:e});k$1(`Work center created: ${n.manCreateWorkCenter.code}`),i(t,n.manCreateWorkCenter);}catch(e){h$1(e);}}),r$1.command("update").description("Update a work center").argument("<id>","Work center ID").option("--name <name>","Work center name").option("--type <t>","ASSEMBLY|CELL|LINE|MACHINE|MANUAL").option("--description <s>","Description").option("--capacity-hours <n>","Capacity hours",m).option("--ideal-run-rate <n>","Ideal run rate",m).option("--active <bool>","Active flag (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.type&&(n.type=e.type.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.capacityHours!==void 0&&(n.capacityHours=e.capacityHours),e.idealRunRate!==void 0&&(n.idealRunRate=e.idealRunRate),e.active!==void 0&&(n.isActive=e.active),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(S,{id:t,input:n});k$1("Work center updated"),i(e,C.manUpdateWorkCenter);}catch(n){h$1(n);}}),r$1.command("archive").description("Archive (soft-delete) a work center").argument("<id>","Work center ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(w,{id:t});k$1(`Work center archived: ${n.manArchiveWorkCenter}`),i(e,{archived:n.manArchiveWorkCenter});}catch(n){h$1(n);}});}function rt(s){let r$1=s.command("assets").description("Manufacturing assets / equipment");r$1.command("list").description("List assets").option("--status <s>","Filter by asset status").option("--work-center <id>","Filter by work center ID").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 b$1(M,{pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0,workCenterId:t.workCenter});i(t,e.manListAssets.items,{headers:["ID","Tag","Name","Status","Run Hrs","PM Interval"],rows:e.manListAssets.items.map(n=>[r(n.id,12),n.assetTag,n.name,n.status,String(n.runningHours??0),String(n.pmIntervalHours??0)])});}catch(e){h$1(e);}}),r$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 n=await b$1(k,{id:t});if(!n.manAsset)throw new o(`Asset ${t} not found`);i(e,n.manAsset);}catch(n){h$1(n);}}),r$1.command("create").description("Create an asset").requiredOption("--asset-tag <tag>","Asset tag").requiredOption("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",m).option("--running-hours <n>","Initial running hours",m).option("--installed-at <date>","Installed-at timestamp (ISO 8601)").option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetTag:t.assetTag,name:t.name};t.manufacturer&&(e.manufacturer=t.manufacturer),t.model&&(e.model=t.model),t.serialNumber&&(e.serialNumber=t.serialNumber),t.pmIntervalHours!==void 0&&(e.pmIntervalHours=t.pmIntervalHours),t.runningHours!==void 0&&(e.runningHours=t.runningHours),t.installedAt&&(e.installedAt=t.installedAt),t.workCenter&&(e.workCenterId=t.workCenter),t.tags&&(e.tags=f(t.tags));let n=await b$1(D,{input:e});k$1(`Asset created: ${n.manCreateAsset.assetTag}`),i(t,n.manCreateAsset);}catch(e){h$1(e);}}),r$1.command("update").description("Update an asset").argument("<id>","Asset ID").option("--name <name>","Asset name").option("--manufacturer <s>","Manufacturer").option("--model <s>","Model").option("--serial-number <s>","Serial number").option("--status <s>","DEGRADED|DOWN|MAINTENANCE|OPERATIONAL|RETIRED").option("--pm-interval-hours <n>","Preventive-maintenance interval hours",m).option("--running-hours <n>","Running hours",m).option("--work-center <id>","Work center ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.manufacturer!==void 0&&(n.manufacturer=e.manufacturer),e.model!==void 0&&(n.model=e.model),e.serialNumber!==void 0&&(n.serialNumber=e.serialNumber),e.status&&(n.status=e.status.toUpperCase()),e.pmIntervalHours!==void 0&&(n.pmIntervalHours=e.pmIntervalHours),e.runningHours!==void 0&&(n.runningHours=e.runningHours),e.workCenter&&(n.workCenterId=e.workCenter),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(T,{id:t,input:n});k$1("Asset updated"),i(e,C.manUpdateAsset);}catch(n){h$1(n);}});}function ot(s){let r$1=s.command("production-orders").description("Production (work) orders");r$1.command("list").description("List production orders").option("--product-sku <sku>","Filter by product SKU").option("--status <s>","Filter by order 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 b$1(P,{pagination:{limit:t.limit,offset:t.offset},productSku:t.productSku,status:t.status?t.status.toUpperCase():void 0});i(t,e.manListProductionOrders.items,{headers:["ID","Order #","Product","Status","Priority","Qty","Done"],rows:e.manListProductionOrders.items.map(n=>[r(n.id,12),n.orderNumber,r(n.productName,20),n.status,n.priority,String(n.quantity??0),String(n.quantityDone??0)])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a production order by id").argument("<id>","Production order ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(L,{id:t});if(!n.manProductionOrder)throw new o(`Production order ${t} not found`);i(e,n.manProductionOrder);}catch(n){h$1(n);}}),r$1.command("create").description("Create a production order").requiredOption("--order-number <n>","Order number").requiredOption("--product-name <name>","Product name").requiredOption("--product-sku <sku>","Product SKU").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--quantity <n>","Quantity",m).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={orderNumber:t.orderNumber,productName:t.productName,productSku:t.productSku,priority:(t.priority??"NORMAL").toUpperCase()};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.erpReference&&(e.erpReference=t.erpReference),t.notes&&(e.notes=t.notes),t.plannedStart&&(e.plannedStart=t.plannedStart),t.plannedEnd&&(e.plannedEnd=t.plannedEnd),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=f(t.tags));let n=await b$1(b,{input:e});k$1(`Production order created: ${n.manCreateProductionOrder.orderNumber}`),i(t,n.manCreateProductionOrder);}catch(e){h$1(e);}}),r$1.command("update").description("Update a production order").argument("<id>","Production order ID").option("--product-name <name>","Product name").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--quantity <n>","Quantity",m).option("--uom <u>","Unit of measure").option("--erp-reference <s>","ERP reference").option("--notes <s>","Notes").option("--planned-start <date>","Planned start (ISO 8601)").option("--planned-end <date>","Planned end (ISO 8601)").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.productName&&(n.productName=e.productName),e.priority&&(n.priority=e.priority.toUpperCase()),e.quantity!==void 0&&(n.quantity=e.quantity),e.uom&&(n.uom=e.uom),e.erpReference!==void 0&&(n.erpReference=e.erpReference),e.notes!==void 0&&(n.notes=e.notes),e.plannedStart&&(n.plannedStart=e.plannedStart),e.plannedEnd&&(n.plannedEnd=e.plannedEnd),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(h,{id:t,input:n});k$1("Production order updated"),i(e,C.manUpdateProductionOrder);}catch(n){h$1(n);}}),r$1.command("transition").description("Advance a production order through its execution lifecycle").argument("<id>","Production order ID").requiredOption("--status <s>","PLANNED|RELEASED|IN_PROGRESS|PAUSED|COMPLETED|CLOSED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(v,{id:t,status:e.status.toUpperCase()});k$1(`Production order status set to ${n.manTransitionProductionOrder.status}`),i(e,n.manTransitionProductionOrder);}catch(n){h$1(n);}});}function it(s){let r=s.command("operations").description("Routing operations on production orders");r.command("add").description("Add a routing operation to a production order").requiredOption("--production-order <id>","Production order ID").requiredOption("--name <name>","Operation name").option("--sequence <n>","Sequence number",c).option("--work-center <id>","Work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={productionOrderId:t.productionOrder,name:t.name};t.sequence!==void 0&&(e.sequence=t.sequence),t.workCenter&&(e.workCenterId=t.workCenter);let n=await b$1(_,{input:e});k$1(`Operation added: ${n.manAddOperation.name}`),i(t,n.manAddOperation);}catch(e){h$1(e);}}),r.command("record").description("Record progress against a routing operation (setup/run time, good/scrap counts)").argument("<id>","Operation ID").option("--status <s>","PENDING|SETUP|RUNNING|DONE|SKIPPED").option("--setup-minutes <n>","Setup minutes",c).option("--run-minutes <n>","Run minutes",c).option("--good-count <n>","Good count",m).option("--scrap-count <n>","Scrap count",m).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.status&&(n.status=e.status.toUpperCase()),e.setupMinutes!==void 0&&(n.setupMinutes=e.setupMinutes),e.runMinutes!==void 0&&(n.runMinutes=e.runMinutes),e.goodCount!==void 0&&(n.goodCount=e.goodCount),e.scrapCount!==void 0&&(n.scrapCount=e.scrapCount),!Object.keys(n).length)throw new o("No progress fields specified");let C=await b$1($,{id:t,input:n});k$1("Operation progress recorded"),i(e,C.manRecordOperation);}catch(n){h$1(n);}});}function at(s){let r$1=s.command("material-lots").description("Material lots (traceability)");r$1.command("list").description("List material lots").option("--production-order <id>","Filter by production order ID").option("--status <s>","Filter by lot 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 b$1(W,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,status:t.status?t.status.toUpperCase():void 0});i(t,e.manListMaterialLots.items,{headers:["ID","Lot #","Material","SKU","Status","Qty"],rows:e.manListMaterialLots.items.map(n=>[r(n.id,12),n.lotNumber,r(n.materialName,20),n.materialSku,n.status,`${n.quantity??0} ${n.uom??""}`.trim()])});}catch(e){h$1(e);}}),r$1.command("create").description("Create a material lot").requiredOption("--lot-number <n>","Lot number").requiredOption("--material-name <name>","Material name").requiredOption("--material-sku <sku>","Material SKU").option("--quantity <n>","Quantity",m).option("--uom <u>","Unit of measure").option("--supplier <s>","Supplier").option("--parent-lot <id>","Parent lot ID").option("--production-order <id>","Production order ID").option("--received-at <date>","Received-at timestamp (ISO 8601)").option("--expires-at <date>","Expiry timestamp (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={lotNumber:t.lotNumber,materialName:t.materialName,materialSku:t.materialSku};t.quantity!==void 0&&(e.quantity=t.quantity),t.uom&&(e.uom=t.uom),t.supplier&&(e.supplier=t.supplier),t.parentLot&&(e.parentLotId=t.parentLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.receivedAt&&(e.receivedAt=t.receivedAt),t.expiresAt&&(e.expiresAt=t.expiresAt),t.tags&&(e.tags=f(t.tags));let n=await b$1(U,{input:e});k$1(`Material lot created: ${n.manCreateMaterialLot.lotNumber}`),i(t,n.manCreateMaterialLot);}catch(e){h$1(e);}}),r$1.command("set-status").description("Set the status of a material lot").argument("<id>","Material lot ID").requiredOption("--status <s>","AVAILABLE|ALLOCATED|CONSUMED|QUARANTINED|SCRAPPED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(q,{id:t,status:e.status.toUpperCase()});k$1(`Material lot status set to ${n.manSetMaterialLotStatus.status}`),i(e,n.manSetMaterialLotStatus);}catch(n){h$1(n);}});}function st(s){let r$1=s.command("maintenance").description("Maintenance work orders");r$1.command("list").description("List maintenance work orders").option("--asset <id>","Filter by asset ID").option("--status <s>","Filter by 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 b$1(H,{assetId:t.asset,pagination:{limit:t.limit,offset:t.offset},status:t.status?t.status.toUpperCase():void 0});i(t,e.manListMaintenanceWorkOrders.items,{headers:["ID","WO #","Title","Type","Status","Asset"],rows:e.manListMaintenanceWorkOrders.items.map(n=>[r(n.id,12),n.woNumber,r(n.title,24),n.type,n.status,r(n.assetId??"-",12)])});}catch(e){h$1(e);}}),r$1.command("create").description("Create a maintenance work order").requiredOption("--wo-number <n>","Work order number").requiredOption("--asset <id>","Asset ID").requiredOption("--title <t>","Title").option("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|INSPECTION","PREVENTIVE").option("--description <s>","Description").option("--technician <id>","Technician ID").option("--scheduled-for <date>","Scheduled-for timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={woNumber:t.woNumber,assetId:t.asset,title:t.title,type:(t.type??"PREVENTIVE").toUpperCase()};t.description&&(e.description=t.description),t.technician&&(e.technicianId=t.technician),t.scheduledFor&&(e.scheduledFor=t.scheduledFor);let n=await b$1(x,{input:e});k$1(`Maintenance WO created: ${n.manCreateMaintenanceWorkOrder.woNumber}`),i(t,n.manCreateMaintenanceWorkOrder);}catch(e){h$1(e);}}),r$1.command("transition").description("Advance a maintenance work order through its lifecycle").argument("<id>","Maintenance work order ID").requiredOption("--status <s>","SCHEDULED|IN_PROGRESS|ON_HOLD|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(F,{id:t,status:e.status.toUpperCase()});k$1(`Maintenance WO status set to ${n.manTransitionMaintenanceWorkOrder.status}`),i(e,n.manTransitionMaintenanceWorkOrder);}catch(n){h$1(n);}});}function dt(s){let r$1=s.command("inspection-plans").description("Quality inspection plans");r$1.command("list").description("List inspection plans").option("--active <bool>","Filter by active flag (true|false)",t=>t==="true").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{isActive:t.active,stage:t.stage?t.stage.toUpperCase():void 0});i(t,e.manListInspectionPlans.items,{headers:["ID","Code","Name","Stage","Product SKU","Active"],rows:e.manListInspectionPlans.items.map(n=>[r(n.id,12),n.code,r(n.name,24),n.stage,n.productSku??"-",n.isActive?"yes":"no"])});}catch(e){h$1(e);}}),r$1.command("create").description("Create an inspection plan").requiredOption("--code <code>","Plan code").requiredOption("--name <name>","Plan name").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--product-sku <sku>","Product SKU").option("--description <s>","Description").option("--characteristics <json>","Characteristics JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={code:t.code,name:t.name,stage:(t.stage??"IN_PROCESS").toUpperCase()};t.productSku&&(e.productSku=t.productSku),t.description&&(e.description=t.description),t.characteristics&&(e.characteristics=O("characteristics",t.characteristics));let n=await b$1(K,{input:e});k$1(`Inspection plan created: ${n.manCreateInspectionPlan.code}`),i(t,n.manCreateInspectionPlan);}catch(e){h$1(e);}});}function ut(s){let r$1=s.command("inspections").description("Quality inspections");r$1.command("list").description("List quality inspections").option("--production-order <id>","Filter by production order ID").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL").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 b$1(V,{pagination:{limit:t.limit,offset:t.offset},productionOrderId:t.productionOrder,result:t.result?t.result.toUpperCase():void 0});i(t,e.manListInspections.items,{headers:["ID","Stage","Result","Sample","Defects","Order"],rows:e.manListInspections.items.map(n=>[r(n.id,12),n.stage,n.result,String(n.sampleSize??0),String(n.defectCount??0),r(n.productionOrderId??"-",12)])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a quality inspection by id").argument("<id>","Inspection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(z,{id:t});if(!n.manInspection)throw new o(`Inspection ${t} not found`);i(e,n.manInspection);}catch(n){h$1(n);}}),r$1.command("record").description("Record a quality inspection").option("--stage <s>","INCOMING|IN_PROCESS|FINAL|AUDIT","IN_PROCESS").option("--result <r>","PENDING|PASS|FAIL|CONDITIONAL","PENDING").option("--sample-size <n>","Sample size",c).option("--defect-count <n>","Defect count",c).option("--inspection-plan <id>","Inspection plan ID").option("--material-lot <id>","Material lot ID").option("--production-order <id>","Production order ID").option("--work-center <id>","Work center ID").option("--measurements <json>","Measurements JSON").option("--notes <s>","Notes").option("--inspected-at <date>","Inspected-at timestamp (ISO 8601)").option("-f, --format <format>","Output format").action(async t=>{try{let e={stage:(t.stage??"IN_PROCESS").toUpperCase(),result:(t.result??"PENDING").toUpperCase()};t.sampleSize!==void 0&&(e.sampleSize=t.sampleSize),t.defectCount!==void 0&&(e.defectCount=t.defectCount),t.inspectionPlan&&(e.inspectionPlanId=t.inspectionPlan),t.materialLot&&(e.materialLotId=t.materialLot),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.workCenter&&(e.workCenterId=t.workCenter),t.measurements&&(e.measurements=O("measurements",t.measurements)),t.notes&&(e.notes=t.notes),t.inspectedAt&&(e.inspectedAt=t.inspectedAt);let n=await b$1(Q,{input:e});k$1(`Inspection recorded: ${n.manRecordInspection.result}`),i(t,n.manRecordInspection);}catch(e){h$1(e);}});}function ct(s){let r$1=s.command("non-conformances").description("Non-conformances (NCR / CAPA)");r$1.command("list").description("List non-conformances").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--status <s>","Filter by 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 b$1(j,{pagination:{limit:t.limit,offset:t.offset},severity:t.severity?t.severity.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});i(t,e.manListNonConformances.items,{headers:["ID","NCR #","Title","Severity","Status","Disposition"],rows:e.manListNonConformances.items.map(n=>[r(n.id,12),n.ncrNumber,r(n.title,24),n.severity,n.status,n.disposition])});}catch(e){h$1(e);}}),r$1.command("get").description("Get a non-conformance by id").argument("<id>","Non-conformance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(J,{id:t});if(!n.manNonConformance)throw new o(`Non-conformance ${t} not found`);i(e,n.manNonConformance);}catch(n){h$1(n);}}),r$1.command("raise").description("Raise a non-conformance").requiredOption("--ncr-number <n>","NCR number").requiredOption("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL","MINOR").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER","OPEN").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",m).option("--owner <id>","Owner ID").option("--inspection <id>","Source inspection ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={ncrNumber:t.ncrNumber,title:t.title,severity:(t.severity??"MINOR").toUpperCase(),disposition:(t.disposition??"OPEN").toUpperCase()};t.description&&(e.description=t.description),t.quantityAffected!==void 0&&(e.quantityAffected=t.quantityAffected),t.owner&&(e.ownerId=t.owner),t.inspection&&(e.inspectionId=t.inspection),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=f(t.tags));let n=await b$1(B,{input:e});k$1(`Non-conformance raised: ${n.manRaiseNonConformance.ncrNumber}`),i(t,n.manRaiseNonConformance);}catch(e){h$1(e);}}),r$1.command("update").description("Update a non-conformance").argument("<id>","Non-conformance ID").option("--title <t>","Title").option("--severity <s>","MINOR|MAJOR|CRITICAL").option("--disposition <d>","OPEN|USE_AS_IS|REWORK|SCRAP|RETURN_TO_SUPPLIER").option("--description <s>","Description").option("--quantity-affected <n>","Quantity affected",m).option("--root-cause <s>","Root cause").option("--corrective-action <s>","Corrective action").option("--owner <id>","Owner ID").option("--due-date <date>","Due date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.severity&&(n.severity=e.severity.toUpperCase()),e.disposition&&(n.disposition=e.disposition.toUpperCase()),e.description!==void 0&&(n.description=e.description),e.quantityAffected!==void 0&&(n.quantityAffected=e.quantityAffected),e.rootCause!==void 0&&(n.rootCause=e.rootCause),e.correctiveAction!==void 0&&(n.correctiveAction=e.correctiveAction),e.owner&&(n.ownerId=e.owner),e.dueDate&&(n.dueDate=e.dueDate),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(Y,{id:t,input:n});k$1("Non-conformance updated"),i(e,C.manUpdateNonConformance);}catch(n){h$1(n);}}),r$1.command("transition").description("Advance an NCR/CAPA through its resolution lifecycle").argument("<id>","Non-conformance ID").requiredOption("--status <s>","OPEN|INVESTIGATING|CONTAINED|CORRECTIVE_ACTION|CLOSED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(X,{id:t,status:e.status.toUpperCase()});k$1(`Non-conformance status set to ${n.manTransitionNonConformance.status}`),i(e,n.manTransitionNonConformance);}catch(n){h$1(n);}});}function pt(s){let r$1=s.command("downtime").description("Downtime events");r$1.command("list").description("List downtime events").option("--asset <id>","Filter by asset ID").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER").option("--work-center <id>","Filter by work center ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Z,{assetId:t.asset,reason:t.reason?t.reason.toUpperCase():void 0,workCenterId:t.workCenter});i(t,e.manListDowntimeEvents.items,{headers:["ID","Reason","Minutes","Started","Asset","Work Center"],rows:e.manListDowntimeEvents.items.map(n=>[r(n.id,12),n.reason,String(n.durationMinutes),n.startedAt,r(n.assetId??"-",12),r(n.workCenterId??"-",12)])});}catch(e){h$1(e);}}),r$1.command("record").description("Record a downtime event").requiredOption("--started-at <date>","Started-at timestamp (ISO 8601)").option("--reason <r>","BREAKDOWN|CHANGEOVER|MATERIAL_SHORTAGE|PLANNED|QUALITY|OTHER","BREAKDOWN").option("--duration-minutes <n>","Duration minutes",c).option("--ended-at <date>","Ended-at timestamp (ISO 8601)").option("--asset <id>","Asset ID").option("--work-center <id>","Work center ID").option("--production-order <id>","Production order ID").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={startedAt:t.startedAt,reason:(t.reason??"BREAKDOWN").toUpperCase()};t.durationMinutes!==void 0&&(e.durationMinutes=t.durationMinutes),t.endedAt&&(e.endedAt=t.endedAt),t.asset&&(e.assetId=t.asset),t.workCenter&&(e.workCenterId=t.workCenter),t.productionOrder&&(e.productionOrderId=t.productionOrder),t.description&&(e.description=t.description);let n=await b$1(tt,{input:e});k$1(`Downtime recorded: ${n.manRecordDowntime.reason}`),i(t,n.manRecordDowntime);}catch(e){h$1(e);}});}function mt(s){s.command("health").description("Manufacturedops service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await d(et);k$1(t.manHealth),i(r,{health:t.manHealth});}catch(t){h$1(t);}});}var ft={id:"manufacturedops",version:"1.0.0",displayName:"Manufacturedops",dependsOn:["auth","workspaces"],register(s,r){a(r);let t=s.command("manufacturedops").description("Manufacturedops manufacturing execution system");nt(t),rt(t),ot(t),it(t),at(t),st(t),dt(t),ut(t),ct(t),pt(t),mt(t);}},pe=ft;export{pe as default};