@burdenoff/cli-sdk 2026.825.1 → 2026.928.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},h=class extends d{constructor(o,t){super(o,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(o,t){super(o),this.name="CliInternalError",this.cause=t;}};var v=null;function E(r){v=r;}function A(){if(!v)throw new I("vibecontrols module helpers used before setHelpersContext was called");return v}function xt(){let r=A();if(!r.auth.isAuthenticated())throw new h(`Authentication required. Run \`${r.productName} auth login\`.`)}async function a(r,o){return xt(),A().gql.workspace.request(r,o)}async function k(r,o){return A().gql.workspaceAuthOnly.request(r,o)}function i(r){let o=r instanceof Error?r.message:String(r);throw new d(o)}function s(r,o,t){A().output.formatAndOutput(r,o,t);}function c(r){A().output.printSuccess(r);}function u(r,o){return A().output.truncate(r,o)}var b=`
|
|
2
2
|
query AdaptercloudGetAdapter($id: ID!) {
|
|
3
3
|
adaAdapter(id: $id) {
|
|
4
4
|
id workspaceId name slug description kind status version vendor
|
|
@@ -254,10 +254,14 @@
|
|
|
254
254
|
$connectionId: ID
|
|
255
255
|
$resourceId: ID
|
|
256
256
|
$service: String
|
|
257
|
+
$pagination: PaginationInput
|
|
257
258
|
) {
|
|
258
|
-
adaListCostRecords(connectionId: $connectionId, resourceId: $resourceId, service: $service) {
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
adaListCostRecords(connectionId: $connectionId, resourceId: $resourceId, service: $service, pagination: $pagination) {
|
|
260
|
+
items {
|
|
261
|
+
id workspaceId connectionId resourceId service amount currency
|
|
262
|
+
periodStart periodEnd breakdown createdAt updatedAt
|
|
263
|
+
}
|
|
264
|
+
pageInfo { hasMore }
|
|
261
265
|
}
|
|
262
266
|
}
|
|
263
267
|
`,ot=`
|
|
@@ -308,4 +312,4 @@
|
|
|
308
312
|
query AdaptercloudHealth {
|
|
309
313
|
adaHealth
|
|
310
314
|
}
|
|
311
|
-
`;function g(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(b,{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=g("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=g("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let l=await a(x,{id:t,input:n});c("Adapter updated"),s(e,l.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=g("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=g("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let l=await a(N,{id:t,input:n});c("Connection updated"),s(e,l.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 mt(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=g("attributes",t.attributes)),t.providerTags&&(e.providerTags=g("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 gt(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:g("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=g("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 l=await a(j,{id:t,input:n});c("Policy updated"),s(e,l.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=g("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(z,{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(B,{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=g("summary",e.summary));let l=await a(X,{id:t,input:Object.keys(n).length?n:void 0});c(`Sync run completed: ${l.adaCompleteSyncRun.status}`),s(e,l.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=await a(nt,{connectionId:t.connection,resourceId:t.resource,service:t.service});s(t,e.adaListCostRecords,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.adaListCostRecords.map(n=>[u(n.id,12),n.service,String(n.amount),n.currency,n.periodStart,n.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=g("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=g("expected",t.expected)),t.observed&&(e.observedValue=g("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 A=(await a(at,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...A.items),!A.pageInfo.hasMore||A.items.length===0)break;n+=A.items.length;}s(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(l=>[u(l.id,12),u(l.fromResourceId,12),u(l.toResourceId,12),l.kind,l.bidirectional?"yes":"no",String(l.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=g("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){E(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");ut(t),pt(t),mt(t),gt(t),lt(t),ft(t),Ct(t),yt(t),It(t);}},Sn=Dt;module.exports=Sn;
|
|
315
|
+
`;function l(r,o){try{return JSON.parse(o)}catch{throw new d(`--${r} must be valid JSON`)}}function g(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new d(`Expected an integer but got "${r}"`);return o}function w(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",g,50).option("--offset <n>","Offset",g,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(b,{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",g,50).option("--offset <n>","Offset",g,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 mt(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",g,50).option("--offset <n>","Offset",g,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",w).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 gt(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",g,50).option("--offset <n>","Offset",g,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",g,50).option("--offset <n>","Offset",g,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(z,{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",g,50).option("--offset <n>","Offset",g,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(B,{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",g).option("--reconciled-count <n>","Reconciled count",g).option("--drift-count <n>","Drift count",g).option("--violation-count <n>","Violation count",g).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",w).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",g).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){E(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");ut(t),pt(t),mt(t),gt(t),lt(t),ft(t),Ct(t),yt(t),It(t);}},Sn=Dt;module.exports=Sn;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,p
|
|
1
|
+
import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-WXDQ3S5J.js';import {o}from'../../chunk-TCBALVP4.js';var S=`
|
|
2
2
|
query AdaptercloudGetAdapter($id: ID!) {
|
|
3
3
|
adaAdapter(id: $id) {
|
|
4
4
|
id workspaceId name slug description kind status version vendor
|
|
@@ -58,14 +58,14 @@ import {a,b as b$1,h as h$1,p as p$1,g,i,d}from'../../chunk-WXDQ3S5J.js';import
|
|
|
58
58
|
pageInfo { cursor hasMore }
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
`,
|
|
61
|
+
`,b=`
|
|
62
62
|
mutation AdaptercloudCreateConnection($input: AdaCreateConnectionInput!) {
|
|
63
63
|
adaCreateConnection(input: $input) {
|
|
64
64
|
id workspaceId adapterId name status authMethod environment region
|
|
65
65
|
targetRef secretRef config tags createdAt
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
`,
|
|
68
|
+
`,T=`
|
|
69
69
|
mutation AdaptercloudUpdateConnection($id: ID!, $input: AdaUpdateConnectionInput!) {
|
|
70
70
|
adaUpdateConnection(id: $id, input: $input) {
|
|
71
71
|
id adapterId name status authMethod environment region targetRef
|
|
@@ -254,10 +254,14 @@ import {a,b as b$1,h as h$1,p as p$1,g,i,d}from'../../chunk-WXDQ3S5J.js';import
|
|
|
254
254
|
$connectionId: ID
|
|
255
255
|
$resourceId: ID
|
|
256
256
|
$service: String
|
|
257
|
+
$pagination: PaginationInput
|
|
257
258
|
) {
|
|
258
|
-
adaListCostRecords(connectionId: $connectionId, resourceId: $resourceId, service: $service) {
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
adaListCostRecords(connectionId: $connectionId, resourceId: $resourceId, service: $service, pagination: $pagination) {
|
|
260
|
+
items {
|
|
261
|
+
id workspaceId connectionId resourceId service amount currency
|
|
262
|
+
periodStart periodEnd breakdown createdAt updatedAt
|
|
263
|
+
}
|
|
264
|
+
pageInfo { hasMore }
|
|
261
265
|
}
|
|
262
266
|
}
|
|
263
267
|
`,X=`
|
|
@@ -308,4 +312,4 @@ import {a,b as b$1,h as h$1,p as p$1,g,i,d}from'../../chunk-WXDQ3S5J.js';import
|
|
|
308
312
|
query AdaptercloudHealth {
|
|
309
313
|
adaHealth
|
|
310
314
|
}
|
|
311
|
-
`;function u(d,o$1){try{return JSON.parse(o$1)}catch{throw new o(`--${d} must be valid JSON`)}}function p(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",p,50).option("--offset <n>","Offset",p,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}});h$1(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[p$1(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){g(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`);h$1(e,n.adaAdapter);}catch(n){g(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=u("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await b$1(O,{input:e});i(`Adapter created: ${n.adaCreateAdapter.name}`),h$1(t,n.adaCreateAdapter);}catch(e){g(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=u("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let g=await b$1(E,{id:t,input:n});i("Adapter updated"),h$1(e,g.adaUpdateAdapter);}catch(n){g(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});i(`Adapter archived: ${n.adaArchiveAdapter}`),h$1(e,{archived:n.adaArchiveAdapter});}catch(n){g(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",p,50).option("--offset <n>","Offset",p,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}});h$1(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[p$1(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){g(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`);h$1(e,n.adaConnection);}catch(n){g(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=u("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await b$1(T,{input:e});i(`Connection created: ${n.adaCreateConnection.name}`),h$1(t,n.adaCreateConnection);}catch(e){g(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=u("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let g=await b$1(b,{id:t,input:n});i("Connection updated"),h$1(e,g.adaUpdateConnection);}catch(n){g(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});i(`Connection disabled: ${n.adaDisableConnection.status}`),h$1(e,n.adaDisableConnection);}catch(n){g(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()});i(`Connection status set to ${n.adaSetConnectionStatus.status}`),h$1(e,n.adaSetConnectionStatus);}catch(n){g(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",p,50).option("--offset <n>","Offset",p,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}});h$1(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[p$1(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){g(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`);h$1(e,n.adaResource);}catch(n){g(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=u("attributes",t.attributes)),t.providerTags&&(e.providerTags=u("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await b$1(_,{input:e});i(`Resource registered: ${n.adaRegisterResource.name}`),h$1(t,n.adaRegisterResource);}catch(e){g(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",p,50).option("--offset <n>","Offset",p,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}});h$1(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[p$1(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){g(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`);h$1(e,n.adaPolicy);}catch(n){g(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:u("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});i(`Policy created: ${n.adaCreatePolicy.name}`),h$1(t,n.adaCreatePolicy);}catch(e){g(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=u("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 g=await b$1(M,{id:t,input:n});i("Policy updated"),h$1(e,g.adaUpdatePolicy);}catch(n){g(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});i(`Policy archived: ${n.adaArchivePolicy}`),h$1(e,{archived:n.adaArchivePolicy});}catch(n){g(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",p,50).option("--offset <n>","Offset",p,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}});h$1(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[p$1(n.id,12),p$1(n.policyId,12),p$1(n.resourceId,12),n.severity,n.status,p$1(n.message,30)])});}catch(e){g(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=u("evidence",t.evidence));let n=await b$1(G,{input:e});i("Violation recorded"),h$1(t,n.adaRecordViolation);}catch(e){g(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});i(`Violation ${n.adaResolveViolation.status}`),h$1(e,n.adaResolveViolation);}catch(n){g(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",p,50).option("--offset <n>","Offset",p,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}});h$1(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[p$1(n.id,12),p$1(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){g(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`);h$1(e,n.adaSyncRun);}catch(n){g(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});i(`Sync run started: ${n.adaStartSyncRun.id}`),h$1(t,n.adaStartSyncRun);}catch(e){g(e);}}),o$1.command("complete").description("Mark a sync run complete").argument("<id>","Sync run ID").option("--discovered-count <n>","Discovered count",p).option("--reconciled-count <n>","Reconciled count",p).option("--drift-count <n>","Drift count",p).option("--violation-count <n>","Violation count",p).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=u("summary",e.summary));let g=await b$1(H,{id:t,input:Object.keys(n).length?n:void 0});i(`Sync run completed: ${g.adaCompleteSyncRun.status}`),h$1(e,g.adaCompleteSyncRun);}catch(n){g(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});i(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),h$1(e,n.adaCancelSyncRun);}catch(n){g(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});i(`Sync run failed: ${n.adaFailSyncRun.status}`),h$1(e,n.adaFailSyncRun);}catch(n){g(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});h$1(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){g(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=await b$1(Q,{connectionId:t.connection,resourceId:t.resource,service:t.service});h$1(t,e.adaListCostRecords,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.adaListCostRecords.map(n=>[p$1(n.id,12),n.service,String(n.amount),n.currency,n.periodStart,n.periodEnd])});}catch(e){g(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=u("breakdown",t.breakdown));let n=await b$1(X,{input:e});i(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),h$1(t,n.adaIngestCost);}catch(e){g(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});h$1(t,e.adaListDriftRecords,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.map(n=>[p$1(n.id,12),p$1(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){g(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=u("expected",t.expected)),t.observed&&(e.observedValue=u("observed",t.observed));let n=await b$1(tt,{input:e});i("Drift recorded"),h$1(t,n.adaRecordDrift);}catch(e){g(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});i(`Drift remediated: ${n.adaRemediateDrift.status}`),h$1(e,n.adaRemediateDrift);}catch(n){g(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 I=(await b$1(nt,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...I.items),!I.pageInfo.hasMore||I.items.length===0)break;n+=I.items.length;}h$1(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(g=>[p$1(g.id,12),p$1(g.fromResourceId,12),p$1(g.toResourceId,12),g.kind,g.bidirectional?"yes":"no",String(g.weight)])});}catch(e){g(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",p).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=u("attributes",t.attributes));let n=await b$1(ot,{input:e});i(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),h$1(t,n.adaCreateTopologyEdge);}catch(e){g(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);i(t.adaHealth),h$1(o,{health:t.adaHealth});}catch(t){g(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};
|
|
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}});h$1(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[p(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){g(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`);h$1(e,n.adaAdapter);}catch(n){g(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});i(`Adapter created: ${n.adaCreateAdapter.name}`),h$1(t,n.adaCreateAdapter);}catch(e){g(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});i("Adapter updated"),h$1(e,p.adaUpdateAdapter);}catch(n){g(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});i(`Adapter archived: ${n.adaArchiveAdapter}`),h$1(e,{archived:n.adaArchiveAdapter});}catch(n){g(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}});h$1(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[p(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){g(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`);h$1(e,n.adaConnection);}catch(n){g(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});i(`Connection created: ${n.adaCreateConnection.name}`),h$1(t,n.adaCreateConnection);}catch(e){g(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});i("Connection updated"),h$1(e,p.adaUpdateConnection);}catch(n){g(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});i(`Connection disabled: ${n.adaDisableConnection.status}`),h$1(e,n.adaDisableConnection);}catch(n){g(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()});i(`Connection status set to ${n.adaSetConnectionStatus.status}`),h$1(e,n.adaSetConnectionStatus);}catch(n){g(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}});h$1(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[p(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){g(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`);h$1(e,n.adaResource);}catch(n){g(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});i(`Resource registered: ${n.adaRegisterResource.name}`),h$1(t,n.adaRegisterResource);}catch(e){g(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}});h$1(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[p(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){g(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`);h$1(e,n.adaPolicy);}catch(n){g(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});i(`Policy created: ${n.adaCreatePolicy.name}`),h$1(t,n.adaCreatePolicy);}catch(e){g(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});i("Policy updated"),h$1(e,p.adaUpdatePolicy);}catch(n){g(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});i(`Policy archived: ${n.adaArchivePolicy}`),h$1(e,{archived:n.adaArchivePolicy});}catch(n){g(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}});h$1(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[p(n.id,12),p(n.policyId,12),p(n.resourceId,12),n.severity,n.status,p(n.message,30)])});}catch(e){g(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});i("Violation recorded"),h$1(t,n.adaRecordViolation);}catch(e){g(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});i(`Violation ${n.adaResolveViolation.status}`),h$1(e,n.adaResolveViolation);}catch(n){g(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}});h$1(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[p(n.id,12),p(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){g(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`);h$1(e,n.adaSyncRun);}catch(n){g(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});i(`Sync run started: ${n.adaStartSyncRun.id}`),h$1(t,n.adaStartSyncRun);}catch(e){g(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});i(`Sync run completed: ${p.adaCompleteSyncRun.status}`),h$1(e,p.adaCompleteSyncRun);}catch(n){g(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});i(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),h$1(e,n.adaCancelSyncRun);}catch(n){g(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});i(`Sync run failed: ${n.adaFailSyncRun.status}`),h$1(e,n.adaFailSyncRun);}catch(n){g(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});h$1(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){g(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;}h$1(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p$1=>[p(p$1.id,12),p$1.service,String(p$1.amount),p$1.currency,p$1.periodStart,p$1.periodEnd])});}catch(e){g(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});i(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),h$1(t,n.adaIngestCost);}catch(e){g(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});h$1(t,e.adaListDriftRecords,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.map(n=>[p(n.id,12),p(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){g(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});i("Drift recorded"),h$1(t,n.adaRecordDrift);}catch(e){g(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});i(`Drift remediated: ${n.adaRemediateDrift.status}`),h$1(e,n.adaRemediateDrift);}catch(n){g(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;}h$1(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p$1=>[p(p$1.id,12),p(p$1.fromResourceId,12),p(p$1.toResourceId,12),p$1.kind,p$1.bidirectional?"yes":"no",String(p$1.weight)])});}catch(e){g(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});i(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),h$1(t,n.adaCreateTopologyEdge);}catch(e){g(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);i(t.adaHealth),h$1(o,{health:t.adaHealth});}catch(t){g(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};
|