@burdenoff/cli-sdk 2026.703.1 → 2026.731.1

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.
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(r,n){super(r),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},E=class extends m{constructor(r,n){super(r,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(r,n){super(r),this.name="CliInternalError",this.cause=n;}};var b=null;function D(c){b=c;}function C(){if(!b)throw new w("vibecontrols module helpers used before setHelpersContext was called");return b}function Nt(){let c=C();if(!c.auth.isAuthenticated())throw new E(`Authentication required. Run \`${c.productName} auth login\`.`)}async function o(c,r){return Nt(),C().gql.workspace.request(c,r)}function a(c){let r=c instanceof Error?c.message:String(c);throw new m(r)}function s(c,r,n){C().output.formatAndOutput(c,r,n);}function p(c){C().output.printSuccess(c);}function g(c,r){return C().output.truncate(c,r)}var R=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(r,n){super(r),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},E=class extends m{constructor(r,n){super(r,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(r,n){super(r),this.name="CliInternalError",this.cause=n;}};var b=null;function D(c){b=c;}function C(){if(!b)throw new w("vibecontrols module helpers used before setHelpersContext was called");return b}function At(){let c=C();if(!c.auth.isAuthenticated())throw new E(`Authentication required. Run \`${c.productName} auth login\`.`)}async function o(c,r){return At(),C().gql.workspace.request(c,r)}function a(c){let r=c instanceof Error?c.message:String(c);throw new m(r)}function s(c,r,n){C().output.formatAndOutput(c,r,n);}function p(c){C().output.printSuccess(c);}function g(c,r){return C().output.truncate(c,r)}var R=`
2
2
  query MovethewheelsGetCustomer($id: ID!) {
3
3
  customer(id: $id) {
4
4
  id name email phone company type taxId businessLicense address rating
@@ -23,11 +23,11 @@
23
23
  id name email phone company type taxId businessLicense address rating updatedAt
24
24
  }
25
25
  }
26
- `,N=`
26
+ `,x=`
27
27
  mutation MovethewheelsDeleteCustomer($id: ID!) {
28
28
  deleteCustomer(id: $id)
29
29
  }
30
- `,x=`
30
+ `,N=`
31
31
  query MovethewheelsGetDriver($id: ID!) {
32
32
  driver(id: $id) {
33
33
  id employeeId firstName lastName email phone status licenseNumber
@@ -65,13 +65,13 @@
65
65
  id firstName lastName status updatedAt
66
66
  }
67
67
  }
68
- `,q=`
68
+ `,U=`
69
69
  mutation MovethewheelsAssignDriverVehicle($id: ID!, $vehicleId: ID) {
70
70
  assignDriverVehicle(id: $id, vehicleId: $vehicleId) {
71
71
  id firstName lastName vehicleId status updatedAt
72
72
  }
73
73
  }
74
- `,U=`
74
+ `,q=`
75
75
  query MovethewheelsGetVehicle($id: ID!) {
76
76
  vehicle(id: $id) {
77
77
  id vehicleNumber type status make model year licensePlate fuelLevel
@@ -323,13 +323,13 @@
323
323
  id shipmentId eventType details location timestamp createdAt
324
324
  }
325
325
  }
326
- `,Te=`
326
+ `,Oe=`
327
327
  query MovethewheelsOrderTracking($orderId: ID!, $pagination: PaginationInput) {
328
328
  orderTracking(orderId: $orderId, pagination: $pagination) {
329
329
  id shipmentId eventType details location timestamp createdAt
330
330
  }
331
331
  }
332
- `,Oe=`
332
+ `,Te=`
333
333
  query MovethewheelsTrackingAlerts($pagination: PaginationInput) {
334
334
  trackingAlerts(pagination: $pagination) {
335
335
  alertType message shipmentId shipmentNumber
@@ -367,14 +367,14 @@
367
367
  fuelCost createdAt updatedAt workspaceId
368
368
  }
369
369
  }
370
- `,Ne=`
370
+ `,xe=`
371
371
  query MovethewheelsRoutes($filter: RouteFilterInput, $pagination: PaginationInput) {
372
372
  routes(filter: $filter, pagination: $pagination) {
373
373
  id name status driverId vehicleId shipmentId estimatedDistance
374
374
  estimatedDuration fuelCost createdAt
375
375
  }
376
376
  }
377
- `,xe=`
377
+ `,Ne=`
378
378
  mutation MovethewheelsCreateRoute($input: CreateRouteInput!) {
379
379
  createRoute(input: $input) {
380
380
  id name status driverId vehicleId shipmentId waypoints
@@ -415,13 +415,13 @@
415
415
  id name type description isActive isVerified rating createdAt
416
416
  }
417
417
  }
418
- `,qe=`
418
+ `,Ue=`
419
419
  mutation MovethewheelsCreateServiceProvider($input: CreateServiceProviderInput!) {
420
420
  createServiceProvider(input: $input) {
421
421
  id name type description isActive isVerified rating createdAt
422
422
  }
423
423
  }
424
- `,Ue=`
424
+ `,qe=`
425
425
  mutation MovethewheelsUpdateServiceProvider($id: ID!, $input: UpdateServiceProviderInput!) {
426
426
  updateServiceProvider(id: $id, input: $input) {
427
427
  id name type description isActive isVerified rating updatedAt
@@ -556,10 +556,4 @@
556
556
  totalDrivers availableDrivers onDeliveryDrivers
557
557
  }
558
558
  }
559
- `,at=`
560
- query MovethewheelsAssistantInsights($question: String!) {
561
- assistantInsights(question: $question) {
562
- question answer generatedAt
563
- }
564
- }
565
- `;function l(c,r){try{return JSON.parse(r)}catch{throw new m(`--${c} must be valid JSON`)}}function u(c){let r=Number.parseInt(c,10);if(Number.isNaN(r))throw new m(`Expected an integer but got "${c}"`);return r}function f(c){let r=Number.parseFloat(c);if(Number.isNaN(r))throw new m(`Expected a number but got "${c}"`);return r}function h(c){let r={};return c.limit!==void 0&&(r.limit=c.limit),c.offset!==void 0&&(r.offset=c.offset),Object.keys(r).length?r:void 0}function st(c){let r=c.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type),n.query&&(e.search=n.query);let t=await o(k,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(i=>[g(i.id,12),i.name,i.type,i.email??"-",i.phone??"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(R,{id:n});if(!t.customer)throw new m(`Customer ${n} not found`);s(e,t.customer);}catch(t){a(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,type:n.type??"b2c"};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.company&&(e.company=n.company),n.taxId&&(e.taxId=n.taxId),n.businessLicense&&(e.businessLicense=n.businessLicense),n.rating!==void 0&&(e.rating=n.rating),n.address&&(e.address=l("address",n.address));let t=await o(S,{input:e});p(`Customer created: ${t.createCustomer.name}`),s(n,t.createCustomer);}catch(e){a(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=l("address",e.address)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(A,{id:n,input:t});p("Customer updated"),s(e,i.updateCustomer);}catch(t){a(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(N,{id:n});p(`Customer ${n} deleted`),s(e,{deleted:t.deleteCustomer});}catch(t){a(t);}});}function ct(c){let r=c.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.status&&(e.status=n.status.toUpperCase()),n.vehicle&&(e.vehicleId=n.vehicle),n.query&&(e.search=n.query);let t=await o($,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(i=>[g(i.id,12),`${i.firstName} ${i.lastName}`,i.employeeId,i.status,i.vehicleId?g(i.vehicleId,12):"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(x,{id:n});if(!t.driver)throw new m(`Driver ${n} not found`);s(e,t.driver);}catch(t){a(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={employeeId:n.employeeId,firstName:n.firstName,lastName:n.lastName,status:(n.status??"AVAILABLE").toUpperCase()};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.licenseNumber&&(e.licenseNumber=n.licenseNumber),n.licenseClass&&(e.licenseClass=n.licenseClass),n.licenseExpiry&&(e.licenseExpiry=n.licenseExpiry),n.vehicleId&&(e.vehicleId=n.vehicleId),n.userId&&(e.userId=n.userId),n.rating!==void 0&&(e.rating=n.rating),n.certifications&&(e.certifications=l("certifications",n.certifications)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(P,{input:e});p(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),s(n,t.createDriver);}catch(e){a(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=l("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(_,{id:n,input:t});p("Driver updated"),s(e,i.updateDriver);}catch(t){a(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(L,{id:n});p(`Driver ${n} deleted`),s(e,{deleted:t.deleteDriver});}catch(t){a(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(M,{id:n,status:e.status.toUpperCase()});p(`Driver status set to ${t.updateDriverStatus.status}`),s(e,t.updateDriverStatus);}catch(t){a(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(q,{id:n,vehicleId:e.vehicle});p(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),s(e,t.assignDriverVehicle);}catch(t){a(t);}});}function dt(c){let r=c.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(V,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(i=>[g(i.id,12),i.vehicleNumber,i.type,i.status,`${i.make??"-"} ${i.model??""}`.trim(),i.licensePlate??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(U,{id:n});if(!t.vehicle)throw new m(`Vehicle ${n} not found`);s(e,t.vehicle);}catch(t){a(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={vehicleNumber:n.number,type:n.type.toUpperCase(),status:(n.status??"ACTIVE").toUpperCase()};n.make&&(e.make=n.make),n.model&&(e.model=n.model),n.year!==void 0&&(e.year=n.year),n.licensePlate&&(e.licensePlate=n.licensePlate),n.fuelLevel!==void 0&&(e.fuelLevel=n.fuelLevel),n.mileage!==void 0&&(e.mileage=n.mileage),n.ownershipType&&(e.ownershipType=n.ownershipType),n.capacity&&(e.capacity=l("capacity",n.capacity)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(F,{input:e});p(`Vehicle created: ${t.createVehicle.vehicleNumber}`),s(n,t.createVehicle);}catch(e){a(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=l("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(W,{id:n,input:t});p("Vehicle updated"),s(e,i.updateVehicle);}catch(t){a(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(j,{id:n});p(`Vehicle ${n} deleted`),s(e,{deleted:t.deleteVehicle});}catch(t){a(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(G,{id:n,status:e.status.toUpperCase()});p(`Vehicle status set to ${t.updateVehicleStatus.status}`),s(e,t.updateVehicleStatus);}catch(t){a(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=l("location",e.location),i=await o(H,{id:n,location:t});p("Vehicle location updated"),s(e,i.updateVehicleLocation);}catch(t){a(t);}});}function ut(c){let r=c.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.category&&(e.category=n.category),n.sku&&(e.sku=n.sku),n.query&&(e.search=n.query);let t=await o(z,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(i=>[g(i.id,12),i.sku,i.name,i.category??"-",i.brand??"-",i.weight!=null?String(i.weight):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(J,{id:n});if(!t.product)throw new m(`Product ${n} not found`);s(e,t.product);}catch(t){a(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,sku:n.sku};n.description&&(e.description=n.description),n.category&&(e.category=n.category),n.brand&&(e.brand=n.brand),n.weight!==void 0&&(e.weight=n.weight),n.value!==void 0&&(e.value=n.value),n.dimensions&&(e.dimensions=l("dimensions",n.dimensions)),n.fragile&&(e.fragile=!0),n.hazardous&&(e.hazardous=!0),n.temperatureControlled&&(e.temperatureControlled=!0);let t=await o(Y,{input:e});p(`Product created: ${t.createProduct.name}`),s(n,t.createProduct);}catch(e){a(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",n=>n==="true").option("--hazardous <bool>","true|false",n=>n==="true").option("--temperature-controlled <bool>","true|false",n=>n==="true").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=l("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new m("No updates specified");let i=await o(B,{id:n,input:t});p("Product updated"),s(e,i.updateProduct);}catch(t){a(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(K,{id:n});p(`Product ${n} deleted`),s(e,{deleted:t.deleteProduct});}catch(t){a(t);}});}function pt(c){let r=c.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status),n.query&&(e.search=n.query);let t=await o(X,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(i=>[g(i.id,12),i.code,i.name,i.type,i.status,`${i.usedCapacity??0}/${i.totalCapacity??0}`])});}catch(e){a(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Q,{id:n});if(!t.warehouse)throw new m(`Warehouse ${n} not found`);s(e,t.warehouse);}catch(t){a(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={code:n.code,name:n.name,type:n.type.toUpperCase(),address:l("address",n.address),status:n.status??"ACTIVE"};n.contactInfo&&(e.contactInfo=l("contact-info",n.contactInfo)),n.operatingHours&&(e.operatingHours=l("operating-hours",n.operatingHours)),n.capabilities&&(e.capabilities=l("capabilities",n.capabilities)),n.totalCapacity!==void 0&&(e.totalCapacity=n.totalCapacity),n.usedCapacity!==void 0&&(e.usedCapacity=n.usedCapacity);let t=await o(Z,{input:e});p(`Warehouse created: ${t.createWarehouse.name}`),s(n,t.createWarehouse);}catch(e){a(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=l("address",e.address)),e.contactInfo&&(t.contactInfo=l("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=l("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=l("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ee,{id:n,input:t});p("Warehouse updated"),s(e,i.updateWarehouse);}catch(t){a(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(te,{id:n});p(`Warehouse ${n} deleted`),s(e,{deleted:t.deleteWarehouse});}catch(t){a(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={warehouseId:n.warehouse,locationCode:n.code,status:n.status??"ACTIVE"};n.locationType&&(e.locationType=n.locationType),n.zone&&(e.zone=n.zone),n.aisle&&(e.aisle=n.aisle),n.rack&&(e.rack=n.rack),n.shelf&&(e.shelf=n.shelf),n.bin&&(e.bin=n.bin),n.capacity!==void 0&&(e.capacity=n.capacity);let t=await o(ne,{input:e});p(`Location created: ${t.createWarehouseLocation.locationCode}`),s(n,t.createWarehouseLocation);}catch(e){a(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ie,{id:n,input:t});p("Location updated"),s(e,i.updateWarehouseLocation);}catch(t){a(t);}});}function lt(c){let r={};return c.product&&(r.productId=c.product),c.warehouse&&(r.warehouseId=c.warehouse),c.location&&(r.locationId=c.location),c.query&&(r.search=c.query),Object.keys(r).length?r:void 0}function mt(c){let r=c.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(oe,{filter:lt(n),pagination:h(n)});s(n,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[g(t.id,12),g(t.productId,12),g(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){a(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(re,{id:n});if(!t.inventoryItem)throw new m(`Inventory item ${n} not found`);s(e,t.inventoryItem);}catch(t){a(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(se);s(n,e.inventoryStats);}catch(e){a(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={productId:n.product,warehouseId:n.warehouse};n.location&&(e.locationId=n.location),n.onHand!==void 0&&(e.onHand=n.onHand),n.available!==void 0&&(e.available=n.available),n.allocated!==void 0&&(e.allocated=n.allocated),n.damaged!==void 0&&(e.damaged=n.damaged),n.reorderPoint!==void 0&&(e.reorderPoint=n.reorderPoint),n.safetyStock!==void 0&&(e.safetyStock=n.safetyStock),n.unitCost!==void 0&&(e.unitCost=n.unitCost);let t=await o(ce,{input:e});p("Inventory item created"),s(n,t.createInventoryItem);}catch(e){a(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o(de,{id:n,input:t});p("Inventory item updated"),s(e,i.updateInventoryItem);}catch(t){a(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ue,{id:n});p(`Inventory item ${n} deleted`),s(e,{deleted:t.deleteInventoryItem});}catch(t){a(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={id:n};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new m("No stock adjustments specified");let i=await o(pe,{input:t});p("Inventory stock adjusted"),s(e,i.adjustInventoryStock);}catch(t){a(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ae,{filter:lt(n),pagination:h(n)});s(n,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[g(t.id,12),t.transactionNumber,t.type,g(t.productId,12),g(t.warehouseId,12),String(t.quantity)])});}catch(e){a(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",u).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",f).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async n=>{try{let e={transactionNumber:n.number,type:n.type.toUpperCase(),productId:n.product,warehouseId:n.warehouse,quantity:n.quantity};n.inventoryItem&&(e.inventoryItemId=n.inventoryItem),n.unitCost!==void 0&&(e.unitCost=n.unitCost),n.referenceType&&(e.referenceType=n.referenceType),n.referenceId&&(e.referenceId=n.referenceId),n.notes&&(e.notes=n.notes);let t=await o(le,{input:e});p(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),s(n,t.createInventoryTransaction);}catch(e){a(e);}});}function ft(c){let r=c.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.customer&&(e.customerId=n.customer),n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.status&&(e.status=n.status.toUpperCase()),n.orderType&&(e.orderType=n.orderType.toUpperCase()),n.priority&&(e.priority=n.priority.toUpperCase()),n.query&&(e.search=n.query);let t=await o(fe,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(i=>[g(i.id,12),i.orderNumber,i.orderType,i.status,i.priority,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(me,{id:n});if(!t.movethewheelsOrder)throw new m(`Order ${n} not found`);s(e,t.movethewheelsOrder);}catch(t){a(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={customerId:n.customer,orderNumber:n.orderNumber,pickupAddress:l("pickup-address",n.pickupAddress),deliveryAddress:l("delivery-address",n.deliveryAddress),items:l("items",n.items),orderType:(n.orderType??"B2C").toUpperCase(),priority:(n.priority??"MEDIUM").toUpperCase(),status:(n.status??"PENDING").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.scheduledDelivery&&(e.scheduledDelivery=n.scheduledDelivery),n.specialInstructions&&(e.specialInstructions=n.specialInstructions),n.pricing&&(e.pricing=l("pricing",n.pricing));let t=await o(ge,{input:e});p(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),s(n,t.createMovethewheelsOrder);}catch(e){a(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=l("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=l("pickup-address",e.pickupAddress)),e.items&&(t.items=l("items",e.items)),e.pricing&&(t.pricing=l("pricing",e.pricing)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(he,{id:n,input:t});p("Order updated"),s(e,i.updateMovethewheelsOrder);}catch(t){a(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ye,{id:n});p(`Order ${n} deleted`),s(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){a(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=l("location",e.location));let i=await o(ve,{id:n,input:t});p(`Order status set to ${i.updateMovethewheelsOrderStatus.status}`),s(e,i.updateMovethewheelsOrderStatus);}catch(t){a(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ie);s(n,e.orderStats);}catch(e){a(e);}});}function gt(c){let r=c.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.order&&(e.orderId=n.order),n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(Ee,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(i=>[g(i.id,12),i.shipmentNumber,g(i.orderId,12),i.status,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(we,{id:n});if(!t.shipment)throw new m(`Shipment ${n} not found`);s(e,t.shipment);}catch(t){a(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ce,{pagination:h(n)});s(n,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[g(t.id,12),t.shipmentNumber,g(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentNumber:n.shipmentNumber,orderId:n.order,origin:l("origin",n.origin),destination:l("destination",n.destination),status:(n.status??"PLANNED").toUpperCase()};n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.cargoDetails&&(e.cargoDetails=l("cargo-details",n.cargoDetails)),n.estimatedDelivery&&(e.estimatedDelivery=n.estimatedDelivery),n.actualDelivery&&(e.actualDelivery=n.actualDelivery);let t=await o(De,{input:e});p(`Shipment created: ${t.createShipment.shipmentNumber}`),s(n,t.createShipment);}catch(e){a(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=l("origin",e.origin)),e.destination&&(t.destination=l("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=l("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new m("No updates specified");let i=await o(Re,{id:n,input:t});p("Shipment updated"),s(e,i.updateShipment);}catch(t){a(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ke,{id:n});p(`Shipment ${n} deleted`),s(e,{deleted:t.deleteShipment});}catch(t){a(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentId:n.shipment,eventType:n.eventType.toUpperCase()};n.details&&(e.details=n.details),n.location&&(e.location=l("location",n.location)),n.timestamp&&(e.timestamp=n.timestamp);let t=await o(Se,{input:e});p(`Tracking event added: ${t.addTrackingEvent.eventType}`),s(n,t.addTrackingEvent);}catch(e){a(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(be,{shipmentId:n,pagination:h(e)});s(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Te,{orderId:n,pagination:h(e)});s(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Oe,{pagination:h(n)});s(n,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,g(t.message,40)])});}catch(e){a(e);}});}function ht(c){let r=c.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(Ne,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(i=>[g(i.id,12),i.name,i.status,i.driverId?g(i.driverId,12):"-",i.vehicleId?g(i.vehicleId,12):"-",i.estimatedDistance!=null?String(i.estimatedDistance):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Ae,{id:n});if(!t.route)throw new m(`Route ${n} not found`);s(e,t.route);}catch(t){a(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,waypoints:l("waypoints",n.waypoints),status:(n.status??"PLANNED").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.estimatedDistance!==void 0&&(e.estimatedDistance=n.estimatedDistance),n.estimatedDuration!==void 0&&(e.estimatedDuration=n.estimatedDuration),n.actualDistance!==void 0&&(e.actualDistance=n.actualDistance),n.actualDuration!==void 0&&(e.actualDuration=n.actualDuration),n.fuelCost!==void 0&&(e.fuelCost=n.fuelCost);let t=await o(xe,{input:e});p(`Route created: ${t.createRoute.name}`),s(n,t.createRoute);}catch(e){a(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=l("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o($e,{id:n,input:t});p("Route updated"),s(e,i.updateRoute);}catch(t){a(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Pe,{id:n});p(`Route ${n} deleted`),s(e,{deleted:t.deleteRoute});}catch(t){a(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(_e,{id:n});p("Route optimized"),s(e,t.optimizeRoute);}catch(t){a(t);}});}function yt(c){let r=c.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),n=r.command("providers").description("Service providers");n.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.type&&(i.type=t.type),t.active!==void 0&&(i.isActive=t.active),t.query&&(i.search=t.query);let d=await o(Me,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(v=>[g(v.id,12),v.name,v.type,v.isActive?"yes":"no",v.isVerified?"yes":"no",v.rating!=null?String(v.rating):"-"])});}catch(i){a(i);}}),n.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Le,{id:t});if(!d.serviceProvider)throw new m(`Provider ${t} not found`);s(i,d.serviceProvider);}catch(d){a(d);}}),n.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(i.description=t.description),t.rating!==void 0&&(i.rating=t.rating),t.contactInfo&&(i.contactInfo=l("contact-info",t.contactInfo)),t.services&&(i.services=l("services",t.services));let d=await o(qe,{input:i});p(`Provider created: ${d.createServiceProvider.name}`),s(t,d.createServiceProvider);}catch(i){a(i);}}),n.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.type&&(d.type=i.type),i.description!==void 0&&(d.description=i.description),i.rating!==void 0&&(d.rating=i.rating),i.active!==void 0&&(d.isActive=i.active),i.verified!==void 0&&(d.isVerified=i.verified),i.contactInfo&&(d.contactInfo=l("contact-info",i.contactInfo)),i.services&&(d.services=l("services",i.services)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(Ue,{id:t,input:d});p("Provider updated"),s(i,v.updateServiceProvider);}catch(d){a(d);}}),n.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Ve,{id:t});p(`Provider ${t} deleted`),s(i,{deleted:d.deleteServiceProvider});}catch(d){a(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.provider&&(i.providerId=t.provider),t.category&&(i.category=t.category),t.query&&(i.search=t.query);let d=await o(We,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(v=>[g(v.id,12),v.name,g(v.providerId,12),v.category??"-",String(v.price),v.currency])});}catch(i){a(i);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Fe,{id:t});if(!d.serviceOffering)throw new m(`Offering ${t} not found`);s(i,d.serviceOffering);}catch(d){a(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",f).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(i.description=t.description),t.category&&(i.category=t.category),t.availability&&(i.availability=l("availability",t.availability));let d=await o(je,{input:i});p(`Offering created: ${d.createServiceOffering.name}`),s(t,d.createServiceOffering);}catch(i){a(i);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",f).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.description!==void 0&&(d.description=i.description),i.category!==void 0&&(d.category=i.category),i.price!==void 0&&(d.price=i.price),i.currency&&(d.currency=i.currency),i.availability&&(d.availability=l("availability",i.availability)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(Ge,{id:t,input:d});p("Offering updated"),s(i,v.updateServiceOffering);}catch(d){a(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(He,{id:t});p(`Offering ${t} deleted`),s(i,{deleted:d.deleteServiceOffering});}catch(d){a(d);}});}function vt(c){let r=c.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let i=await o(ze,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});s(e,i.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:i.movethewheelsReports.map(d=>[g(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){a(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Je,{id:e});if(!i.movethewheelsReport)throw new m(`Report ${e} not found`);s(t,i.movethewheelsReport);}catch(i){a(i);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=l("configuration",e.configuration));let i=await o(Ye,{input:t});p(`Report created: ${i.createMovethewheelsReport.name}`),s(e,i.createMovethewheelsReport);}catch(t){a(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={};if(t.name&&(i.name=t.name),t.type&&(i.type=t.type),t.description!==void 0&&(i.description=t.description),t.status&&(i.status=t.status),t.schedule!==void 0&&(i.schedule=t.schedule),t.configuration&&(i.configuration=l("configuration",t.configuration)),!Object.keys(i).length)throw new m("No updates specified");let d=await o(Be,{id:e,input:i});p("Report updated"),s(t,d.updateMovethewheelsReport);}catch(i){a(i);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Ke,{id:e});p(`Report ${e} deleted`),s(t,{deleted:i.deleteMovethewheelsReport});}catch(i){a(i);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={reportId:e};t.parameters&&(i.parameters=l("parameters",t.parameters));let d=await o(Qe,{input:i});p("Report generated"),s(t,d.generateMovethewheelsReport);}catch(i){a(i);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},i=await o(Xe,{input:t});p("Data exported"),s(e,i.exportData);}catch(t){a(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:l("payload",e.payload)},i=await o(Ze,{input:t});p("Data imported"),s(e,i.importData);}catch(t){a(t);}});let n=c.command("settings").description("Movethewheels module settings");n.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await o(et);s(e,t.moduleSettings);}catch(t){a(t);}}),n.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:l("preferences",e.preferences)},i=await o(tt,{input:t});p("Module settings updated"),s(e,i.updateModuleSettings);}catch(t){a(t);}});}function It(c){let r=c.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(it);s(n,e.dashboardMetrics);}catch(e){a(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(nt);s(n,e.analytics);}catch(e){a(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(rt);s(n,e.financeMetrics);}catch(e){a(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ot);s(n,e.fleetStats);}catch(e){a(e);}}),r.command("insights").description("AI assistant insights for a question").argument("<question>","Question to ask the assistant").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(at,{question:n});s(e,t.assistantInsights);}catch(t){a(t);}});}var xt={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(c,r){D(r);let n=c.command("movethewheels").description("Movethewheels logistics & fleet operations");st(n),ct(n),dt(n),ut(n),pt(n),mt(n),ft(n),gt(n),ht(n),yt(n),vt(n),It(n);}},Ui=xt;module.exports=Ui;
559
+ `;function l(c,r){try{return JSON.parse(r)}catch{throw new m(`--${c} must be valid JSON`)}}function u(c){let r=Number.parseInt(c,10);if(Number.isNaN(r))throw new m(`Expected an integer but got "${c}"`);return r}function f(c){let r=Number.parseFloat(c);if(Number.isNaN(r))throw new m(`Expected a number but got "${c}"`);return r}function h(c){let r={};return c.limit!==void 0&&(r.limit=c.limit),c.offset!==void 0&&(r.offset=c.offset),Object.keys(r).length?r:void 0}function at(c){let r=c.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type),n.query&&(e.search=n.query);let t=await o(k,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(i=>[g(i.id,12),i.name,i.type,i.email??"-",i.phone??"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(R,{id:n});if(!t.customer)throw new m(`Customer ${n} not found`);s(e,t.customer);}catch(t){a(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,type:n.type??"b2c"};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.company&&(e.company=n.company),n.taxId&&(e.taxId=n.taxId),n.businessLicense&&(e.businessLicense=n.businessLicense),n.rating!==void 0&&(e.rating=n.rating),n.address&&(e.address=l("address",n.address));let t=await o(S,{input:e});p(`Customer created: ${t.createCustomer.name}`),s(n,t.createCustomer);}catch(e){a(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",f).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=l("address",e.address)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(A,{id:n,input:t});p("Customer updated"),s(e,i.updateCustomer);}catch(t){a(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(x,{id:n});p(`Customer ${n} deleted`),s(e,{deleted:t.deleteCustomer});}catch(t){a(t);}});}function st(c){let r=c.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.status&&(e.status=n.status.toUpperCase()),n.vehicle&&(e.vehicleId=n.vehicle),n.query&&(e.search=n.query);let t=await o($,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(i=>[g(i.id,12),`${i.firstName} ${i.lastName}`,i.employeeId,i.status,i.vehicleId?g(i.vehicleId,12):"-",i.rating!=null?String(i.rating):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(N,{id:n});if(!t.driver)throw new m(`Driver ${n} not found`);s(e,t.driver);}catch(t){a(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={employeeId:n.employeeId,firstName:n.firstName,lastName:n.lastName,status:(n.status??"AVAILABLE").toUpperCase()};n.email&&(e.email=n.email),n.phone&&(e.phone=n.phone),n.licenseNumber&&(e.licenseNumber=n.licenseNumber),n.licenseClass&&(e.licenseClass=n.licenseClass),n.licenseExpiry&&(e.licenseExpiry=n.licenseExpiry),n.vehicleId&&(e.vehicleId=n.vehicleId),n.userId&&(e.userId=n.userId),n.rating!==void 0&&(e.rating=n.rating),n.certifications&&(e.certifications=l("certifications",n.certifications)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(P,{input:e});p(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),s(n,t.createDriver);}catch(e){a(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",f).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=l("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(_,{id:n,input:t});p("Driver updated"),s(e,i.updateDriver);}catch(t){a(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(L,{id:n});p(`Driver ${n} deleted`),s(e,{deleted:t.deleteDriver});}catch(t){a(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(M,{id:n,status:e.status.toUpperCase()});p(`Driver status set to ${t.updateDriverStatus.status}`),s(e,t.updateDriverStatus);}catch(t){a(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(U,{id:n,vehicleId:e.vehicle});p(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),s(e,t.assignDriverVehicle);}catch(t){a(t);}});}function ct(c){let r=c.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(V,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(i=>[g(i.id,12),i.vehicleNumber,i.type,i.status,`${i.make??"-"} ${i.model??""}`.trim(),i.licensePlate??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(q,{id:n});if(!t.vehicle)throw new m(`Vehicle ${n} not found`);s(e,t.vehicle);}catch(t){a(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={vehicleNumber:n.number,type:n.type.toUpperCase(),status:(n.status??"ACTIVE").toUpperCase()};n.make&&(e.make=n.make),n.model&&(e.model=n.model),n.year!==void 0&&(e.year=n.year),n.licensePlate&&(e.licensePlate=n.licensePlate),n.fuelLevel!==void 0&&(e.fuelLevel=n.fuelLevel),n.mileage!==void 0&&(e.mileage=n.mileage),n.ownershipType&&(e.ownershipType=n.ownershipType),n.capacity&&(e.capacity=l("capacity",n.capacity)),n.currentLocation&&(e.currentLocation=l("current-location",n.currentLocation));let t=await o(F,{input:e});p(`Vehicle created: ${t.createVehicle.vehicleNumber}`),s(n,t.createVehicle);}catch(e){a(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",u).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",f).option("--mileage <n>","Mileage",f).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=l("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=l("current-location",e.currentLocation)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(W,{id:n,input:t});p("Vehicle updated"),s(e,i.updateVehicle);}catch(t){a(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(j,{id:n});p(`Vehicle ${n} deleted`),s(e,{deleted:t.deleteVehicle});}catch(t){a(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(G,{id:n,status:e.status.toUpperCase()});p(`Vehicle status set to ${t.updateVehicleStatus.status}`),s(e,t.updateVehicleStatus);}catch(t){a(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=l("location",e.location),i=await o(H,{id:n,location:t});p("Vehicle location updated"),s(e,i.updateVehicleLocation);}catch(t){a(t);}});}function dt(c){let r=c.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.category&&(e.category=n.category),n.sku&&(e.sku=n.sku),n.query&&(e.search=n.query);let t=await o(z,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(i=>[g(i.id,12),i.sku,i.name,i.category??"-",i.brand??"-",i.weight!=null?String(i.weight):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(J,{id:n});if(!t.product)throw new m(`Product ${n} not found`);s(e,t.product);}catch(t){a(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,sku:n.sku};n.description&&(e.description=n.description),n.category&&(e.category=n.category),n.brand&&(e.brand=n.brand),n.weight!==void 0&&(e.weight=n.weight),n.value!==void 0&&(e.value=n.value),n.dimensions&&(e.dimensions=l("dimensions",n.dimensions)),n.fragile&&(e.fragile=!0),n.hazardous&&(e.hazardous=!0),n.temperatureControlled&&(e.temperatureControlled=!0);let t=await o(Y,{input:e});p(`Product created: ${t.createProduct.name}`),s(n,t.createProduct);}catch(e){a(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",f).option("--value <n>","Value",f).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",n=>n==="true").option("--hazardous <bool>","true|false",n=>n==="true").option("--temperature-controlled <bool>","true|false",n=>n==="true").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=l("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new m("No updates specified");let i=await o(B,{id:n,input:t});p("Product updated"),s(e,i.updateProduct);}catch(t){a(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(K,{id:n});p(`Product ${n} deleted`),s(e,{deleted:t.deleteProduct});}catch(t){a(t);}});}function ut(c){let r=c.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase()),n.status&&(e.status=n.status),n.query&&(e.search=n.query);let t=await o(X,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(i=>[g(i.id,12),i.code,i.name,i.type,i.status,`${i.usedCapacity??0}/${i.totalCapacity??0}`])});}catch(e){a(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Q,{id:n});if(!t.warehouse)throw new m(`Warehouse ${n} not found`);s(e,t.warehouse);}catch(t){a(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={code:n.code,name:n.name,type:n.type.toUpperCase(),address:l("address",n.address),status:n.status??"ACTIVE"};n.contactInfo&&(e.contactInfo=l("contact-info",n.contactInfo)),n.operatingHours&&(e.operatingHours=l("operating-hours",n.operatingHours)),n.capabilities&&(e.capabilities=l("capabilities",n.capabilities)),n.totalCapacity!==void 0&&(e.totalCapacity=n.totalCapacity),n.usedCapacity!==void 0&&(e.usedCapacity=n.usedCapacity);let t=await o(Z,{input:e});p(`Warehouse created: ${t.createWarehouse.name}`),s(n,t.createWarehouse);}catch(e){a(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",f).option("--used-capacity <n>","Used capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=l("address",e.address)),e.contactInfo&&(t.contactInfo=l("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=l("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=l("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ee,{id:n,input:t});p("Warehouse updated"),s(e,i.updateWarehouse);}catch(t){a(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(te,{id:n});p(`Warehouse ${n} deleted`),s(e,{deleted:t.deleteWarehouse});}catch(t){a(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={warehouseId:n.warehouse,locationCode:n.code,status:n.status??"ACTIVE"};n.locationType&&(e.locationType=n.locationType),n.zone&&(e.zone=n.zone),n.aisle&&(e.aisle=n.aisle),n.rack&&(e.rack=n.rack),n.shelf&&(e.shelf=n.shelf),n.bin&&(e.bin=n.bin),n.capacity!==void 0&&(e.capacity=n.capacity);let t=await o(ne,{input:e});p(`Location created: ${t.createWarehouseLocation.locationCode}`),s(n,t.createWarehouseLocation);}catch(e){a(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new m("No updates specified");let i=await o(ie,{id:n,input:t});p("Location updated"),s(e,i.updateWarehouseLocation);}catch(t){a(t);}});}function pt(c){let r={};return c.product&&(r.productId=c.product),c.warehouse&&(r.warehouseId=c.warehouse),c.location&&(r.locationId=c.location),c.query&&(r.search=c.query),Object.keys(r).length?r:void 0}function lt(c){let r=c.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(oe,{filter:pt(n),pagination:h(n)});s(n,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[g(t.id,12),g(t.productId,12),g(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){a(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(re,{id:n});if(!t.inventoryItem)throw new m(`Inventory item ${n} not found`);s(e,t.inventoryItem);}catch(t){a(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(se);s(n,e.inventoryStats);}catch(e){a(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={productId:n.product,warehouseId:n.warehouse};n.location&&(e.locationId=n.location),n.onHand!==void 0&&(e.onHand=n.onHand),n.available!==void 0&&(e.available=n.available),n.allocated!==void 0&&(e.allocated=n.allocated),n.damaged!==void 0&&(e.damaged=n.damaged),n.reorderPoint!==void 0&&(e.reorderPoint=n.reorderPoint),n.safetyStock!==void 0&&(e.safetyStock=n.safetyStock),n.unitCost!==void 0&&(e.unitCost=n.unitCost);let t=await o(ce,{input:e});p("Inventory item created"),s(n,t.createInventoryItem);}catch(e){a(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("--reorder-point <n>","Reorder point",u).option("--safety-stock <n>","Safety stock",u).option("--unit-cost <n>","Unit cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o(de,{id:n,input:t});p("Inventory item updated"),s(e,i.updateInventoryItem);}catch(t){a(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ue,{id:n});p(`Inventory item ${n} deleted`),s(e,{deleted:t.deleteInventoryItem});}catch(t){a(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",u).option("--available <n>","Available quantity",u).option("--allocated <n>","Allocated quantity",u).option("--damaged <n>","Damaged quantity",u).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={id:n};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new m("No stock adjustments specified");let i=await o(pe,{input:t});p("Inventory stock adjusted"),s(e,i.adjustInventoryStock);}catch(t){a(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ae,{filter:pt(n),pagination:h(n)});s(n,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[g(t.id,12),t.transactionNumber,t.type,g(t.productId,12),g(t.warehouseId,12),String(t.quantity)])});}catch(e){a(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",u).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",f).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async n=>{try{let e={transactionNumber:n.number,type:n.type.toUpperCase(),productId:n.product,warehouseId:n.warehouse,quantity:n.quantity};n.inventoryItem&&(e.inventoryItemId=n.inventoryItem),n.unitCost!==void 0&&(e.unitCost=n.unitCost),n.referenceType&&(e.referenceType=n.referenceType),n.referenceId&&(e.referenceId=n.referenceId),n.notes&&(e.notes=n.notes);let t=await o(le,{input:e});p(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),s(n,t.createInventoryTransaction);}catch(e){a(e);}});}function mt(c){let r=c.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.customer&&(e.customerId=n.customer),n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.status&&(e.status=n.status.toUpperCase()),n.orderType&&(e.orderType=n.orderType.toUpperCase()),n.priority&&(e.priority=n.priority.toUpperCase()),n.query&&(e.search=n.query);let t=await o(fe,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(i=>[g(i.id,12),i.orderNumber,i.orderType,i.status,i.priority,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(me,{id:n});if(!t.movethewheelsOrder)throw new m(`Order ${n} not found`);s(e,t.movethewheelsOrder);}catch(t){a(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async n=>{try{let e={customerId:n.customer,orderNumber:n.orderNumber,pickupAddress:l("pickup-address",n.pickupAddress),deliveryAddress:l("delivery-address",n.deliveryAddress),items:l("items",n.items),orderType:(n.orderType??"B2C").toUpperCase(),priority:(n.priority??"MEDIUM").toUpperCase(),status:(n.status??"PENDING").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.scheduledDelivery&&(e.scheduledDelivery=n.scheduledDelivery),n.specialInstructions&&(e.specialInstructions=n.specialInstructions),n.pricing&&(e.pricing=l("pricing",n.pricing));let t=await o(ge,{input:e});p(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),s(n,t.createMovethewheelsOrder);}catch(e){a(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=l("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=l("pickup-address",e.pickupAddress)),e.items&&(t.items=l("items",e.items)),e.pricing&&(t.pricing=l("pricing",e.pricing)),!Object.keys(t).length)throw new m("No updates specified");let i=await o(he,{id:n,input:t});p("Order updated"),s(e,i.updateMovethewheelsOrder);}catch(t){a(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ye,{id:n});p(`Order ${n} deleted`),s(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){a(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=l("location",e.location));let i=await o(ve,{id:n,input:t});p(`Order status set to ${i.updateMovethewheelsOrderStatus.status}`),s(e,i.updateMovethewheelsOrderStatus);}catch(t){a(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ie);s(n,e.orderStats);}catch(e){a(e);}});}function ft(c){let r=c.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.order&&(e.orderId=n.order),n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(Ee,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(i=>[g(i.id,12),i.shipmentNumber,g(i.orderId,12),i.status,i.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(we,{id:n});if(!t.shipment)throw new m(`Shipment ${n} not found`);s(e,t.shipment);}catch(t){a(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Ce,{pagination:h(n)});s(n,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[g(t.id,12),t.shipmentNumber,g(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){a(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentNumber:n.shipmentNumber,orderId:n.order,origin:l("origin",n.origin),destination:l("destination",n.destination),status:(n.status??"PLANNED").toUpperCase()};n.customer&&(e.customerId=n.customer),n.carrier&&(e.carrierId=n.carrier),n.trackingNumber&&(e.trackingNumber=n.trackingNumber),n.cargoDetails&&(e.cargoDetails=l("cargo-details",n.cargoDetails)),n.estimatedDelivery&&(e.estimatedDelivery=n.estimatedDelivery),n.actualDelivery&&(e.actualDelivery=n.actualDelivery);let t=await o(De,{input:e});p(`Shipment created: ${t.createShipment.shipmentNumber}`),s(n,t.createShipment);}catch(e){a(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=l("origin",e.origin)),e.destination&&(t.destination=l("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=l("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new m("No updates specified");let i=await o(Re,{id:n,input:t});p("Shipment updated"),s(e,i.updateShipment);}catch(t){a(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(ke,{id:n});p(`Shipment ${n} deleted`),s(e,{deleted:t.deleteShipment});}catch(t){a(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async n=>{try{let e={shipmentId:n.shipment,eventType:n.eventType.toUpperCase()};n.details&&(e.details=n.details),n.location&&(e.location=l("location",n.location)),n.timestamp&&(e.timestamp=n.timestamp);let t=await o(Se,{input:e});p(`Tracking event added: ${t.addTrackingEvent.eventType}`),s(n,t.addTrackingEvent);}catch(e){a(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(be,{shipmentId:n,pagination:h(e)});s(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Oe,{orderId:n,pagination:h(e)});s(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(i=>[g(i.id,12),i.eventType,g(i.details??"-",30),i.timestamp])});}catch(t){a(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(Te,{pagination:h(n)});s(n,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,g(t.message,40)])});}catch(e){a(e);}});}function gt(c){let r=c.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async n=>{try{let e={};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.status&&(e.status=n.status.toUpperCase()),n.query&&(e.search=n.query);let t=await o(xe,{filter:Object.keys(e).length?e:void 0,pagination:h(n)});s(n,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(i=>[g(i.id,12),i.name,i.status,i.driverId?g(i.driverId,12):"-",i.vehicleId?g(i.vehicleId,12):"-",i.estimatedDistance!=null?String(i.estimatedDistance):"-"])});}catch(e){a(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Ae,{id:n});if(!t.route)throw new m(`Route ${n} not found`);s(e,t.route);}catch(t){a(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async n=>{try{let e={name:n.name,waypoints:l("waypoints",n.waypoints),status:(n.status??"PLANNED").toUpperCase()};n.driver&&(e.driverId=n.driver),n.vehicle&&(e.vehicleId=n.vehicle),n.shipment&&(e.shipmentId=n.shipment),n.estimatedDistance!==void 0&&(e.estimatedDistance=n.estimatedDistance),n.estimatedDuration!==void 0&&(e.estimatedDuration=n.estimatedDuration),n.actualDistance!==void 0&&(e.actualDistance=n.actualDistance),n.actualDuration!==void 0&&(e.actualDuration=n.actualDuration),n.fuelCost!==void 0&&(e.fuelCost=n.fuelCost);let t=await o(Ne,{input:e});p(`Route created: ${t.createRoute.name}`),s(n,t.createRoute);}catch(e){a(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",f).option("--estimated-duration <n>","Estimated duration",f).option("--actual-distance <n>","Actual distance",f).option("--actual-duration <n>","Actual duration",f).option("--fuel-cost <n>","Fuel cost",f).option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=l("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new m("No updates specified");let i=await o($e,{id:n,input:t});p("Route updated"),s(e,i.updateRoute);}catch(t){a(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(Pe,{id:n});p(`Route ${n} deleted`),s(e,{deleted:t.deleteRoute});}catch(t){a(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(n,e)=>{try{let t=await o(_e,{id:n});p("Route optimized"),s(e,t.optimizeRoute);}catch(t){a(t);}});}function ht(c){let r=c.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),n=r.command("providers").description("Service providers");n.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.type&&(i.type=t.type),t.active!==void 0&&(i.isActive=t.active),t.query&&(i.search=t.query);let d=await o(Me,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(v=>[g(v.id,12),v.name,v.type,v.isActive?"yes":"no",v.isVerified?"yes":"no",v.rating!=null?String(v.rating):"-"])});}catch(i){a(i);}}),n.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Le,{id:t});if(!d.serviceProvider)throw new m(`Provider ${t} not found`);s(i,d.serviceProvider);}catch(d){a(d);}}),n.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(i.description=t.description),t.rating!==void 0&&(i.rating=t.rating),t.contactInfo&&(i.contactInfo=l("contact-info",t.contactInfo)),t.services&&(i.services=l("services",t.services));let d=await o(Ue,{input:i});p(`Provider created: ${d.createServiceProvider.name}`),s(t,d.createServiceProvider);}catch(i){a(i);}}),n.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",f).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.type&&(d.type=i.type),i.description!==void 0&&(d.description=i.description),i.rating!==void 0&&(d.rating=i.rating),i.active!==void 0&&(d.isActive=i.active),i.verified!==void 0&&(d.isVerified=i.verified),i.contactInfo&&(d.contactInfo=l("contact-info",i.contactInfo)),i.services&&(d.services=l("services",i.services)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(qe,{id:t,input:d});p("Provider updated"),s(i,v.updateServiceProvider);}catch(d){a(d);}}),n.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Ve,{id:t});p(`Provider ${t} deleted`),s(i,{deleted:d.deleteServiceProvider});}catch(d){a(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let i={};t.provider&&(i.providerId=t.provider),t.category&&(i.category=t.category),t.query&&(i.search=t.query);let d=await o(We,{filter:Object.keys(i).length?i:void 0,pagination:h(t)});s(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(v=>[g(v.id,12),v.name,g(v.providerId,12),v.category??"-",String(v.price),v.currency])});}catch(i){a(i);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(Fe,{id:t});if(!d.serviceOffering)throw new m(`Offering ${t} not found`);s(i,d.serviceOffering);}catch(d){a(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",f).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(i.description=t.description),t.category&&(i.category=t.category),t.availability&&(i.availability=l("availability",t.availability));let d=await o(je,{input:i});p(`Offering created: ${d.createServiceOffering.name}`),s(t,d.createServiceOffering);}catch(i){a(i);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",f).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d={};if(i.name&&(d.name=i.name),i.description!==void 0&&(d.description=i.description),i.category!==void 0&&(d.category=i.category),i.price!==void 0&&(d.price=i.price),i.currency&&(d.currency=i.currency),i.availability&&(d.availability=l("availability",i.availability)),!Object.keys(d).length)throw new m("No updates specified");let v=await o(Ge,{id:t,input:d});p("Offering updated"),s(i,v.updateServiceOffering);}catch(d){a(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,i)=>{try{let d=await o(He,{id:t});p(`Offering ${t} deleted`),s(i,{deleted:d.deleteServiceOffering});}catch(d){a(d);}});}function yt(c){let r=c.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let i=await o(ze,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});s(e,i.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:i.movethewheelsReports.map(d=>[g(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){a(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Je,{id:e});if(!i.movethewheelsReport)throw new m(`Report ${e} not found`);s(t,i.movethewheelsReport);}catch(i){a(i);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=l("configuration",e.configuration));let i=await o(Ye,{input:t});p(`Report created: ${i.createMovethewheelsReport.name}`),s(e,i.createMovethewheelsReport);}catch(t){a(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={};if(t.name&&(i.name=t.name),t.type&&(i.type=t.type),t.description!==void 0&&(i.description=t.description),t.status&&(i.status=t.status),t.schedule!==void 0&&(i.schedule=t.schedule),t.configuration&&(i.configuration=l("configuration",t.configuration)),!Object.keys(i).length)throw new m("No updates specified");let d=await o(Be,{id:e,input:i});p("Report updated"),s(t,d.updateMovethewheelsReport);}catch(i){a(i);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i=await o(Ke,{id:e});p(`Report ${e} deleted`),s(t,{deleted:i.deleteMovethewheelsReport});}catch(i){a(i);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let i={reportId:e};t.parameters&&(i.parameters=l("parameters",t.parameters));let d=await o(Qe,{input:i});p("Report generated"),s(t,d.generateMovethewheelsReport);}catch(i){a(i);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},i=await o(Xe,{input:t});p("Data exported"),s(e,i.exportData);}catch(t){a(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:l("payload",e.payload)},i=await o(Ze,{input:t});p("Data imported"),s(e,i.importData);}catch(t){a(t);}});let n=c.command("settings").description("Movethewheels module settings");n.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await o(et);s(e,t.moduleSettings);}catch(t){a(t);}}),n.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:l("preferences",e.preferences)},i=await o(tt,{input:t});p("Module settings updated"),s(e,i.updateModuleSettings);}catch(t){a(t);}});}function vt(c){let r=c.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(it);s(n,e.dashboardMetrics);}catch(e){a(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(nt);s(n,e.analytics);}catch(e){a(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(rt);s(n,e.financeMetrics);}catch(e){a(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async n=>{try{let e=await o(ot);s(n,e.fleetStats);}catch(e){a(e);}});}var xt={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(c,r){D(r);let n=c.command("movethewheels").description("Movethewheels logistics & fleet operations");at(n),st(n),ct(n),dt(n),ut(n),lt(n),mt(n),ft(n),gt(n),ht(n),yt(n),vt(n);}},Ui=xt;module.exports=Ui;
@@ -102,13 +102,13 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
102
102
  mutation MovethewheelsDeleteVehicle($id: ID!) {
103
103
  deleteVehicle(id: $id)
104
104
  }
105
- `,q=`
105
+ `,x=`
106
106
  mutation MovethewheelsUpdateVehicleStatus($id: ID!, $status: VehicleStatus!) {
107
107
  updateVehicleStatus(id: $id, status: $status) {
108
108
  id vehicleNumber status updatedAt
109
109
  }
110
110
  }
111
- `,x=`
111
+ `,q=`
112
112
  mutation MovethewheelsUpdateVehicleLocation($id: ID!, $location: JSON!) {
113
113
  updateVehicleLocation(id: $id, location: $location) {
114
114
  id vehicleNumber currentLocation updatedAt
@@ -127,14 +127,14 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
127
127
  id sku name category brand weight value fragile hazardous createdAt
128
128
  }
129
129
  }
130
- `,G=`
130
+ `,W=`
131
131
  mutation MovethewheelsCreateProduct($input: CreateProductInput!) {
132
132
  createProduct(input: $input) {
133
133
  id sku name description category brand weight value fragile hazardous
134
134
  temperatureControlled createdAt
135
135
  }
136
136
  }
137
- `,W=`
137
+ `,G=`
138
138
  mutation MovethewheelsUpdateProduct($id: ID!, $input: UpdateProductInput!) {
139
139
  updateProduct(id: $id, input: $input) {
140
140
  id sku name description category brand weight value fragile hazardous
@@ -453,13 +453,13 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
453
453
  id providerId name description category price currency availability createdAt
454
454
  }
455
455
  }
456
- `,qe=`
456
+ `,xe=`
457
457
  mutation MovethewheelsUpdateServiceOffering($id: ID!, $input: UpdateServiceOfferingInput!) {
458
458
  updateServiceOffering(id: $id, input: $input) {
459
459
  id providerId name description category price currency availability updatedAt
460
460
  }
461
461
  }
462
- `,xe=`
462
+ `,qe=`
463
463
  mutation MovethewheelsDeleteServiceOffering($id: ID!) {
464
464
  deleteServiceOffering(id: $id)
465
465
  }
@@ -479,13 +479,13 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
479
479
  id name type status schedule lastGenerated createdAt
480
480
  }
481
481
  }
482
- `,Ge=`
482
+ `,We=`
483
483
  mutation MovethewheelsCreateReport($input: CreateMovethewheelsReportInput!) {
484
484
  createMovethewheelsReport(input: $input) {
485
485
  id name description type status schedule configuration createdAt
486
486
  }
487
487
  }
488
- `,We=`
488
+ `,Ge=`
489
489
  mutation MovethewheelsUpdateReport($id: ID!, $input: UpdateMovethewheelsReportInput!) {
490
490
  updateMovethewheelsReport(id: $id, input: $input) {
491
491
  id name description type status schedule configuration updatedAt
@@ -556,10 +556,4 @@ import {a,b as b$1,h as h$1,p,g,i}from'../../chunk-WXDQ3S5J.js';import {o}from'.
556
556
  totalDrivers availableDrivers onDeliveryDrivers
557
557
  }
558
558
  }
559
- `,tt=`
560
- query MovethewheelsAssistantInsights($question: String!) {
561
- assistantInsights(question: $question) {
562
- question answer generatedAt
563
- }
564
- }
565
- `;function u(m,r){try{return JSON.parse(r)}catch{throw new o(`--${m} must be valid JSON`)}}function c(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function l(m){let r=Number.parseFloat(m);if(Number.isNaN(r))throw new o(`Expected a number but got "${m}"`);return r}function h(m){let r={};return m.limit!==void 0&&(r.limit=m.limit),m.offset!==void 0&&(r.offset=m.offset),Object.keys(r).length?r:void 0}function it(m){let r=m.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type),i.query&&(e.search=i.query);let t=await b$1(O,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(n=>[p(n.id,12),n.name,n.type,n.email??"-",n.phone??"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(D,{id:i});if(!t.customer)throw new o(`Customer ${i} not found`);h$1(e,t.customer);}catch(t){g(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,type:i$1.type??"b2c"};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.company&&(e.company=i$1.company),i$1.taxId&&(e.taxId=i$1.taxId),i$1.businessLicense&&(e.businessLicense=i$1.businessLicense),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.address&&(e.address=u("address",i$1.address));let t=await b$1(R,{input:e});i(`Customer created: ${t.createCustomer.name}`),h$1(i$1,t.createCustomer);}catch(e){g(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=u("address",e.address)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(b,{id:i$1,input:t});i("Customer updated"),h$1(e,n.updateCustomer);}catch(t){g(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(T,{id:i$1});i(`Customer ${i$1} deleted`),h$1(e,{deleted:t.deleteCustomer});}catch(t){g(t);}});}function nt(m){let r=m.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.status&&(e.status=i.status.toUpperCase()),i.vehicle&&(e.vehicleId=i.vehicle),i.query&&(e.search=i.query);let t=await b$1(S,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(n=>[p(n.id,12),`${n.firstName} ${n.lastName}`,n.employeeId,n.status,n.vehicleId?p(n.vehicleId,12):"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(C,{id:i});if(!t.driver)throw new o(`Driver ${i} not found`);h$1(e,t.driver);}catch(t){g(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={employeeId:i$1.employeeId,firstName:i$1.firstName,lastName:i$1.lastName,status:(i$1.status??"AVAILABLE").toUpperCase()};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.licenseNumber&&(e.licenseNumber=i$1.licenseNumber),i$1.licenseClass&&(e.licenseClass=i$1.licenseClass),i$1.licenseExpiry&&(e.licenseExpiry=i$1.licenseExpiry),i$1.vehicleId&&(e.vehicleId=i$1.vehicleId),i$1.userId&&(e.userId=i$1.userId),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.certifications&&(e.certifications=u("certifications",i$1.certifications)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(A,{input:e});i(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),h$1(i$1,t.createDriver);}catch(e){g(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=u("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(N,{id:i$1,input:t});i("Driver updated"),h$1(e,n.updateDriver);}catch(t){g(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(k,{id:i$1});i(`Driver ${i$1} deleted`),h$1(e,{deleted:t.deleteDriver});}catch(t){g(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1($,{id:i$1,status:e.status.toUpperCase()});i(`Driver status set to ${t.updateDriverStatus.status}`),h$1(e,t.updateDriverStatus);}catch(t){g(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(P,{id:i$1,vehicleId:e.vehicle});i(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),h$1(e,t.assignDriverVehicle);}catch(t){g(t);}});}function rt(m){let r=m.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(M,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(n=>[p(n.id,12),n.vehicleNumber,n.type,n.status,`${n.make??"-"} ${n.model??""}`.trim(),n.licensePlate??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(_,{id:i});if(!t.vehicle)throw new o(`Vehicle ${i} not found`);h$1(e,t.vehicle);}catch(t){g(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={vehicleNumber:i$1.number,type:i$1.type.toUpperCase(),status:(i$1.status??"ACTIVE").toUpperCase()};i$1.make&&(e.make=i$1.make),i$1.model&&(e.model=i$1.model),i$1.year!==void 0&&(e.year=i$1.year),i$1.licensePlate&&(e.licensePlate=i$1.licensePlate),i$1.fuelLevel!==void 0&&(e.fuelLevel=i$1.fuelLevel),i$1.mileage!==void 0&&(e.mileage=i$1.mileage),i$1.ownershipType&&(e.ownershipType=i$1.ownershipType),i$1.capacity&&(e.capacity=u("capacity",i$1.capacity)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(U,{input:e});i(`Vehicle created: ${t.createVehicle.vehicleNumber}`),h$1(i$1,t.createVehicle);}catch(e){g(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=u("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(L,{id:i$1,input:t});i("Vehicle updated"),h$1(e,n.updateVehicle);}catch(t){g(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(V,{id:i$1});i(`Vehicle ${i$1} deleted`),h$1(e,{deleted:t.deleteVehicle});}catch(t){g(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(q,{id:i$1,status:e.status.toUpperCase()});i(`Vehicle status set to ${t.updateVehicleStatus.status}`),h$1(e,t.updateVehicleStatus);}catch(t){g(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=u("location",e.location),n=await b$1(x,{id:i$1,location:t});i("Vehicle location updated"),h$1(e,n.updateVehicleLocation);}catch(t){g(t);}});}function at(m){let r=m.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.category&&(e.category=i.category),i.sku&&(e.sku=i.sku),i.query&&(e.search=i.query);let t=await b$1(j,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(n=>[p(n.id,12),n.sku,n.name,n.category??"-",n.brand??"-",n.weight!=null?String(n.weight):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(F,{id:i});if(!t.product)throw new o(`Product ${i} not found`);h$1(e,t.product);}catch(t){g(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,sku:i$1.sku};i$1.description&&(e.description=i$1.description),i$1.category&&(e.category=i$1.category),i$1.brand&&(e.brand=i$1.brand),i$1.weight!==void 0&&(e.weight=i$1.weight),i$1.value!==void 0&&(e.value=i$1.value),i$1.dimensions&&(e.dimensions=u("dimensions",i$1.dimensions)),i$1.fragile&&(e.fragile=!0),i$1.hazardous&&(e.hazardous=!0),i$1.temperatureControlled&&(e.temperatureControlled=!0);let t=await b$1(G,{input:e});i(`Product created: ${t.createProduct.name}`),h$1(i$1,t.createProduct);}catch(e){g(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",i=>i==="true").option("--hazardous <bool>","true|false",i=>i==="true").option("--temperature-controlled <bool>","true|false",i=>i==="true").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=u("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(W,{id:i$1,input:t});i("Product updated"),h$1(e,n.updateProduct);}catch(t){g(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(H,{id:i$1});i(`Product ${i$1} deleted`),h$1(e,{deleted:t.deleteProduct});}catch(t){g(t);}});}function ot(m){let r=m.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status),i.query&&(e.search=i.query);let t=await b$1(z,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(n=>[p(n.id,12),n.code,n.name,n.type,n.status,`${n.usedCapacity??0}/${n.totalCapacity??0}`])});}catch(e){g(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(J,{id:i});if(!t.warehouse)throw new o(`Warehouse ${i} not found`);h$1(e,t.warehouse);}catch(t){g(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={code:i$1.code,name:i$1.name,type:i$1.type.toUpperCase(),address:u("address",i$1.address),status:i$1.status??"ACTIVE"};i$1.contactInfo&&(e.contactInfo=u("contact-info",i$1.contactInfo)),i$1.operatingHours&&(e.operatingHours=u("operating-hours",i$1.operatingHours)),i$1.capabilities&&(e.capabilities=u("capabilities",i$1.capabilities)),i$1.totalCapacity!==void 0&&(e.totalCapacity=i$1.totalCapacity),i$1.usedCapacity!==void 0&&(e.usedCapacity=i$1.usedCapacity);let t=await b$1(Y,{input:e});i(`Warehouse created: ${t.createWarehouse.name}`),h$1(i$1,t.createWarehouse);}catch(e){g(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=u("address",e.address)),e.contactInfo&&(t.contactInfo=u("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=u("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=u("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(B,{id:i$1,input:t});i("Warehouse updated"),h$1(e,n.updateWarehouse);}catch(t){g(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(K,{id:i$1});i(`Warehouse ${i$1} deleted`),h$1(e,{deleted:t.deleteWarehouse});}catch(t){g(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={warehouseId:i$1.warehouse,locationCode:i$1.code,status:i$1.status??"ACTIVE"};i$1.locationType&&(e.locationType=i$1.locationType),i$1.zone&&(e.zone=i$1.zone),i$1.aisle&&(e.aisle=i$1.aisle),i$1.rack&&(e.rack=i$1.rack),i$1.shelf&&(e.shelf=i$1.shelf),i$1.bin&&(e.bin=i$1.bin),i$1.capacity!==void 0&&(e.capacity=i$1.capacity);let t=await b$1(Z,{input:e});i(`Location created: ${t.createWarehouseLocation.locationCode}`),h$1(i$1,t.createWarehouseLocation);}catch(e){g(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Q,{id:i$1,input:t});i("Location updated"),h$1(e,n.updateWarehouseLocation);}catch(t){g(t);}});}function st(m){let r={};return m.product&&(r.productId=m.product),m.warehouse&&(r.warehouseId=m.warehouse),m.location&&(r.locationId=m.location),m.query&&(r.search=m.query),Object.keys(r).length?r:void 0}function dt(m){let r=m.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ee,{filter:st(i),pagination:h(i)});h$1(i,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[p(t.id,12),p(t.productId,12),p(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){g(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(X,{id:i});if(!t.inventoryItem)throw new o(`Inventory item ${i} not found`);h$1(e,t.inventoryItem);}catch(t){g(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ie);h$1(i,e.inventoryStats);}catch(e){g(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={productId:i$1.product,warehouseId:i$1.warehouse};i$1.location&&(e.locationId=i$1.location),i$1.onHand!==void 0&&(e.onHand=i$1.onHand),i$1.available!==void 0&&(e.available=i$1.available),i$1.allocated!==void 0&&(e.allocated=i$1.allocated),i$1.damaged!==void 0&&(e.damaged=i$1.damaged),i$1.reorderPoint!==void 0&&(e.reorderPoint=i$1.reorderPoint),i$1.safetyStock!==void 0&&(e.safetyStock=i$1.safetyStock),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost);let t=await b$1(ne,{input:e});i("Inventory item created"),h$1(i$1,t.createInventoryItem);}catch(e){g(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(re,{id:i$1,input:t});i("Inventory item updated"),h$1(e,n.updateInventoryItem);}catch(t){g(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(ae,{id:i$1});i(`Inventory item ${i$1} deleted`),h$1(e,{deleted:t.deleteInventoryItem});}catch(t){g(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={id:i$1};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new o("No stock adjustments specified");let n=await b$1(oe,{input:t});i("Inventory stock adjusted"),h$1(e,n.adjustInventoryStock);}catch(t){g(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(te,{filter:st(i),pagination:h(i)});h$1(i,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[p(t.id,12),t.transactionNumber,t.type,p(t.productId,12),p(t.warehouseId,12),String(t.quantity)])});}catch(e){g(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",c).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",l).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={transactionNumber:i$1.number,type:i$1.type.toUpperCase(),productId:i$1.product,warehouseId:i$1.warehouse,quantity:i$1.quantity};i$1.inventoryItem&&(e.inventoryItemId=i$1.inventoryItem),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost),i$1.referenceType&&(e.referenceType=i$1.referenceType),i$1.referenceId&&(e.referenceId=i$1.referenceId),i$1.notes&&(e.notes=i$1.notes);let t=await b$1(se,{input:e});i(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),h$1(i$1,t.createInventoryTransaction);}catch(e){g(e);}});}function ct(m){let r=m.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.customer&&(e.customerId=i.customer),i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.status&&(e.status=i.status.toUpperCase()),i.orderType&&(e.orderType=i.orderType.toUpperCase()),i.priority&&(e.priority=i.priority.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(ce,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(n=>[p(n.id,12),n.orderNumber,n.orderType,n.status,n.priority,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(de,{id:i});if(!t.movethewheelsOrder)throw new o(`Order ${i} not found`);h$1(e,t.movethewheelsOrder);}catch(t){g(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={customerId:i$1.customer,orderNumber:i$1.orderNumber,pickupAddress:u("pickup-address",i$1.pickupAddress),deliveryAddress:u("delivery-address",i$1.deliveryAddress),items:u("items",i$1.items),orderType:(i$1.orderType??"B2C").toUpperCase(),priority:(i$1.priority??"MEDIUM").toUpperCase(),status:(i$1.status??"PENDING").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.scheduledDelivery&&(e.scheduledDelivery=i$1.scheduledDelivery),i$1.specialInstructions&&(e.specialInstructions=i$1.specialInstructions),i$1.pricing&&(e.pricing=u("pricing",i$1.pricing));let t=await b$1(pe,{input:e});i(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),h$1(i$1,t.createMovethewheelsOrder);}catch(e){g(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=u("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=u("pickup-address",e.pickupAddress)),e.items&&(t.items=u("items",e.items)),e.pricing&&(t.pricing=u("pricing",e.pricing)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(ue,{id:i$1,input:t});i("Order updated"),h$1(e,n.updateMovethewheelsOrder);}catch(t){g(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(me,{id:i$1});i(`Order ${i$1} deleted`),h$1(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){g(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=u("location",e.location));let n=await b$1(le,{id:i$1,input:t});i(`Order status set to ${n.updateMovethewheelsOrderStatus.status}`),h$1(e,n.updateMovethewheelsOrderStatus);}catch(t){g(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(fe);h$1(i,e.orderStats);}catch(e){g(e);}});}function pt(m){let r=m.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.order&&(e.orderId=i.order),i.customer&&(e.customerId=i.customer),i.carrier&&(e.carrierId=i.carrier),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(he,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(n=>[p(n.id,12),n.shipmentNumber,p(n.orderId,12),n.status,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ge,{id:i});if(!t.shipment)throw new o(`Shipment ${i} not found`);h$1(e,t.shipment);}catch(t){g(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ye,{pagination:h(i)});h$1(i,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[p(t.id,12),t.shipmentNumber,p(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentNumber:i$1.shipmentNumber,orderId:i$1.order,origin:u("origin",i$1.origin),destination:u("destination",i$1.destination),status:(i$1.status??"PLANNED").toUpperCase()};i$1.customer&&(e.customerId=i$1.customer),i$1.carrier&&(e.carrierId=i$1.carrier),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.cargoDetails&&(e.cargoDetails=u("cargo-details",i$1.cargoDetails)),i$1.estimatedDelivery&&(e.estimatedDelivery=i$1.estimatedDelivery),i$1.actualDelivery&&(e.actualDelivery=i$1.actualDelivery);let t=await b$1(Ee,{input:e});i(`Shipment created: ${t.createShipment.shipmentNumber}`),h$1(i$1,t.createShipment);}catch(e){g(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=u("origin",e.origin)),e.destination&&(t.destination=u("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=u("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(De,{id:i$1,input:t});i("Shipment updated"),h$1(e,n.updateShipment);}catch(t){g(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Oe,{id:i$1});i(`Shipment ${i$1} deleted`),h$1(e,{deleted:t.deleteShipment});}catch(t){g(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentId:i$1.shipment,eventType:i$1.eventType.toUpperCase()};i$1.details&&(e.details=i$1.details),i$1.location&&(e.location=u("location",i$1.location)),i$1.timestamp&&(e.timestamp=i$1.timestamp);let t=await b$1(Re,{input:e});i(`Tracking event added: ${t.addTrackingEvent.eventType}`),h$1(i$1,t.addTrackingEvent);}catch(e){g(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ve,{shipmentId:i,pagination:h(e)});h$1(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(Ie,{orderId:i,pagination:h(e)});h$1(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(we,{pagination:h(i)});h$1(i,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,p(t.message,40)])});}catch(e){g(e);}});}function ut(m){let r=m.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.shipment&&(e.shipmentId=i.shipment),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(Te,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(n=>[p(n.id,12),n.name,n.status,n.driverId?p(n.driverId,12):"-",n.vehicleId?p(n.vehicleId,12):"-",n.estimatedDistance!=null?String(n.estimatedDistance):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(be,{id:i});if(!t.route)throw new o(`Route ${i} not found`);h$1(e,t.route);}catch(t){g(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,waypoints:u("waypoints",i$1.waypoints),status:(i$1.status??"PLANNED").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.shipment&&(e.shipmentId=i$1.shipment),i$1.estimatedDistance!==void 0&&(e.estimatedDistance=i$1.estimatedDistance),i$1.estimatedDuration!==void 0&&(e.estimatedDuration=i$1.estimatedDuration),i$1.actualDistance!==void 0&&(e.actualDistance=i$1.actualDistance),i$1.actualDuration!==void 0&&(e.actualDuration=i$1.actualDuration),i$1.fuelCost!==void 0&&(e.fuelCost=i$1.fuelCost);let t=await b$1(Ce,{input:e});i(`Route created: ${t.createRoute.name}`),h$1(i$1,t.createRoute);}catch(e){g(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=u("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Se,{id:i$1,input:t});i("Route updated"),h$1(e,n.updateRoute);}catch(t){g(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ae,{id:i$1});i(`Route ${i$1} deleted`),h$1(e,{deleted:t.deleteRoute});}catch(t){g(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ne,{id:i$1});i("Route optimized"),h$1(e,t.optimizeRoute);}catch(t){g(t);}});}function mt(m){let r=m.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),i$1=r.command("providers").description("Service providers");i$1.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.type&&(n.type=t.type),t.active!==void 0&&(n.isActive=t.active),t.query&&(n.search=t.query);let d=await b$1($e,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(y=>[p(y.id,12),y.name,y.type,y.isActive?"yes":"no",y.isVerified?"yes":"no",y.rating!=null?String(y.rating):"-"])});}catch(n){g(n);}}),i$1.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(ke,{id:t});if(!d.serviceProvider)throw new o(`Provider ${t} not found`);h$1(n,d.serviceProvider);}catch(d){g(d);}}),i$1.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(n.description=t.description),t.rating!==void 0&&(n.rating=t.rating),t.contactInfo&&(n.contactInfo=u("contact-info",t.contactInfo)),t.services&&(n.services=u("services",t.services));let d=await b$1(Pe,{input:n});i(`Provider created: ${d.createServiceProvider.name}`),h$1(t,d.createServiceProvider);}catch(n){g(n);}}),i$1.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.type&&(d.type=n.type),n.description!==void 0&&(d.description=n.description),n.rating!==void 0&&(d.rating=n.rating),n.active!==void 0&&(d.isActive=n.active),n.verified!==void 0&&(d.isVerified=n.verified),n.contactInfo&&(d.contactInfo=u("contact-info",n.contactInfo)),n.services&&(d.services=u("services",n.services)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(_e,{id:t,input:d});i("Provider updated"),h$1(n,y.updateServiceProvider);}catch(d){g(d);}}),i$1.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Me,{id:t});i(`Provider ${t} deleted`),h$1(n,{deleted:d.deleteServiceProvider});}catch(d){g(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.provider&&(n.providerId=t.provider),t.category&&(n.category=t.category),t.query&&(n.search=t.query);let d=await b$1(Le,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(y=>[p(y.id,12),y.name,p(y.providerId,12),y.category??"-",String(y.price),y.currency])});}catch(n){g(n);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Ue,{id:t});if(!d.serviceOffering)throw new o(`Offering ${t} not found`);h$1(n,d.serviceOffering);}catch(d){g(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",l).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(n.description=t.description),t.category&&(n.category=t.category),t.availability&&(n.availability=u("availability",t.availability));let d=await b$1(Ve,{input:n});i(`Offering created: ${d.createServiceOffering.name}`),h$1(t,d.createServiceOffering);}catch(n){g(n);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",l).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.description!==void 0&&(d.description=n.description),n.category!==void 0&&(d.category=n.category),n.price!==void 0&&(d.price=n.price),n.currency&&(d.currency=n.currency),n.availability&&(d.availability=u("availability",n.availability)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(qe,{id:t,input:d});i("Offering updated"),h$1(n,y.updateServiceOffering);}catch(d){g(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(xe,{id:t});i(`Offering ${t} deleted`),h$1(n,{deleted:d.deleteServiceOffering});}catch(d){g(d);}});}function lt(m){let r=m.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let n=await b$1(je,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});h$1(e,n.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:n.movethewheelsReports.map(d=>[p(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){g(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(Fe,{id:e});if(!n.movethewheelsReport)throw new o(`Report ${e} not found`);h$1(t,n.movethewheelsReport);}catch(n){g(n);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=u("configuration",e.configuration));let n=await b$1(Ge,{input:t});i(`Report created: ${n.createMovethewheelsReport.name}`),h$1(e,n.createMovethewheelsReport);}catch(t){g(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.type&&(n.type=t.type),t.description!==void 0&&(n.description=t.description),t.status&&(n.status=t.status),t.schedule!==void 0&&(n.schedule=t.schedule),t.configuration&&(n.configuration=u("configuration",t.configuration)),!Object.keys(n).length)throw new o("No updates specified");let d=await b$1(We,{id:e,input:n});i("Report updated"),h$1(t,d.updateMovethewheelsReport);}catch(n){g(n);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(He,{id:e});i(`Report ${e} deleted`),h$1(t,{deleted:n.deleteMovethewheelsReport});}catch(n){g(n);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={reportId:e};t.parameters&&(n.parameters=u("parameters",t.parameters));let d=await b$1(Je,{input:n});i("Report generated"),h$1(t,d.generateMovethewheelsReport);}catch(n){g(n);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},n=await b$1(ze,{input:t});i("Data exported"),h$1(e,n.exportData);}catch(t){g(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:u("payload",e.payload)},n=await b$1(Ye,{input:t});i("Data imported"),h$1(e,n.importData);}catch(t){g(t);}});let i$1=m.command("settings").description("Movethewheels module settings");i$1.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await b$1(Be);h$1(e,t.moduleSettings);}catch(t){g(t);}}),i$1.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:u("preferences",e.preferences)},n=await b$1(Ke,{input:t});i("Module settings updated"),h$1(e,n.updateModuleSettings);}catch(t){g(t);}});}function ft(m){let r=m.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Qe);h$1(i,e.dashboardMetrics);}catch(e){g(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Ze);h$1(i,e.analytics);}catch(e){g(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Xe);h$1(i,e.financeMetrics);}catch(e){g(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(et);h$1(i,e.fleetStats);}catch(e){g(e);}}),r.command("insights").description("AI assistant insights for a question").argument("<question>","Question to ask the assistant").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(tt,{question:i});h$1(e,t.assistantInsights);}catch(t){g(t);}});}var gt={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(m,r){a(r);let i=m.command("movethewheels").description("Movethewheels logistics & fleet operations");it(i),nt(i),rt(i),at(i),ot(i),dt(i),ct(i),pt(i),ut(i),mt(i),lt(i),ft(i);}},vi=gt;export{vi as default};
559
+ `;function u(m,r){try{return JSON.parse(r)}catch{throw new o(`--${m} must be valid JSON`)}}function c(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function l(m){let r=Number.parseFloat(m);if(Number.isNaN(r))throw new o(`Expected a number but got "${m}"`);return r}function h(m){let r={};return m.limit!==void 0&&(r.limit=m.limit),m.offset!==void 0&&(r.offset=m.offset),Object.keys(r).length?r:void 0}function tt(m){let r=m.command("customers").description("Movethewheels customers");r.command("list").description("List customers").option("--type <t>","Filter by customer type (b2c/b2b)").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type),i.query&&(e.search=i.query);let t=await b$1(O,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.customers,{headers:["ID","Name","Type","Email","Phone","Rating"],rows:t.customers.map(n=>[p(n.id,12),n.name,n.type,n.email??"-",n.phone??"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a customer by id").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(D,{id:i});if(!t.customer)throw new o(`Customer ${i} not found`);h$1(e,t.customer);}catch(t){g(t);}}),r.command("create").description("Create a customer").requiredOption("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type","b2c").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,type:i$1.type??"b2c"};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.company&&(e.company=i$1.company),i$1.taxId&&(e.taxId=i$1.taxId),i$1.businessLicense&&(e.businessLicense=i$1.businessLicense),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.address&&(e.address=u("address",i$1.address));let t=await b$1(R,{input:e});i(`Customer created: ${t.createCustomer.name}`),h$1(i$1,t.createCustomer);}catch(e){g(e);}}),r.command("update").description("Update a customer").argument("<id>","Customer ID").option("--name <name>","Customer name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--company <company>","Company").option("--type <t>","Customer type").option("--tax-id <s>","Tax ID").option("--business-license <s>","Business license").option("--rating <n>","Rating",l).option("--address <json>","Address JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.company!==void 0&&(t.company=e.company),e.type&&(t.type=e.type),e.taxId!==void 0&&(t.taxId=e.taxId),e.businessLicense!==void 0&&(t.businessLicense=e.businessLicense),e.rating!==void 0&&(t.rating=e.rating),e.address&&(t.address=u("address",e.address)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(b,{id:i$1,input:t});i("Customer updated"),h$1(e,n.updateCustomer);}catch(t){g(t);}}),r.command("remove").description("Delete a customer").argument("<id>","Customer ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(T,{id:i$1});i(`Customer ${i$1} deleted`),h$1(e,{deleted:t.deleteCustomer});}catch(t){g(t);}});}function it(m){let r=m.command("drivers").description("Movethewheels drivers");r.command("list").description("List drivers").option("--status <s>","Filter by driver status").option("--vehicle <id>","Filter by vehicle ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.status&&(e.status=i.status.toUpperCase()),i.vehicle&&(e.vehicleId=i.vehicle),i.query&&(e.search=i.query);let t=await b$1(S,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.drivers,{headers:["ID","Name","Employee","Status","Vehicle","Rating"],rows:t.drivers.map(n=>[p(n.id,12),`${n.firstName} ${n.lastName}`,n.employeeId,n.status,n.vehicleId?p(n.vehicleId,12):"-",n.rating!=null?String(n.rating):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a driver by id").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(C,{id:i});if(!t.driver)throw new o(`Driver ${i} not found`);h$1(e,t.driver);}catch(t){g(t);}}),r.command("create").description("Create a driver").requiredOption("--employee-id <s>","Employee ID").requiredOption("--first-name <s>","First name").requiredOption("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status","AVAILABLE").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--user-id <id>","User ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={employeeId:i$1.employeeId,firstName:i$1.firstName,lastName:i$1.lastName,status:(i$1.status??"AVAILABLE").toUpperCase()};i$1.email&&(e.email=i$1.email),i$1.phone&&(e.phone=i$1.phone),i$1.licenseNumber&&(e.licenseNumber=i$1.licenseNumber),i$1.licenseClass&&(e.licenseClass=i$1.licenseClass),i$1.licenseExpiry&&(e.licenseExpiry=i$1.licenseExpiry),i$1.vehicleId&&(e.vehicleId=i$1.vehicleId),i$1.userId&&(e.userId=i$1.userId),i$1.rating!==void 0&&(e.rating=i$1.rating),i$1.certifications&&(e.certifications=u("certifications",i$1.certifications)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(A,{input:e});i(`Driver created: ${t.createDriver.firstName} ${t.createDriver.lastName}`),h$1(i$1,t.createDriver);}catch(e){g(e);}}),r.command("update").description("Update a driver").argument("<id>","Driver ID").option("--first-name <s>","First name").option("--last-name <s>","Last name").option("--email <email>","Email").option("--phone <phone>","Phone").option("--status <s>","Driver status").option("--license-number <s>","License number").option("--license-class <s>","License class").option("--license-expiry <s>","License expiry (ISO date)").option("--vehicle-id <id>","Vehicle ID").option("--rating <n>","Rating",l).option("--certifications <json>","Certifications JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.firstName&&(t.firstName=e.firstName),e.lastName&&(t.lastName=e.lastName),e.email!==void 0&&(t.email=e.email),e.phone!==void 0&&(t.phone=e.phone),e.status&&(t.status=e.status.toUpperCase()),e.licenseNumber!==void 0&&(t.licenseNumber=e.licenseNumber),e.licenseClass!==void 0&&(t.licenseClass=e.licenseClass),e.licenseExpiry&&(t.licenseExpiry=e.licenseExpiry),e.vehicleId!==void 0&&(t.vehicleId=e.vehicleId),e.rating!==void 0&&(t.rating=e.rating),e.certifications&&(t.certifications=u("certifications",e.certifications)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(N,{id:i$1,input:t});i("Driver updated"),h$1(e,n.updateDriver);}catch(t){g(t);}}),r.command("remove").description("Delete a driver").argument("<id>","Driver ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(k,{id:i$1});i(`Driver ${i$1} deleted`),h$1(e,{deleted:t.deleteDriver});}catch(t){g(t);}}),r.command("set-status").description("Update a driver status").argument("<id>","Driver ID").requiredOption("--status <s>","AVAILABLE|ON_DELIVERY|ON_BREAK|OFF_DUTY|INACTIVE").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1($,{id:i$1,status:e.status.toUpperCase()});i(`Driver status set to ${t.updateDriverStatus.status}`),h$1(e,t.updateDriverStatus);}catch(t){g(t);}}),r.command("assign-vehicle").description("Assign (or clear) a vehicle for a driver").argument("<id>","Driver ID").option("--vehicle <id>","Vehicle ID (omit to clear assignment)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(P,{id:i$1,vehicleId:e.vehicle});i(e.vehicle?`Vehicle ${e.vehicle} assigned`:"Vehicle assignment cleared"),h$1(e,t.assignDriverVehicle);}catch(t){g(t);}});}function nt(m){let r=m.command("vehicles").description("Movethewheels fleet vehicles");r.command("list").description("List vehicles").option("--type <t>","Filter by vehicle type").option("--status <s>","Filter by vehicle status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(M,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.vehicles,{headers:["ID","Number","Type","Status","Make/Model","Plate"],rows:t.vehicles.map(n=>[p(n.id,12),n.vehicleNumber,n.type,n.status,`${n.make??"-"} ${n.model??""}`.trim(),n.licensePlate??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a vehicle by id").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(_,{id:i});if(!t.vehicle)throw new o(`Vehicle ${i} not found`);h$1(e,t.vehicle);}catch(t){g(t);}}),r.command("create").description("Create a vehicle").requiredOption("--number <s>","Vehicle number").requiredOption("--type <t>","Vehicle type (TRUCK|VAN|MOTORCYCLE|\u2026)").option("--status <s>","Vehicle status","ACTIVE").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={vehicleNumber:i$1.number,type:i$1.type.toUpperCase(),status:(i$1.status??"ACTIVE").toUpperCase()};i$1.make&&(e.make=i$1.make),i$1.model&&(e.model=i$1.model),i$1.year!==void 0&&(e.year=i$1.year),i$1.licensePlate&&(e.licensePlate=i$1.licensePlate),i$1.fuelLevel!==void 0&&(e.fuelLevel=i$1.fuelLevel),i$1.mileage!==void 0&&(e.mileage=i$1.mileage),i$1.ownershipType&&(e.ownershipType=i$1.ownershipType),i$1.capacity&&(e.capacity=u("capacity",i$1.capacity)),i$1.currentLocation&&(e.currentLocation=u("current-location",i$1.currentLocation));let t=await b$1(U,{input:e});i(`Vehicle created: ${t.createVehicle.vehicleNumber}`),h$1(i$1,t.createVehicle);}catch(e){g(e);}}),r.command("update").description("Update a vehicle").argument("<id>","Vehicle ID").option("--number <s>","Vehicle number").option("--type <t>","Vehicle type").option("--status <s>","Vehicle status").option("--make <s>","Make").option("--model <s>","Model").option("--year <n>","Year",c).option("--license-plate <s>","License plate").option("--fuel-level <n>","Fuel level",l).option("--mileage <n>","Mileage",l).option("--ownership-type <s>","Ownership type").option("--capacity <json>","Capacity JSON").option("--current-location <json>","Current location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.number&&(t.vehicleNumber=e.number),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.make!==void 0&&(t.make=e.make),e.model!==void 0&&(t.model=e.model),e.year!==void 0&&(t.year=e.year),e.licensePlate!==void 0&&(t.licensePlate=e.licensePlate),e.fuelLevel!==void 0&&(t.fuelLevel=e.fuelLevel),e.mileage!==void 0&&(t.mileage=e.mileage),e.ownershipType!==void 0&&(t.ownershipType=e.ownershipType),e.capacity&&(t.capacity=u("capacity",e.capacity)),e.currentLocation&&(t.currentLocation=u("current-location",e.currentLocation)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(L,{id:i$1,input:t});i("Vehicle updated"),h$1(e,n.updateVehicle);}catch(t){g(t);}}),r.command("remove").description("Delete a vehicle").argument("<id>","Vehicle ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(V,{id:i$1});i(`Vehicle ${i$1} deleted`),h$1(e,{deleted:t.deleteVehicle});}catch(t){g(t);}}),r.command("set-status").description("Update a vehicle status").argument("<id>","Vehicle ID").requiredOption("--status <s>","ACTIVE|INACTIVE|IN_TRANSIT|MAINTENANCE|DECOMMISSIONED").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(x,{id:i$1,status:e.status.toUpperCase()});i(`Vehicle status set to ${t.updateVehicleStatus.status}`),h$1(e,t.updateVehicleStatus);}catch(t){g(t);}}),r.command("set-location").description("Update a vehicle current location").argument("<id>","Vehicle ID").requiredOption("--location <json>","Location JSON (latitude/longitude/\u2026)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=u("location",e.location),n=await b$1(q,{id:i$1,location:t});i("Vehicle location updated"),h$1(e,n.updateVehicleLocation);}catch(t){g(t);}});}function rt(m){let r=m.command("products").description("Movethewheels catalog products");r.command("list").description("List products").option("--category <c>","Filter by category").option("--sku <s>","Filter by SKU").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.category&&(e.category=i.category),i.sku&&(e.sku=i.sku),i.query&&(e.search=i.query);let t=await b$1(j,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.products,{headers:["ID","SKU","Name","Category","Brand","Weight"],rows:t.products.map(n=>[p(n.id,12),n.sku,n.name,n.category??"-",n.brand??"-",n.weight!=null?String(n.weight):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a product by id").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(F,{id:i});if(!t.product)throw new o(`Product ${i} not found`);h$1(e,t.product);}catch(t){g(t);}}),r.command("create").description("Create a product").requiredOption("--name <name>","Product name").requiredOption("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile","Mark as fragile").option("--hazardous","Mark as hazardous").option("--temperature-controlled","Mark as temperature controlled").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,sku:i$1.sku};i$1.description&&(e.description=i$1.description),i$1.category&&(e.category=i$1.category),i$1.brand&&(e.brand=i$1.brand),i$1.weight!==void 0&&(e.weight=i$1.weight),i$1.value!==void 0&&(e.value=i$1.value),i$1.dimensions&&(e.dimensions=u("dimensions",i$1.dimensions)),i$1.fragile&&(e.fragile=!0),i$1.hazardous&&(e.hazardous=!0),i$1.temperatureControlled&&(e.temperatureControlled=!0);let t=await b$1(W,{input:e});i(`Product created: ${t.createProduct.name}`),h$1(i$1,t.createProduct);}catch(e){g(e);}}),r.command("update").description("Update a product").argument("<id>","Product ID").option("--name <name>","Product name").option("--sku <sku>","SKU").option("--description <s>","Description").option("--category <c>","Category").option("--brand <s>","Brand").option("--weight <n>","Weight",l).option("--value <n>","Value",l).option("--dimensions <json>","Dimensions JSON").option("--fragile <bool>","true|false",i=>i==="true").option("--hazardous <bool>","true|false",i=>i==="true").option("--temperature-controlled <bool>","true|false",i=>i==="true").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.sku&&(t.sku=e.sku),e.description!==void 0&&(t.description=e.description),e.category!==void 0&&(t.category=e.category),e.brand!==void 0&&(t.brand=e.brand),e.weight!==void 0&&(t.weight=e.weight),e.value!==void 0&&(t.value=e.value),e.dimensions&&(t.dimensions=u("dimensions",e.dimensions)),e.fragile!==void 0&&(t.fragile=e.fragile),e.hazardous!==void 0&&(t.hazardous=e.hazardous),e.temperatureControlled!==void 0&&(t.temperatureControlled=e.temperatureControlled),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(G,{id:i$1,input:t});i("Product updated"),h$1(e,n.updateProduct);}catch(t){g(t);}}),r.command("remove").description("Delete a product").argument("<id>","Product ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(H,{id:i$1});i(`Product ${i$1} deleted`),h$1(e,{deleted:t.deleteProduct});}catch(t){g(t);}});}function at(m){let r=m.command("warehouses").description("Movethewheels warehouses & locations");r.command("list").description("List warehouses").option("--type <t>","Filter by warehouse type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.type&&(e.type=i.type.toUpperCase()),i.status&&(e.status=i.status),i.query&&(e.search=i.query);let t=await b$1(z,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.warehouses,{headers:["ID","Code","Name","Type","Status","Capacity"],rows:t.warehouses.map(n=>[p(n.id,12),n.code,n.name,n.type,n.status,`${n.usedCapacity??0}/${n.totalCapacity??0}`])});}catch(e){g(e);}}),r.command("get").description("Get a warehouse by id (includes locations)").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(J,{id:i});if(!t.warehouse)throw new o(`Warehouse ${i} not found`);h$1(e,t.warehouse);}catch(t){g(t);}}),r.command("create").description("Create a warehouse").requiredOption("--code <code>","Warehouse code").requiredOption("--name <name>","Warehouse name").requiredOption("--type <t>","Warehouse type (DISTRIBUTION|FULFILLMENT|\u2026)").requiredOption("--address <json>","Address JSON").option("--status <s>","Status","ACTIVE").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={code:i$1.code,name:i$1.name,type:i$1.type.toUpperCase(),address:u("address",i$1.address),status:i$1.status??"ACTIVE"};i$1.contactInfo&&(e.contactInfo=u("contact-info",i$1.contactInfo)),i$1.operatingHours&&(e.operatingHours=u("operating-hours",i$1.operatingHours)),i$1.capabilities&&(e.capabilities=u("capabilities",i$1.capabilities)),i$1.totalCapacity!==void 0&&(e.totalCapacity=i$1.totalCapacity),i$1.usedCapacity!==void 0&&(e.usedCapacity=i$1.usedCapacity);let t=await b$1(Y,{input:e});i(`Warehouse created: ${t.createWarehouse.name}`),h$1(i$1,t.createWarehouse);}catch(e){g(e);}}),r.command("update").description("Update a warehouse").argument("<id>","Warehouse ID").option("--code <code>","Warehouse code").option("--name <name>","Warehouse name").option("--type <t>","Warehouse type").option("--status <s>","Status").option("--address <json>","Address JSON").option("--contact-info <json>","Contact info JSON").option("--operating-hours <json>","Operating hours JSON").option("--capabilities <json>","Capabilities JSON").option("--total-capacity <n>","Total capacity",l).option("--used-capacity <n>","Used capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.code=e.code),e.name&&(t.name=e.name),e.type&&(t.type=e.type.toUpperCase()),e.status&&(t.status=e.status),e.address&&(t.address=u("address",e.address)),e.contactInfo&&(t.contactInfo=u("contact-info",e.contactInfo)),e.operatingHours&&(t.operatingHours=u("operating-hours",e.operatingHours)),e.capabilities&&(t.capabilities=u("capabilities",e.capabilities)),e.totalCapacity!==void 0&&(t.totalCapacity=e.totalCapacity),e.usedCapacity!==void 0&&(t.usedCapacity=e.usedCapacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(B,{id:i$1,input:t});i("Warehouse updated"),h$1(e,n.updateWarehouse);}catch(t){g(t);}}),r.command("remove").description("Delete a warehouse").argument("<id>","Warehouse ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(K,{id:i$1});i(`Warehouse ${i$1} deleted`),h$1(e,{deleted:t.deleteWarehouse});}catch(t){g(t);}}),r.command("create-location").description("Create a warehouse location").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status","ACTIVE").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={warehouseId:i$1.warehouse,locationCode:i$1.code,status:i$1.status??"ACTIVE"};i$1.locationType&&(e.locationType=i$1.locationType),i$1.zone&&(e.zone=i$1.zone),i$1.aisle&&(e.aisle=i$1.aisle),i$1.rack&&(e.rack=i$1.rack),i$1.shelf&&(e.shelf=i$1.shelf),i$1.bin&&(e.bin=i$1.bin),i$1.capacity!==void 0&&(e.capacity=i$1.capacity);let t=await b$1(Z,{input:e});i(`Location created: ${t.createWarehouseLocation.locationCode}`),h$1(i$1,t.createWarehouseLocation);}catch(e){g(e);}}),r.command("update-location").description("Update a warehouse location").argument("<id>","Location ID").option("--code <s>","Location code").option("--location-type <s>","Location type").option("--status <s>","Status").option("--zone <s>","Zone").option("--aisle <s>","Aisle").option("--rack <s>","Rack").option("--shelf <s>","Shelf").option("--bin <s>","Bin").option("--capacity <n>","Capacity",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.code&&(t.locationCode=e.code),e.locationType!==void 0&&(t.locationType=e.locationType),e.status&&(t.status=e.status),e.zone!==void 0&&(t.zone=e.zone),e.aisle!==void 0&&(t.aisle=e.aisle),e.rack!==void 0&&(t.rack=e.rack),e.shelf!==void 0&&(t.shelf=e.shelf),e.bin!==void 0&&(t.bin=e.bin),e.capacity!==void 0&&(t.capacity=e.capacity),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Q,{id:i$1,input:t});i("Location updated"),h$1(e,n.updateWarehouseLocation);}catch(t){g(t);}});}function ot(m){let r={};return m.product&&(r.productId=m.product),m.warehouse&&(r.warehouseId=m.warehouse),m.location&&(r.locationId=m.location),m.query&&(r.search=m.query),Object.keys(r).length?r:void 0}function st(m){let r=m.command("inventory").description("Movethewheels inventory");r.command("list").description("List inventory items").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ee,{filter:ot(i),pagination:h(i)});h$1(i,e.inventoryItems,{headers:["ID","Product","Warehouse","OnHand","Available","Allocated"],rows:e.inventoryItems.map(t=>[p(t.id,12),p(t.productId,12),p(t.warehouseId,12),String(t.onHand),String(t.available),String(t.allocated)])});}catch(e){g(e);}}),r.command("get").description("Get an inventory item by id").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(X,{id:i});if(!t.inventoryItem)throw new o(`Inventory item ${i} not found`);h$1(e,t.inventoryItem);}catch(t){g(t);}}),r.command("stats").description("Inventory stats (on-hand, available, allocated, damaged, low-stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ie);h$1(i,e.inventoryStats);}catch(e){g(e);}}),r.command("create").description("Create an inventory item").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={productId:i$1.product,warehouseId:i$1.warehouse};i$1.location&&(e.locationId=i$1.location),i$1.onHand!==void 0&&(e.onHand=i$1.onHand),i$1.available!==void 0&&(e.available=i$1.available),i$1.allocated!==void 0&&(e.allocated=i$1.allocated),i$1.damaged!==void 0&&(e.damaged=i$1.damaged),i$1.reorderPoint!==void 0&&(e.reorderPoint=i$1.reorderPoint),i$1.safetyStock!==void 0&&(e.safetyStock=i$1.safetyStock),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost);let t=await b$1(ne,{input:e});i("Inventory item created"),h$1(i$1,t.createInventoryItem);}catch(e){g(e);}}),r.command("update").description("Update an inventory item").argument("<id>","Inventory item ID").option("--location <id>","Location ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("--reorder-point <n>","Reorder point",c).option("--safety-stock <n>","Safety stock",c).option("--unit-cost <n>","Unit cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.location!==void 0&&(t.locationId=e.location),e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),e.reorderPoint!==void 0&&(t.reorderPoint=e.reorderPoint),e.safetyStock!==void 0&&(t.safetyStock=e.safetyStock),e.unitCost!==void 0&&(t.unitCost=e.unitCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(re,{id:i$1,input:t});i("Inventory item updated"),h$1(e,n.updateInventoryItem);}catch(t){g(t);}}),r.command("remove").description("Delete an inventory item").argument("<id>","Inventory item ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(ae,{id:i$1});i(`Inventory item ${i$1} deleted`),h$1(e,{deleted:t.deleteInventoryItem});}catch(t){g(t);}}),r.command("adjust").description("Adjust inventory stock levels").argument("<id>","Inventory item ID").option("--on-hand <n>","On-hand quantity",c).option("--available <n>","Available quantity",c).option("--allocated <n>","Allocated quantity",c).option("--damaged <n>","Damaged quantity",c).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={id:i$1};if(e.onHand!==void 0&&(t.onHand=e.onHand),e.available!==void 0&&(t.available=e.available),e.allocated!==void 0&&(t.allocated=e.allocated),e.damaged!==void 0&&(t.damaged=e.damaged),Object.keys(t).length===1)throw new o("No stock adjustments specified");let n=await b$1(oe,{input:t});i("Inventory stock adjusted"),h$1(e,n.adjustInventoryStock);}catch(t){g(t);}}),r.command("transactions").description("List inventory transactions").option("--product <id>","Filter by product ID").option("--warehouse <id>","Filter by warehouse ID").option("--location <id>","Filter by location ID").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(te,{filter:ot(i),pagination:h(i)});h$1(i,e.inventoryTransactions,{headers:["ID","Number","Type","Product","Warehouse","Qty"],rows:e.inventoryTransactions.map(t=>[p(t.id,12),t.transactionNumber,t.type,p(t.productId,12),p(t.warehouseId,12),String(t.quantity)])});}catch(e){g(e);}}),r.command("record-transaction").description("Record an inventory transaction").requiredOption("--number <s>","Transaction number").requiredOption("--type <t>","Transaction type (RECEIPT|ISSUE|TRANSFER|ADJUSTMENT|RETURN)").requiredOption("--product <id>","Product ID").requiredOption("--warehouse <id>","Warehouse ID").requiredOption("--quantity <n>","Quantity",c).option("--inventory-item <id>","Inventory item ID").option("--unit-cost <n>","Unit cost",l).option("--reference-type <s>","Reference type").option("--reference-id <s>","Reference ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={transactionNumber:i$1.number,type:i$1.type.toUpperCase(),productId:i$1.product,warehouseId:i$1.warehouse,quantity:i$1.quantity};i$1.inventoryItem&&(e.inventoryItemId=i$1.inventoryItem),i$1.unitCost!==void 0&&(e.unitCost=i$1.unitCost),i$1.referenceType&&(e.referenceType=i$1.referenceType),i$1.referenceId&&(e.referenceId=i$1.referenceId),i$1.notes&&(e.notes=i$1.notes);let t=await b$1(se,{input:e});i(`Transaction recorded: ${t.createInventoryTransaction.transactionNumber}`),h$1(i$1,t.createInventoryTransaction);}catch(e){g(e);}});}function dt(m){let r=m.command("orders").description("Movethewheels delivery orders");r.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--status <s>","Filter by order status").option("--order-type <t>","Filter by order type").option("--priority <p>","Filter by priority").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.customer&&(e.customerId=i.customer),i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.status&&(e.status=i.status.toUpperCase()),i.orderType&&(e.orderType=i.orderType.toUpperCase()),i.priority&&(e.priority=i.priority.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(ce,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.movethewheelsOrders,{headers:["ID","Order #","Type","Status","Priority","Tracking"],rows:t.movethewheelsOrders.map(n=>[p(n.id,12),n.orderNumber,n.orderType,n.status,n.priority,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(de,{id:i});if(!t.movethewheelsOrder)throw new o(`Order ${i} not found`);h$1(e,t.movethewheelsOrder);}catch(t){g(t);}}),r.command("create").description("Create an order").requiredOption("--customer <id>","Customer ID").requiredOption("--order-number <s>","Order number").requiredOption("--pickup-address <json>","Pickup address JSON").requiredOption("--delivery-address <json>","Delivery address JSON").requiredOption("--items <json>","Items JSON").option("--order-type <t>","Order type","B2C").option("--priority <p>","Priority","MEDIUM").option("--status <s>","Status","PENDING").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={customerId:i$1.customer,orderNumber:i$1.orderNumber,pickupAddress:u("pickup-address",i$1.pickupAddress),deliveryAddress:u("delivery-address",i$1.deliveryAddress),items:u("items",i$1.items),orderType:(i$1.orderType??"B2C").toUpperCase(),priority:(i$1.priority??"MEDIUM").toUpperCase(),status:(i$1.status??"PENDING").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.scheduledDelivery&&(e.scheduledDelivery=i$1.scheduledDelivery),i$1.specialInstructions&&(e.specialInstructions=i$1.specialInstructions),i$1.pricing&&(e.pricing=u("pricing",i$1.pricing));let t=await b$1(pe,{input:e});i(`Order created: ${t.createMovethewheelsOrder.orderNumber}`),h$1(i$1,t.createMovethewheelsOrder);}catch(e){g(e);}}),r.command("update").description("Update an order").argument("<id>","Order ID").option("--customer <id>","Customer ID").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--order-type <t>","Order type").option("--priority <p>","Priority").option("--status <s>","Status").option("--tracking-number <s>","Tracking number").option("--scheduled-delivery <s>","Scheduled delivery (ISO date)").option("--special-instructions <s>","Special instructions").option("--delivery-address <json>","Delivery address JSON").option("--pickup-address <json>","Pickup address JSON").option("--items <json>","Items JSON").option("--pricing <json>","Pricing JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.customer&&(t.customerId=e.customer),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.orderType&&(t.orderType=e.orderType.toUpperCase()),e.priority&&(t.priority=e.priority.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.scheduledDelivery&&(t.scheduledDelivery=e.scheduledDelivery),e.specialInstructions!==void 0&&(t.specialInstructions=e.specialInstructions),e.deliveryAddress&&(t.deliveryAddress=u("delivery-address",e.deliveryAddress)),e.pickupAddress&&(t.pickupAddress=u("pickup-address",e.pickupAddress)),e.items&&(t.items=u("items",e.items)),e.pricing&&(t.pricing=u("pricing",e.pricing)),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(ue,{id:i$1,input:t});i("Order updated"),h$1(e,n.updateMovethewheelsOrder);}catch(t){g(t);}}),r.command("remove").description("Delete an order").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(me,{id:i$1});i(`Order ${i$1} deleted`),h$1(e,{deleted:t.deleteMovethewheelsOrder});}catch(t){g(t);}}),r.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PENDING|CONFIRMED|ASSIGNED|PICKED_UP|IN_TRANSIT|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED|CANCELLED").option("--notes <s>","Status notes").option("--location <json>","Location JSON").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={status:e.status.toUpperCase()};e.notes&&(t.notes=e.notes),e.location&&(t.location=u("location",e.location));let n=await b$1(le,{id:i$1,input:t});i(`Order status set to ${n.updateMovethewheelsOrderStatus.status}`),h$1(e,n.updateMovethewheelsOrderStatus);}catch(t){g(t);}}),r.command("stats").description("Order stats (total, pending, in-transit, delivered, \u2026)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(fe);h$1(i,e.orderStats);}catch(e){g(e);}});}function ct(m){let r=m.command("shipments").description("Movethewheels shipments & tracking");r.command("list").description("List shipments").option("--order <id>","Filter by order ID").option("--customer <id>","Filter by customer ID").option("--carrier <id>","Filter by carrier ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.order&&(e.orderId=i.order),i.customer&&(e.customerId=i.customer),i.carrier&&(e.carrierId=i.carrier),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(he,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.shipments,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:t.shipments.map(n=>[p(n.id,12),n.shipmentNumber,p(n.orderId,12),n.status,n.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("get").description("Get a shipment by id (includes tracking events)").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ge,{id:i});if(!t.shipment)throw new o(`Shipment ${i} not found`);h$1(e,t.shipment);}catch(t){g(t);}}),r.command("active").description("List active deliveries (in-transit shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(ye,{pagination:h(i)});h$1(i,e.activeDeliveries,{headers:["ID","Shipment #","Order","Status","Tracking"],rows:e.activeDeliveries.map(t=>[p(t.id,12),t.shipmentNumber,p(t.orderId,12),t.status,t.trackingNumber??"-"])});}catch(e){g(e);}}),r.command("create").description("Create a shipment").requiredOption("--shipment-number <s>","Shipment number").requiredOption("--order <id>","Order ID").requiredOption("--origin <json>","Origin JSON").requiredOption("--destination <json>","Destination JSON").option("--status <s>","Status","PLANNED").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentNumber:i$1.shipmentNumber,orderId:i$1.order,origin:u("origin",i$1.origin),destination:u("destination",i$1.destination),status:(i$1.status??"PLANNED").toUpperCase()};i$1.customer&&(e.customerId=i$1.customer),i$1.carrier&&(e.carrierId=i$1.carrier),i$1.trackingNumber&&(e.trackingNumber=i$1.trackingNumber),i$1.cargoDetails&&(e.cargoDetails=u("cargo-details",i$1.cargoDetails)),i$1.estimatedDelivery&&(e.estimatedDelivery=i$1.estimatedDelivery),i$1.actualDelivery&&(e.actualDelivery=i$1.actualDelivery);let t=await b$1(Ee,{input:e});i(`Shipment created: ${t.createShipment.shipmentNumber}`),h$1(i$1,t.createShipment);}catch(e){g(e);}}),r.command("update").description("Update a shipment").argument("<id>","Shipment ID").option("--status <s>","Status").option("--customer <id>","Customer ID").option("--carrier <id>","Carrier ID").option("--tracking-number <s>","Tracking number").option("--origin <json>","Origin JSON").option("--destination <json>","Destination JSON").option("--cargo-details <json>","Cargo details JSON").option("--estimated-delivery <s>","Estimated delivery (ISO date)").option("--actual-delivery <s>","Actual delivery (ISO date)").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.status&&(t.status=e.status.toUpperCase()),e.customer!==void 0&&(t.customerId=e.customer),e.carrier!==void 0&&(t.carrierId=e.carrier),e.trackingNumber!==void 0&&(t.trackingNumber=e.trackingNumber),e.origin&&(t.origin=u("origin",e.origin)),e.destination&&(t.destination=u("destination",e.destination)),e.cargoDetails&&(t.cargoDetails=u("cargo-details",e.cargoDetails)),e.estimatedDelivery&&(t.estimatedDelivery=e.estimatedDelivery),e.actualDelivery&&(t.actualDelivery=e.actualDelivery),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(De,{id:i$1,input:t});i("Shipment updated"),h$1(e,n.updateShipment);}catch(t){g(t);}}),r.command("remove").description("Delete a shipment").argument("<id>","Shipment ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Oe,{id:i$1});i(`Shipment ${i$1} deleted`),h$1(e,{deleted:t.deleteShipment});}catch(t){g(t);}}),r.command("add-event").description("Add a tracking event to a shipment").requiredOption("--shipment <id>","Shipment ID").requiredOption("--event-type <t>","CREATED|PICKED_UP|IN_TRANSIT|ARRIVED|DEPARTED|OUT_FOR_DELIVERY|DELIVERED|FAILED|RETURNED").option("--details <s>","Event details").option("--location <json>","Location JSON").option("--timestamp <s>","Timestamp (ISO date)").option("-f, --format <format>","Output format").action(async i$1=>{try{let e={shipmentId:i$1.shipment,eventType:i$1.eventType.toUpperCase()};i$1.details&&(e.details=i$1.details),i$1.location&&(e.location=u("location",i$1.location)),i$1.timestamp&&(e.timestamp=i$1.timestamp);let t=await b$1(Re,{input:e});i(`Tracking event added: ${t.addTrackingEvent.eventType}`),h$1(i$1,t.addTrackingEvent);}catch(e){g(e);}}),r.command("tracking").description("List tracking events for a shipment").argument("<shipmentId>","Shipment ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(ve,{shipmentId:i,pagination:h(e)});h$1(e,t.shipmentTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.shipmentTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("order-tracking").description("List tracking events for an order").argument("<orderId>","Order ID").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(Ie,{orderId:i,pagination:h(e)});h$1(e,t.orderTracking,{headers:["ID","Event","Details","Timestamp"],rows:t.orderTracking.map(n=>[p(n.id,12),n.eventType,p(n.details??"-",30),n.timestamp])});}catch(t){g(t);}}),r.command("alerts").description("List tracking alerts (delayed / at-risk shipments)").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(we,{pagination:h(i)});h$1(i,e.trackingAlerts,{headers:["Type","Shipment #","Message"],rows:e.trackingAlerts.map(t=>[t.alertType,t.shipmentNumber,p(t.message,40)])});}catch(e){g(e);}});}function pt(m){let r=m.command("routes").description("Movethewheels delivery routes");r.command("list").description("List routes").option("--driver <id>","Filter by driver ID").option("--vehicle <id>","Filter by vehicle ID").option("--shipment <id>","Filter by shipment ID").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async i=>{try{let e={};i.driver&&(e.driverId=i.driver),i.vehicle&&(e.vehicleId=i.vehicle),i.shipment&&(e.shipmentId=i.shipment),i.status&&(e.status=i.status.toUpperCase()),i.query&&(e.search=i.query);let t=await b$1(Te,{filter:Object.keys(e).length?e:void 0,pagination:h(i)});h$1(i,t.routes,{headers:["ID","Name","Status","Driver","Vehicle","Distance"],rows:t.routes.map(n=>[p(n.id,12),n.name,n.status,n.driverId?p(n.driverId,12):"-",n.vehicleId?p(n.vehicleId,12):"-",n.estimatedDistance!=null?String(n.estimatedDistance):"-"])});}catch(e){g(e);}}),r.command("get").description("Get a route by id").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await b$1(be,{id:i});if(!t.route)throw new o(`Route ${i} not found`);h$1(e,t.route);}catch(t){g(t);}}),r.command("create").description("Create a route").requiredOption("--name <name>","Route name").requiredOption("--waypoints <json>","Waypoints JSON").option("--status <s>","Status","PLANNED").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async i$1=>{try{let e={name:i$1.name,waypoints:u("waypoints",i$1.waypoints),status:(i$1.status??"PLANNED").toUpperCase()};i$1.driver&&(e.driverId=i$1.driver),i$1.vehicle&&(e.vehicleId=i$1.vehicle),i$1.shipment&&(e.shipmentId=i$1.shipment),i$1.estimatedDistance!==void 0&&(e.estimatedDistance=i$1.estimatedDistance),i$1.estimatedDuration!==void 0&&(e.estimatedDuration=i$1.estimatedDuration),i$1.actualDistance!==void 0&&(e.actualDistance=i$1.actualDistance),i$1.actualDuration!==void 0&&(e.actualDuration=i$1.actualDuration),i$1.fuelCost!==void 0&&(e.fuelCost=i$1.fuelCost);let t=await b$1(Ce,{input:e});i(`Route created: ${t.createRoute.name}`),h$1(i$1,t.createRoute);}catch(e){g(e);}}),r.command("update").description("Update a route").argument("<id>","Route ID").option("--name <name>","Route name").option("--status <s>","Status").option("--driver <id>","Driver ID").option("--vehicle <id>","Vehicle ID").option("--shipment <id>","Shipment ID").option("--waypoints <json>","Waypoints JSON").option("--estimated-distance <n>","Estimated distance",l).option("--estimated-duration <n>","Estimated duration",l).option("--actual-distance <n>","Actual distance",l).option("--actual-duration <n>","Actual duration",l).option("--fuel-cost <n>","Fuel cost",l).option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.status&&(t.status=e.status.toUpperCase()),e.driver!==void 0&&(t.driverId=e.driver),e.vehicle!==void 0&&(t.vehicleId=e.vehicle),e.shipment!==void 0&&(t.shipmentId=e.shipment),e.waypoints&&(t.waypoints=u("waypoints",e.waypoints)),e.estimatedDistance!==void 0&&(t.estimatedDistance=e.estimatedDistance),e.estimatedDuration!==void 0&&(t.estimatedDuration=e.estimatedDuration),e.actualDistance!==void 0&&(t.actualDistance=e.actualDistance),e.actualDuration!==void 0&&(t.actualDuration=e.actualDuration),e.fuelCost!==void 0&&(t.fuelCost=e.fuelCost),!Object.keys(t).length)throw new o("No updates specified");let n=await b$1(Se,{id:i$1,input:t});i("Route updated"),h$1(e,n.updateRoute);}catch(t){g(t);}}),r.command("remove").description("Delete a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ae,{id:i$1});i(`Route ${i$1} deleted`),h$1(e,{deleted:t.deleteRoute});}catch(t){g(t);}}),r.command("optimize").description("Optimize a route").argument("<id>","Route ID").option("-f, --format <format>","Output format").action(async(i$1,e)=>{try{let t=await b$1(Ne,{id:i$1});i("Route optimized"),h$1(e,t.optimizeRoute);}catch(t){g(t);}});}function ut(m){let r=m.command("marketplace").description("Movethewheels logistics marketplace (providers & offerings)"),i$1=r.command("providers").description("Service providers");i$1.command("list").description("List service providers").option("--type <t>","Filter by provider type").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.type&&(n.type=t.type),t.active!==void 0&&(n.isActive=t.active),t.query&&(n.search=t.query);let d=await b$1($e,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceProviders,{headers:["ID","Name","Type","Active","Verified","Rating"],rows:d.serviceProviders.map(y=>[p(y.id,12),y.name,y.type,y.isActive?"yes":"no",y.isVerified?"yes":"no",y.rating!=null?String(y.rating):"-"])});}catch(n){g(n);}}),i$1.command("get").description("Get a service provider by id (includes offerings)").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(ke,{id:t});if(!d.serviceProvider)throw new o(`Provider ${t} not found`);h$1(n,d.serviceProvider);}catch(d){g(d);}}),i$1.command("create").description("Create a service provider").requiredOption("--name <name>","Provider name").requiredOption("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true",true).option("--verified <bool>","Verified (true|false)",t=>t==="true",false).option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,isActive:t.active??!0,isVerified:t.verified??!1};t.description&&(n.description=t.description),t.rating!==void 0&&(n.rating=t.rating),t.contactInfo&&(n.contactInfo=u("contact-info",t.contactInfo)),t.services&&(n.services=u("services",t.services));let d=await b$1(Pe,{input:n});i(`Provider created: ${d.createServiceProvider.name}`),h$1(t,d.createServiceProvider);}catch(n){g(n);}}),i$1.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--type <t>","Provider type").option("--description <s>","Description").option("--rating <n>","Rating",l).option("--active <bool>","Active (true|false)",t=>t==="true").option("--verified <bool>","Verified (true|false)",t=>t==="true").option("--contact-info <json>","Contact info JSON").option("--services <json>","Services JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.type&&(d.type=n.type),n.description!==void 0&&(d.description=n.description),n.rating!==void 0&&(d.rating=n.rating),n.active!==void 0&&(d.isActive=n.active),n.verified!==void 0&&(d.isVerified=n.verified),n.contactInfo&&(d.contactInfo=u("contact-info",n.contactInfo)),n.services&&(d.services=u("services",n.services)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(_e,{id:t,input:d});i("Provider updated"),h$1(n,y.updateServiceProvider);}catch(d){g(d);}}),i$1.command("remove").description("Delete a service provider").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Me,{id:t});i(`Provider ${t} deleted`),h$1(n,{deleted:d.deleteServiceProvider});}catch(d){g(d);}});let e=r.command("offerings").description("Service offerings");e.command("list").description("List service offerings").option("--provider <id>","Filter by provider ID").option("--category <c>","Filter by category").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.provider&&(n.providerId=t.provider),t.category&&(n.category=t.category),t.query&&(n.search=t.query);let d=await b$1(Le,{filter:Object.keys(n).length?n:void 0,pagination:h(t)});h$1(t,d.serviceOfferings,{headers:["ID","Name","Provider","Category","Price","Currency"],rows:d.serviceOfferings.map(y=>[p(y.id,12),y.name,p(y.providerId,12),y.category??"-",String(y.price),y.currency])});}catch(n){g(n);}}),e.command("get").description("Get a service offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(Ue,{id:t});if(!d.serviceOffering)throw new o(`Offering ${t} not found`);h$1(n,d.serviceOffering);}catch(d){g(d);}}),e.command("create").description("Create a service offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--price <n>","Price",l).option("--description <s>","Description").option("--category <c>","Category").option("--currency <c>","Currency","USD").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async t=>{try{let n={providerId:t.provider,name:t.name,price:t.price,currency:t.currency??"USD"};t.description&&(n.description=t.description),t.category&&(n.category=t.category),t.availability&&(n.availability=u("availability",t.availability));let d=await b$1(Ve,{input:n});i(`Offering created: ${d.createServiceOffering.name}`),h$1(t,d.createServiceOffering);}catch(n){g(n);}}),e.command("update").description("Update a service offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--category <c>","Category").option("--price <n>","Price",l).option("--currency <c>","Currency").option("--availability <json>","Availability JSON").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d={};if(n.name&&(d.name=n.name),n.description!==void 0&&(d.description=n.description),n.category!==void 0&&(d.category=n.category),n.price!==void 0&&(d.price=n.price),n.currency&&(d.currency=n.currency),n.availability&&(d.availability=u("availability",n.availability)),!Object.keys(d).length)throw new o("No updates specified");let y=await b$1(xe,{id:t,input:d});i("Offering updated"),h$1(n,y.updateServiceOffering);}catch(d){g(d);}}),e.command("remove").description("Delete a service offering").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let d=await b$1(qe,{id:t});i(`Offering ${t} deleted`),h$1(n,{deleted:d.deleteServiceOffering});}catch(d){g(d);}});}function mt(m){let r=m.command("reports").description("Movethewheels reports & data import/export");r.command("list").description("List reports").option("--type <t>","Filter by report type").option("--status <s>","Filter by status").option("--query <q>","Free-text search").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.type&&(t.type=e.type),e.status&&(t.status=e.status),e.query&&(t.search=e.query);let n=await b$1(je,{filter:Object.keys(t).length?t:void 0,pagination:h(e)});h$1(e,n.movethewheelsReports,{headers:["ID","Name","Type","Status","Schedule","Last Generated"],rows:n.movethewheelsReports.map(d=>[p(d.id,12),d.name,d.type,d.status,d.schedule??"-",d.lastGenerated??"-"])});}catch(t){g(t);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(Fe,{id:e});if(!n.movethewheelsReport)throw new o(`Report ${e} not found`);h$1(t,n.movethewheelsReport);}catch(n){g(n);}}),r.command("create").description("Create a report").requiredOption("--name <name>","Report name").requiredOption("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status","DRAFT").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={name:e.name,type:e.type,status:e.status??"DRAFT"};e.description&&(t.description=e.description),e.schedule&&(t.schedule=e.schedule),e.configuration&&(t.configuration=u("configuration",e.configuration));let n=await b$1(We,{input:t});i(`Report created: ${n.createMovethewheelsReport.name}`),h$1(e,n.createMovethewheelsReport);}catch(t){g(t);}}),r.command("update").description("Update a report").argument("<id>","Report ID").option("--name <name>","Report name").option("--type <t>","Report type").option("--description <s>","Description").option("--status <s>","Status").option("--schedule <s>","Schedule (cron-like)").option("--configuration <json>","Configuration JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.type&&(n.type=t.type),t.description!==void 0&&(n.description=t.description),t.status&&(n.status=t.status),t.schedule!==void 0&&(n.schedule=t.schedule),t.configuration&&(n.configuration=u("configuration",t.configuration)),!Object.keys(n).length)throw new o("No updates specified");let d=await b$1(Ge,{id:e,input:n});i("Report updated"),h$1(t,d.updateMovethewheelsReport);}catch(n){g(n);}}),r.command("remove").description("Delete a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n=await b$1(He,{id:e});i(`Report ${e} deleted`),h$1(t,{deleted:n.deleteMovethewheelsReport});}catch(n){g(n);}}),r.command("generate").description("Generate a report run").argument("<id>","Report ID").option("--parameters <json>","Parameters JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let n={reportId:e};t.parameters&&(n.parameters=u("parameters",t.parameters));let d=await b$1(Je,{input:n});i("Report generated"),h$1(t,d.generateMovethewheelsReport);}catch(n){g(n);}}),r.command("export").description("Export resource data").requiredOption("--resource <r>","Resource to export").option("--export-format <f>","Export format","json").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,format:e.exportFormat??"json"},n=await b$1(ze,{input:t});i("Data exported"),h$1(e,n.exportData);}catch(t){g(t);}}),r.command("import").description("Import resource data").requiredOption("--resource <r>","Resource to import").requiredOption("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={resource:e.resource,payload:u("payload",e.payload)},n=await b$1(Ye,{input:t});i("Data imported"),h$1(e,n.importData);}catch(t){g(t);}});let i$1=m.command("settings").description("Movethewheels module settings");i$1.command("get").description("Get module settings").option("-f, --format <format>","Output format").action(async e=>{try{let t=await b$1(Be);h$1(e,t.moduleSettings);}catch(t){g(t);}}),i$1.command("update").description("Update module settings preferences").requiredOption("--preferences <json>","Preferences JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={preferences:u("preferences",e.preferences)},n=await b$1(Ke,{input:t});i("Module settings updated"),h$1(e,n.updateModuleSettings);}catch(t){g(t);}});}function lt(m){let r=m.command("analytics").description("Movethewheels analytics & dashboards");r.command("dashboard").description("Dashboard metrics (orders, deliveries, revenue, fleet, low stock)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Qe);h$1(i,e.dashboardMetrics);}catch(e){g(e);}}),r.command("trends").description("Analytics time series (order, revenue, delivery trends)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Ze);h$1(i,e.analytics);}catch(e){g(e);}}),r.command("finance").description("Finance metrics (revenue, fuel cost, open invoices)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(Xe);h$1(i,e.financeMetrics);}catch(e){g(e);}}),r.command("fleet").description("Fleet stats (vehicles & drivers by status)").option("-f, --format <format>","Output format").action(async i=>{try{let e=await b$1(et);h$1(i,e.fleetStats);}catch(e){g(e);}});}var ft={id:"movethewheels",version:"1.0.0",displayName:"Movethewheels",dependsOn:["auth","workspaces"],register(m,r){a(r);let i=m.command("movethewheels").description("Movethewheels logistics & fleet operations");tt(i),it(i),nt(i),rt(i),at(i),st(i),dt(i),ct(i),pt(i),ut(i),mt(i),lt(i);}},yi=ft;export{yi as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/cli-sdk",
3
- "version": "2026.703.1",
3
+ "version": "2026.731.1",
4
4
  "description": "Modular CLI SDK shared across all Burdenoff product CLIs (vibecontrols, botlit, fluidgrids, bigconsole, healthybowl, devportal, workspaces). Each module exports CliModule contract; product CLIs become thin shells that pick which modules to mount.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -31,17 +31,17 @@
31
31
  "scripts": {
32
32
  "dev": "TSUP_DEV=1 tsup --watch",
33
33
  "build": "tsup",
34
- "type-check": "tsc --noEmit",
34
+ "type-check": "bash scripts/build-limits.sh tsc --noEmit",
35
35
  "lint": "eslint src --fix",
36
36
  "lint:check": "eslint src",
37
37
  "lint:sanity": "if [ \"${CI:-}\" = \"true\" ]; then bun run lint:check; else bun run lint:check -- --cache --cache-location .eslintcache; fi",
38
38
  "format": "prettier --write \"src/**/*.{ts,js,json,md}\" \"tests/**/*.{ts,js}\"",
39
39
  "format:check": "prettier --check \"src/**/*.{ts,js,json,md}\" \"tests/**/*.{ts,js}\"",
40
- "test": "vitest run",
40
+ "test": "bash scripts/build-limits.sh vitest run",
41
41
  "test:watch": "vitest",
42
- "test:coverage": "vitest run --coverage",
42
+ "test:coverage": "bash scripts/build-limits.sh vitest run --coverage",
43
43
  "clean": "rimraf dist .eslintcache",
44
- "sanity": "bun run format:check && bun run lint:sanity && bun run type-check && bun run build && bun run test",
44
+ "sanity": "bash scripts/build-limits.sh --gate bash -c 'bun run format:check && bun run lint:sanity && bun run type-check && bun run build && bun run test'",
45
45
  "prepublishOnly": "bun run clean && bun run build"
46
46
  },
47
47
  "keywords": [