@burdenoff/cli-sdk 2026.813.1 → 2026.825.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,11 +1,11 @@
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;}},I=class extends d{constructor(o,t){super(o,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},y=class extends Error{cause;constructor(o,t){super(o),this.name="CliInternalError",this.cause=t;}};var v=null;function S(r){v=r;}function h(){if(!v)throw new y("vibecontrols module helpers used before setHelpersContext was called");return v}function Ot(){let r=h();if(!r.auth.isAuthenticated())throw new I(`Authentication required. Run \`${r.productName} auth login\`.`)}async function a(r,o){return Ot(),h().gql.workspace.request(r,o)}async function w(r,o){return h().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){h().output.formatAndOutput(r,o,t);}function c(r){h().output.printSuccess(r);}function u(r,o){return h().output.truncate(r,o)}var E=`
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;}},I=class extends d{constructor(o,t){super(o,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},y=class extends Error{cause;constructor(o,t){super(o),this.name="CliInternalError",this.cause=t;}};var w=null;function E(r){w=r;}function h(){if(!w)throw new y("vibecontrols module helpers used before setHelpersContext was called");return w}function xt(){let r=h();if(!r.auth.isAuthenticated())throw new I(`Authentication required. Run \`${r.productName} auth login\`.`)}async function a(r,o){return xt(),h().gql.workspace.request(r,o)}async function k(r,o){return h().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){h().output.formatAndOutput(r,o,t);}function c(r){h().output.printSuccess(r);}function u(r,o){return h().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
5
5
  capabilities configSchema tags createdAt updatedAt
6
6
  }
7
7
  }
8
- `,b=`
8
+ `,T=`
9
9
  query AdaptercloudListAdapters(
10
10
  $kind: AdaAdapterKind
11
11
  $status: AdaAdapterStatus
@@ -18,25 +18,25 @@
18
18
  pageInfo { cursor hasMore }
19
19
  }
20
20
  }
21
- `,T=`
21
+ `,O=`
22
22
  mutation AdaptercloudCreateAdapter($input: AdaCreateAdapterInput!) {
23
23
  adaCreateAdapter(input: $input) {
24
24
  id workspaceId name slug description kind status version vendor
25
25
  capabilities tags createdAt
26
26
  }
27
27
  }
28
- `,O=`
28
+ `,x=`
29
29
  mutation AdaptercloudUpdateAdapter($id: ID!, $input: AdaUpdateAdapterInput!) {
30
30
  adaUpdateAdapter(id: $id, input: $input) {
31
31
  id name slug description kind status version vendor capabilities
32
32
  tags updatedAt
33
33
  }
34
34
  }
35
- `,x=`
35
+ `,D=`
36
36
  mutation AdaptercloudArchiveAdapter($id: ID!) {
37
37
  adaArchiveAdapter(id: $id)
38
38
  }
39
- `,D=`
39
+ `,$=`
40
40
  query AdaptercloudGetConnection($id: ID!) {
41
41
  adaConnection(id: $id) {
42
42
  id workspaceId adapterId name status authMethod environment region
@@ -44,7 +44,7 @@
44
44
  createdAt updatedAt
45
45
  }
46
46
  }
47
- `,$=`
47
+ `,P=`
48
48
  query AdaptercloudListConnections(
49
49
  $adapterId: ID
50
50
  $status: AdaConnectionStatus
@@ -58,40 +58,40 @@
58
58
  pageInfo { cursor hasMore }
59
59
  }
60
60
  }
61
- `,P=`
61
+ `,L=`
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
- `,L=`
68
+ `,N=`
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
72
72
  secretRef config tags updatedAt
73
73
  }
74
74
  }
75
- `,N=`
75
+ `,_=`
76
76
  mutation AdaptercloudDisableConnection($id: ID!) {
77
77
  adaDisableConnection(id: $id) {
78
78
  id name status updatedAt
79
79
  }
80
80
  }
81
- `,_=`
81
+ `,U=`
82
82
  mutation AdaptercloudSetConnectionStatus($id: ID!, $status: AdaConnectionStatus!) {
83
83
  adaSetConnectionStatus(id: $id, status: $status) {
84
84
  id name status lastError updatedAt
85
85
  }
86
86
  }
87
- `,U=`
87
+ `,q=`
88
88
  query AdaptercloudGetResource($id: ID!) {
89
89
  adaResource(id: $id) {
90
90
  id workspaceId connectionId externalId name resourceType region state
91
91
  monthlyCost attributes providerTags tags lastSeenAt createdAt updatedAt
92
92
  }
93
93
  }
