@burdenoff/cli-sdk 2026.1101.1 → 2026.1102.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/chunk-O6UCQ5IT.js +1 -0
  2. package/dist/{chunk-REBBLQFS.js → chunk-ZGT7IIOP.js} +494 -522
  3. package/dist/modules/adaptercloud/index.cjs +4 -4
  4. package/dist/modules/adaptercloud/index.js +2 -2
  5. package/dist/modules/artistrybase/index.js +2 -2
  6. package/dist/modules/assethandler/index.cjs +2 -2
  7. package/dist/modules/assethandler/index.js +2 -2
  8. package/dist/modules/atheletebridge/index.cjs +8 -8
  9. package/dist/modules/atheletebridge/index.js +2 -2
  10. package/dist/modules/auth/index.cjs +37 -37
  11. package/dist/modules/auth/index.js +33 -29
  12. package/dist/modules/billing/index.cjs +18 -18
  13. package/dist/modules/billing/index.js +22 -22
  14. package/dist/modules/brainyrich/index.cjs +44 -28
  15. package/dist/modules/brainyrich/index.js +47 -31
  16. package/dist/modules/buildmyiq/index.js +2 -2
  17. package/dist/modules/channels/index.cjs +3 -3
  18. package/dist/modules/channels/index.js +2 -2
  19. package/dist/modules/collabkin/index.cjs +4 -4
  20. package/dist/modules/collabkin/index.js +2 -2
  21. package/dist/modules/comradecircle/index.cjs +6 -6
  22. package/dist/modules/comradecircle/index.js +2 -2
  23. package/dist/modules/conversations/index.cjs +7 -7
  24. package/dist/modules/conversations/index.js +2 -2
  25. package/dist/modules/coolandlovely/index.cjs +2 -2
  26. package/dist/modules/coolandlovely/index.js +2 -2
  27. package/dist/modules/cosmicintersection/index.cjs +6 -6
  28. package/dist/modules/cosmicintersection/index.js +2 -2
  29. package/dist/modules/crewfoundry/index.js +2 -2
  30. package/dist/modules/devportal/index.cjs +40 -34
  31. package/dist/modules/devportal/index.js +49 -43
  32. package/dist/modules/ecoimpacthub/index.cjs +5 -5
  33. package/dist/modules/ecoimpacthub/index.js +2 -2
  34. package/dist/modules/eventfullymanaged/index.cjs +12 -12
  35. package/dist/modules/eventfullymanaged/index.js +2 -2
  36. package/dist/modules/export/index.cjs +4 -4
  37. package/dist/modules/export/index.js +2 -2
  38. package/dist/modules/files/index.cjs +3 -3
  39. package/dist/modules/files/index.js +4 -4
  40. package/dist/modules/fluidgrids/index.cjs +16 -16
  41. package/dist/modules/fluidgrids/index.js +3 -3
  42. package/dist/modules/ggnomad/index.cjs +4 -4
  43. package/dist/modules/ggnomad/index.js +2 -2
  44. package/dist/modules/govcitizenhub/index.cjs +4 -4
  45. package/dist/modules/govcitizenhub/index.js +2 -2
  46. package/dist/modules/groups/index.cjs +4 -4
  47. package/dist/modules/groups/index.js +2 -2
  48. package/dist/modules/headshotmarketing/index.js +2 -2
  49. package/dist/modules/hookmovies/index.cjs +6 -6
  50. package/dist/modules/hookmovies/index.js +2 -2
  51. package/dist/modules/housingvista/index.cjs +3 -3
  52. package/dist/modules/housingvista/index.js +2 -2
  53. package/dist/modules/integrations/index.cjs +5 -5
  54. package/dist/modules/integrations/index.js +2 -2
  55. package/dist/modules/intelwatchtower/index.cjs +5 -5
  56. package/dist/modules/intelwatchtower/index.js +2 -2
  57. package/dist/modules/kadaikodi/index.cjs +2 -2
  58. package/dist/modules/kadaikodi/index.js +2 -2
  59. package/dist/modules/labsofscience/index.cjs +3 -3
  60. package/dist/modules/labsofscience/index.js +2 -2
  61. package/dist/modules/manufacturedops/index.cjs +2 -2
  62. package/dist/modules/manufacturedops/index.js +2 -2
  63. package/dist/modules/movethewheels/index.js +2 -2
  64. package/dist/modules/notifications/index.cjs +2 -2
  65. package/dist/modules/notifications/index.js +2 -2
  66. package/dist/modules/organizations/index.js +2 -2
  67. package/dist/modules/planmagnet/index.js +2 -2
  68. package/dist/modules/products/index.cjs +4 -4
  69. package/dist/modules/products/index.js +2 -2
  70. package/dist/modules/proserviceworld/index.cjs +2 -2
  71. package/dist/modules/proserviceworld/index.js +2 -2
  72. package/dist/modules/rbac/index.js +2 -2
  73. package/dist/modules/sandbox/index.cjs +32 -51
  74. package/dist/modules/sandbox/index.js +1 -1
  75. package/dist/modules/scheduler/index.cjs +2 -2
  76. package/dist/modules/scheduler/index.js +2 -2
  77. package/dist/modules/security/index.cjs +3 -3
  78. package/dist/modules/security/index.js +2 -2
  79. package/dist/modules/semanticfed/index.cjs +3 -3
  80. package/dist/modules/semanticfed/index.js +2 -2
  81. package/dist/modules/store/index.cjs +46 -40
  82. package/dist/modules/store/index.js +45 -39
  83. package/dist/modules/subscriberbot/index.cjs +1 -1
  84. package/dist/modules/subscriberbot/index.js +2 -2
  85. package/dist/modules/support/index.cjs +2 -2
  86. package/dist/modules/support/index.js +2 -2
  87. package/dist/modules/tags/index.js +2 -2
  88. package/dist/modules/technospam/index.cjs +2 -2
  89. package/dist/modules/technospam/index.js +2 -2
  90. package/dist/modules/theculturepost/index.js +2 -2
  91. package/dist/modules/theglobalfuel/index.cjs +2 -2
  92. package/dist/modules/theglobalfuel/index.js +2 -2
  93. package/dist/modules/timecampus/index.js +2 -2
  94. package/dist/modules/tours/index.cjs +2 -2
  95. package/dist/modules/tours/index.js +2 -2
  96. package/dist/modules/vibecontrols/index.cjs +573 -577
  97. package/dist/modules/vibecontrols/index.js +5 -4
  98. package/dist/modules/workspaces/index.cjs +4 -4
  99. package/dist/modules/workspaces/index.js +2 -2
  100. package/package.json +1 -1
  101. package/dist/chunk-W4JZR7RJ.js +0 -1
@@ -30,11 +30,11 @@
30
30
  areaHectares updatedAt
31
31
  }
32
32
  }
33
- `,_=`
33
+ `,x=`
34
34
  mutation EcoArchiveSite($id: ID!) {
35
35
  ecoArchiveSite(id: $id)
36
36
  }
37
- `,x=`
37
+ `,_=`
38
38
  query EcoListSensors($siteId: ID, $kind: EcoSensorKind, $status: EcoSensorStatus) {
39
39
  ecoListSensors(siteId: $siteId, kind: $kind, status: $status) {
40
40
  id siteId name kind status unit hardwareId installedAt lastReadingAt createdAt
@@ -153,14 +153,14 @@
153
153
  pageInfo { cursor hasMore }
154
154
  }
155
155
  }
156
- `,W=`
156
+ `,B=`
157
157
  mutation EcoRecordObservation($input: EcoRecordObservationInput!) {
158
158
  ecoRecordObservation(input: $input) {
159
159
  id speciesId siteId observerId method count latitude longitude observedAt
160
160
  notes createdAt
161
161
  }
162
162
  }
