@burdenoff/cli-sdk 2026.1102.2 → 2026.1102.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/modules/adaptercloud/index.cjs +6 -3
  2. package/dist/modules/adaptercloud/index.js +6 -3
  3. package/dist/modules/assethandler/index.cjs +22 -57
  4. package/dist/modules/assethandler/index.js +27 -62
  5. package/dist/modules/atheletebridge/index.cjs +33 -19
  6. package/dist/modules/atheletebridge/index.js +32 -18
  7. package/dist/modules/buildmyiq/index.cjs +64 -67
  8. package/dist/modules/buildmyiq/index.js +60 -63
  9. package/dist/modules/comradecircle/index.cjs +23 -15
  10. package/dist/modules/comradecircle/index.js +19 -11
  11. package/dist/modules/coolandlovely/index.cjs +27 -14
  12. package/dist/modules/coolandlovely/index.js +29 -16
  13. package/dist/modules/crewfoundry/index.cjs +63 -116
  14. package/dist/modules/crewfoundry/index.js +62 -115
  15. package/dist/modules/ecoimpacthub/index.cjs +19 -9
  16. package/dist/modules/ecoimpacthub/index.js +19 -9
  17. package/dist/modules/eventfullymanaged/index.cjs +77 -77
  18. package/dist/modules/eventfullymanaged/index.js +78 -78
  19. package/dist/modules/govcitizenhub/index.cjs +7 -4
  20. package/dist/modules/govcitizenhub/index.js +7 -4
  21. package/dist/modules/headshotmarketing/index.cjs +92 -261
  22. package/dist/modules/headshotmarketing/index.js +94 -263
  23. package/dist/modules/hookmovies/index.cjs +17 -6
  24. package/dist/modules/hookmovies/index.js +20 -9
  25. package/dist/modules/housingvista/index.cjs +31 -24
  26. package/dist/modules/housingvista/index.js +26 -19
  27. package/dist/modules/intelwatchtower/index.cjs +24 -12
  28. package/dist/modules/intelwatchtower/index.js +24 -12
  29. package/dist/modules/kadaikodi/index.cjs +56 -90
  30. package/dist/modules/kadaikodi/index.js +60 -94
  31. package/dist/modules/labsofscience/index.cjs +8 -4
  32. package/dist/modules/labsofscience/index.js +8 -4
  33. package/dist/modules/manufacturedops/index.cjs +35 -22
  34. package/dist/modules/manufacturedops/index.js +34 -21
  35. package/dist/modules/movethewheels/index.cjs +103 -231
  36. package/dist/modules/movethewheels/index.js +103 -231
  37. package/dist/modules/planmagnet/index.cjs +21 -21
  38. package/dist/modules/planmagnet/index.js +32 -32
  39. package/dist/modules/proserviceworld/index.cjs +17 -12
  40. package/dist/modules/proserviceworld/index.js +17 -12
  41. package/dist/modules/subscriberbot/index.cjs +43 -19
  42. package/dist/modules/subscriberbot/index.js +46 -22
  43. package/dist/modules/technospam/index.cjs +17 -8
  44. package/dist/modules/technospam/index.js +17 -8
  45. package/dist/modules/theculturepost/index.cjs +27 -22
  46. package/dist/modules/theculturepost/index.js +31 -26
  47. package/dist/modules/theglobalfuel/index.cjs +65 -60
  48. package/dist/modules/theglobalfuel/index.js +65 -60
  49. package/dist/modules/timecampus/index.cjs +31 -85
  50. package/dist/modules/timecampus/index.js +32 -86
  51. package/package.json +1 -1
@@ -274,8 +274,11 @@
274
274
  `,rt=`
275
275
  query AdaptercloudListDriftRecords($resourceId: ID, $status: AdaDriftStatus) {
276
276
  adaListDriftRecords(resourceId: $resourceId, status: $status) {
277
- id workspaceId resourceId attributePath severity status expectedValue
278
- observedValue detectedAt remediatedAt createdAt updatedAt
277
+ items {
278
+ id workspaceId resourceId attributePath severity status expectedValue observedValue
279
+ detectedAt remediatedAt createdAt updatedAt
280
+ }
281
+ pageInfo { cursor hasMore totalCount }
279
282
  }
280
283
  }
281
284
  `,it=`
@@ -312,4 +315,4 @@
312
315
  query AdaptercloudHealth {
313
316
  adaHealth
314
317
  }