94
- `,q=`
94
+ `,F=`
95
95
  query AdaptercloudListResources(
96
96
  $connectionId: ID
97
97
  $resourceType: String
@@ -111,7 +111,7 @@
111
111
  pageInfo { cursor hasMore }
112
112
  }
113
113
  }
114
- `,F=`
114
+ `,M=`
115
115
  mutation AdaptercloudRegisterResource($input: AdaRegisterResourceInput!) {
116
116
  adaRegisterResource(input: $input) {
117
117
  id workspaceId connectionId externalId name resourceType region state
@@ -125,7 +125,7 @@
125
125
  appliesTo expression tags createdAt updatedAt
126
126
  }
127
127
  }
128
- `,M=`
128
+ `,G=`
129
129
  query AdaptercloudListPolicies(
130
130
  $kind: AdaPolicyKind
131
131
  $isActive: Boolean
@@ -138,25 +138,25 @@
138
138
  pageInfo { cursor hasMore }
139
139
  }
140
140
  }
141
- `,G=`
141
+ `,W=`
142
142
  mutation AdaptercloudCreatePolicy($input: AdaCreatePolicyInput!) {
143
143
  adaCreatePolicy(input: $input) {
144
144
  id workspaceId name description kind severity enforcement isActive
145
145
  appliesTo expression tags createdAt
146
146
  }
147
147
  }
148
- `,W=`
148
+ `,j=`
149
149
  mutation AdaptercloudUpdatePolicy($id: ID!, $input: AdaUpdatePolicyInput!) {
150
150
  adaUpdatePolicy(id: $id, input: $input) {
151
151
  id name description kind severity enforcement isActive appliesTo
152
152
  expression tags updatedAt
153
153
  }
154
154
  }
155
- `,j=`
155
+ `,Y=`
156
156
  mutation AdaptercloudArchivePolicy($id: ID!) {
157
157
  adaArchivePolicy(id: $id)
158
158
  }
159
- `,Y=`
159
+ `,J=`
160
160
  query AdaptercloudListViolations(
161
161
  $policyId: ID
162
162
  $resourceId: ID
@@ -176,14 +176,14 @@
176
176
  pageInfo { cursor hasMore }
177
177
  }
178
178
  }
179
- `,J=`
179
+ `,H=`
180
180
  mutation AdaptercloudRecordViolation($input: AdaRecordViolationInput!) {
181
181
  adaRecordViolation(input: $input) {
182
182
  id workspaceId policyId resourceId severity status message evidence
183
183
  detectedAt createdAt
184
184
  }
185
185
  }
186
- `,H=`
186
+ `,z=`
187
187
  mutation AdaptercloudResolveViolation(
188
188
  $id: ID!
189
189
  $status: AdaViolationStatus!
@@ -194,7 +194,7 @@
194
194
  resolvedAt resolvedById updatedAt
195
195
  }
196
196
  }
197
- `,z=`
197
+ `,B=`
198
198
  query AdaptercloudGetSyncRun($id: ID!) {
199
199
  adaSyncRun(id: $id) {
200
200
  id workspaceId connectionId kind status discoveredCount reconciledCount
@@ -202,7 +202,7 @@
202
202
  createdAt updatedAt
203
203
  }
204
204
  }
205
- `,B=`
205
+ `,K=`
206
206
  query AdaptercloudListSyncRuns(
207
207
  $connectionId: ID
208
208
  $status: AdaSyncStatus
@@ -216,40 +216,40 @@
216
216
  pageInfo { cursor hasMore }
217
217
  }
218
218
  }
219
- `,K=`
219
+ `,Q=`
220
220
  mutation AdaptercloudStartSyncRun($input: AdaStartSyncRunInput!) {
221
221
  adaStartSyncRun(input: $input) {
222
222
  id workspaceId connectionId kind status discoveredCount reconciledCount
223
223
  driftCount violationCount startedAt createdAt
224
224
  }
225
225
  }
226
- `,Q=`
226
+ `,X=`
227
227
  mutation AdaptercloudCompleteSyncRun($id: ID!, $input: AdaCompleteSyncRunInput) {
228
228
  adaCompleteSyncRun(id: $id, input: $input) {
229
229
  id connectionId kind status discoveredCount reconciledCount driftCount
230
230
  violationCount summary finishedAt updatedAt
231
231
  }
232
232
  }