163
- `,B=`
163
+ `,W=`
164
164
  query EcoHabitatProject($id: ID!) {
165
165
  ecoHabitatProject(id: $id) {
166
166
  id name description siteId managerId status targetHectares budgetAmount
@@ -302,4 +302,4 @@
302
302
  query EcoHealth {
303
303
  ecoHealth
304
304
  }
305
- `;function m(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new l(`Expected an integer but got "${o}"`);return r}function u(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new l(`Expected a number but got "${o}"`);return r}function g(o){let r={};return o.limit!==void 0&&(r.limit=o.limit),o.offset!==void 0&&(r.offset=o.offset),Object.keys(r).length?r:void 0}function mt(o){let r=o.command("sites").description("EcoImpactHub monitored sites");r.command("list").description("List sites").option("--status <s>","ACTIVE|ARCHIVED|MONITORING_PAUSED").option("--type <t>","FACILITY|FOREST|WETLAND|...").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(w,{status:t.status?t.status.toUpperCase():void 0,type:t.type?t.type.toUpperCase():void 0,pagination:g(t)});s(t,e.ecoListSites.items,{headers:["ID","Name","Type","Status","Country","Hectares"],rows:e.ecoListSites.items.map(n=>[d(n.id,12),n.name,n.type,n.status,n.country??"-",n.areaHectares!=null?String(n.areaHectares):"-"])});}catch(e){i(e);}}),r.command("get").description("Get a site by id").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(R,{id:t});if(!n.ecoSite)throw new l(`Site ${t} not found`);s(e,n.ecoSite);}catch(n){i(n);}}),r.command("create").description("Create a site").requiredOption("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type","FACILITY").option("--status <s>","Site status","ACTIVE").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",u).option("--longitude <n>","Longitude",u).option("--area-hectares <n>","Area (hectares)",u).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,type:(t.type??"FACILITY").toUpperCase(),status:(t.status??"ACTIVE").toUpperCase()};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.country&&(e.country=t.country),t.region&&(e.region=t.region),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.areaHectares!==void 0&&(e.areaHectares=t.areaHectares);let n=await a(v,{input:e});c(`Site created: ${n.ecoCreateSite.name}`),s(t,n.ecoCreateSite);}catch(e){i(e);}}),r.command("update").description("Update a site").argument("<id>","Site ID").option("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type").option("--status <s>","Site status").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",u).option("--longitude <n>","Longitude",u).option("--area-hectares <n>","Area (hectares)",u).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.code&&(n.code=e.code),e.description!==void 0&&(n.description=e.description),e.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.country&&(n.country=e.country),e.region&&(n.region=e.region),e.latitude!==void 0&&(n.latitude=e.latitude),e.longitude!==void 0&&(n.longitude=e.longitude),e.areaHectares!==void 0&&(n.areaHectares=e.areaHectares),!Object.keys(n).length)throw new l("No updates specified");let S=await a(k,{id:t,input:n});c("Site updated"),s(e,S.ecoUpdateSite);}catch(n){i(n);}}),r.command("archive").description("Archive a site").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});c(n.ecoArchiveSite?"Site archived":"Site not archived"),s(e,{archived:n.ecoArchiveSite});}catch(n){i(n);}});}function lt(o){let r=o.command("sensors").description("EcoImpactHub site sensors");r.command("list").description("List sensors").option("--site <id>","Filter by site ID").option("--kind <k>","WATER_QUALITY|AIR_QUALITY|SOIL|...").option("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(x,{siteId:t.site,kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});s(t,e.ecoListSensors,{headers:["ID","Name","Kind","Status","Unit","Last Reading"],rows:e.ecoListSensors.map(n=>[d(n.id,12),n.name,n.kind,n.status,n.unit??"-",E(n.lastReadingAt)])});}catch(e){i(e);}}),r.command("create").description("Create a sensor").requiredOption("--site <id>","Site ID").requiredOption("--name <name>","Sensor name").option("--kind <k>","Sensor kind","MANUAL").option("--status <s>","Sensor status","ONLINE").option("--unit <u>","Measurement unit").option("--hardware-id <id>","Hardware ID").option("--installed-at <iso>","Install date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,name:t.name,kind:(t.kind??"MANUAL").toUpperCase(),status:(t.status??"ONLINE").toUpperCase()};t.unit&&(e.unit=t.unit),t.hardwareId&&(e.hardwareId=t.hardwareId),t.installedAt&&(e.installedAt=t.installedAt);let n=await a(D,{input:e});c(`Sensor created: ${n.ecoCreateSensor.name}`),s(t,n.ecoCreateSensor);}catch(e){i(e);}}),r.command("set-status").description("Update a sensor's operational status").argument("<id>","Sensor ID").requiredOption("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t,status:e.status.toUpperCase()});c(`Sensor status set to ${n.ecoSetSensorStatus.status}`),s(e,n.ecoSetSensorStatus);}catch(n){i(n);}});}function gt(o){let r=o.command("thresholds").description("EcoImpactHub alert thresholds");r.command("list").description("List alert thresholds").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{siteId:t.site});s(t,e.ecoListThresholds,{headers:["ID","Parameter","Unit","Direction","Severity","Active"],rows:e.ecoListThresholds.map(n=>[d(n.id,12),n.parameter,n.unit,n.direction,n.severity,n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("create").description("Create an alert threshold").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--unit <u>","Unit").option("--direction <d>","ABOVE|BELOW|OUTSIDE_RANGE","ABOVE").option("--severity <s>","INFO|WARNING|CRITICAL","WARNING").option("--min-value <n>","Minimum value",u).option("--max-value <n>","Maximum value",u).option("--limit-value <n>","Limit value",u).option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,unit:t.unit,direction:(t.direction??"ABOVE").toUpperCase(),severity:(t.severity??"WARNING").toUpperCase()};t.minValue!==void 0&&(e.minValue=t.minValue),t.maxValue!==void 0&&(e.maxValue=t.maxValue),t.limitValue!==void 0&&(e.limitValue=t.limitValue);let n=await a(P,{input:e});c(`Threshold created for ${n.ecoCreateThreshold.parameter}`),s(t,n.ecoCreateThreshold);}catch(e){i(e);}}),r.command("set-active").description("Activate or deactivate a threshold").argument("<id>","Threshold ID").requiredOption("--active <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(N,{id:t,isActive:e.active});c(n.ecoSetThresholdActive.isActive?"Threshold activated":"Threshold disabled"),s(e,n.ecoSetThresholdActive);}catch(n){i(n);}});}function ft(o){let r=o.command("measurements").description("EcoImpactHub sensor measurements");r.command("list").description("List measurements").option("--site <id>","Filter by site ID").option("--sensor <id>","Filter by sensor ID").option("--parameter <p>","Filter by parameter").option("--breaches-only","Only threshold breaches").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(H,{siteId:t.site,sensorId:t.sensor,parameter:t.parameter,breachesOnly:t.breachesOnly?!0:void 0,pagination:g(t)});s(t,e.ecoListMeasurements.items,{headers:["ID","Parameter","Value","Unit","Source","Breach","Recorded"],rows:e.ecoListMeasurements.items.map(n=>[d(n.id,12),n.parameter,String(n.value),n.unit,n.source,n.isBreach?"yes":"no",E(n.recordedAt)])});}catch(e){i(e);}}),r.command("record").description("Record a measurement").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--value <n>","Measured value",u).requiredOption("--unit <u>","Unit").requiredOption("--recorded-at <iso>","Recorded-at timestamp (ISO)").option("--sensor <id>","Sensor ID").option("--source <s>","SENSOR|MANUAL|IMPORT|SATELLITE|CALCULATED","SENSOR").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,value:t.value,unit:t.unit,recordedAt:t.recordedAt,source:(t.source??"SENSOR").toUpperCase()};t.sensor&&(e.sensorId=t.sensor),t.notes&&(e.notes=t.notes);let n=await a(q,{input:e});c(n.ecoRecordMeasurement.isBreach?"Measurement recorded (threshold breach!)":"Measurement recorded"),s(t,n.ecoRecordMeasurement);}catch(e){i(e);}});}function Et(o){let r=o.command("species").description("EcoImpactHub tracked species");r.command("list").description("List species").option("--taxon-group <g>","MAMMAL|BIRD|REPTILE|...").option("--conservation-status <s>","LEAST_CONCERN|ENDANGERED|...").option("--priority-only","Only priority species").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(M,{taxonGroup:t.taxonGroup?t.taxonGroup.toUpperCase():void 0,conservationStatus:t.conservationStatus?t.conservationStatus.toUpperCase():void 0,priorityOnly:t.priorityOnly?!0:void 0,pagination:g(t)});s(t,e.ecoListSpecies.items,{headers:["ID","Common Name","Scientific","Taxon","Status","Priority"],rows:e.ecoListSpecies.items.map(n=>[d(n.id,12),n.commonName,n.scientificName??"-",n.taxonGroup,n.conservationStatus,n.isPriority?"yes":"no"])});}catch(e){i(e);}}),r.command("get").description("Get a species by id").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(U,{id:t});if(!n.ecoSpecies)throw new l(`Species ${t} not found`);s(e,n.ecoSpecies);}catch(n){i(n);}}),r.command("create").description("Create a species record").requiredOption("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group","OTHER").option("--conservation-status <s>","Conservation status","NOT_EVALUATED").option("--priority","Mark as priority species").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={commonName:t.commonName,taxonGroup:(t.taxonGroup??"OTHER").toUpperCase(),conservationStatus:(t.conservationStatus??"NOT_EVALUATED").toUpperCase(),isPriority:t.priority??!1};t.scientificName&&(e.scientificName=t.scientificName),t.description&&(e.description=t.description);let n=await a(V,{input:e});c(`Species created: ${n.ecoCreateSpecies.commonName}`),s(t,n.ecoCreateSpecies);}catch(e){i(e);}}),r.command("update").description("Update a species record").argument("<id>","Species ID").option("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group").option("--conservation-status <s>","Conservation status").option("--priority <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.commonName&&(n.commonName=e.commonName),e.scientificName&&(n.scientificName=e.scientificName),e.taxonGroup&&(n.taxonGroup=e.taxonGroup.toUpperCase()),e.conservationStatus&&(n.conservationStatus=e.conservationStatus.toUpperCase()),e.priority!==void 0&&(n.isPriority=e.priority),e.description!==void 0&&(n.description=e.description),!Object.keys(n).length)throw new l("No updates specified");let S=await a(F,{id:t,input:n});c("Species updated"),s(e,S.ecoUpdateSpecies);}catch(n){i(n);}}),r.command("archive").description("Archive a species record").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(G,{id:t});c(n.ecoArchiveSpecies?"Species archived":"Species not archived"),s(e,{archived:n.ecoArchiveSpecies});}catch(n){i(n);}});}function Ct(o){let r=o.command("observations").description("EcoImpactHub species observations");r.command("list").description("List observations").option("--species <id>","Filter by species ID").option("--site <id>","Filter by site ID").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(j,{speciesId:t.species,siteId:t.site,pagination:g(t)});s(t,e.ecoListObservations.items,{headers:["ID","Species","Site","Method","Count","Observed"],rows:e.ecoListObservations.items.map(n=>[d(n.id,12),d(n.speciesId,12),n.siteId?d(n.siteId,12):"-",n.method,String(n.count),E(n.observedAt)])});}catch(e){i(e);}}),r.command("record").description("Record a species observation").requiredOption("--species <id>","Species ID").requiredOption("--observed-at <iso>","Observed-at timestamp (ISO)").option("--site <id>","Site ID").option("--method <m>","DIRECT_SIGHTING|CAMERA_TRAP|ACOUSTIC|...","DIRECT_SIGHTING").option("--count <n>","Individual count",m).option("--latitude <n>","Latitude",u).option("--longitude <n>","Longitude",u).option("--evidence-file <id>","Evidence file ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={speciesId:t.species,observedAt:t.observedAt,method:(t.method??"DIRECT_SIGHTING").toUpperCase()};t.site&&(e.siteId=t.site),t.count!==void 0&&(e.count=t.count),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.evidenceFile&&(e.evidenceFileId=t.evidenceFile),t.notes&&(e.notes=t.notes);let n=await a(W,{input:e});c("Observation recorded"),s(t,n.ecoRecordObservation);}catch(e){i(e);}});}function yt(o){let r=o.command("habitat").description("EcoImpactHub habitat projects & restoration activities");r.command("list").description("List habitat projects").option("--status <s>","PLANNED|IN_PROGRESS|MONITORING|...").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Y,{status:t.status?t.status.toUpperCase():void 0});s(t,e.ecoListHabitatProjects,{headers:["ID","Name","Status","Target Ha","Budget","Currency"],rows:e.ecoListHabitatProjects.map(n=>[d(n.id,12),n.name,n.status,n.targetHectares!=null?String(n.targetHectares):"-",n.budgetAmount!=null?String(n.budgetAmount):"-",n.currency??"-"])});}catch(e){i(e);}}),r.command("get").description("Get a habitat project by id").argument("<id>","Project ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t});if(!n.ecoHabitatProject)throw new l(`Habitat project ${t} not found`);s(e,n.ecoHabitatProject);}catch(n){i(n);}}),r.command("create").description("Create a habitat project").requiredOption("--name <name>","Project name").option("--description <s>","Description").option("--site <id>","Site ID").option("--manager <id>","Manager user ID").option("--target-hectares <n>","Target hectares",u).option("--budget-amount <n>","Budget amount",u).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.site&&(e.siteId=t.site),t.manager&&(e.managerId=t.manager),t.targetHectares!==void 0&&(e.targetHectares=t.targetHectares),t.budgetAmount!==void 0&&(e.budgetAmount=t.budgetAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let n=await a(K,{input:e});c(`Habitat project created: ${n.ecoCreateHabitatProject.name}`),s(t,n.ecoCreateHabitatProject);}catch(e){i(e);}}),r.command("transition").description("Advance a habitat project through its lifecycle").argument("<id>","Project ID").requiredOption("--status <s>","PLANNED|IN_PROGRESS|MONITORING|COMPLETED|ON_HOLD|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t,status:e.status.toUpperCase()});c(`Project status set to ${n.ecoTransitionHabitatProject.status}`),s(e,n.ecoTransitionHabitatProject);}catch(n){i(n);}}),r.command("log-activity").description("Log a restoration activity against a project").requiredOption("--project <id>","Project ID").requiredOption("--summary <s>","Activity summary").requiredOption("--performed-at <iso>","Performed-at timestamp (ISO)").option("--type <t>","PLANTING|INVASIVE_REMOVAL|REWILDING|...","PLANTING").option("--details <s>","Details").option("--quantity <n>","Quantity",u).option("--unit <u>","Unit").option("-f, --format <format>","Output format").action(async t=>{try{let e={projectId:t.project,summary:t.summary,performedAt:t.performedAt,type:(t.type??"PLANTING").toUpperCase()};t.details&&(e.details=t.details),t.quantity!==void 0&&(e.quantity=t.quantity),t.unit&&(e.unit=t.unit);let n=await a(J,{input:e});c("Restoration activity logged"),s(t,n.ecoLogRestorationActivity);}catch(e){i(e);}});}function It(o){let r=o.command("carbon").description("EcoImpactHub carbon ledger & emission factors");r.command("list").description("List carbon ledger entries").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("--status <s>","DRAFT|RECORDED|VERIFIED|ADJUSTED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Q,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site,status:t.status?t.status.toUpperCase():void 0,pagination:g(t)});s(t,e.ecoListCarbonEntries.items,{headers:["ID","Category","Scope","Activity","CO2e kg","Status"],rows:e.ecoListCarbonEntries.items.map(n=>[d(n.id,12),n.category,n.scope,`${n.activityValue} ${n.activityUnit}`,String(n.co2eKg),n.status])});}catch(e){i(e);}}),r.command("total").description("Total CO2e (kg) recorded in the workspace").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(X,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site});c(`Total CO2e: ${e.ecoCarbonTotalKg} kg`),s(t,{totalCo2eKg:e.ecoCarbonTotalKg});}catch(e){i(e);}}),r.command("record").description("Record a carbon ledger entry").requiredOption("--category <c>","Category").requiredOption("--activity-value <n>","Activity value",u).requiredOption("--activity-unit <u>","Activity unit").requiredOption("--period-start <iso>","Period start (ISO)").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--factor <id>","Emission factor ID").option("--site <id>","Site ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,activityValue:t.activityValue,activityUnit:t.activityUnit,periodStart:t.periodStart,scope:(t.scope??"SCOPE_1").toUpperCase()};t.factor&&(e.factorId=t.factor),t.site&&(e.siteId=t.site),t.notes&&(e.notes=t.notes);let n=await a(Z,{input:e});c(`Carbon entry recorded: ${n.ecoRecordCarbonEntry.co2eKg} kg CO2e`),s(t,n.ecoRecordCarbonEntry);}catch(e){i(e);}}),r.command("verify").description("Verify a carbon ledger entry").argument("<id>","Carbon entry ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(tt,{id:t});c(`Carbon entry ${n.ecoVerifyCarbonEntry.status}`),s(e,n.ecoVerifyCarbonEntry);}catch(n){i(n);}}),r.command("list-factors").description("List emission factors").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--active-only","Only active factors").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(et,{scope:t.scope?t.scope.toUpperCase():void 0,activeOnly:t.activeOnly?!0:void 0});s(t,e.ecoListEmissionFactors,{headers:["ID","Name","Scope","Unit","kgCO2e","Year","Active"],rows:e.ecoListEmissionFactors.map(n=>[d(n.id,12),n.name,n.scope,n.activityUnit,String(n.factorKgco2e),n.validYear!=null?String(n.validYear):"-",n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("create-factor").description("Create an emission factor").requiredOption("--name <name>","Factor name").requiredOption("--activity-unit <u>","Activity unit").requiredOption("--factor-kgco2e <n>","kg CO2e per unit",u).option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--source <s>","Source").option("--valid-year <n>","Valid year",m).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,activityUnit:t.activityUnit,factorKgco2e:t.factorKgco2e,scope:(t.scope??"SCOPE_1").toUpperCase()};t.source&&(e.source=t.source),t.validYear!==void 0&&(e.validYear=t.validYear);let n=await a(nt,{input:e});c(`Emission factor created: ${n.ecoCreateEmissionFactor.name}`),s(t,n.ecoCreateEmissionFactor);}catch(e){i(e);}});}function St(o){let r=o.command("targets").description("EcoImpactHub reduction targets");r.command("list").description("List reduction targets").option("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(rt,{status:t.status?t.status.toUpperCase():void 0});s(t,e.ecoListReductionTargets,{headers:["ID","Name","Metric","Baseline","Target","Status"],rows:e.ecoListReductionTargets.map(n=>[d(n.id,12),n.name,n.metric,`${n.baselineValue} (${n.baselineYear})`,`${n.targetValue} (${n.targetYear})`,n.status])});}catch(e){i(e);}}),r.command("create").description("Create a reduction target").requiredOption("--name <name>","Target name").requiredOption("--metric <m>","Metric").requiredOption("--unit <u>","Unit").requiredOption("--baseline-value <n>","Baseline value",u).requiredOption("--baseline-year <n>","Baseline year",m).requiredOption("--target-value <n>","Target value",u).requiredOption("--target-year <n>","Target year",m).option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,metric:t.metric,unit:t.unit,baselineValue:t.baselineValue,baselineYear:t.baselineYear,targetValue:t.targetValue,targetYear:t.targetYear};t.description&&(e.description=t.description);let n=await a(ot,{input:e});c(`Reduction target created: ${n.ecoCreateReductionTarget.name}`),s(t,n.ecoCreateReductionTarget);}catch(e){i(e);}}),r.command("set-status").description("Update a reduction target status").argument("<id>","Target ID").requiredOption("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(it,{id:t,status:e.status.toUpperCase()});c(`Target status set to ${n.ecoSetReductionTargetStatus.status}`),s(e,n.ecoSetReductionTargetStatus);}catch(n){i(n);}});}function ht(o){let r=o.command("reports").description("EcoImpactHub sustainability reports");r.command("list").description("List reports").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(at,{status:t.status?t.status.toUpperCase():void 0,pagination:g(t)});s(t,e.ecoListReports.items,{headers:["ID","Title","Framework","Status","Period End","Published"],rows:e.ecoListReports.items.map(n=>[d(n.id,12),n.title,n.framework,n.status,E(n.periodEnd),E(n.publishedAt)])});}catch(e){i(e);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});if(!n.ecoReport)throw new l(`Report ${t} not found`);s(e,n.ecoReport);}catch(n){i(n);}}),r.command("create").description("Create a sustainability report").requiredOption("--title <t>","Report title").requiredOption("--period-start <iso>","Period start (ISO)").requiredOption("--period-end <iso>","Period end (ISO)").option("--framework <f>","GHG_PROTOCOL|GRI|SASB|TCFD|CDP|CUSTOM","GHG_PROTOCOL").option("--summary <s>","Summary").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,periodStart:t.periodStart,periodEnd:t.periodEnd,framework:(t.framework??"GHG_PROTOCOL").toUpperCase()};t.summary&&(e.summary=t.summary);let n=await a(ct,{input:e});c(`Report created: ${n.ecoCreateReport.title}`),s(t,n.ecoCreateReport);}catch(e){i(e);}}),r.command("add-line-item").description("Add a line item to a report").requiredOption("--report <id>","Report ID").requiredOption("--label <l>","Line item label").requiredOption("--value <n>","Value",u).requiredOption("--unit <u>","Unit").option("--category <c>","Category").option("--carbon-entry <id>","Linked carbon entry ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={reportId:t.report,label:t.label,value:t.value,unit:t.unit};t.category&&(e.category=t.category),t.carbonEntry&&(e.carbonEntryId=t.carbonEntry);let n=await a(ut,{input:e});c("Line item added"),s(t,n.ecoAddReportLineItem);}catch(e){i(e);}}),r.command("publish").description("Publish a report").argument("<id>","Report ID").option("--file <id>","Published artifact file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(pt,{id:t,fileId:e.file});c(`Report published: ${n.ecoPublishReport.title}`),s(e,n.ecoPublishReport);}catch(n){i(n);}});}function Ot(o){o.command("health").description("EcoImpactHub service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await O(dt);c(t.ecoHealth),s(r,{health:t.ecoHealth});}catch(t){i(t);}});}var Pt={id:"ecoimpacthub",version:"1.0.0",displayName:"EcoImpactHub",dependsOn:["auth","workspaces"],register(o,r){A(r);let t=o.command("ecoimpacthub").description("EcoImpactHub environmental-impact & sustainability monitoring");mt(t),lt(t),gt(t),ft(t),Et(t),Ct(t),yt(t),It(t),St(t),ht(t),Ot(t);}},Nn=Pt;module.exports=Nn;
305
+ `;function m(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new l(`Expected an integer but got "${o}"`);return r}function u(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new l(`Expected a number but got "${o}"`);return r}function g(o){let r={};return o.limit!==void 0&&(r.limit=o.limit),o.offset!==void 0&&(r.offset=o.offset),Object.keys(r).length?r:void 0}function mt(o){let r=o.command("sites").description("EcoImpactHub monitored sites");r.command("list").description("List sites").option("--status <s>","ACTIVE|ARCHIVED|MONITORING_PAUSED").option("--type <t>","FACILITY|FOREST|WETLAND|...").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(w,{status:t.status?t.status.toUpperCase():void 0,type:t.type?t.type.toUpperCase():void 0,pagination:g(t)});s(t,e.ecoListSites.items,{headers:["ID","Name","Type","Status","Country","Hectares"],rows:e.ecoListSites.items.map(n=>[d(n.id,12),n.name,n.type,n.status,n.country??"-",n.areaHectares!=null?String(n.areaHectares):"-"])});}catch(e){i(e);}}),r.command("get").description("Get a site by id").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(R,{id:t});if(!n.ecoSite)throw new l(`Site ${t} not found`);s(e,n.ecoSite);}catch(n){i(n);}}),r.command("create").description("Create a site").requiredOption("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type","FACILITY").option("--status <s>","Site status","ACTIVE").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",u).option("--longitude <n>","Longitude",u).option("--area-hectares <n>","Area (hectares)",u).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,type:(t.type??"FACILITY").toUpperCase(),status:(t.status??"ACTIVE").toUpperCase()};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.country&&(e.country=t.country),t.region&&(e.region=t.region),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.areaHectares!==void 0&&(e.areaHectares=t.areaHectares);let n=await a(v,{input:e});c(`Site created: ${n.ecoCreateSite.name}`),s(t,n.ecoCreateSite);}catch(e){i(e);}}),r.command("update").description("Update a site").argument("<id>","Site ID").option("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type").option("--status <s>","Site status").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",u).option("--longitude <n>","Longitude",u).option("--area-hectares <n>","Area (hectares)",u).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.code&&(n.code=e.code),e.description!==void 0&&(n.description=e.description),e.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.country&&(n.country=e.country),e.region&&(n.region=e.region),e.latitude!==void 0&&(n.latitude=e.latitude),e.longitude!==void 0&&(n.longitude=e.longitude),e.areaHectares!==void 0&&(n.areaHectares=e.areaHectares),!Object.keys(n).length)throw new l("No updates specified");let S=await a(k,{id:t,input:n});c("Site updated"),s(e,S.ecoUpdateSite);}catch(n){i(n);}}),r.command("archive").description("Archive a site").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(x,{id:t});c(n.ecoArchiveSite?"Site archived":"Site not archived"),s(e,{archived:n.ecoArchiveSite});}catch(n){i(n);}});}function lt(o){let r=o.command("sensors").description("EcoImpactHub site sensors");r.command("list").description("List sensors").option("--site <id>","Filter by site ID").option("--kind <k>","WATER_QUALITY|AIR_QUALITY|SOIL|...").option("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{siteId:t.site,kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});s(t,e.ecoListSensors,{headers:["ID","Name","Kind","Status","Unit","Last Reading"],rows:e.ecoListSensors.map(n=>[d(n.id,12),n.name,n.kind,n.status,n.unit??"-",E(n.lastReadingAt)])});}catch(e){i(e);}}),r.command("create").description("Create a sensor").requiredOption("--site <id>","Site ID").requiredOption("--name <name>","Sensor name").option("--kind <k>","Sensor kind","MANUAL").option("--status <s>","Sensor status","ONLINE").option("--unit <u>","Measurement unit").option("--hardware-id <id>","Hardware ID").option("--installed-at <iso>","Install date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,name:t.name,kind:(t.kind??"MANUAL").toUpperCase(),status:(t.status??"ONLINE").toUpperCase()};t.unit&&(e.unit=t.unit),t.hardwareId&&(e.hardwareId=t.hardwareId),t.installedAt&&(e.installedAt=t.installedAt);let n=await a(D,{input:e});c(`Sensor created: ${n.ecoCreateSensor.name}`),s(t,n.ecoCreateSensor);}catch(e){i(e);}}),r.command("set-status").description("Update a sensor's operational status").argument("<id>","Sensor ID").requiredOption("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t,status:e.status.toUpperCase()});c(`Sensor status set to ${n.ecoSetSensorStatus.status}`),s(e,n.ecoSetSensorStatus);}catch(n){i(n);}});}function gt(o){let r=o.command("thresholds").description("EcoImpactHub alert thresholds");r.command("list").description("List alert thresholds").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{siteId:t.site});s(t,e.ecoListThresholds,{headers:["ID","Parameter","Unit","Direction","Severity","Active"],rows:e.ecoListThresholds.map(n=>[d(n.id,12),n.parameter,n.unit,n.direction,n.severity,n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("create").description("Create an alert threshold").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--unit <u>","Unit").option("--direction <d>","ABOVE|BELOW|OUTSIDE_RANGE","ABOVE").option("--severity <s>","INFO|WARNING|CRITICAL","WARNING").option("--min-value <n>","Minimum value",u).option("--max-value <n>","Maximum value",u).option("--limit-value <n>","Limit value",u).option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,unit:t.unit,direction:(t.direction??"ABOVE").toUpperCase(),severity:(t.severity??"WARNING").toUpperCase()};t.minValue!==void 0&&(e.minValue=t.minValue),t.maxValue!==void 0&&(e.maxValue=t.maxValue),t.limitValue!==void 0&&(e.limitValue=t.limitValue);let n=await a(P,{input:e});c(`Threshold created for ${n.ecoCreateThreshold.parameter}`),s(t,n.ecoCreateThreshold);}catch(e){i(e);}}),r.command("set-active").description("Activate or deactivate a threshold").argument("<id>","Threshold ID").requiredOption("--active <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(N,{id:t,isActive:e.active});c(n.ecoSetThresholdActive.isActive?"Threshold activated":"Threshold disabled"),s(e,n.ecoSetThresholdActive);}catch(n){i(n);}});}function ft(o){let r=o.command("measurements").description("EcoImpactHub sensor measurements");r.command("list").description("List measurements").option("--site <id>","Filter by site ID").option("--sensor <id>","Filter by sensor ID").option("--parameter <p>","Filter by parameter").option("--breaches-only","Only threshold breaches").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(H,{siteId:t.site,sensorId:t.sensor,parameter:t.parameter,breachesOnly:t.breachesOnly?!0:void 0,pagination:g(t)});s(t,e.ecoListMeasurements.items,{headers:["ID","Parameter","Value","Unit","Source","Breach","Recorded"],rows:e.ecoListMeasurements.items.map(n=>[d(n.id,12),n.parameter,String(n.value),n.unit,n.source,n.isBreach?"yes":"no",E(n.recordedAt)])});}catch(e){i(e);}}),r.command("record").description("Record a measurement").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--value <n>","Measured value",u).requiredOption("--unit <u>","Unit").requiredOption("--recorded-at <iso>","Recorded-at timestamp (ISO)").option("--sensor <id>","Sensor ID").option("--source <s>","SENSOR|MANUAL|IMPORT|SATELLITE|CALCULATED","SENSOR").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,value:t.value,unit:t.unit,recordedAt:t.recordedAt,source:(t.source??"SENSOR").toUpperCase()};t.sensor&&(e.sensorId=t.sensor),t.notes&&(e.notes=t.notes);let n=await a(q,{input:e});c(n.ecoRecordMeasurement.isBreach?"Measurement recorded (threshold breach!)":"Measurement recorded"),s(t,n.ecoRecordMeasurement);}catch(e){i(e);}});}function Et(o){let r=o.command("species").description("EcoImpactHub tracked species");r.command("list").description("List species").option("--taxon-group <g>","MAMMAL|BIRD|REPTILE|...").option("--conservation-status <s>","LEAST_CONCERN|ENDANGERED|...").option("--priority-only","Only priority species").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(M,{taxonGroup:t.taxonGroup?t.taxonGroup.toUpperCase():void 0,conservationStatus:t.conservationStatus?t.conservationStatus.toUpperCase():void 0,priorityOnly:t.priorityOnly?!0:void 0,pagination:g(t)});s(t,e.ecoListSpecies.items,{headers:["ID","Common Name","Scientific","Taxon","Status","Priority"],rows:e.ecoListSpecies.items.map(n=>[d(n.id,12),n.commonName,n.scientificName??"-",n.taxonGroup,n.conservationStatus,n.isPriority?"yes":"no"])});}catch(e){i(e);}}),r.command("get").description("Get a species by id").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(U,{id:t});if(!n.ecoSpecies)throw new l(`Species ${t} not found`);s(e,n.ecoSpecies);}catch(n){i(n);}}),r.command("create").description("Create a species record").requiredOption("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group","OTHER").option("--conservation-status <s>","Conservation status","NOT_EVALUATED").option("--priority","Mark as priority species").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={commonName:t.commonName,taxonGroup:(t.taxonGroup??"OTHER").toUpperCase(),conservationStatus:(t.conservationStatus??"NOT_EVALUATED").toUpperCase(),isPriority:t.priority??!1};t.scientificName&&(e.scientificName=t.scientificName),t.description&&(e.description=t.description);let n=await a(V,{input:e});c(`Species created: ${n.ecoCreateSpecies.commonName}`),s(t,n.ecoCreateSpecies);}catch(e){i(e);}}),r.command("update").description("Update a species record").argument("<id>","Species ID").option("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group").option("--conservation-status <s>","Conservation status").option("--priority <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.commonName&&(n.commonName=e.commonName),e.scientificName&&(n.scientificName=e.scientificName),e.taxonGroup&&(n.taxonGroup=e.taxonGroup.toUpperCase()),e.conservationStatus&&(n.conservationStatus=e.conservationStatus.toUpperCase()),e.priority!==void 0&&(n.isPriority=e.priority),e.description!==void 0&&(n.description=e.description),!Object.keys(n).length)throw new l("No updates specified");let S=await a(F,{id:t,input:n});c("Species updated"),s(e,S.ecoUpdateSpecies);}catch(n){i(n);}}),r.command("archive").description("Archive a species record").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(G,{id:t});c(n.ecoArchiveSpecies?"Species archived":"Species not archived"),s(e,{archived:n.ecoArchiveSpecies});}catch(n){i(n);}});}function Ct(o){let r=o.command("observations").description("EcoImpactHub species observations");r.command("list").description("List observations").option("--species <id>","Filter by species ID").option("--site <id>","Filter by site ID").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(j,{speciesId:t.species,siteId:t.site,pagination:g(t)});s(t,e.ecoListObservations.items,{headers:["ID","Species","Site","Method","Count","Observed"],rows:e.ecoListObservations.items.map(n=>[d(n.id,12),d(n.speciesId,12),n.siteId?d(n.siteId,12):"-",n.method,String(n.count),E(n.observedAt)])});}catch(e){i(e);}}),r.command("record").description("Record a species observation").requiredOption("--species <id>","Species ID").requiredOption("--observed-at <iso>","Observed-at timestamp (ISO)").option("--site <id>","Site ID").option("--method <m>","DIRECT_SIGHTING|CAMERA_TRAP|ACOUSTIC|...","DIRECT_SIGHTING").option("--count <n>","Individual count",m).option("--latitude <n>","Latitude",u).option("--longitude <n>","Longitude",u).option("--evidence-file <id>","Evidence file ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={speciesId:t.species,observedAt:t.observedAt,method:(t.method??"DIRECT_SIGHTING").toUpperCase()};t.site&&(e.siteId=t.site),t.count!==void 0&&(e.count=t.count),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.evidenceFile&&(e.evidenceFileId=t.evidenceFile),t.notes&&(e.notes=t.notes);let n=await a(B,{input:e});c("Observation recorded"),s(t,n.ecoRecordObservation);}catch(e){i(e);}});}function yt(o){let r=o.command("habitat").description("EcoImpactHub habitat projects & restoration activities");r.command("list").description("List habitat projects").option("--status <s>","PLANNED|IN_PROGRESS|MONITORING|...").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Y,{status:t.status?t.status.toUpperCase():void 0});s(t,e.ecoListHabitatProjects,{headers:["ID","Name","Status","Target Ha","Budget","Currency"],rows:e.ecoListHabitatProjects.map(n=>[d(n.id,12),n.name,n.status,n.targetHectares!=null?String(n.targetHectares):"-",n.budgetAmount!=null?String(n.budgetAmount):"-",n.currency??"-"])});}catch(e){i(e);}}),r.command("get").description("Get a habitat project by id").argument("<id>","Project ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(W,{id:t});if(!n.ecoHabitatProject)throw new l(`Habitat project ${t} not found`);s(e,n.ecoHabitatProject);}catch(n){i(n);}}),r.command("create").description("Create a habitat project").requiredOption("--name <name>","Project name").option("--description <s>","Description").option("--site <id>","Site ID").option("--manager <id>","Manager user ID").option("--target-hectares <n>","Target hectares",u).option("--budget-amount <n>","Budget amount",u).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.site&&(e.siteId=t.site),t.manager&&(e.managerId=t.manager),t.targetHectares!==void 0&&(e.targetHectares=t.targetHectares),t.budgetAmount!==void 0&&(e.budgetAmount=t.budgetAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let n=await a(K,{input:e});c(`Habitat project created: ${n.ecoCreateHabitatProject.name}`),s(t,n.ecoCreateHabitatProject);}catch(e){i(e);}}),r.command("transition").description("Advance a habitat project through its lifecycle").argument("<id>","Project ID").requiredOption("--status <s>","PLANNED|IN_PROGRESS|MONITORING|COMPLETED|ON_HOLD|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t,status:e.status.toUpperCase()});c(`Project status set to ${n.ecoTransitionHabitatProject.status}`),s(e,n.ecoTransitionHabitatProject);}catch(n){i(n);}}),r.command("log-activity").description("Log a restoration activity against a project").requiredOption("--project <id>","Project ID").requiredOption("--summary <s>","Activity summary").requiredOption("--performed-at <iso>","Performed-at timestamp (ISO)").option("--type <t>","PLANTING|INVASIVE_REMOVAL|REWILDING|...","PLANTING").option("--details <s>","Details").option("--quantity <n>","Quantity",u).option("--unit <u>","Unit").option("-f, --format <format>","Output format").action(async t=>{try{let e={projectId:t.project,summary:t.summary,performedAt:t.performedAt,type:(t.type??"PLANTING").toUpperCase()};t.details&&(e.details=t.details),t.quantity!==void 0&&(e.quantity=t.quantity),t.unit&&(e.unit=t.unit);let n=await a(J,{input:e});c("Restoration activity logged"),s(t,n.ecoLogRestorationActivity);}catch(e){i(e);}});}function It(o){let r=o.command("carbon").description("EcoImpactHub carbon ledger & emission factors");r.command("list").description("List carbon ledger entries").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("--status <s>","DRAFT|RECORDED|VERIFIED|ADJUSTED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Q,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site,status:t.status?t.status.toUpperCase():void 0,pagination:g(t)});s(t,e.ecoListCarbonEntries.items,{headers:["ID","Category","Scope","Activity","CO2e kg","Status"],rows:e.ecoListCarbonEntries.items.map(n=>[d(n.id,12),n.category,n.scope,`${n.activityValue} ${n.activityUnit}`,String(n.co2eKg),n.status])});}catch(e){i(e);}}),r.command("total").description("Total CO2e (kg) recorded in the workspace").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(X,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site});c(`Total CO2e: ${e.ecoCarbonTotalKg} kg`),s(t,{totalCo2eKg:e.ecoCarbonTotalKg});}catch(e){i(e);}}),r.command("record").description("Record a carbon ledger entry").requiredOption("--category <c>","Category").requiredOption("--activity-value <n>","Activity value",u).requiredOption("--activity-unit <u>","Activity unit").requiredOption("--period-start <iso>","Period start (ISO)").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--factor <id>","Emission factor ID").option("--site <id>","Site ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,activityValue:t.activityValue,activityUnit:t.activityUnit,periodStart:t.periodStart,scope:(t.scope??"SCOPE_1").toUpperCase()};t.factor&&(e.factorId=t.factor),t.site&&(e.siteId=t.site),t.notes&&(e.notes=t.notes);let n=await a(Z,{input:e});c(`Carbon entry recorded: ${n.ecoRecordCarbonEntry.co2eKg} kg CO2e`),s(t,n.ecoRecordCarbonEntry);}catch(e){i(e);}}),r.command("verify").description("Verify a carbon ledger entry").argument("<id>","Carbon entry ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(tt,{id:t});c(`Carbon entry ${n.ecoVerifyCarbonEntry.status}`),s(e,n.ecoVerifyCarbonEntry);}catch(n){i(n);}}),r.command("list-factors").description("List emission factors").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--active-only","Only active factors").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(et,{scope:t.scope?t.scope.toUpperCase():void 0,activeOnly:t.activeOnly?!0:void 0});s(t,e.ecoListEmissionFactors,{headers:["ID","Name","Scope","Unit","kgCO2e","Year","Active"],rows:e.ecoListEmissionFactors.map(n=>[d(n.id,12),n.name,n.scope,n.activityUnit,String(n.factorKgco2e),n.validYear!=null?String(n.validYear):"-",n.isActive?"yes":"no"])});}catch(e){i(e);}}),r.command("create-factor").description("Create an emission factor").requiredOption("--name <name>","Factor name").requiredOption("--activity-unit <u>","Activity unit").requiredOption("--factor-kgco2e <n>","kg CO2e per unit",u).option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--source <s>","Source").option("--valid-year <n>","Valid year",m).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,activityUnit:t.activityUnit,factorKgco2e:t.factorKgco2e,scope:(t.scope??"SCOPE_1").toUpperCase()};t.source&&(e.source=t.source),t.validYear!==void 0&&(e.validYear=t.validYear);let n=await a(nt,{input:e});c(`Emission factor created: ${n.ecoCreateEmissionFactor.name}`),s(t,n.ecoCreateEmissionFactor);}catch(e){i(e);}});}function St(o){let r=o.command("targets").description("EcoImpactHub reduction targets");r.command("list").description("List reduction targets").option("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(rt,{status:t.status?t.status.toUpperCase():void 0});s(t,e.ecoListReductionTargets,{headers:["ID","Name","Metric","Baseline","Target","Status"],rows:e.ecoListReductionTargets.map(n=>[d(n.id,12),n.name,n.metric,`${n.baselineValue} (${n.baselineYear})`,`${n.targetValue} (${n.targetYear})`,n.status])});}catch(e){i(e);}}),r.command("create").description("Create a reduction target").requiredOption("--name <name>","Target name").requiredOption("--metric <m>","Metric").requiredOption("--unit <u>","Unit").requiredOption("--baseline-value <n>","Baseline value",u).requiredOption("--baseline-year <n>","Baseline year",m).requiredOption("--target-value <n>","Target value",u).requiredOption("--target-year <n>","Target year",m).option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,metric:t.metric,unit:t.unit,baselineValue:t.baselineValue,baselineYear:t.baselineYear,targetValue:t.targetValue,targetYear:t.targetYear};t.description&&(e.description=t.description);let n=await a(ot,{input:e});c(`Reduction target created: ${n.ecoCreateReductionTarget.name}`),s(t,n.ecoCreateReductionTarget);}catch(e){i(e);}}),r.command("set-status").description("Update a reduction target status").argument("<id>","Target ID").requiredOption("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(it,{id:t,status:e.status.toUpperCase()});c(`Target status set to ${n.ecoSetReductionTargetStatus.status}`),s(e,n.ecoSetReductionTargetStatus);}catch(n){i(n);}});}function ht(o){let r=o.command("reports").description("EcoImpactHub sustainability reports");r.command("list").description("List reports").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(at,{status:t.status?t.status.toUpperCase():void 0,pagination:g(t)});s(t,e.ecoListReports.items,{headers:["ID","Title","Framework","Status","Period End","Published"],rows:e.ecoListReports.items.map(n=>[d(n.id,12),n.title,n.framework,n.status,E(n.periodEnd),E(n.publishedAt)])});}catch(e){i(e);}}),r.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});if(!n.ecoReport)throw new l(`Report ${t} not found`);s(e,n.ecoReport);}catch(n){i(n);}}),r.command("create").description("Create a sustainability report").requiredOption("--title <t>","Report title").requiredOption("--period-start <iso>","Period start (ISO)").requiredOption("--period-end <iso>","Period end (ISO)").option("--framework <f>","GHG_PROTOCOL|GRI|SASB|TCFD|CDP|CUSTOM","GHG_PROTOCOL").option("--summary <s>","Summary").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,periodStart:t.periodStart,periodEnd:t.periodEnd,framework:(t.framework??"GHG_PROTOCOL").toUpperCase()};t.summary&&(e.summary=t.summary);let n=await a(ct,{input:e});c(`Report created: ${n.ecoCreateReport.title}`),s(t,n.ecoCreateReport);}catch(e){i(e);}}),r.command("add-line-item").description("Add a line item to a report").requiredOption("--report <id>","Report ID").requiredOption("--label <l>","Line item label").requiredOption("--value <n>","Value",u).requiredOption("--unit <u>","Unit").option("--category <c>","Category").option("--carbon-entry <id>","Linked carbon entry ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={reportId:t.report,label:t.label,value:t.value,unit:t.unit};t.category&&(e.category=t.category),t.carbonEntry&&(e.carbonEntryId=t.carbonEntry);let n=await a(ut,{input:e});c("Line item added"),s(t,n.ecoAddReportLineItem);}catch(e){i(e);}}),r.command("publish").description("Publish a report").argument("<id>","Report ID").option("--file <id>","Published artifact file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(pt,{id:t,fileId:e.file});c(`Report published: ${n.ecoPublishReport.title}`),s(e,n.ecoPublishReport);}catch(n){i(n);}});}function Ot(o){o.command("health").description("EcoImpactHub service health check (public)").option("-f, --format <format>","Output format").action(async r=>{try{let t=await O(dt);c(t.ecoHealth),s(r,{health:t.ecoHealth});}catch(t){i(t);}});}var Pt={id:"ecoimpacthub",version:"1.0.0",displayName:"EcoImpactHub",dependsOn:["auth","workspaces"],register(o,r){A(r);let t=o.command("ecoimpacthub").description("EcoImpactHub environmental-impact & sustainability monitoring");mt(t),lt(t),gt(t),ft(t),Et(t),Ct(t),yt(t),It(t),St(t),ht(t),Ot(t);}},Nn=Pt;module.exports=Nn;
@@ -1,4 +1,4 @@
1
- import {a,b as b$1,h as h$1,p as p$1,g,i,o as o$1,d as d$1}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var O=`
1
+ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d as d$1}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var O=`
2
2
  query EcoSite($id: ID!) {
3
3
  ecoSite(id: $id) {
4
4
  id name code description type status country region latitude longitude
@@ -302,4 +302,4 @@ import {a,b as b$1,h as h$1,p as p$1,g,i,o as o$1,d as d$1}from'../../chunk-W4JZ
302
302
  query EcoHealth {
303
303
  ecoHealth
304
304
  }
305
- `;function p(c){let o$1=Number.parseInt(c,10);if(Number.isNaN(o$1))throw new o(`Expected an integer but got "${c}"`);return o$1}function d(c){let o$1=Number.parseFloat(c);if(Number.isNaN(o$1))throw new o(`Expected a number but got "${c}"`);return o$1}function l(c){let o={};return c.limit!==void 0&&(o.limit=c.limit),c.offset!==void 0&&(o.offset=c.offset),Object.keys(o).length?o:void 0}function st(c){let o$1=c.command("sites").description("EcoImpactHub monitored sites");o$1.command("list").description("List sites").option("--status <s>","ACTIVE|ARCHIVED|MONITORING_PAUSED").option("--type <t>","FACILITY|FOREST|WETLAND|...").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(R,{status:t.status?t.status.toUpperCase():void 0,type:t.type?t.type.toUpperCase():void 0,pagination:l(t)});h$1(t,e.ecoListSites.items,{headers:["ID","Name","Type","Status","Country","Hectares"],rows:e.ecoListSites.items.map(i=>[p$1(i.id,12),i.name,i.type,i.status,i.country??"-",i.areaHectares!=null?String(i.areaHectares):"-"])});}catch(e){g(e);}}),o$1.command("get").description("Get a site by id").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(O,{id:t});if(!i.ecoSite)throw new o(`Site ${t} not found`);h$1(e,i.ecoSite);}catch(i){g(i);}}),o$1.command("create").description("Create a site").requiredOption("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type","FACILITY").option("--status <s>","Site status","ACTIVE").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",d).option("--longitude <n>","Longitude",d).option("--area-hectares <n>","Area (hectares)",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,type:(t.type??"FACILITY").toUpperCase(),status:(t.status??"ACTIVE").toUpperCase()};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.country&&(e.country=t.country),t.region&&(e.region=t.region),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.areaHectares!==void 0&&(e.areaHectares=t.areaHectares);let i$1=await b$1(b,{input:e});i(`Site created: ${i$1.ecoCreateSite.name}`),h$1(t,i$1.ecoCreateSite);}catch(e){g(e);}}),o$1.command("update").description("Update a site").argument("<id>","Site ID").option("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type").option("--status <s>","Site status").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",d).option("--longitude <n>","Longitude",d).option("--area-hectares <n>","Area (hectares)",d).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.code&&(i$1.code=e.code),e.description!==void 0&&(i$1.description=e.description),e.type&&(i$1.type=e.type.toUpperCase()),e.status&&(i$1.status=e.status.toUpperCase()),e.country&&(i$1.country=e.country),e.region&&(i$1.region=e.region),e.latitude!==void 0&&(i$1.latitude=e.latitude),e.longitude!==void 0&&(i$1.longitude=e.longitude),e.areaHectares!==void 0&&(i$1.areaHectares=e.areaHectares),!Object.keys(i$1).length)throw new o("No updates specified");let C=await b$1(A,{id:t,input:i$1});i("Site updated"),h$1(e,C.ecoUpdateSite);}catch(i){g(i);}}),o$1.command("archive").description("Archive a site").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(T,{id:t});i(i$1.ecoArchiveSite?"Site archived":"Site not archived"),h$1(e,{archived:i$1.ecoArchiveSite});}catch(i){g(i);}});}function ct(c){let o=c.command("sensors").description("EcoImpactHub site sensors");o.command("list").description("List sensors").option("--site <id>","Filter by site ID").option("--kind <k>","WATER_QUALITY|AIR_QUALITY|SOIL|...").option("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{siteId:t.site,kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.ecoListSensors,{headers:["ID","Name","Kind","Status","Unit","Last Reading"],rows:e.ecoListSensors.map(i=>[p$1(i.id,12),i.name,i.kind,i.status,i.unit??"-",o$1(i.lastReadingAt)])});}catch(e){g(e);}}),o.command("create").description("Create a sensor").requiredOption("--site <id>","Site ID").requiredOption("--name <name>","Sensor name").option("--kind <k>","Sensor kind","MANUAL").option("--status <s>","Sensor status","ONLINE").option("--unit <u>","Measurement unit").option("--hardware-id <id>","Hardware ID").option("--installed-at <iso>","Install date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,name:t.name,kind:(t.kind??"MANUAL").toUpperCase(),status:(t.status??"ONLINE").toUpperCase()};t.unit&&(e.unit=t.unit),t.hardwareId&&(e.hardwareId=t.hardwareId),t.installedAt&&(e.installedAt=t.installedAt);let i$1=await b$1(v,{input:e});i(`Sensor created: ${i$1.ecoCreateSensor.name}`),h$1(t,i$1.ecoCreateSensor);}catch(e){g(e);}}),o.command("set-status").description("Update a sensor's operational status").argument("<id>","Sensor ID").requiredOption("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(_,{id:t,status:e.status.toUpperCase()});i(`Sensor status set to ${i$1.ecoSetSensorStatus.status}`),h$1(e,i$1.ecoSetSensorStatus);}catch(i){g(i);}});}function dt(c){let o=c.command("thresholds").description("EcoImpactHub alert thresholds");o.command("list").description("List alert thresholds").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(w,{siteId:t.site});h$1(t,e.ecoListThresholds,{headers:["ID","Parameter","Unit","Direction","Severity","Active"],rows:e.ecoListThresholds.map(i=>[p$1(i.id,12),i.parameter,i.unit,i.direction,i.severity,i.isActive?"yes":"no"])});}catch(e){g(e);}}),o.command("create").description("Create an alert threshold").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--unit <u>","Unit").option("--direction <d>","ABOVE|BELOW|OUTSIDE_RANGE","ABOVE").option("--severity <s>","INFO|WARNING|CRITICAL","WARNING").option("--min-value <n>","Minimum value",d).option("--max-value <n>","Maximum value",d).option("--limit-value <n>","Limit value",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,unit:t.unit,direction:(t.direction??"ABOVE").toUpperCase(),severity:(t.severity??"WARNING").toUpperCase()};t.minValue!==void 0&&(e.minValue=t.minValue),t.maxValue!==void 0&&(e.maxValue=t.maxValue),t.limitValue!==void 0&&(e.limitValue=t.limitValue);let i$1=await b$1(L,{input:e});i(`Threshold created for ${i$1.ecoCreateThreshold.parameter}`),h$1(t,i$1.ecoCreateThreshold);}catch(e){g(e);}}),o.command("set-active").description("Activate or deactivate a threshold").argument("<id>","Threshold ID").requiredOption("--active <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(D,{id:t,isActive:e.active});i(i$1.ecoSetThresholdActive.isActive?"Threshold activated":"Threshold disabled"),h$1(e,i$1.ecoSetThresholdActive);}catch(i){g(i);}});}function ut(c){let o=c.command("measurements").description("EcoImpactHub sensor measurements");o.command("list").description("List measurements").option("--site <id>","Filter by site ID").option("--sensor <id>","Filter by sensor ID").option("--parameter <p>","Filter by parameter").option("--breaches-only","Only threshold breaches").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(N,{siteId:t.site,sensorId:t.sensor,parameter:t.parameter,breachesOnly:t.breachesOnly?!0:void 0,pagination:l(t)});h$1(t,e.ecoListMeasurements.items,{headers:["ID","Parameter","Value","Unit","Source","Breach","Recorded"],rows:e.ecoListMeasurements.items.map(i=>[p$1(i.id,12),i.parameter,String(i.value),i.unit,i.source,i.isBreach?"yes":"no",o$1(i.recordedAt)])});}catch(e){g(e);}}),o.command("record").description("Record a measurement").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--value <n>","Measured value",d).requiredOption("--unit <u>","Unit").requiredOption("--recorded-at <iso>","Recorded-at timestamp (ISO)").option("--sensor <id>","Sensor ID").option("--source <s>","SENSOR|MANUAL|IMPORT|SATELLITE|CALCULATED","SENSOR").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,value:t.value,unit:t.unit,recordedAt:t.recordedAt,source:(t.source??"SENSOR").toUpperCase()};t.sensor&&(e.sensorId=t.sensor),t.notes&&(e.notes=t.notes);let i$1=await b$1($,{input:e});i(i$1.ecoRecordMeasurement.isBreach?"Measurement recorded (threshold breach!)":"Measurement recorded"),h$1(t,i$1.ecoRecordMeasurement);}catch(e){g(e);}});}function pt(c){let o$1=c.command("species").description("EcoImpactHub tracked species");o$1.command("list").description("List species").option("--taxon-group <g>","MAMMAL|BIRD|REPTILE|...").option("--conservation-status <s>","LEAST_CONCERN|ENDANGERED|...").option("--priority-only","Only priority species").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(H,{taxonGroup:t.taxonGroup?t.taxonGroup.toUpperCase():void 0,conservationStatus:t.conservationStatus?t.conservationStatus.toUpperCase():void 0,priorityOnly:t.priorityOnly?!0:void 0,pagination:l(t)});h$1(t,e.ecoListSpecies.items,{headers:["ID","Common Name","Scientific","Taxon","Status","Priority"],rows:e.ecoListSpecies.items.map(i=>[p$1(i.id,12),i.commonName,i.scientificName??"-",i.taxonGroup,i.conservationStatus,i.isPriority?"yes":"no"])});}catch(e){g(e);}}),o$1.command("get").description("Get a species by id").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(P,{id:t});if(!i.ecoSpecies)throw new o(`Species ${t} not found`);h$1(e,i.ecoSpecies);}catch(i){g(i);}}),o$1.command("create").description("Create a species record").requiredOption("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group","OTHER").option("--conservation-status <s>","Conservation status","NOT_EVALUATED").option("--priority","Mark as priority species").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={commonName:t.commonName,taxonGroup:(t.taxonGroup??"OTHER").toUpperCase(),conservationStatus:(t.conservationStatus??"NOT_EVALUATED").toUpperCase(),isPriority:t.priority??!1};t.scientificName&&(e.scientificName=t.scientificName),t.description&&(e.description=t.description);let i$1=await b$1(U,{input:e});i(`Species created: ${i$1.ecoCreateSpecies.commonName}`),h$1(t,i$1.ecoCreateSpecies);}catch(e){g(e);}}),o$1.command("update").description("Update a species record").argument("<id>","Species ID").option("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group").option("--conservation-status <s>","Conservation status").option("--priority <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.commonName&&(i$1.commonName=e.commonName),e.scientificName&&(i$1.scientificName=e.scientificName),e.taxonGroup&&(i$1.taxonGroup=e.taxonGroup.toUpperCase()),e.conservationStatus&&(i$1.conservationStatus=e.conservationStatus.toUpperCase()),e.priority!==void 0&&(i$1.isPriority=e.priority),e.description!==void 0&&(i$1.description=e.description),!Object.keys(i$1).length)throw new o("No updates specified");let C=await b$1(k,{id:t,input:i$1});i("Species updated"),h$1(e,C.ecoUpdateSpecies);}catch(i){g(i);}}),o$1.command("archive").description("Archive a species record").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(V,{id:t});i(i$1.ecoArchiveSpecies?"Species archived":"Species not archived"),h$1(e,{archived:i$1.ecoArchiveSpecies});}catch(i){g(i);}});}function mt(c){let o=c.command("observations").description("EcoImpactHub species observations");o.command("list").description("List observations").option("--species <id>","Filter by species ID").option("--site <id>","Filter by site ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{speciesId:t.species,siteId:t.site,pagination:l(t)});h$1(t,e.ecoListObservations.items,{headers:["ID","Species","Site","Method","Count","Observed"],rows:e.ecoListObservations.items.map(i=>[p$1(i.id,12),p$1(i.speciesId,12),i.siteId?p$1(i.siteId,12):"-",i.method,String(i.count),o$1(i.observedAt)])});}catch(e){g(e);}}),o.command("record").description("Record a species observation").requiredOption("--species <id>","Species ID").requiredOption("--observed-at <iso>","Observed-at timestamp (ISO)").option("--site <id>","Site ID").option("--method <m>","DIRECT_SIGHTING|CAMERA_TRAP|ACOUSTIC|...","DIRECT_SIGHTING").option("--count <n>","Individual count",p).option("--latitude <n>","Latitude",d).option("--longitude <n>","Longitude",d).option("--evidence-file <id>","Evidence file ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={speciesId:t.species,observedAt:t.observedAt,method:(t.method??"DIRECT_SIGHTING").toUpperCase()};t.site&&(e.siteId=t.site),t.count!==void 0&&(e.count=t.count),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.evidenceFile&&(e.evidenceFileId=t.evidenceFile),t.notes&&(e.notes=t.notes);let i$1=await b$1(q,{input:e});i("Observation recorded"),h$1(t,i$1.ecoRecordObservation);}catch(e){g(e);}});}function gt(c){let o$1=c.command("habitat").description("EcoImpactHub habitat projects & restoration activities");o$1.command("list").description("List habitat projects").option("--status <s>","PLANNED|IN_PROGRESS|MONITORING|...").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{status:t.status?t.status.toUpperCase():void 0});h$1(t,e.ecoListHabitatProjects,{headers:["ID","Name","Status","Target Ha","Budget","Currency"],rows:e.ecoListHabitatProjects.map(i=>[p$1(i.id,12),i.name,i.status,i.targetHectares!=null?String(i.targetHectares):"-",i.budgetAmount!=null?String(i.budgetAmount):"-",i.currency??"-"])});}catch(e){g(e);}}),o$1.command("get").description("Get a habitat project by id").argument("<id>","Project ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(G,{id:t});if(!i.ecoHabitatProject)throw new o(`Habitat project ${t} not found`);h$1(e,i.ecoHabitatProject);}catch(i){g(i);}}),o$1.command("create").description("Create a habitat project").requiredOption("--name <name>","Project name").option("--description <s>","Description").option("--site <id>","Site ID").option("--manager <id>","Manager user ID").option("--target-hectares <n>","Target hectares",d).option("--budget-amount <n>","Budget amount",d).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.site&&(e.siteId=t.site),t.manager&&(e.managerId=t.manager),t.targetHectares!==void 0&&(e.targetHectares=t.targetHectares),t.budgetAmount!==void 0&&(e.budgetAmount=t.budgetAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let i$1=await b$1(j,{input:e});i(`Habitat project created: ${i$1.ecoCreateHabitatProject.name}`),h$1(t,i$1.ecoCreateHabitatProject);}catch(e){g(e);}}),o$1.command("transition").description("Advance a habitat project through its lifecycle").argument("<id>","Project ID").requiredOption("--status <s>","PLANNED|IN_PROGRESS|MONITORING|COMPLETED|ON_HOLD|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(x,{id:t,status:e.status.toUpperCase()});i(`Project status set to ${i$1.ecoTransitionHabitatProject.status}`),h$1(e,i$1.ecoTransitionHabitatProject);}catch(i){g(i);}}),o$1.command("log-activity").description("Log a restoration activity against a project").requiredOption("--project <id>","Project ID").requiredOption("--summary <s>","Activity summary").requiredOption("--performed-at <iso>","Performed-at timestamp (ISO)").option("--type <t>","PLANTING|INVASIVE_REMOVAL|REWILDING|...","PLANTING").option("--details <s>","Details").option("--quantity <n>","Quantity",d).option("--unit <u>","Unit").option("-f, --format <format>","Output format").action(async t=>{try{let e={projectId:t.project,summary:t.summary,performedAt:t.performedAt,type:(t.type??"PLANTING").toUpperCase()};t.details&&(e.details=t.details),t.quantity!==void 0&&(e.quantity=t.quantity),t.unit&&(e.unit=t.unit);let i$1=await b$1(B,{input:e});i("Restoration activity logged"),h$1(t,i$1.ecoLogRestorationActivity);}catch(e){g(e);}});}function ft(c){let o=c.command("carbon").description("EcoImpactHub carbon ledger & emission factors");o.command("list").description("List carbon ledger entries").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("--status <s>","DRAFT|RECORDED|VERIFIED|ADJUSTED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Y,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site,status:t.status?t.status.toUpperCase():void 0,pagination:l(t)});h$1(t,e.ecoListCarbonEntries.items,{headers:["ID","Category","Scope","Activity","CO2e kg","Status"],rows:e.ecoListCarbonEntries.items.map(i=>[p$1(i.id,12),i.category,i.scope,`${i.activityValue} ${i.activityUnit}`,String(i.co2eKg),i.status])});}catch(e){g(e);}}),o.command("total").description("Total CO2e (kg) recorded in the workspace").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(K,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site});i(`Total CO2e: ${e.ecoCarbonTotalKg} kg`),h$1(t,{totalCo2eKg:e.ecoCarbonTotalKg});}catch(e){g(e);}}),o.command("record").description("Record a carbon ledger entry").requiredOption("--category <c>","Category").requiredOption("--activity-value <n>","Activity value",d).requiredOption("--activity-unit <u>","Activity unit").requiredOption("--period-start <iso>","Period start (ISO)").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--factor <id>","Emission factor ID").option("--site <id>","Site ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,activityValue:t.activityValue,activityUnit:t.activityUnit,periodStart:t.periodStart,scope:(t.scope??"SCOPE_1").toUpperCase()};t.factor&&(e.factorId=t.factor),t.site&&(e.siteId=t.site),t.notes&&(e.notes=t.notes);let i$1=await b$1(W,{input:e});i(`Carbon entry recorded: ${i$1.ecoRecordCarbonEntry.co2eKg} kg CO2e`),h$1(t,i$1.ecoRecordCarbonEntry);}catch(e){g(e);}}),o.command("verify").description("Verify a carbon ledger entry").argument("<id>","Carbon entry ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(J,{id:t});i(`Carbon entry ${i$1.ecoVerifyCarbonEntry.status}`),h$1(e,i$1.ecoVerifyCarbonEntry);}catch(i){g(i);}}),o.command("list-factors").description("List emission factors").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--active-only","Only active factors").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(z,{scope:t.scope?t.scope.toUpperCase():void 0,activeOnly:t.activeOnly?!0:void 0});h$1(t,e.ecoListEmissionFactors,{headers:["ID","Name","Scope","Unit","kgCO2e","Year","Active"],rows:e.ecoListEmissionFactors.map(i=>[p$1(i.id,12),i.name,i.scope,i.activityUnit,String(i.factorKgco2e),i.validYear!=null?String(i.validYear):"-",i.isActive?"yes":"no"])});}catch(e){g(e);}}),o.command("create-factor").description("Create an emission factor").requiredOption("--name <name>","Factor name").requiredOption("--activity-unit <u>","Activity unit").requiredOption("--factor-kgco2e <n>","kg CO2e per unit",d).option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--source <s>","Source").option("--valid-year <n>","Valid year",p).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,activityUnit:t.activityUnit,factorKgco2e:t.factorKgco2e,scope:(t.scope??"SCOPE_1").toUpperCase()};t.source&&(e.source=t.source),t.validYear!==void 0&&(e.validYear=t.validYear);let i$1=await b$1(Q,{input:e});i(`Emission factor created: ${i$1.ecoCreateEmissionFactor.name}`),h$1(t,i$1.ecoCreateEmissionFactor);}catch(e){g(e);}});}function lt(c){let o=c.command("targets").description("EcoImpactHub reduction targets");o.command("list").description("List reduction targets").option("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(X,{status:t.status?t.status.toUpperCase():void 0});h$1(t,e.ecoListReductionTargets,{headers:["ID","Name","Metric","Baseline","Target","Status"],rows:e.ecoListReductionTargets.map(i=>[p$1(i.id,12),i.name,i.metric,`${i.baselineValue} (${i.baselineYear})`,`${i.targetValue} (${i.targetYear})`,i.status])});}catch(e){g(e);}}),o.command("create").description("Create a reduction target").requiredOption("--name <name>","Target name").requiredOption("--metric <m>","Metric").requiredOption("--unit <u>","Unit").requiredOption("--baseline-value <n>","Baseline value",d).requiredOption("--baseline-year <n>","Baseline year",p).requiredOption("--target-value <n>","Target value",d).requiredOption("--target-year <n>","Target year",p).option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,metric:t.metric,unit:t.unit,baselineValue:t.baselineValue,baselineYear:t.baselineYear,targetValue:t.targetValue,targetYear:t.targetYear};t.description&&(e.description=t.description);let i$1=await b$1(Z,{input:e});i(`Reduction target created: ${i$1.ecoCreateReductionTarget.name}`),h$1(t,i$1.ecoCreateReductionTarget);}catch(e){g(e);}}),o.command("set-status").description("Update a reduction target status").argument("<id>","Target ID").requiredOption("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(tt,{id:t,status:e.status.toUpperCase()});i(`Target status set to ${i$1.ecoSetReductionTargetStatus.status}`),h$1(e,i$1.ecoSetReductionTargetStatus);}catch(i){g(i);}});}function Et(c){let o$2=c.command("reports").description("EcoImpactHub sustainability reports");o$2.command("list").description("List reports").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(it,{status:t.status?t.status.toUpperCase():void 0,pagination:l(t)});h$1(t,e.ecoListReports.items,{headers:["ID","Title","Framework","Status","Period End","Published"],rows:e.ecoListReports.items.map(i=>[p$1(i.id,12),i.title,i.framework,i.status,o$1(i.periodEnd),o$1(i.publishedAt)])});}catch(e){g(e);}}),o$2.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(et,{id:t});if(!i.ecoReport)throw new o(`Report ${t} not found`);h$1(e,i.ecoReport);}catch(i){g(i);}}),o$2.command("create").description("Create a sustainability report").requiredOption("--title <t>","Report title").requiredOption("--period-start <iso>","Period start (ISO)").requiredOption("--period-end <iso>","Period end (ISO)").option("--framework <f>","GHG_PROTOCOL|GRI|SASB|TCFD|CDP|CUSTOM","GHG_PROTOCOL").option("--summary <s>","Summary").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,periodStart:t.periodStart,periodEnd:t.periodEnd,framework:(t.framework??"GHG_PROTOCOL").toUpperCase()};t.summary&&(e.summary=t.summary);let i$1=await b$1(ot,{input:e});i(`Report created: ${i$1.ecoCreateReport.title}`),h$1(t,i$1.ecoCreateReport);}catch(e){g(e);}}),o$2.command("add-line-item").description("Add a line item to a report").requiredOption("--report <id>","Report ID").requiredOption("--label <l>","Line item label").requiredOption("--value <n>","Value",d).requiredOption("--unit <u>","Unit").option("--category <c>","Category").option("--carbon-entry <id>","Linked carbon entry ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={reportId:t.report,label:t.label,value:t.value,unit:t.unit};t.category&&(e.category=t.category),t.carbonEntry&&(e.carbonEntryId=t.carbonEntry);let i$1=await b$1(rt,{input:e});i("Line item added"),h$1(t,i$1.ecoAddReportLineItem);}catch(e){g(e);}}),o$2.command("publish").description("Publish a report").argument("<id>","Report ID").option("--file <id>","Published artifact file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(nt,{id:t,fileId:e.file});i(`Report published: ${i$1.ecoPublishReport.title}`),h$1(e,i$1.ecoPublishReport);}catch(i){g(i);}});}function St(c){c.command("health").description("EcoImpactHub service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await d$1(at);i(t.ecoHealth),h$1(o,{health:t.ecoHealth});}catch(t){g(t);}});}var Ct={id:"ecoimpacthub",version:"1.0.0",displayName:"EcoImpactHub",dependsOn:["auth","workspaces"],register(c,o){a(o);let t=c.command("ecoimpacthub").description("EcoImpactHub environmental-impact & sustainability monitoring");st(t),ct(t),dt(t),ut(t),pt(t),mt(t),gt(t),ft(t),lt(t),Et(t),St(t);}},le=Ct;export{le as default};
305
+ `;function p(c){let o$1=Number.parseInt(c,10);if(Number.isNaN(o$1))throw new o(`Expected an integer but got "${c}"`);return o$1}function d(c){let o$1=Number.parseFloat(c);if(Number.isNaN(o$1))throw new o(`Expected a number but got "${c}"`);return o$1}function l(c){let o={};return c.limit!==void 0&&(o.limit=c.limit),c.offset!==void 0&&(o.offset=c.offset),Object.keys(o).length?o:void 0}function st(c){let o$1=c.command("sites").description("EcoImpactHub monitored sites");o$1.command("list").description("List sites").option("--status <s>","ACTIVE|ARCHIVED|MONITORING_PAUSED").option("--type <t>","FACILITY|FOREST|WETLAND|...").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(R,{status:t.status?t.status.toUpperCase():void 0,type:t.type?t.type.toUpperCase():void 0,pagination:l(t)});i(t,e.ecoListSites.items,{headers:["ID","Name","Type","Status","Country","Hectares"],rows:e.ecoListSites.items.map(i=>[r(i.id,12),i.name,i.type,i.status,i.country??"-",i.areaHectares!=null?String(i.areaHectares):"-"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a site by id").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(O,{id:t});if(!i$1.ecoSite)throw new o(`Site ${t} not found`);i(e,i$1.ecoSite);}catch(i){h$1(i);}}),o$1.command("create").description("Create a site").requiredOption("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type","FACILITY").option("--status <s>","Site status","ACTIVE").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",d).option("--longitude <n>","Longitude",d).option("--area-hectares <n>","Area (hectares)",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,type:(t.type??"FACILITY").toUpperCase(),status:(t.status??"ACTIVE").toUpperCase()};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.country&&(e.country=t.country),t.region&&(e.region=t.region),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.areaHectares!==void 0&&(e.areaHectares=t.areaHectares);let i$1=await b$1(b,{input:e});k$1(`Site created: ${i$1.ecoCreateSite.name}`),i(t,i$1.ecoCreateSite);}catch(e){h$1(e);}}),o$1.command("update").description("Update a site").argument("<id>","Site ID").option("--name <name>","Site name").option("--code <code>","Site code").option("--description <s>","Description").option("--type <t>","Site type").option("--status <s>","Site status").option("--country <c>","Country").option("--region <r>","Region").option("--latitude <n>","Latitude",d).option("--longitude <n>","Longitude",d).option("--area-hectares <n>","Area (hectares)",d).option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.code&&(i$1.code=e.code),e.description!==void 0&&(i$1.description=e.description),e.type&&(i$1.type=e.type.toUpperCase()),e.status&&(i$1.status=e.status.toUpperCase()),e.country&&(i$1.country=e.country),e.region&&(i$1.region=e.region),e.latitude!==void 0&&(i$1.latitude=e.latitude),e.longitude!==void 0&&(i$1.longitude=e.longitude),e.areaHectares!==void 0&&(i$1.areaHectares=e.areaHectares),!Object.keys(i$1).length)throw new o("No updates specified");let C=await b$1(A,{id:t,input:i$1});k$1("Site updated"),i(e,C.ecoUpdateSite);}catch(i){h$1(i);}}),o$1.command("archive").description("Archive a site").argument("<id>","Site ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(T,{id:t});k$1(i$1.ecoArchiveSite?"Site archived":"Site not archived"),i(e,{archived:i$1.ecoArchiveSite});}catch(i){h$1(i);}});}function ct(c){let o=c.command("sensors").description("EcoImpactHub site sensors");o.command("list").description("List sensors").option("--site <id>","Filter by site ID").option("--kind <k>","WATER_QUALITY|AIR_QUALITY|SOIL|...").option("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{siteId:t.site,kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0});i(t,e.ecoListSensors,{headers:["ID","Name","Kind","Status","Unit","Last Reading"],rows:e.ecoListSensors.map(i=>[r(i.id,12),i.name,i.kind,i.status,i.unit??"-",q$1(i.lastReadingAt)])});}catch(e){h$1(e);}}),o.command("create").description("Create a sensor").requiredOption("--site <id>","Site ID").requiredOption("--name <name>","Sensor name").option("--kind <k>","Sensor kind","MANUAL").option("--status <s>","Sensor status","ONLINE").option("--unit <u>","Measurement unit").option("--hardware-id <id>","Hardware ID").option("--installed-at <iso>","Install date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,name:t.name,kind:(t.kind??"MANUAL").toUpperCase(),status:(t.status??"ONLINE").toUpperCase()};t.unit&&(e.unit=t.unit),t.hardwareId&&(e.hardwareId=t.hardwareId),t.installedAt&&(e.installedAt=t.installedAt);let i$1=await b$1(v,{input:e});k$1(`Sensor created: ${i$1.ecoCreateSensor.name}`),i(t,i$1.ecoCreateSensor);}catch(e){h$1(e);}}),o.command("set-status").description("Update a sensor's operational status").argument("<id>","Sensor ID").requiredOption("--status <s>","ONLINE|OFFLINE|DEGRADED|MAINTENANCE|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(_,{id:t,status:e.status.toUpperCase()});k$1(`Sensor status set to ${i$1.ecoSetSensorStatus.status}`),i(e,i$1.ecoSetSensorStatus);}catch(i){h$1(i);}});}function dt(c){let o=c.command("thresholds").description("EcoImpactHub alert thresholds");o.command("list").description("List alert thresholds").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(w,{siteId:t.site});i(t,e.ecoListThresholds,{headers:["ID","Parameter","Unit","Direction","Severity","Active"],rows:e.ecoListThresholds.map(i=>[r(i.id,12),i.parameter,i.unit,i.direction,i.severity,i.isActive?"yes":"no"])});}catch(e){h$1(e);}}),o.command("create").description("Create an alert threshold").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--unit <u>","Unit").option("--direction <d>","ABOVE|BELOW|OUTSIDE_RANGE","ABOVE").option("--severity <s>","INFO|WARNING|CRITICAL","WARNING").option("--min-value <n>","Minimum value",d).option("--max-value <n>","Maximum value",d).option("--limit-value <n>","Limit value",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,unit:t.unit,direction:(t.direction??"ABOVE").toUpperCase(),severity:(t.severity??"WARNING").toUpperCase()};t.minValue!==void 0&&(e.minValue=t.minValue),t.maxValue!==void 0&&(e.maxValue=t.maxValue),t.limitValue!==void 0&&(e.limitValue=t.limitValue);let i$1=await b$1(L,{input:e});k$1(`Threshold created for ${i$1.ecoCreateThreshold.parameter}`),i(t,i$1.ecoCreateThreshold);}catch(e){h$1(e);}}),o.command("set-active").description("Activate or deactivate a threshold").argument("<id>","Threshold ID").requiredOption("--active <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(D,{id:t,isActive:e.active});k$1(i$1.ecoSetThresholdActive.isActive?"Threshold activated":"Threshold disabled"),i(e,i$1.ecoSetThresholdActive);}catch(i){h$1(i);}});}function ut(c){let o=c.command("measurements").description("EcoImpactHub sensor measurements");o.command("list").description("List measurements").option("--site <id>","Filter by site ID").option("--sensor <id>","Filter by sensor ID").option("--parameter <p>","Filter by parameter").option("--breaches-only","Only threshold breaches").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(N,{siteId:t.site,sensorId:t.sensor,parameter:t.parameter,breachesOnly:t.breachesOnly?!0:void 0,pagination:l(t)});i(t,e.ecoListMeasurements.items,{headers:["ID","Parameter","Value","Unit","Source","Breach","Recorded"],rows:e.ecoListMeasurements.items.map(i=>[r(i.id,12),i.parameter,String(i.value),i.unit,i.source,i.isBreach?"yes":"no",q$1(i.recordedAt)])});}catch(e){h$1(e);}}),o.command("record").description("Record a measurement").requiredOption("--site <id>","Site ID").requiredOption("--parameter <p>","Measured parameter").requiredOption("--value <n>","Measured value",d).requiredOption("--unit <u>","Unit").requiredOption("--recorded-at <iso>","Recorded-at timestamp (ISO)").option("--sensor <id>","Sensor ID").option("--source <s>","SENSOR|MANUAL|IMPORT|SATELLITE|CALCULATED","SENSOR").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={siteId:t.site,parameter:t.parameter,value:t.value,unit:t.unit,recordedAt:t.recordedAt,source:(t.source??"SENSOR").toUpperCase()};t.sensor&&(e.sensorId=t.sensor),t.notes&&(e.notes=t.notes);let i$1=await b$1($,{input:e});k$1(i$1.ecoRecordMeasurement.isBreach?"Measurement recorded (threshold breach!)":"Measurement recorded"),i(t,i$1.ecoRecordMeasurement);}catch(e){h$1(e);}});}function pt(c){let o$1=c.command("species").description("EcoImpactHub tracked species");o$1.command("list").description("List species").option("--taxon-group <g>","MAMMAL|BIRD|REPTILE|...").option("--conservation-status <s>","LEAST_CONCERN|ENDANGERED|...").option("--priority-only","Only priority species").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(H,{taxonGroup:t.taxonGroup?t.taxonGroup.toUpperCase():void 0,conservationStatus:t.conservationStatus?t.conservationStatus.toUpperCase():void 0,priorityOnly:t.priorityOnly?!0:void 0,pagination:l(t)});i(t,e.ecoListSpecies.items,{headers:["ID","Common Name","Scientific","Taxon","Status","Priority"],rows:e.ecoListSpecies.items.map(i=>[r(i.id,12),i.commonName,i.scientificName??"-",i.taxonGroup,i.conservationStatus,i.isPriority?"yes":"no"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a species by id").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(P,{id:t});if(!i$1.ecoSpecies)throw new o(`Species ${t} not found`);i(e,i$1.ecoSpecies);}catch(i){h$1(i);}}),o$1.command("create").description("Create a species record").requiredOption("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group","OTHER").option("--conservation-status <s>","Conservation status","NOT_EVALUATED").option("--priority","Mark as priority species").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={commonName:t.commonName,taxonGroup:(t.taxonGroup??"OTHER").toUpperCase(),conservationStatus:(t.conservationStatus??"NOT_EVALUATED").toUpperCase(),isPriority:t.priority??!1};t.scientificName&&(e.scientificName=t.scientificName),t.description&&(e.description=t.description);let i$1=await b$1(U,{input:e});k$1(`Species created: ${i$1.ecoCreateSpecies.commonName}`),i(t,i$1.ecoCreateSpecies);}catch(e){h$1(e);}}),o$1.command("update").description("Update a species record").argument("<id>","Species ID").option("--common-name <name>","Common name").option("--scientific-name <name>","Scientific name").option("--taxon-group <g>","Taxon group").option("--conservation-status <s>","Conservation status").option("--priority <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.commonName&&(i$1.commonName=e.commonName),e.scientificName&&(i$1.scientificName=e.scientificName),e.taxonGroup&&(i$1.taxonGroup=e.taxonGroup.toUpperCase()),e.conservationStatus&&(i$1.conservationStatus=e.conservationStatus.toUpperCase()),e.priority!==void 0&&(i$1.isPriority=e.priority),e.description!==void 0&&(i$1.description=e.description),!Object.keys(i$1).length)throw new o("No updates specified");let C=await b$1(k,{id:t,input:i$1});k$1("Species updated"),i(e,C.ecoUpdateSpecies);}catch(i){h$1(i);}}),o$1.command("archive").description("Archive a species record").argument("<id>","Species ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(V,{id:t});k$1(i$1.ecoArchiveSpecies?"Species archived":"Species not archived"),i(e,{archived:i$1.ecoArchiveSpecies});}catch(i){h$1(i);}});}function mt(c){let o=c.command("observations").description("EcoImpactHub species observations");o.command("list").description("List observations").option("--species <id>","Filter by species ID").option("--site <id>","Filter by site ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(M,{speciesId:t.species,siteId:t.site,pagination:l(t)});i(t,e.ecoListObservations.items,{headers:["ID","Species","Site","Method","Count","Observed"],rows:e.ecoListObservations.items.map(i=>[r(i.id,12),r(i.speciesId,12),i.siteId?r(i.siteId,12):"-",i.method,String(i.count),q$1(i.observedAt)])});}catch(e){h$1(e);}}),o.command("record").description("Record a species observation").requiredOption("--species <id>","Species ID").requiredOption("--observed-at <iso>","Observed-at timestamp (ISO)").option("--site <id>","Site ID").option("--method <m>","DIRECT_SIGHTING|CAMERA_TRAP|ACOUSTIC|...","DIRECT_SIGHTING").option("--count <n>","Individual count",p).option("--latitude <n>","Latitude",d).option("--longitude <n>","Longitude",d).option("--evidence-file <id>","Evidence file ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={speciesId:t.species,observedAt:t.observedAt,method:(t.method??"DIRECT_SIGHTING").toUpperCase()};t.site&&(e.siteId=t.site),t.count!==void 0&&(e.count=t.count),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.evidenceFile&&(e.evidenceFileId=t.evidenceFile),t.notes&&(e.notes=t.notes);let i$1=await b$1(q,{input:e});k$1("Observation recorded"),i(t,i$1.ecoRecordObservation);}catch(e){h$1(e);}});}function gt(c){let o$1=c.command("habitat").description("EcoImpactHub habitat projects & restoration activities");o$1.command("list").description("List habitat projects").option("--status <s>","PLANNED|IN_PROGRESS|MONITORING|...").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{status:t.status?t.status.toUpperCase():void 0});i(t,e.ecoListHabitatProjects,{headers:["ID","Name","Status","Target Ha","Budget","Currency"],rows:e.ecoListHabitatProjects.map(i=>[r(i.id,12),i.name,i.status,i.targetHectares!=null?String(i.targetHectares):"-",i.budgetAmount!=null?String(i.budgetAmount):"-",i.currency??"-"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a habitat project by id").argument("<id>","Project ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(G,{id:t});if(!i$1.ecoHabitatProject)throw new o(`Habitat project ${t} not found`);i(e,i$1.ecoHabitatProject);}catch(i){h$1(i);}}),o$1.command("create").description("Create a habitat project").requiredOption("--name <name>","Project name").option("--description <s>","Description").option("--site <id>","Site ID").option("--manager <id>","Manager user ID").option("--target-hectares <n>","Target hectares",d).option("--budget-amount <n>","Budget amount",d).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.site&&(e.siteId=t.site),t.manager&&(e.managerId=t.manager),t.targetHectares!==void 0&&(e.targetHectares=t.targetHectares),t.budgetAmount!==void 0&&(e.budgetAmount=t.budgetAmount),t.currency&&(e.currency=t.currency),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let i$1=await b$1(j,{input:e});k$1(`Habitat project created: ${i$1.ecoCreateHabitatProject.name}`),i(t,i$1.ecoCreateHabitatProject);}catch(e){h$1(e);}}),o$1.command("transition").description("Advance a habitat project through its lifecycle").argument("<id>","Project ID").requiredOption("--status <s>","PLANNED|IN_PROGRESS|MONITORING|COMPLETED|ON_HOLD|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(x,{id:t,status:e.status.toUpperCase()});k$1(`Project status set to ${i$1.ecoTransitionHabitatProject.status}`),i(e,i$1.ecoTransitionHabitatProject);}catch(i){h$1(i);}}),o$1.command("log-activity").description("Log a restoration activity against a project").requiredOption("--project <id>","Project ID").requiredOption("--summary <s>","Activity summary").requiredOption("--performed-at <iso>","Performed-at timestamp (ISO)").option("--type <t>","PLANTING|INVASIVE_REMOVAL|REWILDING|...","PLANTING").option("--details <s>","Details").option("--quantity <n>","Quantity",d).option("--unit <u>","Unit").option("-f, --format <format>","Output format").action(async t=>{try{let e={projectId:t.project,summary:t.summary,performedAt:t.performedAt,type:(t.type??"PLANTING").toUpperCase()};t.details&&(e.details=t.details),t.quantity!==void 0&&(e.quantity=t.quantity),t.unit&&(e.unit=t.unit);let i$1=await b$1(B,{input:e});k$1("Restoration activity logged"),i(t,i$1.ecoLogRestorationActivity);}catch(e){h$1(e);}});}function ft(c){let o=c.command("carbon").description("EcoImpactHub carbon ledger & emission factors");o.command("list").description("List carbon ledger entries").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("--status <s>","DRAFT|RECORDED|VERIFIED|ADJUSTED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Y,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site,status:t.status?t.status.toUpperCase():void 0,pagination:l(t)});i(t,e.ecoListCarbonEntries.items,{headers:["ID","Category","Scope","Activity","CO2e kg","Status"],rows:e.ecoListCarbonEntries.items.map(i=>[r(i.id,12),i.category,i.scope,`${i.activityValue} ${i.activityUnit}`,String(i.co2eKg),i.status])});}catch(e){h$1(e);}}),o.command("total").description("Total CO2e (kg) recorded in the workspace").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--site <id>","Filter by site ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(K,{scope:t.scope?t.scope.toUpperCase():void 0,siteId:t.site});k$1(`Total CO2e: ${e.ecoCarbonTotalKg} kg`),i(t,{totalCo2eKg:e.ecoCarbonTotalKg});}catch(e){h$1(e);}}),o.command("record").description("Record a carbon ledger entry").requiredOption("--category <c>","Category").requiredOption("--activity-value <n>","Activity value",d).requiredOption("--activity-unit <u>","Activity unit").requiredOption("--period-start <iso>","Period start (ISO)").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--factor <id>","Emission factor ID").option("--site <id>","Site ID").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,activityValue:t.activityValue,activityUnit:t.activityUnit,periodStart:t.periodStart,scope:(t.scope??"SCOPE_1").toUpperCase()};t.factor&&(e.factorId=t.factor),t.site&&(e.siteId=t.site),t.notes&&(e.notes=t.notes);let i$1=await b$1(W,{input:e});k$1(`Carbon entry recorded: ${i$1.ecoRecordCarbonEntry.co2eKg} kg CO2e`),i(t,i$1.ecoRecordCarbonEntry);}catch(e){h$1(e);}}),o.command("verify").description("Verify a carbon ledger entry").argument("<id>","Carbon entry ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(J,{id:t});k$1(`Carbon entry ${i$1.ecoVerifyCarbonEntry.status}`),i(e,i$1.ecoVerifyCarbonEntry);}catch(i){h$1(i);}}),o.command("list-factors").description("List emission factors").option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3").option("--active-only","Only active factors").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(z,{scope:t.scope?t.scope.toUpperCase():void 0,activeOnly:t.activeOnly?!0:void 0});i(t,e.ecoListEmissionFactors,{headers:["ID","Name","Scope","Unit","kgCO2e","Year","Active"],rows:e.ecoListEmissionFactors.map(i=>[r(i.id,12),i.name,i.scope,i.activityUnit,String(i.factorKgco2e),i.validYear!=null?String(i.validYear):"-",i.isActive?"yes":"no"])});}catch(e){h$1(e);}}),o.command("create-factor").description("Create an emission factor").requiredOption("--name <name>","Factor name").requiredOption("--activity-unit <u>","Activity unit").requiredOption("--factor-kgco2e <n>","kg CO2e per unit",d).option("--scope <s>","SCOPE_1|SCOPE_2|SCOPE_3","SCOPE_1").option("--source <s>","Source").option("--valid-year <n>","Valid year",p).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,activityUnit:t.activityUnit,factorKgco2e:t.factorKgco2e,scope:(t.scope??"SCOPE_1").toUpperCase()};t.source&&(e.source=t.source),t.validYear!==void 0&&(e.validYear=t.validYear);let i$1=await b$1(Q,{input:e});k$1(`Emission factor created: ${i$1.ecoCreateEmissionFactor.name}`),i(t,i$1.ecoCreateEmissionFactor);}catch(e){h$1(e);}});}function lt(c){let o=c.command("targets").description("EcoImpactHub reduction targets");o.command("list").description("List reduction targets").option("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(X,{status:t.status?t.status.toUpperCase():void 0});i(t,e.ecoListReductionTargets,{headers:["ID","Name","Metric","Baseline","Target","Status"],rows:e.ecoListReductionTargets.map(i=>[r(i.id,12),i.name,i.metric,`${i.baselineValue} (${i.baselineYear})`,`${i.targetValue} (${i.targetYear})`,i.status])});}catch(e){h$1(e);}}),o.command("create").description("Create a reduction target").requiredOption("--name <name>","Target name").requiredOption("--metric <m>","Metric").requiredOption("--unit <u>","Unit").requiredOption("--baseline-value <n>","Baseline value",d).requiredOption("--baseline-year <n>","Baseline year",p).requiredOption("--target-value <n>","Target value",d).requiredOption("--target-year <n>","Target year",p).option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,metric:t.metric,unit:t.unit,baselineValue:t.baselineValue,baselineYear:t.baselineYear,targetValue:t.targetValue,targetYear:t.targetYear};t.description&&(e.description=t.description);let i$1=await b$1(Z,{input:e});k$1(`Reduction target created: ${i$1.ecoCreateReductionTarget.name}`),i(t,i$1.ecoCreateReductionTarget);}catch(e){h$1(e);}}),o.command("set-status").description("Update a reduction target status").argument("<id>","Target ID").requiredOption("--status <s>","PROPOSED|ACTIVE|ACHIEVED|MISSED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(tt,{id:t,status:e.status.toUpperCase()});k$1(`Target status set to ${i$1.ecoSetReductionTargetStatus.status}`),i(e,i$1.ecoSetReductionTargetStatus);}catch(i){h$1(i);}});}function Et(c){let o$1=c.command("reports").description("EcoImpactHub sustainability reports");o$1.command("list").description("List reports").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(it,{status:t.status?t.status.toUpperCase():void 0,pagination:l(t)});i(t,e.ecoListReports.items,{headers:["ID","Title","Framework","Status","Period End","Published"],rows:e.ecoListReports.items.map(i=>[r(i.id,12),i.title,i.framework,i.status,q$1(i.periodEnd),q$1(i.publishedAt)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a report by id").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(et,{id:t});if(!i$1.ecoReport)throw new o(`Report ${t} not found`);i(e,i$1.ecoReport);}catch(i){h$1(i);}}),o$1.command("create").description("Create a sustainability report").requiredOption("--title <t>","Report title").requiredOption("--period-start <iso>","Period start (ISO)").requiredOption("--period-end <iso>","Period end (ISO)").option("--framework <f>","GHG_PROTOCOL|GRI|SASB|TCFD|CDP|CUSTOM","GHG_PROTOCOL").option("--summary <s>","Summary").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,periodStart:t.periodStart,periodEnd:t.periodEnd,framework:(t.framework??"GHG_PROTOCOL").toUpperCase()};t.summary&&(e.summary=t.summary);let i$1=await b$1(ot,{input:e});k$1(`Report created: ${i$1.ecoCreateReport.title}`),i(t,i$1.ecoCreateReport);}catch(e){h$1(e);}}),o$1.command("add-line-item").description("Add a line item to a report").requiredOption("--report <id>","Report ID").requiredOption("--label <l>","Line item label").requiredOption("--value <n>","Value",d).requiredOption("--unit <u>","Unit").option("--category <c>","Category").option("--carbon-entry <id>","Linked carbon entry ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={reportId:t.report,label:t.label,value:t.value,unit:t.unit};t.category&&(e.category=t.category),t.carbonEntry&&(e.carbonEntryId=t.carbonEntry);let i$1=await b$1(rt,{input:e});k$1("Line item added"),i(t,i$1.ecoAddReportLineItem);}catch(e){h$1(e);}}),o$1.command("publish").description("Publish a report").argument("<id>","Report ID").option("--file <id>","Published artifact file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(nt,{id:t,fileId:e.file});k$1(`Report published: ${i$1.ecoPublishReport.title}`),i(e,i$1.ecoPublishReport);}catch(i){h$1(i);}});}function St(c){c.command("health").description("EcoImpactHub service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await d$1(at);k$1(t.ecoHealth),i(o,{health:t.ecoHealth});}catch(t){h$1(t);}});}var Ct={id:"ecoimpacthub",version:"1.0.0",displayName:"EcoImpactHub",dependsOn:["auth","workspaces"],register(c,o){a(o);let t=c.command("ecoimpacthub").description("EcoImpactHub environmental-impact & sustainability monitoring");st(t),ct(t),dt(t),ut(t),pt(t),mt(t),gt(t),ft(t),lt(t),Et(t),St(t);}},le=Ct;export{le as default};