315
- `;function l(r,o){try{return JSON.parse(o)}catch{throw new d(`--${r} must be valid JSON`)}}function m(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new d(`Expected an integer but got "${r}"`);return o}function v(r){let o=Number.parseFloat(r);if(Number.isNaN(o))throw new d(`Expected a number but got "${r}"`);return o}function f(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function ut(r){let o=r.command("adapters").description("AdapterCloud adapters");o.command("list").description("List adapters").option("--kind <k>","Filter by adapter kind").option("--status <s>","Filter by adapter status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(T,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[u(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){i(e);}}),o.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(E,{id:t});if(!n.adaAdapter)throw new d(`Adapter ${t} not found`);s(e,n.adaAdapter);}catch(n){i(n);}}),o.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=f(t.capabilities)),t.configSchema&&(e.configSchema=l("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await a(O,{input:e});c(`Adapter created: ${n.adaCreateAdapter.name}`),s(t,n.adaCreateAdapter);}catch(e){i(e);}}),o.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=f(e.capabilities)),e.configSchema&&(n.configSchema=l("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(x,{id:t,input:n});c("Adapter updated"),s(e,p.adaUpdateAdapter);}catch(n){i(n);}}),o.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});c(`Adapter archived: ${n.adaArchiveAdapter}`),s(e,{archived:n.adaArchiveAdapter});}catch(n){i(n);}});}function pt(r){let o=r.command("connections").description("AdapterCloud connections");o.command("list").description("List connections").option("--adapter <id>","Filter by adapter ID").option("--status <s>","Filter by connection status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{adapterId:t.adapter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[u(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){i(e);}}),o.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a($,{id:t});if(!n.adaConnection)throw new d(`Connection ${t} not found`);s(e,n.adaConnection);}catch(n){i(n);}}),o.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=l("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await a(L,{input:e});c(`Connection created: ${n.adaCreateConnection.name}`),s(t,n.adaCreateConnection);}catch(e){i(e);}}),o.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=l("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(N,{id:t,input:n});c("Connection updated"),s(e,p.adaUpdateConnection);}catch(n){i(n);}}),o.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});c(`Connection disabled: ${n.adaDisableConnection.status}`),s(e,n.adaDisableConnection);}catch(n){i(n);}}),o.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(U,{id:t,status:e.status.toUpperCase()});c(`Connection status set to ${n.adaSetConnectionStatus.status}`),s(e,n.adaSetConnectionStatus);}catch(n){i(n);}});}function gt(r){let o=r.command("resources").description("AdapterCloud resources");o.command("list").description("List resources").option("--connection <id>","Filter by connection ID").option("--resource-type <t>","Filter by resource type").option("--state <s>","Filter by resource state").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{connectionId:t.connection,resourceType:t.resourceType,state:t.state?t.state.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[u(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){i(e);}}),o.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(q,{id:t});if(!n.adaResource)throw new d(`Resource ${t} not found`);s(e,n.adaResource);}catch(n){i(n);}}),o.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",v).option("--attributes <json>","Attributes JSON").option("--provider-tags <json>","Provider tags JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,externalId:t.externalId,name:t.name,resourceType:t.resourceType};t.region&&(e.region=t.region),t.monthlyCost!==void 0&&(e.monthlyCost=t.monthlyCost),t.attributes&&(e.attributes=l("attributes",t.attributes)),t.providerTags&&(e.providerTags=l("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await a(M,{input:e});c(`Resource registered: ${n.adaRegisterResource.name}`),s(t,n.adaRegisterResource);}catch(e){i(e);}});}function mt(r){let o=r.command("policies").description("AdapterCloud policies & violations");o.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(G,{kind:t.kind?t.kind.toUpperCase():void 0,isActive:t.active,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[u(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){i(e);}}),o.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});if(!n.adaPolicy)throw new d(`Policy ${t} not found`);s(e,n.adaPolicy);}catch(n){i(n);}}),o.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression:l("expression",t.expression),kind:(t.kind??"GUARDRAIL").toUpperCase(),severity:(t.severity??"MEDIUM").toUpperCase(),enforcement:(t.enforcement??"WARN").toUpperCase()};t.active!==void 0&&(e.isActive=t.active),t.description&&(e.description=t.description),t.appliesTo&&(e.appliesTo=f(t.appliesTo)),t.tags&&(e.tags=f(t.tags));let n=await a(W,{input:e});c(`Policy created: ${n.adaCreatePolicy.name}`),s(t,n.adaCreatePolicy);}catch(e){i(e);}}),o.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=l("expression",e.expression)),e.appliesTo&&(n.appliesTo=f(e.appliesTo)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(j,{id:t,input:n});c("Policy updated"),s(e,p.adaUpdatePolicy);}catch(n){i(n);}}),o.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Y,{id:t});c(`Policy archived: ${n.adaArchivePolicy}`),s(e,{archived:n.adaArchivePolicy});}catch(n){i(n);}}),o.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(J,{policyId:t.policy,resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[u(n.id,12),u(n.policyId,12),u(n.resourceId,12),n.severity,n.status,u(n.message,30)])});}catch(e){i(e);}}),o.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=l("evidence",t.evidence));let n=await a(H,{input:e});c("Violation recorded"),s(t,n.adaRecordViolation);}catch(e){i(e);}}),o.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});c(`Violation ${n.adaResolveViolation.status}`),s(e,n.adaResolveViolation);}catch(n){i(n);}});}function lt(r){let o=r.command("sync-runs").description("AdapterCloud sync runs");o.command("list").description("List sync runs").option("--connection <id>","Filter by connection ID").option("--status <s>","Filter by sync status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{connectionId:t.connection,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[u(n.id,12),u(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){i(e);}}),o.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t});if(!n.adaSyncRun)throw new d(`Sync run ${t} not found`);s(e,n.adaSyncRun);}catch(n){i(n);}}),o.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await a(Q,{input:e});c(`Sync run started: ${n.adaStartSyncRun.id}`),s(t,n.adaStartSyncRun);}catch(e){i(e);}}),o.command("complete").description("Mark a sync run complete").argument("<id>","Sync run ID").option("--discovered-count <n>","Discovered count",m).option("--reconciled-count <n>","Reconciled count",m).option("--drift-count <n>","Drift count",m).option("--violation-count <n>","Violation count",m).option("--summary <json>","Summary JSON").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};e.discoveredCount!==void 0&&(n.discoveredCount=e.discoveredCount),e.reconciledCount!==void 0&&(n.reconciledCount=e.reconciledCount),e.driftCount!==void 0&&(n.driftCount=e.driftCount),e.violationCount!==void 0&&(n.violationCount=e.violationCount),e.summary&&(n.summary=l("summary",e.summary));let p=await a(X,{id:t,input:Object.keys(n).length?n:void 0});c(`Sync run completed: ${p.adaCompleteSyncRun.status}`),s(e,p.adaCompleteSyncRun);}catch(n){i(n);}}),o.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t});c(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),s(e,n.adaCancelSyncRun);}catch(n){i(n);}}),o.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(tt,{id:t,error:e.error});c(`Sync run failed: ${n.adaFailSyncRun.status}`),s(e,n.adaFailSyncRun);}catch(n){i(n);}});}function ft(r){let o=r.command("cost").description("AdapterCloud cost records & summaries");o.command("summary").description("Aggregate spend grouped by service").option("--connection <id>","Scope summary to a connection").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(et,{connectionId:t.connection});s(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){i(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(nt,{connectionId:t.connection,resourceId:t.resource,service:t.service,pagination:{limit:100,offset:n}})).adaListCostRecords;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p=>[u(p.id,12),p.service,String(p.amount),p.currency,p.periodStart,p.periodEnd])});}catch(e){i(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",v).requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--currency <c>","Currency code").option("--connection <id>","Connection ID").option("--resource <id>","Resource ID").option("--breakdown <json>","Breakdown JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={service:t.service,amount:t.amount,periodStart:t.periodStart,periodEnd:t.periodEnd};t.currency&&(e.currency=t.currency),t.connection&&(e.connectionId=t.connection),t.resource&&(e.resourceId=t.resource),t.breakdown&&(e.breakdown=l("breakdown",t.breakdown));let n=await a(ot,{input:e});c(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),s(t,n.adaIngestCost);}catch(e){i(e);}});}function Ct(r){let o=r.command("drift").description("AdapterCloud drift records");o.command("list").description("List drift records").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by drift status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(rt,{resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0});s(t,e.adaListDriftRecords,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.map(n=>[u(n.id,12),u(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){i(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=l("expected",t.expected)),t.observed&&(e.observedValue=l("observed",t.observed));let n=await a(it,{input:e});c("Drift recorded"),s(t,n.adaRecordDrift);}catch(e){i(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});c(`Drift remediated: ${n.adaRemediateDrift.status}`),s(e,n.adaRemediateDrift);}catch(n){i(n);}});}function yt(r){let o=r.command("topology").description("AdapterCloud topology edges");o.command("list").description("List topology edges").option("--resource <id>","Filter by resource ID (either endpoint)").option("--kind <k>","Filter by edge kind").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(at,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p=>[u(p.id,12),u(p.fromResourceId,12),u(p.toResourceId,12),p.kind,p.bidirectional?"yes":"no",String(p.weight)])});}catch(e){i(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",m).option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={fromResourceId:t.from,toResourceId:t.to,kind:(t.kind??"DEPENDS_ON").toUpperCase()};t.bidirectional&&(e.bidirectional=!0),t.weight!==void 0&&(e.weight=t.weight),t.attributes&&(e.attributes=l("attributes",t.attributes));let n=await a(ct,{input:e});c(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),s(t,n.adaCreateTopologyEdge);}catch(e){i(e);}});}function It(r){r.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await k(dt);c(t.adaHealth),s(o,{health:t.adaHealth});}catch(t){i(t);}});}var Dt={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(r,o){b(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");ut(t),pt(t),gt(t),mt(t),lt(t),ft(t),Ct(t),yt(t),It(t);}},Sn=Dt;module.exports=Sn;
318
+ `;function l(r,o){try{return JSON.parse(o)}catch{throw new d(`--${r} must be valid JSON`)}}function m(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new d(`Expected an integer but got "${r}"`);return o}function v(r){let o=Number.parseFloat(r);if(Number.isNaN(o))throw new d(`Expected a number but got "${r}"`);return o}function f(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function ut(r){let o=r.command("adapters").description("AdapterCloud adapters");o.command("list").description("List adapters").option("--kind <k>","Filter by adapter kind").option("--status <s>","Filter by adapter status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(T,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[u(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){i(e);}}),o.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(E,{id:t});if(!n.adaAdapter)throw new d(`Adapter ${t} not found`);s(e,n.adaAdapter);}catch(n){i(n);}}),o.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=f(t.capabilities)),t.configSchema&&(e.configSchema=l("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await a(O,{input:e});c(`Adapter created: ${n.adaCreateAdapter.name}`),s(t,n.adaCreateAdapter);}catch(e){i(e);}}),o.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=f(e.capabilities)),e.configSchema&&(n.configSchema=l("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(x,{id:t,input:n});c("Adapter updated"),s(e,p.adaUpdateAdapter);}catch(n){i(n);}}),o.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});c(`Adapter archived: ${n.adaArchiveAdapter}`),s(e,{archived:n.adaArchiveAdapter});}catch(n){i(n);}});}function pt(r){let o=r.command("connections").description("AdapterCloud connections");o.command("list").description("List connections").option("--adapter <id>","Filter by adapter ID").option("--status <s>","Filter by connection status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{adapterId:t.adapter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[u(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){i(e);}}),o.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a($,{id:t});if(!n.adaConnection)throw new d(`Connection ${t} not found`);s(e,n.adaConnection);}catch(n){i(n);}}),o.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=l("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await a(L,{input:e});c(`Connection created: ${n.adaCreateConnection.name}`),s(t,n.adaCreateConnection);}catch(e){i(e);}}),o.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=l("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(N,{id:t,input:n});c("Connection updated"),s(e,p.adaUpdateConnection);}catch(n){i(n);}}),o.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});c(`Connection disabled: ${n.adaDisableConnection.status}`),s(e,n.adaDisableConnection);}catch(n){i(n);}}),o.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(U,{id:t,status:e.status.toUpperCase()});c(`Connection status set to ${n.adaSetConnectionStatus.status}`),s(e,n.adaSetConnectionStatus);}catch(n){i(n);}});}function gt(r){let o=r.command("resources").description("AdapterCloud resources");o.command("list").description("List resources").option("--connection <id>","Filter by connection ID").option("--resource-type <t>","Filter by resource type").option("--state <s>","Filter by resource state").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{connectionId:t.connection,resourceType:t.resourceType,state:t.state?t.state.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[u(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){i(e);}}),o.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(q,{id:t});if(!n.adaResource)throw new d(`Resource ${t} not found`);s(e,n.adaResource);}catch(n){i(n);}}),o.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",v).option("--attributes <json>","Attributes JSON").option("--provider-tags <json>","Provider tags JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,externalId:t.externalId,name:t.name,resourceType:t.resourceType};t.region&&(e.region=t.region),t.monthlyCost!==void 0&&(e.monthlyCost=t.monthlyCost),t.attributes&&(e.attributes=l("attributes",t.attributes)),t.providerTags&&(e.providerTags=l("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await a(M,{input:e});c(`Resource registered: ${n.adaRegisterResource.name}`),s(t,n.adaRegisterResource);}catch(e){i(e);}});}function mt(r){let o=r.command("policies").description("AdapterCloud policies & violations");o.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(G,{kind:t.kind?t.kind.toUpperCase():void 0,isActive:t.active,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[u(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){i(e);}}),o.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});if(!n.adaPolicy)throw new d(`Policy ${t} not found`);s(e,n.adaPolicy);}catch(n){i(n);}}),o.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression:l("expression",t.expression),kind:(t.kind??"GUARDRAIL").toUpperCase(),severity:(t.severity??"MEDIUM").toUpperCase(),enforcement:(t.enforcement??"WARN").toUpperCase()};t.active!==void 0&&(e.isActive=t.active),t.description&&(e.description=t.description),t.appliesTo&&(e.appliesTo=f(t.appliesTo)),t.tags&&(e.tags=f(t.tags));let n=await a(W,{input:e});c(`Policy created: ${n.adaCreatePolicy.name}`),s(t,n.adaCreatePolicy);}catch(e){i(e);}}),o.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=l("expression",e.expression)),e.appliesTo&&(n.appliesTo=f(e.appliesTo)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(j,{id:t,input:n});c("Policy updated"),s(e,p.adaUpdatePolicy);}catch(n){i(n);}}),o.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Y,{id:t});c(`Policy archived: ${n.adaArchivePolicy}`),s(e,{archived:n.adaArchivePolicy});}catch(n){i(n);}}),o.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(J,{policyId:t.policy,resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[u(n.id,12),u(n.policyId,12),u(n.resourceId,12),n.severity,n.status,u(n.message,30)])});}catch(e){i(e);}}),o.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=l("evidence",t.evidence));let n=await a(H,{input:e});c("Violation recorded"),s(t,n.adaRecordViolation);}catch(e){i(e);}}),o.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});c(`Violation ${n.adaResolveViolation.status}`),s(e,n.adaResolveViolation);}catch(n){i(n);}});}function lt(r){let o=r.command("sync-runs").description("AdapterCloud sync runs");o.command("list").description("List sync runs").option("--connection <id>","Filter by connection ID").option("--status <s>","Filter by sync status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{connectionId:t.connection,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[u(n.id,12),u(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){i(e);}}),o.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t});if(!n.adaSyncRun)throw new d(`Sync run ${t} not found`);s(e,n.adaSyncRun);}catch(n){i(n);}}),o.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await a(Q,{input:e});c(`Sync run started: ${n.adaStartSyncRun.id}`),s(t,n.adaStartSyncRun);}catch(e){i(e);}}),o.command("complete").description("Mark a sync run complete").argument("<id>","Sync run ID").option("--discovered-count <n>","Discovered count",m).option("--reconciled-count <n>","Reconciled count",m).option("--drift-count <n>","Drift count",m).option("--violation-count <n>","Violation count",m).option("--summary <json>","Summary JSON").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};e.discoveredCount!==void 0&&(n.discoveredCount=e.discoveredCount),e.reconciledCount!==void 0&&(n.reconciledCount=e.reconciledCount),e.driftCount!==void 0&&(n.driftCount=e.driftCount),e.violationCount!==void 0&&(n.violationCount=e.violationCount),e.summary&&(n.summary=l("summary",e.summary));let p=await a(X,{id:t,input:Object.keys(n).length?n:void 0});c(`Sync run completed: ${p.adaCompleteSyncRun.status}`),s(e,p.adaCompleteSyncRun);}catch(n){i(n);}}),o.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t});c(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),s(e,n.adaCancelSyncRun);}catch(n){i(n);}}),o.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(tt,{id:t,error:e.error});c(`Sync run failed: ${n.adaFailSyncRun.status}`),s(e,n.adaFailSyncRun);}catch(n){i(n);}});}function ft(r){let o=r.command("cost").description("AdapterCloud cost records & summaries");o.command("summary").description("Aggregate spend grouped by service").option("--connection <id>","Scope summary to a connection").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(et,{connectionId:t.connection});s(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){i(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(nt,{connectionId:t.connection,resourceId:t.resource,service:t.service,pagination:{limit:100,offset:n}})).adaListCostRecords;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p=>[u(p.id,12),p.service,String(p.amount),p.currency,p.periodStart,p.periodEnd])});}catch(e){i(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",v).requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--currency <c>","Currency code").option("--connection <id>","Connection ID").option("--resource <id>","Resource ID").option("--breakdown <json>","Breakdown JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={service:t.service,amount:t.amount,periodStart:t.periodStart,periodEnd:t.periodEnd};t.currency&&(e.currency=t.currency),t.connection&&(e.connectionId=t.connection),t.resource&&(e.resourceId=t.resource),t.breakdown&&(e.breakdown=l("breakdown",t.breakdown));let n=await a(ot,{input:e});c(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),s(t,n.adaIngestCost);}catch(e){i(e);}});}function Ct(r){let o=r.command("drift").description("AdapterCloud drift records");o.command("list").description("List drift records").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by drift status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(rt,{resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0});s(t,e.adaListDriftRecords.items,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.items.map(n=>[u(n.id,12),u(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){i(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=l("expected",t.expected)),t.observed&&(e.observedValue=l("observed",t.observed));let n=await a(it,{input:e});c("Drift recorded"),s(t,n.adaRecordDrift);}catch(e){i(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});c(`Drift remediated: ${n.adaRemediateDrift.status}`),s(e,n.adaRemediateDrift);}catch(n){i(n);}});}function yt(r){let o=r.command("topology").description("AdapterCloud topology edges");o.command("list").description("List topology edges").option("--resource <id>","Filter by resource ID (either endpoint)").option("--kind <k>","Filter by edge kind").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(at,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p=>[u(p.id,12),u(p.fromResourceId,12),u(p.toResourceId,12),p.kind,p.bidirectional?"yes":"no",String(p.weight)])});}catch(e){i(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",m).option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={fromResourceId:t.from,toResourceId:t.to,kind:(t.kind??"DEPENDS_ON").toUpperCase()};t.bidirectional&&(e.bidirectional=!0),t.weight!==void 0&&(e.weight=t.weight),t.attributes&&(e.attributes=l("attributes",t.attributes));let n=await a(ct,{input:e});c(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),s(t,n.adaCreateTopologyEdge);}catch(e){i(e);}});}function It(r){r.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await k(dt);c(t.adaHealth),s(o,{health:t.adaHealth});}catch(t){i(t);}});}var Dt={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(r,o){b(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");ut(t),pt(t),gt(t),mt(t),lt(t),ft(t),Ct(t),yt(t),It(t);}},Sn=Dt;module.exports=Sn;
@@ -274,8 +274,11 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
274
274
  `,Z=`
275
275
  query AdaptercloudListDriftRecords($resourceId: ID, $status: AdaDriftStatus) {
276
276
  adaListDriftRecords(resourceId: $resourceId, status: $status) {
277
- id workspaceId resourceId attributePath severity status expectedValue
278
- observedValue detectedAt remediatedAt createdAt updatedAt
277
+ items {
278
+ id workspaceId resourceId attributePath severity status expectedValue observedValue
279
+ detectedAt remediatedAt createdAt updatedAt
280
+ }
281
+ pageInfo { cursor hasMore totalCount }
279
282
  }
280
283
  }
281
284
  `,tt=`
@@ -312,4 +315,4 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
312
315
  query AdaptercloudHealth {
313
316
  adaHealth
314
317
  }
315
- `;function m(d,o$1){try{return JSON.parse(o$1)}catch{throw new o(`--${d} must be valid JSON`)}}function u(d){let o$1=Number.parseInt(d,10);if(Number.isNaN(o$1))throw new o(`Expected an integer but got "${d}"`);return o$1}function R(d){let o$1=Number.parseFloat(d);if(Number.isNaN(o$1))throw new o(`Expected a number but got "${d}"`);return o$1}function f(d){return d.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function rt(d){let o$1=d.command("adapters").description("AdapterCloud adapters");o$1.command("list").description("List adapters").option("--kind <k>","Filter by adapter kind").option("--status <s>","Filter by adapter status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[r(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(S,{id:t});if(!n.adaAdapter)throw new o(`Adapter ${t} not found`);i(e,n.adaAdapter);}catch(n){h$1(n);}}),o$1.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=f(t.capabilities)),t.configSchema&&(e.configSchema=m("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await b$1(O,{input:e});k$1(`Adapter created: ${n.adaCreateAdapter.name}`),i(t,n.adaCreateAdapter);}catch(e){h$1(e);}}),o$1.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=f(e.capabilities)),e.configSchema&&(n.configSchema=m("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let p=await b$1(E,{id:t,input:n});k$1("Adapter updated"),i(e,p.adaUpdateAdapter);}catch(n){h$1(n);}}),o$1.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(w,{id:t});k$1(`Adapter archived: ${n.adaArchiveAdapter}`),i(e,{archived:n.adaArchiveAdapter});}catch(n){h$1(n);}});}function at(d){let o$1=d.command("connections").description("AdapterCloud connections");o$1.command("list").description("List connections").option("--adapter <id>","Filter by adapter ID").option("--status <s>","Filter by connection status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(k,{adapterId:t.adapter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[r(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(D,{id:t});if(!n.adaConnection)throw new o(`Connection ${t} not found`);i(e,n.adaConnection);}catch(n){h$1(n);}}),o$1.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=m("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await b$1(b,{input:e});k$1(`Connection created: ${n.adaCreateConnection.name}`),i(t,n.adaCreateConnection);}catch(e){h$1(e);}}),o$1.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=m("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let p=await b$1(T,{id:t,input:n});k$1("Connection updated"),i(e,p.adaUpdateConnection);}catch(n){h$1(n);}}),o$1.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1($,{id:t});k$1(`Connection disabled: ${n.adaDisableConnection.status}`),i(e,n.adaDisableConnection);}catch(n){h$1(n);}}),o$1.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(P,{id:t,status:e.status.toUpperCase()});k$1(`Connection status set to ${n.adaSetConnectionStatus.status}`),i(e,n.adaSetConnectionStatus);}catch(n){h$1(n);}});}function st(d){let o$1=d.command("resources").description("AdapterCloud resources");o$1.command("list").description("List resources").option("--connection <id>","Filter by connection ID").option("--resource-type <t>","Filter by resource type").option("--state <s>","Filter by resource state").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(L,{connectionId:t.connection,resourceType:t.resourceType,state:t.state?t.state.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[r(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(N,{id:t});if(!n.adaResource)throw new o(`Resource ${t} not found`);i(e,n.adaResource);}catch(n){h$1(n);}}),o$1.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",R).option("--attributes <json>","Attributes JSON").option("--provider-tags <json>","Provider tags JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,externalId:t.externalId,name:t.name,resourceType:t.resourceType};t.region&&(e.region=t.region),t.monthlyCost!==void 0&&(e.monthlyCost=t.monthlyCost),t.attributes&&(e.attributes=m("attributes",t.attributes)),t.providerTags&&(e.providerTags=m("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await b$1(_,{input:e});k$1(`Resource registered: ${n.adaRegisterResource.name}`),i(t,n.adaRegisterResource);}catch(e){h$1(e);}});}function dt(d){let o$1=d.command("policies").description("AdapterCloud policies & violations");o$1.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{kind:t.kind?t.kind.toUpperCase():void 0,isActive:t.active,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[r(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(U,{id:t});if(!n.adaPolicy)throw new o(`Policy ${t} not found`);i(e,n.adaPolicy);}catch(n){h$1(n);}}),o$1.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression:m("expression",t.expression),kind:(t.kind??"GUARDRAIL").toUpperCase(),severity:(t.severity??"MEDIUM").toUpperCase(),enforcement:(t.enforcement??"WARN").toUpperCase()};t.active!==void 0&&(e.isActive=t.active),t.description&&(e.description=t.description),t.appliesTo&&(e.appliesTo=f(t.appliesTo)),t.tags&&(e.tags=f(t.tags));let n=await b$1(x,{input:e});k$1(`Policy created: ${n.adaCreatePolicy.name}`),i(t,n.adaCreatePolicy);}catch(e){h$1(e);}}),o$1.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=m("expression",e.expression)),e.appliesTo&&(n.appliesTo=f(e.appliesTo)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let p=await b$1(M,{id:t,input:n});k$1("Policy updated"),i(e,p.adaUpdatePolicy);}catch(n){h$1(n);}}),o$1.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(q,{id:t});k$1(`Policy archived: ${n.adaArchivePolicy}`),i(e,{archived:n.adaArchivePolicy});}catch(n){h$1(n);}}),o$1.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{policyId:t.policy,resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[r(n.id,12),r(n.policyId,12),r(n.resourceId,12),n.severity,n.status,r(n.message,30)])});}catch(e){h$1(e);}}),o$1.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=m("evidence",t.evidence));let n=await b$1(G,{input:e});k$1("Violation recorded"),i(t,n.adaRecordViolation);}catch(e){h$1(e);}}),o$1.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(Y,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});k$1(`Violation ${n.adaResolveViolation.status}`),i(e,n.adaResolveViolation);}catch(n){h$1(n);}});}function ct(d){let o$1=d.command("sync-runs").description("AdapterCloud sync runs");o$1.command("list").description("List sync runs").option("--connection <id>","Filter by connection ID").option("--status <s>","Filter by sync status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{connectionId:t.connection,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[r(n.id,12),r(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(J,{id:t});if(!n.adaSyncRun)throw new o(`Sync run ${t} not found`);i(e,n.adaSyncRun);}catch(n){h$1(n);}}),o$1.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await b$1(W,{input:e});k$1(`Sync run started: ${n.adaStartSyncRun.id}`),i(t,n.adaStartSyncRun);}catch(e){h$1(e);}}),o$1.command("complete").description("Mark a sync run complete").argument("<id>","Sync run ID").option("--discovered-count <n>","Discovered count",u).option("--reconciled-count <n>","Reconciled count",u).option("--drift-count <n>","Drift count",u).option("--violation-count <n>","Violation count",u).option("--summary <json>","Summary JSON").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};e.discoveredCount!==void 0&&(n.discoveredCount=e.discoveredCount),e.reconciledCount!==void 0&&(n.reconciledCount=e.reconciledCount),e.driftCount!==void 0&&(n.driftCount=e.driftCount),e.violationCount!==void 0&&(n.violationCount=e.violationCount),e.summary&&(n.summary=m("summary",e.summary));let p=await b$1(H,{id:t,input:Object.keys(n).length?n:void 0});k$1(`Sync run completed: ${p.adaCompleteSyncRun.status}`),i(e,p.adaCompleteSyncRun);}catch(n){h$1(n);}}),o$1.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(K,{id:t});k$1(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),i(e,n.adaCancelSyncRun);}catch(n){h$1(n);}}),o$1.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(B,{id:t,error:e.error});k$1(`Sync run failed: ${n.adaFailSyncRun.status}`),i(e,n.adaFailSyncRun);}catch(n){h$1(n);}});}function pt(d){let o=d.command("cost").description("AdapterCloud cost records & summaries");o.command("summary").description("Aggregate spend grouped by service").option("--connection <id>","Scope summary to a connection").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(z,{connectionId:t.connection});i(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){h$1(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await b$1(Q,{connectionId:t.connection,resourceId:t.resource,service:t.service,pagination:{limit:100,offset:n}})).adaListCostRecords;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}i(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p=>[r(p.id,12),p.service,String(p.amount),p.currency,p.periodStart,p.periodEnd])});}catch(e){h$1(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",R).requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--currency <c>","Currency code").option("--connection <id>","Connection ID").option("--resource <id>","Resource ID").option("--breakdown <json>","Breakdown JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={service:t.service,amount:t.amount,periodStart:t.periodStart,periodEnd:t.periodEnd};t.currency&&(e.currency=t.currency),t.connection&&(e.connectionId=t.connection),t.resource&&(e.resourceId=t.resource),t.breakdown&&(e.breakdown=m("breakdown",t.breakdown));let n=await b$1(X,{input:e});k$1(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),i(t,n.adaIngestCost);}catch(e){h$1(e);}});}function ut(d){let o=d.command("drift").description("AdapterCloud drift records");o.command("list").description("List drift records").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by drift status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Z,{resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0});i(t,e.adaListDriftRecords,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.map(n=>[r(n.id,12),r(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){h$1(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=m("expected",t.expected)),t.observed&&(e.observedValue=m("observed",t.observed));let n=await b$1(tt,{input:e});k$1("Drift recorded"),i(t,n.adaRecordDrift);}catch(e){h$1(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(et,{id:t});k$1(`Drift remediated: ${n.adaRemediateDrift.status}`),i(e,n.adaRemediateDrift);}catch(n){h$1(n);}});}function mt(d){let o=d.command("topology").description("AdapterCloud topology edges");o.command("list").description("List topology edges").option("--resource <id>","Filter by resource ID (either endpoint)").option("--kind <k>","Filter by edge kind").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await b$1(nt,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}i(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p=>[r(p.id,12),r(p.fromResourceId,12),r(p.toResourceId,12),p.kind,p.bidirectional?"yes":"no",String(p.weight)])});}catch(e){h$1(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",u).option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={fromResourceId:t.from,toResourceId:t.to,kind:(t.kind??"DEPENDS_ON").toUpperCase()};t.bidirectional&&(e.bidirectional=!0),t.weight!==void 0&&(e.weight=t.weight),t.attributes&&(e.attributes=m("attributes",t.attributes));let n=await b$1(ot,{input:e});k$1(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),i(t,n.adaCreateTopologyEdge);}catch(e){h$1(e);}});}function gt(d$1){d$1.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await d(it);k$1(t.adaHealth),i(o,{health:t.adaHealth});}catch(t){h$1(t);}});}var ft={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(d,o){a(o);let t=d.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");rt(t),at(t),st(t),dt(t),ct(t),pt(t),ut(t),mt(t),gt(t);}},ie=ft;export{ie as default};
318
+ `;function m(d,o$1){try{return JSON.parse(o$1)}catch{throw new o(`--${d} must be valid JSON`)}}function u(d){let o$1=Number.parseInt(d,10);if(Number.isNaN(o$1))throw new o(`Expected an integer but got "${d}"`);return o$1}function R(d){let o$1=Number.parseFloat(d);if(Number.isNaN(o$1))throw new o(`Expected a number but got "${d}"`);return o$1}function f(d){return d.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function rt(d){let o$1=d.command("adapters").description("AdapterCloud adapters");o$1.command("list").description("List adapters").option("--kind <k>","Filter by adapter kind").option("--status <s>","Filter by adapter status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(h,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[r(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(S,{id:t});if(!n.adaAdapter)throw new o(`Adapter ${t} not found`);i(e,n.adaAdapter);}catch(n){h$1(n);}}),o$1.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=f(t.capabilities)),t.configSchema&&(e.configSchema=m("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await b$1(O,{input:e});k$1(`Adapter created: ${n.adaCreateAdapter.name}`),i(t,n.adaCreateAdapter);}catch(e){h$1(e);}}),o$1.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=f(e.capabilities)),e.configSchema&&(n.configSchema=m("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let p=await b$1(E,{id:t,input:n});k$1("Adapter updated"),i(e,p.adaUpdateAdapter);}catch(n){h$1(n);}}),o$1.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(w,{id:t});k$1(`Adapter archived: ${n.adaArchiveAdapter}`),i(e,{archived:n.adaArchiveAdapter});}catch(n){h$1(n);}});}function at(d){let o$1=d.command("connections").description("AdapterCloud connections");o$1.command("list").description("List connections").option("--adapter <id>","Filter by adapter ID").option("--status <s>","Filter by connection status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(k,{adapterId:t.adapter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[r(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(D,{id:t});if(!n.adaConnection)throw new o(`Connection ${t} not found`);i(e,n.adaConnection);}catch(n){h$1(n);}}),o$1.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=m("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await b$1(b,{input:e});k$1(`Connection created: ${n.adaCreateConnection.name}`),i(t,n.adaCreateConnection);}catch(e){h$1(e);}}),o$1.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=m("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let p=await b$1(T,{id:t,input:n});k$1("Connection updated"),i(e,p.adaUpdateConnection);}catch(n){h$1(n);}}),o$1.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1($,{id:t});k$1(`Connection disabled: ${n.adaDisableConnection.status}`),i(e,n.adaDisableConnection);}catch(n){h$1(n);}}),o$1.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(P,{id:t,status:e.status.toUpperCase()});k$1(`Connection status set to ${n.adaSetConnectionStatus.status}`),i(e,n.adaSetConnectionStatus);}catch(n){h$1(n);}});}function st(d){let o$1=d.command("resources").description("AdapterCloud resources");o$1.command("list").description("List resources").option("--connection <id>","Filter by connection ID").option("--resource-type <t>","Filter by resource type").option("--state <s>","Filter by resource state").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(L,{connectionId:t.connection,resourceType:t.resourceType,state:t.state?t.state.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[r(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(N,{id:t});if(!n.adaResource)throw new o(`Resource ${t} not found`);i(e,n.adaResource);}catch(n){h$1(n);}}),o$1.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",R).option("--attributes <json>","Attributes JSON").option("--provider-tags <json>","Provider tags JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,externalId:t.externalId,name:t.name,resourceType:t.resourceType};t.region&&(e.region=t.region),t.monthlyCost!==void 0&&(e.monthlyCost=t.monthlyCost),t.attributes&&(e.attributes=m("attributes",t.attributes)),t.providerTags&&(e.providerTags=m("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await b$1(_,{input:e});k$1(`Resource registered: ${n.adaRegisterResource.name}`),i(t,n.adaRegisterResource);}catch(e){h$1(e);}});}function dt(d){let o$1=d.command("policies").description("AdapterCloud policies & violations");o$1.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{kind:t.kind?t.kind.toUpperCase():void 0,isActive:t.active,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[r(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(U,{id:t});if(!n.adaPolicy)throw new o(`Policy ${t} not found`);i(e,n.adaPolicy);}catch(n){h$1(n);}}),o$1.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression:m("expression",t.expression),kind:(t.kind??"GUARDRAIL").toUpperCase(),severity:(t.severity??"MEDIUM").toUpperCase(),enforcement:(t.enforcement??"WARN").toUpperCase()};t.active!==void 0&&(e.isActive=t.active),t.description&&(e.description=t.description),t.appliesTo&&(e.appliesTo=f(t.appliesTo)),t.tags&&(e.tags=f(t.tags));let n=await b$1(x,{input:e});k$1(`Policy created: ${n.adaCreatePolicy.name}`),i(t,n.adaCreatePolicy);}catch(e){h$1(e);}}),o$1.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=m("expression",e.expression)),e.appliesTo&&(n.appliesTo=f(e.appliesTo)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let p=await b$1(M,{id:t,input:n});k$1("Policy updated"),i(e,p.adaUpdatePolicy);}catch(n){h$1(n);}}),o$1.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(q,{id:t});k$1(`Policy archived: ${n.adaArchivePolicy}`),i(e,{archived:n.adaArchivePolicy});}catch(n){h$1(n);}}),o$1.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{policyId:t.policy,resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[r(n.id,12),r(n.policyId,12),r(n.resourceId,12),n.severity,n.status,r(n.message,30)])});}catch(e){h$1(e);}}),o$1.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=m("evidence",t.evidence));let n=await b$1(G,{input:e});k$1("Violation recorded"),i(t,n.adaRecordViolation);}catch(e){h$1(e);}}),o$1.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(Y,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});k$1(`Violation ${n.adaResolveViolation.status}`),i(e,n.adaResolveViolation);}catch(n){h$1(n);}});}function ct(d){let o$1=d.command("sync-runs").description("AdapterCloud sync runs");o$1.command("list").description("List sync runs").option("--connection <id>","Filter by connection ID").option("--status <s>","Filter by sync status").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(j,{connectionId:t.connection,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[r(n.id,12),r(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){h$1(e);}}),o$1.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(J,{id:t});if(!n.adaSyncRun)throw new o(`Sync run ${t} not found`);i(e,n.adaSyncRun);}catch(n){h$1(n);}}),o$1.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await b$1(W,{input:e});k$1(`Sync run started: ${n.adaStartSyncRun.id}`),i(t,n.adaStartSyncRun);}catch(e){h$1(e);}}),o$1.command("complete").description("Mark a sync run complete").argument("<id>","Sync run ID").option("--discovered-count <n>","Discovered count",u).option("--reconciled-count <n>","Reconciled count",u).option("--drift-count <n>","Drift count",u).option("--violation-count <n>","Violation count",u).option("--summary <json>","Summary JSON").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};e.discoveredCount!==void 0&&(n.discoveredCount=e.discoveredCount),e.reconciledCount!==void 0&&(n.reconciledCount=e.reconciledCount),e.driftCount!==void 0&&(n.driftCount=e.driftCount),e.violationCount!==void 0&&(n.violationCount=e.violationCount),e.summary&&(n.summary=m("summary",e.summary));let p=await b$1(H,{id:t,input:Object.keys(n).length?n:void 0});k$1(`Sync run completed: ${p.adaCompleteSyncRun.status}`),i(e,p.adaCompleteSyncRun);}catch(n){h$1(n);}}),o$1.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(K,{id:t});k$1(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),i(e,n.adaCancelSyncRun);}catch(n){h$1(n);}}),o$1.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(B,{id:t,error:e.error});k$1(`Sync run failed: ${n.adaFailSyncRun.status}`),i(e,n.adaFailSyncRun);}catch(n){h$1(n);}});}function pt(d){let o=d.command("cost").description("AdapterCloud cost records & summaries");o.command("summary").description("Aggregate spend grouped by service").option("--connection <id>","Scope summary to a connection").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(z,{connectionId:t.connection});i(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){h$1(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await b$1(Q,{connectionId:t.connection,resourceId:t.resource,service:t.service,pagination:{limit:100,offset:n}})).adaListCostRecords;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}i(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p=>[r(p.id,12),p.service,String(p.amount),p.currency,p.periodStart,p.periodEnd])});}catch(e){h$1(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",R).requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--currency <c>","Currency code").option("--connection <id>","Connection ID").option("--resource <id>","Resource ID").option("--breakdown <json>","Breakdown JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={service:t.service,amount:t.amount,periodStart:t.periodStart,periodEnd:t.periodEnd};t.currency&&(e.currency=t.currency),t.connection&&(e.connectionId=t.connection),t.resource&&(e.resourceId=t.resource),t.breakdown&&(e.breakdown=m("breakdown",t.breakdown));let n=await b$1(X,{input:e});k$1(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),i(t,n.adaIngestCost);}catch(e){h$1(e);}});}function ut(d){let o=d.command("drift").description("AdapterCloud drift records");o.command("list").description("List drift records").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by drift status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Z,{resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0});i(t,e.adaListDriftRecords.items,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.items.map(n=>[r(n.id,12),r(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){h$1(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=m("expected",t.expected)),t.observed&&(e.observedValue=m("observed",t.observed));let n=await b$1(tt,{input:e});k$1("Drift recorded"),i(t,n.adaRecordDrift);}catch(e){h$1(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(et,{id:t});k$1(`Drift remediated: ${n.adaRemediateDrift.status}`),i(e,n.adaRemediateDrift);}catch(n){h$1(n);}});}function mt(d){let o=d.command("topology").description("AdapterCloud topology edges");o.command("list").description("List topology edges").option("--resource <id>","Filter by resource ID (either endpoint)").option("--kind <k>","Filter by edge kind").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await b$1(nt,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}i(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p=>[r(p.id,12),r(p.fromResourceId,12),r(p.toResourceId,12),p.kind,p.bidirectional?"yes":"no",String(p.weight)])});}catch(e){h$1(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",u).option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={fromResourceId:t.from,toResourceId:t.to,kind:(t.kind??"DEPENDS_ON").toUpperCase()};t.bidirectional&&(e.bidirectional=!0),t.weight!==void 0&&(e.weight=t.weight),t.attributes&&(e.attributes=m("attributes",t.attributes));let n=await b$1(ot,{input:e});k$1(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),i(t,n.adaCreateTopologyEdge);}catch(e){h$1(e);}});}function gt(d$1){d$1.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await d(it);k$1(t.adaHealth),i(o,{health:t.adaHealth});}catch(t){h$1(t);}});}var ft={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(d,o){a(o);let t=d.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");rt(t),at(t),st(t),dt(t),ct(t),pt(t),ut(t),mt(t),gt(t);}},ie=ft;export{ie as default};