233
- `,X=`
233
+ `,Z=`
234
234
  mutation AdaptercloudCancelSyncRun($id: ID!) {
235
235
  adaCancelSyncRun(id: $id) {
236
236
  id connectionId kind status finishedAt updatedAt
237
237
  }
238
238
  }
239
- `,Z=`
239
+ `,tt=`
240
240
  mutation AdaptercloudFailSyncRun($id: ID!, $error: String!) {
241
241
  adaFailSyncRun(id: $id, error: $error) {
242
242
  id connectionId kind status error finishedAt updatedAt
243
243
  }
244
244
  }
245
- `,tt=`
245
+ `,et=`
246
246
  query AdaptercloudCostSummary($connectionId: ID) {
247
247
  adaCostSummary(connectionId: $connectionId) {
248
248
  currency total
249
249
  lines { service total }
250
250
  }
251
251
  }
252
- `,et=`
252
+ `,nt=`
253
253
  query AdaptercloudListCostRecords(
254
254
  $connectionId: ID
255
255
  $resourceId: ID
@@ -260,49 +260,52 @@
260
260
  periodStart periodEnd breakdown createdAt updatedAt
261
261
  }
262
262
  }
263
- `,nt=`
263
+ `,ot=`
264
264
  mutation AdaptercloudIngestCost($input: AdaIngestCostInput!) {
265
265
  adaIngestCost(input: $input) {
266
266
  id workspaceId connectionId resourceId service amount currency
267
267
  periodStart periodEnd breakdown createdAt
268
268
  }
269
269
  }
270
- `,ot=`
270
+ `,rt=`
271
271
  query AdaptercloudListDriftRecords($resourceId: ID, $status: AdaDriftStatus) {
272
272
  adaListDriftRecords(resourceId: $resourceId, status: $status) {
273
273
  id workspaceId resourceId attributePath severity status expectedValue
274
274
  observedValue detectedAt remediatedAt createdAt updatedAt
275
275
  }
276
276
  }
277
- `,rt=`
277
+ `,it=`
278
278
  mutation AdaptercloudRecordDrift($input: AdaRecordDriftInput!) {
279
279
  adaRecordDrift(input: $input) {
280
280
  id workspaceId resourceId attributePath severity status expectedValue
281
281
  observedValue detectedAt createdAt
282
282
  }
283
283
  }
284
- `,it=`
284
+ `,st=`
285
285
  mutation AdaptercloudRemediateDrift($id: ID!) {
286
286
  adaRemediateDrift(id: $id) {
287
287
  id resourceId attributePath severity status remediatedAt updatedAt
288
288
  }
289
289
  }
290
- `,st=`
291
- query AdaptercloudListTopologyEdges($resourceId: ID, $kind: AdaEdgeKind) {
292
- adaListTopologyEdges(resourceId: $resourceId, kind: $kind) {
293
- id workspaceId fromResourceId toResourceId kind bidirectional weight
294
- attributes createdAt updatedAt
290
+ `,at=`
291
+ query AdaptercloudListTopologyEdges($resourceId: ID, $kind: AdaEdgeKind, $pagination: PaginationInput) {
292
+ adaListTopologyEdges(resourceId: $resourceId, kind: $kind, pagination: $pagination) {
293
+ items {
294
+ id workspaceId fromResourceId toResourceId kind bidirectional weight
295
+ attributes createdAt updatedAt
296
+ }
297
+ pageInfo { hasMore }
295
298
  }
296
299
  }
297
- `,at=`
300
+ `,ct=`
298
301
  mutation AdaptercloudCreateTopologyEdge($input: AdaCreateTopologyEdgeInput!) {
299
302
  adaCreateTopologyEdge(input: $input) {
300
303
  id workspaceId fromResourceId toResourceId kind bidirectional weight
301
304
  attributes createdAt
302
305
  }
303
306
  }
304
- `,ct=`
307
+ `,dt=`
305
308
  query AdaptercloudHealth {
306
309
  adaHealth
307
310
  }
308
- `;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 A(r){let o=Number.parseFloat(r);if(Number.isNaN(o))throw new d(`Expected a number but got "${r}"`);return o}function l(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function dt(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(b,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[u(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){i(e);}}),o.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(E,{id:t});if(!n.adaAdapter)throw new d(`Adapter ${t} not found`);s(e,n.adaAdapter);}catch(n){i(n);}}),o.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=l(t.capabilities)),t.configSchema&&(e.configSchema=g("config-schema",t.configSchema)),t.tags&&(e.tags=l(t.tags));let n=await a(T,{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=l(e.capabilities)),e.configSchema&&(n.configSchema=g("config-schema",e.configSchema)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let C=await a(O,{id:t,input:n});c("Adapter updated"),s(e,C.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(x,{id:t});c(`Adapter archived: ${n.adaArchiveAdapter}`),s(e,{archived:n.adaArchiveAdapter});}catch(n){i(n);}});}function ut(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($,{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(D,{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=l(t.tags));let n=await a(P,{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=l(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let C=await a(L,{id:t,input:n});c("Connection updated"),s(e,C.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(N,{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(_,{id:t,status:e.status.toUpperCase()});c(`Connection status set to ${n.adaSetConnectionStatus.status}`),s(e,n.adaSetConnectionStatus);}catch(n){i(n);}});}function pt(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(q,{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(U,{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",A).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=l(t.tags));let n=await a(F,{input:e});c(`Resource registered: ${n.adaRegisterResource.name}`),s(t,n.adaRegisterResource);}catch(e){i(e);}});}function mt(r){let o=r.command("policies").description("AdapterCloud policies & violations");o.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(M,{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=l(t.appliesTo)),t.tags&&(e.tags=l(t.tags));let n=await a(G,{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=l(e.appliesTo)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let C=await a(W,{id:t,input:n});c("Policy updated"),s(e,C.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(j,{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(Y,{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(J,{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(H,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});c(`Violation ${n.adaResolveViolation.status}`),s(e,n.adaResolveViolation);}catch(n){i(n);}});}function gt(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(B,{connectionId:t.connection,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[u(n.id,12),u(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){i(e);}}),o.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t});if(!n.adaSyncRun)throw new d(`Sync run ${t} not found`);s(e,n.adaSyncRun);}catch(n){i(n);}}),o.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await a(K,{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 C=await a(Q,{id:t,input:Object.keys(n).length?n:void 0});c(`Sync run completed: ${C.adaCompleteSyncRun.status}`),s(e,C.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(X,{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(Z,{id:t,error:e.error});c(`Sync run failed: ${n.adaFailSyncRun.status}`),s(e,n.adaFailSyncRun);}catch(n){i(n);}});}function lt(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(tt,{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(et,{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",A).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(nt,{input:e});c(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),s(t,n.adaIngestCost);}catch(e){i(e);}});}function ft(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(ot,{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(rt,{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(it,{id:t});c(`Drift remediated: ${n.adaRemediateDrift.status}`),s(e,n.adaRemediateDrift);}catch(n){i(n);}});}function Ct(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=await a(st,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0});s(t,e.adaListTopologyEdges,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.adaListTopologyEdges.map(n=>[u(n.id,12),u(n.fromResourceId,12),u(n.toResourceId,12),n.kind,n.bidirectional?"yes":"no",String(n.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(at,{input:e});c(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),s(t,n.adaCreateTopologyEdge);}catch(e){i(e);}});}function yt(r){r.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await w(ct);c(t.adaHealth),s(o,{health:t.adaHealth});}catch(t){i(t);}});}var xt={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(r,o){S(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");dt(t),ut(t),pt(t),mt(t),gt(t),lt(t),ft(t),Ct(t),yt(t);}},Rn=xt;module.exports=Rn;
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;
@@ -1,11 +1,11 @@
1
- import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';import {o}from'../../chunk-TCBALVP4.js';var v=`
1
+ import {a,b as b$1,h as h$1,p as p$1,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
5
5
  capabilities configSchema tags createdAt updatedAt
6
6
  }
7
7
  }
8
- `,S=`
8
+ `,h=`
9
9
  query AdaptercloudListAdapters(
10
10
  $kind: AdaAdapterKind
11
11
  $status: AdaAdapterStatus
@@ -25,18 +25,18 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
25
25
  capabilities tags createdAt
26
26
  }
27
27
  }
28
- `,h=`
28
+ `,E=`
29
29
  mutation AdaptercloudUpdateAdapter($id: ID!, $input: AdaUpdateAdapterInput!) {
30
30
  adaUpdateAdapter(id: $id, input: $input) {
31
31
  id name slug description kind status version vendor capabilities
32
32
  tags updatedAt
33
33
  }
34
34
  }
35
- `,E=`
35
+ `,w=`
36
36
  mutation AdaptercloudArchiveAdapter($id: ID!) {
37
37
  adaArchiveAdapter(id: $id)
38
38
  }
39
- `,w=`
39
+ `,D=`
40
40
  query AdaptercloudGetConnection($id: ID!) {
41
41
  adaConnection(id: $id) {
42
42
  id workspaceId adapterId name status authMethod environment region
@@ -44,7 +44,7 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
44
44
  createdAt updatedAt
45
45
  }
46
46
  }
47
- `,D=`
47
+ `,k=`
48
48
  query AdaptercloudListConnections(
49
49
  $adapterId: ID
50
50
  $status: AdaConnectionStatus
@@ -58,33 +58,33 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
58
58
  pageInfo { cursor hasMore }
59
59
  }
60
60
  }
61
- `,k=`
61
+ `,T=`
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
- `,T=`
68
+ `,b=`
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
72
72
  secretRef config tags updatedAt
73
73
  }
74
74
  }
75
- `,b=`
75
+ `,$=`
76
76
  mutation AdaptercloudDisableConnection($id: ID!) {
77
77
  adaDisableConnection(id: $id) {
78
78
  id name status updatedAt
79
79
  }
80
80
  }
81
- `,$=`
81
+ `,P=`
82
82
  mutation AdaptercloudSetConnectionStatus($id: ID!, $status: AdaConnectionStatus!) {
83
83
  adaSetConnectionStatus(id: $id, status: $status) {
84
84
  id name status lastError updatedAt
85
85
  }
86
86
  }
87
- `,P=`
87
+ `,N=`
88
88
  query AdaptercloudGetResource($id: ID!) {
89
89
  adaResource(id: $id) {
90
90
  id workspaceId connectionId externalId name resourceType region state
@@ -111,21 +111,21 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
111
111
  pageInfo { cursor hasMore }
112
112
  }
113
113
  }
114
- `,N=`
114
+ `,_=`
115
115
  mutation AdaptercloudRegisterResource($input: AdaRegisterResourceInput!) {
116
116
  adaRegisterResource(input: $input) {
117
117
  id workspaceId connectionId externalId name resourceType region state
118
118
  monthlyCost attributes providerTags tags lastSeenAt createdAt
119
119
  }
120
120
  }
121
- `,_=`
121
+ `,U=`
122
122
  query AdaptercloudGetPolicy($id: ID!) {
123
123
  adaPolicy(id: $id) {
124
124
  id workspaceId name description kind severity enforcement isActive
125
125
  appliesTo expression tags createdAt updatedAt
126
126
  }
127
127
  }
128
- `,U=`
128
+ `,V=`
129
129
  query AdaptercloudListPolicies(
130
130
  $kind: AdaPolicyKind
131
131
  $isActive: Boolean
@@ -138,25 +138,25 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
138
138
  pageInfo { cursor hasMore }
139
139
  }
140
140
  }
141
- `,V=`
141
+ `,x=`
142
142
  mutation AdaptercloudCreatePolicy($input: AdaCreatePolicyInput!) {
143
143
  adaCreatePolicy(input: $input) {
144
144
  id workspaceId name description kind severity enforcement isActive
145
145
  appliesTo expression tags createdAt
146
146
  }
147
147
  }
148
- `,x=`
148
+ `,M=`
149
149
  mutation AdaptercloudUpdatePolicy($id: ID!, $input: AdaUpdatePolicyInput!) {
150
150
  adaUpdatePolicy(id: $id, input: $input) {
151
151
  id name description kind severity enforcement isActive appliesTo
152
152
  expression tags updatedAt
153
153
  }
154
154
  }
155
- `,M=`
155
+ `,q=`
156
156
  mutation AdaptercloudArchivePolicy($id: ID!) {
157
157
  adaArchivePolicy(id: $id)
158
158
  }
159
- `,q=`
159
+ `,F=`
160
160
  query AdaptercloudListViolations(
161
161
  $policyId: ID
162
162
  $resourceId: ID
@@ -176,14 +176,14 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
176
176
  pageInfo { cursor hasMore }
177
177
  }
178
178
  }
179
- `,F=`
179
+ `,G=`
180
180
  mutation AdaptercloudRecordViolation($input: AdaRecordViolationInput!) {
181
181
  adaRecordViolation(input: $input) {
182
182
  id workspaceId policyId resourceId severity status message evidence
183
183
  detectedAt createdAt
184
184
  }
185
185
  }
186
- `,G=`
186
+ `,Y=`
187
187
  mutation AdaptercloudResolveViolation(
188
188
  $id: ID!
189
189
  $status: AdaViolationStatus!
@@ -194,7 +194,7 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
194
194
  resolvedAt resolvedById updatedAt
195
195
  }
196
196
  }
197
- `,Y=`
197
+ `,J=`
198
198
  query AdaptercloudGetSyncRun($id: ID!) {
199
199
  adaSyncRun(id: $id) {
200
200
  id workspaceId connectionId kind status discoveredCount reconciledCount
@@ -202,7 +202,7 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
202
202
  createdAt updatedAt
203
203
  }
204
204
  }
205
- `,J=`
205
+ `,j=`
206
206
  query AdaptercloudListSyncRuns(
207
207
  $connectionId: ID
208
208
  $status: AdaSyncStatus
@@ -216,40 +216,40 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
216
216
  pageInfo { cursor hasMore }
217
217
  }
218
218
  }
219
- `,j=`
219
+ `,W=`
220
220
  mutation AdaptercloudStartSyncRun($input: AdaStartSyncRunInput!) {
221
221
  adaStartSyncRun(input: $input) {
222
222
  id workspaceId connectionId kind status discoveredCount reconciledCount
223
223
  driftCount violationCount startedAt createdAt
224
224
  }
225
225
  }
226
- `,W=`
226
+ `,H=`
227
227
  mutation AdaptercloudCompleteSyncRun($id: ID!, $input: AdaCompleteSyncRunInput) {
228
228
  adaCompleteSyncRun(id: $id, input: $input) {
229
229
  id connectionId kind status discoveredCount reconciledCount driftCount
230
230
  violationCount summary finishedAt updatedAt
231
231
  }
232
232
  }
233
- `,H=`
233
+ `,K=`
234
234
  mutation AdaptercloudCancelSyncRun($id: ID!) {
235
235
  adaCancelSyncRun(id: $id) {
236
236
  id connectionId kind status finishedAt updatedAt
237
237
  }
238
238
  }
239
- `,K=`
239
+ `,B=`
240
240
  mutation AdaptercloudFailSyncRun($id: ID!, $error: String!) {
241
241
  adaFailSyncRun(id: $id, error: $error) {
242
242
  id connectionId kind status error finishedAt updatedAt
243
243
  }
244
244
  }
245
- `,B=`
245
+ `,z=`
246
246
  query AdaptercloudCostSummary($connectionId: ID) {
247
247
  adaCostSummary(connectionId: $connectionId) {
248
248
  currency total
249
249
  lines { service total }
250
250
  }
251
251
  }
252
- `,z=`
252
+ `,Q=`
253
253
  query AdaptercloudListCostRecords(
254
254
  $connectionId: ID
255
255
  $resourceId: ID
@@ -260,49 +260,52 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-WXDQ3S5J.js';
260
260
  periodStart periodEnd breakdown createdAt updatedAt
261
261
  }
262
262
  }
263
- `,Q=`
263
+ `,X=`
264
264
  mutation AdaptercloudIngestCost($input: AdaIngestCostInput!) {
265
265
  adaIngestCost(input: $input) {
266
266
  id workspaceId connectionId resourceId service amount currency
267
267
  periodStart periodEnd breakdown createdAt
268
268
  }
269
269
  }
270
- `,X=`
270
+ `,Z=`
271
271
  query AdaptercloudListDriftRecords($resourceId: ID, $status: AdaDriftStatus) {
272
272
  adaListDriftRecords(resourceId: $resourceId, status: $status) {
273
273
  id workspaceId resourceId attributePath severity status expectedValue
274
274
  observedValue detectedAt remediatedAt createdAt updatedAt
275
275
  }
276
276
  }
277
- `,Z=`
277
+ `,tt=`
278
278
  mutation AdaptercloudRecordDrift($input: AdaRecordDriftInput!) {
279
279
  adaRecordDrift(input: $input) {
280
280
  id workspaceId resourceId attributePath severity status expectedValue
281
281
  observedValue detectedAt createdAt
282
282
  }
283
283
  }
284
- `,tt=`
284
+ `,et=`
285
285
  mutation AdaptercloudRemediateDrift($id: ID!) {
286
286
  adaRemediateDrift(id: $id) {
287
287
  id resourceId attributePath severity status remediatedAt updatedAt
288
288
  }
289
289
  }
290
- `,et=`
291
- query AdaptercloudListTopologyEdges($resourceId: ID, $kind: AdaEdgeKind) {
292
- adaListTopologyEdges(resourceId: $resourceId, kind: $kind) {
293
- id workspaceId fromResourceId toResourceId kind bidirectional weight
294
- attributes createdAt updatedAt
290
+ `,nt=`
291
+ query AdaptercloudListTopologyEdges($resourceId: ID, $kind: AdaEdgeKind, $pagination: PaginationInput) {
292
+ adaListTopologyEdges(resourceId: $resourceId, kind: $kind, pagination: $pagination) {
293
+ items {
294
+ id workspaceId fromResourceId toResourceId kind bidirectional weight
295
+ attributes createdAt updatedAt
296
+ }
297
+ pageInfo { hasMore }
295
298
  }
296
299
  }
297
- `,nt=`
300
+ `,ot=`
298
301
  mutation AdaptercloudCreateTopologyEdge($input: AdaCreateTopologyEdgeInput!) {
299
302
  adaCreateTopologyEdge(input: $input) {
300
303
  id workspaceId fromResourceId toResourceId kind bidirectional weight
301
304
  attributes createdAt
302
305
  }
303
306
  }
304
- `,ot=`
307
+ `,it=`
305
308
  query AdaptercloudHealth {
306
309
  adaHealth
307
310
  }
308
- `;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 I(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 g(d){return d.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function it(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(S,{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$1(e);}}),o$1.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(v,{id:t});if(!n.adaAdapter)throw new o(`Adapter ${t} not found`);h$1(e,n.adaAdapter);}catch(n){g$1(n);}}),o$1.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=g(t.capabilities)),t.configSchema&&(e.configSchema=u("config-schema",t.configSchema)),t.tags&&(e.tags=g(t.tags));let n=await b$1(O,{input:e});i(`Adapter created: ${n.adaCreateAdapter.name}`),h$1(t,n.adaCreateAdapter);}catch(e){g$1(e);}}),o$1.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=g(e.capabilities)),e.configSchema&&(n.configSchema=u("config-schema",e.configSchema)),e.tags&&(n.tags=g(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(h,{id:t,input:n});i("Adapter updated"),h$1(e,C.adaUpdateAdapter);}catch(n){g$1(n);}}),o$1.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(E,{id:t});i(`Adapter archived: ${n.adaArchiveAdapter}`),h$1(e,{archived:n.adaArchiveAdapter});}catch(n){g$1(n);}});}function rt(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(D,{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$1(e);}}),o$1.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(w,{id:t});if(!n.adaConnection)throw new o(`Connection ${t} not found`);h$1(e,n.adaConnection);}catch(n){g$1(n);}}),o$1.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=u("config",t.config)),t.tags&&(e.tags=g(t.tags));let n=await b$1(k,{input:e});i(`Connection created: ${n.adaCreateConnection.name}`),h$1(t,n.adaCreateConnection);}catch(e){g$1(e);}}),o$1.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=u("config",e.config)),e.tags&&(n.tags=g(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(T,{id:t,input:n});i("Connection updated"),h$1(e,C.adaUpdateConnection);}catch(n){g$1(n);}}),o$1.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(b,{id:t});i(`Connection disabled: ${n.adaDisableConnection.status}`),h$1(e,n.adaDisableConnection);}catch(n){g$1(n);}}),o$1.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1($,{id:t,status:e.status.toUpperCase()});i(`Connection status set to ${n.adaSetConnectionStatus.status}`),h$1(e,n.adaSetConnectionStatus);}catch(n){g$1(n);}});}function at(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$1(e);}}),o$1.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(P,{id:t});if(!n.adaResource)throw new o(`Resource ${t} not found`);h$1(e,n.adaResource);}catch(n){g$1(n);}}),o$1.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",I).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=g(t.tags));let n=await b$1(N,{input:e});i(`Resource registered: ${n.adaRegisterResource.name}`),h$1(t,n.adaRegisterResource);}catch(e){g$1(e);}});}function st(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(U,{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$1(e);}}),o$1.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(_,{id:t});if(!n.adaPolicy)throw new o(`Policy ${t} not found`);h$1(e,n.adaPolicy);}catch(n){g$1(n);}}),o$1.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression: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=g(t.appliesTo)),t.tags&&(e.tags=g(t.tags));let n=await b$1(V,{input:e});i(`Policy created: ${n.adaCreatePolicy.name}`),h$1(t,n.adaCreatePolicy);}catch(e){g$1(e);}}),o$1.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=u("expression",e.expression)),e.appliesTo&&(n.appliesTo=g(e.appliesTo)),e.tags&&(n.tags=g(e.tags)),!Object.keys(n).length)throw new o("No updates specified");let C=await b$1(x,{id:t,input:n});i("Policy updated"),h$1(e,C.adaUpdatePolicy);}catch(n){g$1(n);}}),o$1.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(M,{id:t});i(`Policy archived: ${n.adaArchivePolicy}`),h$1(e,{archived:n.adaArchivePolicy});}catch(n){g$1(n);}}),o$1.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",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(q,{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$1(e);}}),o$1.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=u("evidence",t.evidence));let n=await b$1(F,{input:e});i("Violation recorded"),h$1(t,n.adaRecordViolation);}catch(e){g$1(e);}}),o$1.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(G,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});i(`Violation ${n.adaResolveViolation.status}`),h$1(e,n.adaResolveViolation);}catch(n){g$1(n);}});}function dt(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$1(e);}}),o$1.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(Y,{id:t});if(!n.adaSyncRun)throw new o(`Sync run ${t} not found`);h$1(e,n.adaSyncRun);}catch(n){g$1(n);}}),o$1.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await b$1(j,{input:e});i(`Sync run started: ${n.adaStartSyncRun.id}`),h$1(t,n.adaStartSyncRun);}catch(e){g$1(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 C=await b$1(W,{id:t,input:Object.keys(n).length?n:void 0});i(`Sync run completed: ${C.adaCompleteSyncRun.status}`),h$1(e,C.adaCompleteSyncRun);}catch(n){g$1(n);}}),o$1.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(H,{id:t});i(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),h$1(e,n.adaCancelSyncRun);}catch(n){g$1(n);}}),o$1.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(K,{id:t,error:e.error});i(`Sync run failed: ${n.adaFailSyncRun.status}`),h$1(e,n.adaFailSyncRun);}catch(n){g$1(n);}});}function ct(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(B,{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$1(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(z,{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$1(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",I).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(Q,{input:e});i(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),h$1(t,n.adaIngestCost);}catch(e){g$1(e);}});}function pt(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(X,{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$1(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=u("expected",t.expected)),t.observed&&(e.observedValue=u("observed",t.observed));let n=await b$1(Z,{input:e});i("Drift recorded"),h$1(t,n.adaRecordDrift);}catch(e){g$1(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await b$1(tt,{id:t});i(`Drift remediated: ${n.adaRemediateDrift.status}`),h$1(e,n.adaRemediateDrift);}catch(n){g$1(n);}});}function ut(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=await b$1(et,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0});h$1(t,e.adaListTopologyEdges,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.adaListTopologyEdges.map(n=>[p$1(n.id,12),p$1(n.fromResourceId,12),p$1(n.toResourceId,12),n.kind,n.bidirectional?"yes":"no",String(n.weight)])});}catch(e){g$1(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",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(nt,{input:e});i(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),h$1(t,n.adaCreateTopologyEdge);}catch(e){g$1(e);}});}function mt(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(ot);i(t.adaHealth),h$1(o,{health:t.adaHealth});}catch(t){g$1(t);}});}var gt={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");it(t),rt(t),at(t),st(t),dt(t),ct(t),pt(t),ut(t),mt(t);}},oe=gt;export{oe as default};
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};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/cli-sdk",
3
- "version": "2026.813.1",
3
+ "version": "2026.825.1",
4
4
  "description": "Modular CLI SDK shared across all Burdenoff product CLIs (vibecontrols, botlit, fluidgrids, bigconsole, healthybowl, devportal, workspaces). Each module exports CliModule contract; product CLIs become thin shells that pick which modules to mount.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -30,7 +30,7 @@
30
30
  },
31
31
  "scripts": {
32
32
  "dev": "TSUP_DEV=1 tsup --watch",
33
- "build": "tsup",
33
+ "build": "NODE_OPTIONS=--max-old-space-size=6144 tsup",
34
34
  "type-check": "bash scripts/build-limits.sh tsc --noEmit",
35
35
  "lint": "eslint src --fix",
36
36
  "lint:check": "eslint src",