@burdenoff/cli-sdk 2026.825.2 → 2026.1021.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.
- package/dist/chunk-IZXPWPKX.js +32 -0
- package/dist/chunk-NLEVVDXR.js +1 -0
- package/dist/core/index.cjs +7 -7
- package/dist/core/index.d.cts +2 -2
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +1 -1
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{module-DxCuik6L.d.cts → module-DOIiVaXQ.d.cts} +4 -1
- package/dist/{module-DxCuik6L.d.ts → module-DOIiVaXQ.d.ts} +4 -1
- package/dist/modules/adaptercloud/index.cjs +2 -2
- package/dist/modules/adaptercloud/index.d.cts +1 -1
- package/dist/modules/adaptercloud/index.d.ts +1 -1
- package/dist/modules/adaptercloud/index.js +1 -1
- package/dist/modules/artistrybase/index.cjs +6 -6
- package/dist/modules/artistrybase/index.d.cts +1 -1
- package/dist/modules/artistrybase/index.d.ts +1 -1
- package/dist/modules/artistrybase/index.js +1 -1
- package/dist/modules/assethandler/index.cjs +2 -2
- package/dist/modules/assethandler/index.d.cts +1 -1
- package/dist/modules/assethandler/index.d.ts +1 -1
- package/dist/modules/assethandler/index.js +1 -1
- package/dist/modules/atheletebridge/index.cjs +4 -4
- package/dist/modules/atheletebridge/index.d.cts +1 -1
- package/dist/modules/atheletebridge/index.d.ts +1 -1
- package/dist/modules/atheletebridge/index.js +1 -1
- package/dist/modules/auth/index.cjs +34 -34
- package/dist/modules/auth/index.d.cts +1 -1
- package/dist/modules/auth/index.d.ts +1 -1
- package/dist/modules/auth/index.js +30 -30
- package/dist/modules/billing/index.cjs +3 -3
- package/dist/modules/billing/index.d.cts +1 -1
- package/dist/modules/billing/index.d.ts +1 -1
- package/dist/modules/billing/index.js +1 -1
- package/dist/modules/brainyrich/index.cjs +4 -4
- package/dist/modules/brainyrich/index.d.cts +1 -1
- package/dist/modules/brainyrich/index.d.ts +1 -1
- package/dist/modules/brainyrich/index.js +1 -1
- package/dist/modules/buildmyiq/index.cjs +3 -3
- package/dist/modules/buildmyiq/index.d.cts +1 -1
- package/dist/modules/buildmyiq/index.d.ts +1 -1
- package/dist/modules/buildmyiq/index.js +1 -1
- package/dist/modules/channels/index.cjs +7 -7
- package/dist/modules/channels/index.d.cts +1 -1
- package/dist/modules/channels/index.d.ts +1 -1
- package/dist/modules/channels/index.js +1 -1
- package/dist/modules/collabkin/index.cjs +11 -11
- package/dist/modules/collabkin/index.d.cts +1 -1
- package/dist/modules/collabkin/index.d.ts +1 -1
- package/dist/modules/collabkin/index.js +1 -1
- package/dist/modules/comradecircle/index.cjs +5 -5
- package/dist/modules/comradecircle/index.d.cts +1 -1
- package/dist/modules/comradecircle/index.d.ts +1 -1
- package/dist/modules/comradecircle/index.js +1 -1
- package/dist/modules/conversations/index.cjs +8 -8
- package/dist/modules/conversations/index.d.cts +1 -1
- package/dist/modules/conversations/index.d.ts +1 -1
- package/dist/modules/conversations/index.js +1 -1
- package/dist/modules/coolandlovely/index.cjs +4 -4
- package/dist/modules/coolandlovely/index.d.cts +1 -1
- package/dist/modules/coolandlovely/index.d.ts +1 -1
- package/dist/modules/coolandlovely/index.js +1 -1
- package/dist/modules/cosmicintersection/index.cjs +4 -4
- package/dist/modules/cosmicintersection/index.d.cts +1 -1
- package/dist/modules/cosmicintersection/index.d.ts +1 -1
- package/dist/modules/cosmicintersection/index.js +1 -1
- package/dist/modules/crewfoundry/index.cjs +4 -4
- package/dist/modules/crewfoundry/index.d.cts +1 -1
- package/dist/modules/crewfoundry/index.d.ts +1 -1
- package/dist/modules/crewfoundry/index.js +1 -1
- package/dist/modules/devportal/index.cjs +5 -5
- package/dist/modules/devportal/index.d.cts +1 -1
- package/dist/modules/devportal/index.d.ts +1 -1
- package/dist/modules/devportal/index.js +1 -1
- package/dist/modules/ecoimpacthub/index.cjs +2 -2
- package/dist/modules/ecoimpacthub/index.d.cts +1 -1
- package/dist/modules/ecoimpacthub/index.d.ts +1 -1
- package/dist/modules/ecoimpacthub/index.js +1 -1
- package/dist/modules/eventfullymanaged/index.cjs +21 -21
- package/dist/modules/eventfullymanaged/index.d.cts +1 -1
- package/dist/modules/eventfullymanaged/index.d.ts +1 -1
- package/dist/modules/eventfullymanaged/index.js +1 -1
- package/dist/modules/export/index.cjs +3 -3
- package/dist/modules/export/index.d.cts +1 -1
- package/dist/modules/export/index.d.ts +1 -1
- package/dist/modules/export/index.js +1 -1
- package/dist/modules/files/index.cjs +9 -9
- package/dist/modules/files/index.d.cts +1 -1
- package/dist/modules/files/index.d.ts +1 -1
- package/dist/modules/files/index.js +1 -1
- package/dist/modules/fluidgrids/index.cjs +401 -0
- package/dist/modules/fluidgrids/index.d.cts +7 -0
- package/dist/modules/fluidgrids/index.d.ts +7 -0
- package/dist/modules/fluidgrids/index.js +401 -0
- package/dist/modules/ggnomad/index.cjs +5 -5
- package/dist/modules/ggnomad/index.d.cts +1 -1
- package/dist/modules/ggnomad/index.d.ts +1 -1
- package/dist/modules/ggnomad/index.js +1 -1
- package/dist/modules/govcitizenhub/index.cjs +4 -4
- package/dist/modules/govcitizenhub/index.d.cts +1 -1
- package/dist/modules/govcitizenhub/index.d.ts +1 -1
- package/dist/modules/govcitizenhub/index.js +1 -1
- package/dist/modules/groups/index.cjs +4 -4
- package/dist/modules/groups/index.d.cts +1 -1
- package/dist/modules/groups/index.d.ts +1 -1
- package/dist/modules/groups/index.js +1 -1
- package/dist/modules/headshotmarketing/index.cjs +1 -1
- package/dist/modules/headshotmarketing/index.d.cts +1 -1
- package/dist/modules/headshotmarketing/index.d.ts +1 -1
- package/dist/modules/headshotmarketing/index.js +1 -1
- package/dist/modules/health/index.d.cts +1 -1
- package/dist/modules/health/index.d.ts +1 -1
- package/dist/modules/hookmovies/index.cjs +7 -7
- package/dist/modules/hookmovies/index.d.cts +1 -1
- package/dist/modules/hookmovies/index.d.ts +1 -1
- package/dist/modules/hookmovies/index.js +1 -1
- package/dist/modules/housingvista/index.cjs +7 -7
- package/dist/modules/housingvista/index.d.cts +1 -1
- package/dist/modules/housingvista/index.d.ts +1 -1
- package/dist/modules/housingvista/index.js +1 -1
- package/dist/modules/integrations/index.cjs +5 -5
- package/dist/modules/integrations/index.d.cts +1 -1
- package/dist/modules/integrations/index.d.ts +1 -1
- package/dist/modules/integrations/index.js +1 -1
- package/dist/modules/intelwatchtower/index.cjs +4 -4
- package/dist/modules/intelwatchtower/index.d.cts +1 -1
- package/dist/modules/intelwatchtower/index.d.ts +1 -1
- package/dist/modules/intelwatchtower/index.js +1 -1
- package/dist/modules/kadaikodi/index.cjs +2 -2
- package/dist/modules/kadaikodi/index.d.cts +1 -1
- package/dist/modules/kadaikodi/index.d.ts +1 -1
- package/dist/modules/kadaikodi/index.js +1 -1
- package/dist/modules/labsofscience/index.cjs +4 -4
- package/dist/modules/labsofscience/index.d.cts +1 -1
- package/dist/modules/labsofscience/index.d.ts +1 -1
- package/dist/modules/labsofscience/index.js +1 -1
- package/dist/modules/manufacturedops/index.cjs +6 -6
- package/dist/modules/manufacturedops/index.d.cts +1 -1
- package/dist/modules/manufacturedops/index.d.ts +1 -1
- package/dist/modules/manufacturedops/index.js +1 -1
- package/dist/modules/movethewheels/index.cjs +1 -1
- package/dist/modules/movethewheels/index.d.cts +1 -1
- package/dist/modules/movethewheels/index.d.ts +1 -1
- package/dist/modules/movethewheels/index.js +1 -1
- package/dist/modules/mybodyshield/index.cjs +6 -6
- package/dist/modules/mybodyshield/index.d.cts +1 -1
- package/dist/modules/mybodyshield/index.d.ts +1 -1
- package/dist/modules/mybodyshield/index.js +1 -1
- package/dist/modules/notifications/index.cjs +5 -5
- package/dist/modules/notifications/index.d.cts +1 -1
- package/dist/modules/notifications/index.d.ts +1 -1
- package/dist/modules/notifications/index.js +1 -1
- package/dist/modules/organizations/index.d.cts +1 -1
- package/dist/modules/organizations/index.d.ts +1 -1
- package/dist/modules/organizations/index.js +1 -1
- package/dist/modules/planmagnet/index.cjs +204 -225
- package/dist/modules/planmagnet/index.d.cts +1 -1
- package/dist/modules/planmagnet/index.d.ts +1 -1
- package/dist/modules/planmagnet/index.js +173 -194
- package/dist/modules/products/index.cjs +4 -4
- package/dist/modules/products/index.d.cts +1 -1
- package/dist/modules/products/index.d.ts +1 -1
- package/dist/modules/products/index.js +1 -1
- package/dist/modules/proserviceworld/index.cjs +2 -2
- package/dist/modules/proserviceworld/index.d.cts +1 -1
- package/dist/modules/proserviceworld/index.d.ts +1 -1
- package/dist/modules/proserviceworld/index.js +1 -1
- package/dist/modules/rbac/index.cjs +2 -2
- package/dist/modules/rbac/index.d.cts +1 -1
- package/dist/modules/rbac/index.d.ts +1 -1
- package/dist/modules/rbac/index.js +1 -1
- package/dist/modules/sandbox/index.cjs +4 -4
- package/dist/modules/sandbox/index.d.cts +1 -1
- package/dist/modules/sandbox/index.d.ts +1 -1
- package/dist/modules/sandbox/index.js +1 -1
- package/dist/modules/scheduler/index.cjs +5 -5
- package/dist/modules/scheduler/index.d.cts +1 -1
- package/dist/modules/scheduler/index.d.ts +1 -1
- package/dist/modules/scheduler/index.js +1 -1
- package/dist/modules/security/index.cjs +7 -7
- package/dist/modules/security/index.d.cts +1 -1
- package/dist/modules/security/index.d.ts +1 -1
- package/dist/modules/security/index.js +1 -1
- package/dist/modules/semanticfed/index.cjs +7 -7
- package/dist/modules/semanticfed/index.d.cts +1 -1
- package/dist/modules/semanticfed/index.d.ts +1 -1
- package/dist/modules/semanticfed/index.js +1 -1
- package/dist/modules/store/index.cjs +7 -7
- package/dist/modules/store/index.d.cts +1 -1
- package/dist/modules/store/index.d.ts +1 -1
- package/dist/modules/store/index.js +1 -1
- package/dist/modules/subscriberbot/index.cjs +2 -2
- package/dist/modules/subscriberbot/index.d.cts +1 -1
- package/dist/modules/subscriberbot/index.d.ts +1 -1
- package/dist/modules/subscriberbot/index.js +1 -1
- package/dist/modules/support/index.cjs +2 -2
- package/dist/modules/support/index.d.cts +1 -1
- package/dist/modules/support/index.d.ts +1 -1
- package/dist/modules/support/index.js +1 -1
- package/dist/modules/tags/index.cjs +2 -2
- package/dist/modules/tags/index.d.cts +1 -1
- package/dist/modules/tags/index.d.ts +1 -1
- package/dist/modules/tags/index.js +1 -1
- package/dist/modules/technospam/index.cjs +4 -4
- package/dist/modules/technospam/index.d.cts +1 -1
- package/dist/modules/technospam/index.d.ts +1 -1
- package/dist/modules/technospam/index.js +1 -1
- package/dist/modules/theculturepost/index.cjs +3 -3
- package/dist/modules/theculturepost/index.d.cts +1 -1
- package/dist/modules/theculturepost/index.d.ts +1 -1
- package/dist/modules/theculturepost/index.js +1 -1
- package/dist/modules/theglobalfuel/index.cjs +3 -3
- package/dist/modules/theglobalfuel/index.d.cts +1 -1
- package/dist/modules/theglobalfuel/index.d.ts +1 -1
- package/dist/modules/theglobalfuel/index.js +1 -1
- package/dist/modules/timecampus/index.cjs +7 -7
- package/dist/modules/timecampus/index.d.cts +1 -1
- package/dist/modules/timecampus/index.d.ts +1 -1
- package/dist/modules/timecampus/index.js +1 -1
- package/dist/modules/tours/index.cjs +2 -2
- package/dist/modules/tours/index.d.cts +1 -1
- package/dist/modules/tours/index.d.ts +1 -1
- package/dist/modules/tours/index.js +1 -1
- package/dist/modules/vibecontrols/index.cjs +1 -1
- package/dist/modules/vibecontrols/index.d.cts +1 -1
- package/dist/modules/vibecontrols/index.d.ts +1 -1
- package/dist/modules/vibecontrols/index.js +1 -1
- package/dist/modules/workspaces/index.cjs +15 -15
- package/dist/modules/workspaces/index.d.cts +1 -1
- package/dist/modules/workspaces/index.d.ts +1 -1
- package/dist/modules/workspaces/index.js +11 -11
- package/package.json +1 -1
- package/dist/chunk-TCBALVP4.js +0 -32
- package/dist/chunk-WXDQ3S5J.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},h=class extends d{constructor(o,t){super(o,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(o,t){super(o),this.name="CliInternalError",this.cause=t;}};var
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},h=class extends d{constructor(o,t){super(o,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(o,t){super(o),this.name="CliInternalError",this.cause=t;}};var w=null;function E(r){w=r;}function A(){if(!w)throw new I("vibecontrols module helpers used before setHelpersContext was called");return w}function xt(){let r=A();if(!r.auth.isAuthenticated())throw new h("Authentication required.",{hint:`Run \`${r.productName} auth login\` to authenticate.`})}async function a(r,o){return xt(),A().gql.workspace.request(r,o)}async function k(r,o){return A().gql.workspaceAuthOnly.request(r,o)}function i(r){let o=r instanceof Error?r.message:String(r);throw new d(o)}function s(r,o,t){A().output.formatAndOutput(r,o,t);}function c(r){A().output.printSuccess(r);}function u(r,o){return A().output.truncate(r,o)}var b=`
|
|
2
2
|
query AdaptercloudGetAdapter($id: ID!) {
|
|
3
3
|
adaAdapter(id: $id) {
|
|
4
4
|
id workspaceId name slug description kind status version vendor
|
|
@@ -312,4 +312,4 @@
|
|
|
312
312
|
query AdaptercloudHealth {
|
|
313
313
|
adaHealth
|
|
314
314
|
}
|
|
315
|
-
`;function l(r,o){try{return JSON.parse(o)}catch{throw new d(`--${r} must be valid JSON`)}}function g(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new d(`Expected an integer but got "${r}"`);return o}function w(r){let o=Number.parseFloat(r);if(Number.isNaN(o))throw new d(`Expected a number but got "${r}"`);return o}function f(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function ut(r){let o=r.command("adapters").description("AdapterCloud adapters");o.command("list").description("List adapters").option("--kind <k>","Filter by adapter kind").option("--status <s>","Filter by adapter status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(T,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[u(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){i(e);}}),o.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(b,{id:t});if(!n.adaAdapter)throw new d(`Adapter ${t} not found`);s(e,n.adaAdapter);}catch(n){i(n);}}),o.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=f(t.capabilities)),t.configSchema&&(e.configSchema=l("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await a(O,{input:e});c(`Adapter created: ${n.adaCreateAdapter.name}`),s(t,n.adaCreateAdapter);}catch(e){i(e);}}),o.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=f(e.capabilities)),e.configSchema&&(n.configSchema=l("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(x,{id:t,input:n});c("Adapter updated"),s(e,p.adaUpdateAdapter);}catch(n){i(n);}}),o.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});c(`Adapter archived: ${n.adaArchiveAdapter}`),s(e,{archived:n.adaArchiveAdapter});}catch(n){i(n);}});}function pt(r){let o=r.command("connections").description("AdapterCloud connections");o.command("list").description("List connections").option("--adapter <id>","Filter by adapter ID").option("--status <s>","Filter by connection status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{adapterId:t.adapter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[u(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){i(e);}}),o.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a($,{id:t});if(!n.adaConnection)throw new d(`Connection ${t} not found`);s(e,n.adaConnection);}catch(n){i(n);}}),o.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=l("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await a(L,{input:e});c(`Connection created: ${n.adaCreateConnection.name}`),s(t,n.adaCreateConnection);}catch(e){i(e);}}),o.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=l("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(N,{id:t,input:n});c("Connection updated"),s(e,p.adaUpdateConnection);}catch(n){i(n);}}),o.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});c(`Connection disabled: ${n.adaDisableConnection.status}`),s(e,n.adaDisableConnection);}catch(n){i(n);}}),o.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(U,{id:t,status:e.status.toUpperCase()});c(`Connection status set to ${n.adaSetConnectionStatus.status}`),s(e,n.adaSetConnectionStatus);}catch(n){i(n);}});}function mt(r){let o=r.command("resources").description("AdapterCloud resources");o.command("list").description("List resources").option("--connection <id>","Filter by connection ID").option("--resource-type <t>","Filter by resource type").option("--state <s>","Filter by resource state").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{connectionId:t.connection,resourceType:t.resourceType,state:t.state?t.state.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[u(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){i(e);}}),o.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(q,{id:t});if(!n.adaResource)throw new d(`Resource ${t} not found`);s(e,n.adaResource);}catch(n){i(n);}}),o.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",w).option("--attributes <json>","Attributes JSON").option("--provider-tags <json>","Provider tags JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,externalId:t.externalId,name:t.name,resourceType:t.resourceType};t.region&&(e.region=t.region),t.monthlyCost!==void 0&&(e.monthlyCost=t.monthlyCost),t.attributes&&(e.attributes=l("attributes",t.attributes)),t.providerTags&&(e.providerTags=l("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await a(M,{input:e});c(`Resource registered: ${n.adaRegisterResource.name}`),s(t,n.adaRegisterResource);}catch(e){i(e);}});}function gt(r){let o=r.command("policies").description("AdapterCloud policies & violations");o.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(G,{kind:t.kind?t.kind.toUpperCase():void 0,isActive:t.active,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[u(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){i(e);}}),o.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});if(!n.adaPolicy)throw new d(`Policy ${t} not found`);s(e,n.adaPolicy);}catch(n){i(n);}}),o.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression:l("expression",t.expression),kind:(t.kind??"GUARDRAIL").toUpperCase(),severity:(t.severity??"MEDIUM").toUpperCase(),enforcement:(t.enforcement??"WARN").toUpperCase()};t.active!==void 0&&(e.isActive=t.active),t.description&&(e.description=t.description),t.appliesTo&&(e.appliesTo=f(t.appliesTo)),t.tags&&(e.tags=f(t.tags));let n=await a(W,{input:e});c(`Policy created: ${n.adaCreatePolicy.name}`),s(t,n.adaCreatePolicy);}catch(e){i(e);}}),o.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=l("expression",e.expression)),e.appliesTo&&(n.appliesTo=f(e.appliesTo)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(j,{id:t,input:n});c("Policy updated"),s(e,p.adaUpdatePolicy);}catch(n){i(n);}}),o.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Y,{id:t});c(`Policy archived: ${n.adaArchivePolicy}`),s(e,{archived:n.adaArchivePolicy});}catch(n){i(n);}}),o.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(J,{policyId:t.policy,resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[u(n.id,12),u(n.policyId,12),u(n.resourceId,12),n.severity,n.status,u(n.message,30)])});}catch(e){i(e);}}),o.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=l("evidence",t.evidence));let n=await a(H,{input:e});c("Violation recorded"),s(t,n.adaRecordViolation);}catch(e){i(e);}}),o.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t,status:e.status.toUpperCase(),waiverReason:e.waiverReason});c(`Violation ${n.adaResolveViolation.status}`),s(e,n.adaResolveViolation);}catch(n){i(n);}});}function lt(r){let o=r.command("sync-runs").description("AdapterCloud sync runs");o.command("list").description("List sync runs").option("--connection <id>","Filter by connection ID").option("--status <s>","Filter by sync status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{connectionId:t.connection,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListSyncRuns.items,{headers:["ID","Connection","Kind","Status","Discovered","Drift","Violations"],rows:e.adaListSyncRuns.items.map(n=>[u(n.id,12),u(n.connectionId,12),n.kind,n.status,String(n.discoveredCount),String(n.driftCount),String(n.violationCount)])});}catch(e){i(e);}}),o.command("get").description("Get a sync run by id").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t});if(!n.adaSyncRun)throw new d(`Sync run ${t} not found`);s(e,n.adaSyncRun);}catch(n){i(n);}}),o.command("start").description("Start a sync run").requiredOption("--connection <id>","Connection ID").option("--kind <k>","Sync kind (DISCOVERY|RECONCILE|COST_INGEST|FULL)","DISCOVERY").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,kind:(t.kind??"DISCOVERY").toUpperCase()},n=await a(Q,{input:e});c(`Sync run started: ${n.adaStartSyncRun.id}`),s(t,n.adaStartSyncRun);}catch(e){i(e);}}),o.command("complete").description("Mark a sync run complete").argument("<id>","Sync run ID").option("--discovered-count <n>","Discovered count",g).option("--reconciled-count <n>","Reconciled count",g).option("--drift-count <n>","Drift count",g).option("--violation-count <n>","Violation count",g).option("--summary <json>","Summary JSON").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};e.discoveredCount!==void 0&&(n.discoveredCount=e.discoveredCount),e.reconciledCount!==void 0&&(n.reconciledCount=e.reconciledCount),e.driftCount!==void 0&&(n.driftCount=e.driftCount),e.violationCount!==void 0&&(n.violationCount=e.violationCount),e.summary&&(n.summary=l("summary",e.summary));let p=await a(X,{id:t,input:Object.keys(n).length?n:void 0});c(`Sync run completed: ${p.adaCompleteSyncRun.status}`),s(e,p.adaCompleteSyncRun);}catch(n){i(n);}}),o.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t});c(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),s(e,n.adaCancelSyncRun);}catch(n){i(n);}}),o.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(tt,{id:t,error:e.error});c(`Sync run failed: ${n.adaFailSyncRun.status}`),s(e,n.adaFailSyncRun);}catch(n){i(n);}});}function ft(r){let o=r.command("cost").description("AdapterCloud cost records & summaries");o.command("summary").description("Aggregate spend grouped by service").option("--connection <id>","Scope summary to a connection").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(et,{connectionId:t.connection});s(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){i(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(nt,{connectionId:t.connection,resourceId:t.resource,service:t.service,pagination:{limit:100,offset:n}})).adaListCostRecords;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p=>[u(p.id,12),p.service,String(p.amount),p.currency,p.periodStart,p.periodEnd])});}catch(e){i(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",w).requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--currency <c>","Currency code").option("--connection <id>","Connection ID").option("--resource <id>","Resource ID").option("--breakdown <json>","Breakdown JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={service:t.service,amount:t.amount,periodStart:t.periodStart,periodEnd:t.periodEnd};t.currency&&(e.currency=t.currency),t.connection&&(e.connectionId=t.connection),t.resource&&(e.resourceId=t.resource),t.breakdown&&(e.breakdown=l("breakdown",t.breakdown));let n=await a(ot,{input:e});c(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),s(t,n.adaIngestCost);}catch(e){i(e);}});}function Ct(r){let o=r.command("drift").description("AdapterCloud drift records");o.command("list").description("List drift records").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by drift status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(rt,{resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0});s(t,e.adaListDriftRecords,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.map(n=>[u(n.id,12),u(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){i(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=l("expected",t.expected)),t.observed&&(e.observedValue=l("observed",t.observed));let n=await a(it,{input:e});c("Drift recorded"),s(t,n.adaRecordDrift);}catch(e){i(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});c(`Drift remediated: ${n.adaRemediateDrift.status}`),s(e,n.adaRemediateDrift);}catch(n){i(n);}});}function yt(r){let o=r.command("topology").description("AdapterCloud topology edges");o.command("list").description("List topology edges").option("--resource <id>","Filter by resource ID (either endpoint)").option("--kind <k>","Filter by edge kind").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(at,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p=>[u(p.id,12),u(p.fromResourceId,12),u(p.toResourceId,12),p.kind,p.bidirectional?"yes":"no",String(p.weight)])});}catch(e){i(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",g).option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={fromResourceId:t.from,toResourceId:t.to,kind:(t.kind??"DEPENDS_ON").toUpperCase()};t.bidirectional&&(e.bidirectional=!0),t.weight!==void 0&&(e.weight=t.weight),t.attributes&&(e.attributes=l("attributes",t.attributes));let n=await a(ct,{input:e});c(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),s(t,n.adaCreateTopologyEdge);}catch(e){i(e);}});}function It(r){r.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await k(dt);c(t.adaHealth),s(o,{health:t.adaHealth});}catch(t){i(t);}});}var Dt={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(r,o){E(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");ut(t),pt(t),mt(t),gt(t),lt(t),ft(t),Ct(t),yt(t),It(t);}},Sn=Dt;module.exports=Sn;
|
|
315
|
+
`;function l(r,o){try{return JSON.parse(o)}catch{throw new d(`--${r} must be valid JSON`)}}function m(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new d(`Expected an integer but got "${r}"`);return o}function v(r){let o=Number.parseFloat(r);if(Number.isNaN(o))throw new d(`Expected a number but got "${r}"`);return o}function f(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function ut(r){let o=r.command("adapters").description("AdapterCloud adapters");o.command("list").description("List adapters").option("--kind <k>","Filter by adapter kind").option("--status <s>","Filter by adapter status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(T,{kind:t.kind?t.kind.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListAdapters.items,{headers:["ID","Name","Kind","Status","Version","Vendor"],rows:e.adaListAdapters.items.map(n=>[u(n.id,12),n.name,n.kind,n.status,n.version,n.vendor??"-"])});}catch(e){i(e);}}),o.command("get").description("Get an adapter by id").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(b,{id:t});if(!n.adaAdapter)throw new d(`Adapter ${t} not found`);s(e,n.adaAdapter);}catch(n){i(n);}}),o.command("create").description("Create an adapter").requiredOption("--name <name>","Adapter name").requiredOption("--slug <slug>","URL slug").option("--kind <k>","Adapter kind","CUSTOM").option("--status <s>","Adapter status","DRAFT").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,slug:t.slug,kind:(t.kind??"CUSTOM").toUpperCase(),status:(t.status??"DRAFT").toUpperCase()};t.version&&(e.version=t.version),t.vendor&&(e.vendor=t.vendor),t.description&&(e.description=t.description),t.capabilities&&(e.capabilities=f(t.capabilities)),t.configSchema&&(e.configSchema=l("config-schema",t.configSchema)),t.tags&&(e.tags=f(t.tags));let n=await a(O,{input:e});c(`Adapter created: ${n.adaCreateAdapter.name}`),s(t,n.adaCreateAdapter);}catch(e){i(e);}}),o.command("update").description("Update an adapter").argument("<id>","Adapter ID").option("--name <name>","Adapter name").option("--kind <k>","Adapter kind").option("--status <s>","Adapter status").option("--version <v>","Version").option("--vendor <v>","Vendor").option("--description <s>","Description").option("--capabilities <csv>","Comma-separated capabilities").option("--config-schema <json>","Config schema JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.version&&(n.version=e.version),e.vendor!==void 0&&(n.vendor=e.vendor),e.description!==void 0&&(n.description=e.description),e.capabilities&&(n.capabilities=f(e.capabilities)),e.configSchema&&(n.configSchema=l("config-schema",e.configSchema)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(x,{id:t,input:n});c("Adapter updated"),s(e,p.adaUpdateAdapter);}catch(n){i(n);}}),o.command("archive").description("Archive an adapter").argument("<id>","Adapter ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});c(`Adapter archived: ${n.adaArchiveAdapter}`),s(e,{archived:n.adaArchiveAdapter});}catch(n){i(n);}});}function pt(r){let o=r.command("connections").description("AdapterCloud connections");o.command("list").description("List connections").option("--adapter <id>","Filter by adapter ID").option("--status <s>","Filter by connection status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(P,{adapterId:t.adapter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListConnections.items,{headers:["ID","Name","Status","Auth","Env","Region","Resources"],rows:e.adaListConnections.items.map(n=>[u(n.id,12),n.name,n.status,n.authMethod,n.environment??"-",n.region??"-",String(n.resourceCount)])});}catch(e){i(e);}}),o.command("get").description("Get a connection by id").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a($,{id:t});if(!n.adaConnection)throw new d(`Connection ${t} not found`);s(e,n.adaConnection);}catch(n){i(n);}}),o.command("create").description("Create a connection").requiredOption("--adapter <id>","Adapter ID").requiredOption("--name <name>","Connection name").option("--auth-method <m>","Auth method","NONE").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={adapterId:t.adapter,name:t.name,authMethod:(t.authMethod??"NONE").toUpperCase()};t.environment&&(e.environment=t.environment),t.region&&(e.region=t.region),t.targetRef&&(e.targetRef=t.targetRef),t.secretRef&&(e.secretRef=t.secretRef),t.config&&(e.config=l("config",t.config)),t.tags&&(e.tags=f(t.tags));let n=await a(L,{input:e});c(`Connection created: ${n.adaCreateConnection.name}`),s(t,n.adaCreateConnection);}catch(e){i(e);}}),o.command("update").description("Update a connection").argument("<id>","Connection ID").option("--name <name>","Connection name").option("--auth-method <m>","Auth method").option("--environment <e>","Environment").option("--region <r>","Region").option("--target-ref <t>","Target reference").option("--secret-ref <s>","Secret reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.authMethod&&(n.authMethod=e.authMethod.toUpperCase()),e.environment!==void 0&&(n.environment=e.environment),e.region!==void 0&&(n.region=e.region),e.targetRef!==void 0&&(n.targetRef=e.targetRef),e.secretRef!==void 0&&(n.secretRef=e.secretRef),e.config&&(n.config=l("config",e.config)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(N,{id:t,input:n});c("Connection updated"),s(e,p.adaUpdateConnection);}catch(n){i(n);}}),o.command("disable").description("Disable a connection").argument("<id>","Connection ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});c(`Connection disabled: ${n.adaDisableConnection.status}`),s(e,n.adaDisableConnection);}catch(n){i(n);}}),o.command("set-status").description("Transition a connection status").argument("<id>","Connection ID").requiredOption("--status <s>","CONNECTED|DEGRADED|DISABLED|ERROR|PENDING").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(U,{id:t,status:e.status.toUpperCase()});c(`Connection status set to ${n.adaSetConnectionStatus.status}`),s(e,n.adaSetConnectionStatus);}catch(n){i(n);}});}function gt(r){let o=r.command("resources").description("AdapterCloud resources");o.command("list").description("List resources").option("--connection <id>","Filter by connection ID").option("--resource-type <t>","Filter by resource type").option("--state <s>","Filter by resource state").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(F,{connectionId:t.connection,resourceType:t.resourceType,state:t.state?t.state.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListResources.items,{headers:["ID","Name","Type","Region","State","Cost/mo"],rows:e.adaListResources.items.map(n=>[u(n.id,12),n.name,n.resourceType,n.region??"-",n.state,String(n.monthlyCost)])});}catch(e){i(e);}}),o.command("get").description("Get a resource by id").argument("<id>","Resource ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(q,{id:t});if(!n.adaResource)throw new d(`Resource ${t} not found`);s(e,n.adaResource);}catch(n){i(n);}}),o.command("register").description("Register (upsert) a discovered resource").requiredOption("--connection <id>","Connection ID").requiredOption("--external-id <id>","External (provider) ID").requiredOption("--name <name>","Resource name").requiredOption("--resource-type <t>","Resource type").option("--region <r>","Region").option("--monthly-cost <n>","Monthly cost",v).option("--attributes <json>","Attributes JSON").option("--provider-tags <json>","Provider tags JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={connectionId:t.connection,externalId:t.externalId,name:t.name,resourceType:t.resourceType};t.region&&(e.region=t.region),t.monthlyCost!==void 0&&(e.monthlyCost=t.monthlyCost),t.attributes&&(e.attributes=l("attributes",t.attributes)),t.providerTags&&(e.providerTags=l("provider-tags",t.providerTags)),t.tags&&(e.tags=f(t.tags));let n=await a(M,{input:e});c(`Resource registered: ${n.adaRegisterResource.name}`),s(t,n.adaRegisterResource);}catch(e){i(e);}});}function mt(r){let o=r.command("policies").description("AdapterCloud policies & violations");o.command("list").description("List policies").option("--kind <k>","Filter by policy kind").option("--active <bool>","true|false",t=>t==="true").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(G,{kind:t.kind?t.kind.toUpperCase():void 0,isActive:t.active,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListPolicies.items,{headers:["ID","Name","Kind","Severity","Enforcement","Active"],rows:e.adaListPolicies.items.map(n=>[u(n.id,12),n.name,n.kind,n.severity,n.enforcement,n.isActive?"yes":"no"])});}catch(e){i(e);}}),o.command("get").description("Get a policy by id").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});if(!n.adaPolicy)throw new d(`Policy ${t} not found`);s(e,n.adaPolicy);}catch(n){i(n);}}),o.command("create").description("Create a policy").requiredOption("--name <name>","Policy name").requiredOption("--expression <json>","Policy expression JSON").option("--kind <k>","Policy kind","GUARDRAIL").option("--severity <s>","Severity","MEDIUM").option("--enforcement <e>","Enforcement","WARN").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,expression:l("expression",t.expression),kind:(t.kind??"GUARDRAIL").toUpperCase(),severity:(t.severity??"MEDIUM").toUpperCase(),enforcement:(t.enforcement??"WARN").toUpperCase()};t.active!==void 0&&(e.isActive=t.active),t.description&&(e.description=t.description),t.appliesTo&&(e.appliesTo=f(t.appliesTo)),t.tags&&(e.tags=f(t.tags));let n=await a(W,{input:e});c(`Policy created: ${n.adaCreatePolicy.name}`),s(t,n.adaCreatePolicy);}catch(e){i(e);}}),o.command("update").description("Update a policy").argument("<id>","Policy ID").option("--name <name>","Policy name").option("--kind <k>","Policy kind").option("--severity <s>","Severity").option("--enforcement <e>","Enforcement").option("--active <bool>","true|false",t=>t==="true").option("--description <s>","Description").option("--expression <json>","Policy expression JSON").option("--applies-to <csv>","Comma-separated resource types/selectors").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.kind&&(n.kind=e.kind.toUpperCase()),e.severity&&(n.severity=e.severity.toUpperCase()),e.enforcement&&(n.enforcement=e.enforcement.toUpperCase()),e.active!==void 0&&(n.isActive=e.active),e.description!==void 0&&(n.description=e.description),e.expression&&(n.expression=l("expression",e.expression)),e.appliesTo&&(n.appliesTo=f(e.appliesTo)),e.tags&&(n.tags=f(e.tags)),!Object.keys(n).length)throw new d("No updates specified");let p=await a(j,{id:t,input:n});c("Policy updated"),s(e,p.adaUpdatePolicy);}catch(n){i(n);}}),o.command("archive").description("Archive a policy").argument("<id>","Policy ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Y,{id:t});c(`Policy archived: ${n.adaArchivePolicy}`),s(e,{archived:n.adaArchivePolicy});}catch(n){i(n);}}),o.command("list-violations").description("List policy violations").option("--policy <id>","Filter by policy ID").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by violation status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(J,{policyId:t.policy,resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});s(t,e.adaListViolations.items,{headers:["ID","Policy","Resource","Severity","Status","Message"],rows:e.adaListViolations.items.map(n=>[u(n.id,12),u(n.policyId,12),u(n.resourceId,12),n.severity,n.status,u(n.message,30)])});}catch(e){i(e);}}),o.command("record-violation").description("Record a policy violation").requiredOption("--policy <id>","Policy ID").requiredOption("--resource <id>","Resource ID").requiredOption("--message <m>","Violation message").option("--severity <s>","Severity").option("--evidence <json>","Evidence JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={policyId:t.policy,resourceId:t.resource,message:t.message};t.severity&&(e.severity=t.severity.toUpperCase()),t.evidence&&(e.evidence=l("evidence",t.evidence));let n=await a(H,{input:e});c("Violation recorded"),s(t,n.adaRecordViolation);}catch(e){i(e);}}),o.command("resolve-violation").description("Resolve or waive a violation").argument("<id>","Violation ID").requiredOption("--status <s>","ACKNOWLEDGED|OPEN|RESOLVED|WAIVED").option("--waiver-reason <r>","Waiver reason (required when waiving)").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(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=l("summary",e.summary));let p=await a(X,{id:t,input:Object.keys(n).length?n:void 0});c(`Sync run completed: ${p.adaCompleteSyncRun.status}`),s(e,p.adaCompleteSyncRun);}catch(n){i(n);}}),o.command("cancel").description("Cancel a sync run").argument("<id>","Sync run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t});c(`Sync run cancelled: ${n.adaCancelSyncRun.status}`),s(e,n.adaCancelSyncRun);}catch(n){i(n);}}),o.command("fail").description("Mark a sync run failed").argument("<id>","Sync run ID").requiredOption("--error <e>","Error message").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(tt,{id:t,error:e.error});c(`Sync run failed: ${n.adaFailSyncRun.status}`),s(e,n.adaFailSyncRun);}catch(n){i(n);}});}function ft(r){let o=r.command("cost").description("AdapterCloud cost records & summaries");o.command("summary").description("Aggregate spend grouped by service").option("--connection <id>","Scope summary to a connection").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(et,{connectionId:t.connection});s(t,e.adaCostSummary,{headers:["Service","Total"],rows:e.adaCostSummary.lines.map(n=>[n.service,String(n.total)])});}catch(e){i(e);}}),o.command("list").description("List cost records").option("--connection <id>","Filter by connection ID").option("--resource <id>","Filter by resource ID").option("--service <s>","Filter by service").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(nt,{connectionId:t.connection,resourceId:t.resource,service:t.service,pagination:{limit:100,offset:n}})).adaListCostRecords;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","Service","Amount","Currency","Period start","Period end"],rows:e.map(p=>[u(p.id,12),p.service,String(p.amount),p.currency,p.periodStart,p.periodEnd])});}catch(e){i(e);}}),o.command("ingest").description("Ingest a cost record").requiredOption("--service <s>","Service name").requiredOption("--amount <n>","Amount",v).requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--currency <c>","Currency code").option("--connection <id>","Connection ID").option("--resource <id>","Resource ID").option("--breakdown <json>","Breakdown JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={service:t.service,amount:t.amount,periodStart:t.periodStart,periodEnd:t.periodEnd};t.currency&&(e.currency=t.currency),t.connection&&(e.connectionId=t.connection),t.resource&&(e.resourceId=t.resource),t.breakdown&&(e.breakdown=l("breakdown",t.breakdown));let n=await a(ot,{input:e});c(`Cost ingested: ${n.adaIngestCost.service} ${n.adaIngestCost.amount}`),s(t,n.adaIngestCost);}catch(e){i(e);}});}function Ct(r){let o=r.command("drift").description("AdapterCloud drift records");o.command("list").description("List drift records").option("--resource <id>","Filter by resource ID").option("--status <s>","Filter by drift status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(rt,{resourceId:t.resource,status:t.status?t.status.toUpperCase():void 0});s(t,e.adaListDriftRecords,{headers:["ID","Resource","Attribute","Severity","Status"],rows:e.adaListDriftRecords.map(n=>[u(n.id,12),u(n.resourceId,12),n.attributePath,n.severity,n.status])});}catch(e){i(e);}}),o.command("record").description("Record a drift observation").requiredOption("--resource <id>","Resource ID").requiredOption("--attribute-path <p>","Attribute path").option("--severity <s>","Severity").option("--expected <json>","Expected value JSON").option("--observed <json>","Observed value JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={resourceId:t.resource,attributePath:t.attributePath};t.severity&&(e.severity=t.severity.toUpperCase()),t.expected&&(e.expectedValue=l("expected",t.expected)),t.observed&&(e.observedValue=l("observed",t.observed));let n=await a(it,{input:e});c("Drift recorded"),s(t,n.adaRecordDrift);}catch(e){i(e);}}),o.command("remediate").description("Mark a drift record remediated").argument("<id>","Drift record ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});c(`Drift remediated: ${n.adaRemediateDrift.status}`),s(e,n.adaRemediateDrift);}catch(n){i(n);}});}function yt(r){let o=r.command("topology").description("AdapterCloud topology edges");o.command("list").description("List topology edges").option("--resource <id>","Filter by resource ID (either endpoint)").option("--kind <k>","Filter by edge kind").option("-f, --format <format>","Output format").action(async t=>{try{let e=[],n=0;for(;;){let C=(await a(at,{resourceId:t.resource,kind:t.kind?t.kind.toUpperCase():void 0,pagination:{limit:100,offset:n}})).adaListTopologyEdges;if(e.push(...C.items),!C.pageInfo.hasMore||C.items.length===0)break;n+=C.items.length;}s(t,e,{headers:["ID","From","To","Kind","Bidirectional","Weight"],rows:e.map(p=>[u(p.id,12),u(p.fromResourceId,12),u(p.toResourceId,12),p.kind,p.bidirectional?"yes":"no",String(p.weight)])});}catch(e){i(e);}}),o.command("create").description("Create a topology edge").requiredOption("--from <id>","From resource ID").requiredOption("--to <id>","To resource ID").option("--kind <k>","Edge kind","DEPENDS_ON").option("--bidirectional","Mark edge bidirectional").option("--weight <n>","Edge weight",m).option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={fromResourceId:t.from,toResourceId:t.to,kind:(t.kind??"DEPENDS_ON").toUpperCase()};t.bidirectional&&(e.bidirectional=!0),t.weight!==void 0&&(e.weight=t.weight),t.attributes&&(e.attributes=l("attributes",t.attributes));let n=await a(ct,{input:e});c(`Topology edge created: ${n.adaCreateTopologyEdge.id}`),s(t,n.adaCreateTopologyEdge);}catch(e){i(e);}});}function It(r){r.command("health").description("AdapterCloud service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await k(dt);c(t.adaHealth),s(o,{health:t.adaHealth});}catch(t){i(t);}});}var Dt={id:"adaptercloud",version:"1.0.0",displayName:"AdapterCloud",dependsOn:["auth","workspaces"],register(r,o){E(o);let t=r.command("adaptercloud").description("AdapterCloud multi-cloud adapter control plane");ut(t),pt(t),gt(t),mt(t),lt(t),ft(t),Ct(t),yt(t),It(t);}},Sn=Dt;module.exports=Sn;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-
|
|
1
|
+
import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-NLEVVDXR.js';import {o}from'../../chunk-IZXPWPKX.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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(i,n){super(i),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(i,n){super(i),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},R=class extends l{constructor(i,n){super(i,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(i,n){super(i),this.name="CliInternalError",this.cause=n;}};var y=null;function T(c){y=c;}function A(){if(!y)throw new w("vibecontrols module helpers used before setHelpersContext was called");return y}function Mt(){let c=A();if(!c.auth.isAuthenticated())throw new R("Authentication required.",{hint:`Run \`${c.productName} auth login\` to authenticate.`})}async function d(c,i){return Mt(),A().gql.workspace.request(c,i)}async function C(c,i){return A().gql.workspaceAuthOnly.request(c,i)}function s(c){let i=c instanceof Error?c.message:String(c);throw new l(i)}function a(c,i,n){A().output.formatAndOutput(c,i,n);}function p(c){A().output.printSuccess(c);}function m(c,i){return A().output.truncate(c,i)}var O=`
|
|
2
2
|
query ArtListWorks(
|
|
3
3
|
$medium: ArtMedium
|
|
4
4
|
$status: ArtWorkStatus
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
closedAt createdAt updatedAt workspaceId
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
-
`,
|
|
200
|
+
`,rt=`
|
|
201
201
|
query ArtReviewRound($id: ID!) {
|
|
202
202
|
artReviewRound(id: $id) {
|
|
203
203
|
id workId versionId round status title dueDate openedById closedAt
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
approvals { id approverId decision comment }
|
|
207
207
|
}
|
|
208
208
|
}
|
|
209
|
-
`,
|
|
209
|
+
`,ot=`
|
|
210
210
|
mutation ArtOpenReviewRound($input: ArtOpenReviewRoundInput!) {
|
|
211
211
|
artOpenReviewRound(input: $input) {
|
|
212
212
|
id workId versionId round status title dueDate createdAt
|
|
@@ -300,14 +300,14 @@
|
|
|
300
300
|
mutation ArtUnfollowPortfolio($portfolioId: ID!) {
|
|
301
301
|
artUnfollowPortfolio(portfolioId: $portfolioId)
|
|
302
302
|
}
|
|
303
|
-
`,
|
|
303
|
+
`,Rt=`
|
|
304
304
|
query ArtListLicenses($workId: ID!) {
|
|
305
305
|
artListLicenses(workId: $workId) {
|
|
306
306
|
id workId name model status priceAmount currency spdx terms attribution
|
|
307
307
|
createdAt updatedAt workspaceId
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
-
`,
|
|
310
|
+
`,At=`
|
|
311
311
|
mutation ArtCreateLicense($input: ArtCreateLicenseInput!) {
|
|
312
312
|
artCreateLicense(input: $input) {
|
|
313
313
|
id workId name model status priceAmount currency spdx terms attribution
|
|
@@ -331,4 +331,4 @@
|
|
|
331
331
|
query ArtHealth {
|
|
332
332
|
artHealth
|
|
333
333
|
}
|
|
334
|
-
`;function h(c,i){try{return JSON.parse(i)}catch{throw new l(`--${c} must be valid JSON`)}}function g(c){let i=Number.parseInt(c,10);if(Number.isNaN(i))throw new l(`Expected an integer but got "${c}"`);return i}function v(c){let i=Number.parseFloat(c);if(Number.isNaN(i))throw new l(`Expected a number but got "${c}"`);return i}function I(c){return c.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function ht(c){let i=c.command("works").description("Artistrybase creative works");i.command("list").description("List works").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--status <s>","DRAFT|IN_REVIEW|APPROVED|RELEASED|ARCHIVED").option("--production <id>","Filter by production ID").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={limit:e.limit,offset:e.offset},o=await d(O,{medium:e.medium?e.medium.toUpperCase():void 0,status:e.status?e.status.toUpperCase():void 0,productionId:e.production,pagination:t});a(e,o.artListWorks.items,{headers:["ID","Title","Medium","Status","Visibility"],rows:o.artListWorks.items.map(u=>[m(u.id,12),u.title,u.medium,u.status,u.visibility])});}catch(t){s(t);}}),i.command("get").description("Get a work by id").argument("<id>","Work ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(D,{id:e});if(!o.artWork)throw new l(`Work ${e} not found`);a(t,o.artWork);}catch(o){s(o);}}),i.command("create").description("Create a work").requiredOption("--title <t>","Title").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO","MIXED").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PRIVATE").option("--summary <s>","Summary").option("--production <id>","Production ID").option("--cover-file <id>","Cover file ID").option("--duration-ms <n>","Duration in ms",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={title:e.title,medium:(e.medium??"MIXED").toUpperCase(),visibility:(e.visibility??"PRIVATE").toUpperCase()};e.summary&&(t.summary=e.summary),e.production&&(t.productionId=e.production),e.coverFile&&(t.coverFileId=e.coverFile),e.durationMs!==void 0&&(t.durationMs=e.durationMs),e.tags&&(t.tags=I(e.tags));let o=await d(L,{input:t});p(`Work created: ${o.artCreateWork.title}`),a(e,o.artCreateWork);}catch(t){s(t);}}),i.command("update").description("Update a work").argument("<id>","Work ID").option("--title <t>","Title").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--summary <s>","Summary").option("--production <id>","Production ID").option("--cover-file <id>","Cover file ID").option("--duration-ms <n>","Duration in ms",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o={};if(t.title&&(o.title=t.title),t.medium&&(o.medium=t.medium.toUpperCase()),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.summary!==void 0&&(o.summary=t.summary),t.production&&(o.productionId=t.production),t.coverFile&&(o.coverFileId=t.coverFile),t.durationMs!==void 0&&(o.durationMs=t.durationMs),t.tags&&(o.tags=I(t.tags)),!Object.keys(o).length)throw new l("No updates specified");let u=await d(P,{id:e,input:o});p("Work updated"),a(t,u.artUpdateWork);}catch(o){s(o);}}),i.command("archive").description("Archive a work").argument("<id>","Work ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(x,{id:e});p(`Work archived: ${String(o.artArchiveWork)}`),a(t,{archived:o.artArchiveWork});}catch(o){s(o);}}),i.command("publish-version").description("Promote a version to the work's published current version").argument("<workId>","Work ID").requiredOption("--version <id>","Version ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(S,{workId:e,versionId:t.version});p("Version published"),a(t,o.artPublishWorkVersion);}catch(o){s(o);}});let n=c.command("versions").description("Artistrybase work versions");n.command("list").description("List versions for a work").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(_,{workId:e.work});a(e,t.artListWorkVersions,{headers:["ID","No","Label","Published","File"],rows:t.artListWorkVersions.map(o=>[m(o.id,12),String(o.versionNo),o.label??"-",o.isPublished?"yes":"no",m(String(o.fileId??"-"),12)])});}catch(t){s(t);}}),n.command("add").description("Upload a new immutable version of a work").requiredOption("--work <id>","Work ID").option("--label <l>","Version label").option("--notes <n>","Notes").option("--file <id>","Source file ID").option("--checksum <c>","Checksum").option("-f, --format <format>","Output format").action(async e=>{try{let t={workId:e.work};e.label&&(t.label=e.label),e.notes&&(t.notes=e.notes),e.file&&(t.fileId=e.file),e.checksum&&(t.checksum=e.checksum);let o=await d($,{input:t});p(`Version added: v${o.artAddWorkVersion.versionNo}`),a(e,o.artAddWorkVersion);}catch(t){s(t);}});let r=c.command("assets").description("Artistrybase work assets");r.command("list").description("List assets for a work").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(N,{workId:e.work});a(e,t.artListAssets,{headers:["ID","Kind","File","MIME"],rows:t.artListAssets.map(o=>[m(o.id,12),o.kind,m(o.fileId,12),o.mimeType??"-"])});}catch(t){s(t);}}),r.command("add").description("Attach a file asset to a work").requiredOption("--work <id>","Work ID").requiredOption("--file <id>","File ID").option("--kind <k>","SOURCE|MASTER|PREVIEW|COVER|CAPTION|ATTACHMENT","SOURCE").option("--mime-type <t>","MIME type").option("--version <id>","Version ID").option("--width <n>","Width",g).option("--height <n>","Height",g).option("--duration-ms <n>","Duration in ms",g).option("-f, --format <format>","Output format").action(async e=>{try{let t={workId:e.work,fileId:e.file,kind:(e.kind??"SOURCE").toUpperCase()};e.mimeType&&(t.mimeType=e.mimeType),e.version&&(t.versionId=e.version),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.durationMs!==void 0&&(t.durationMs=e.durationMs);let o=await d(U,{input:t});p(`Asset added: ${o.artAddAsset.kind}`),a(e,o.artAddAsset);}catch(t){s(t);}});}function vt(c){let i=c.command("collections").description("Artistrybase curated collections");i.command("list").description("List collections").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async n=>{try{let r=await d(W,{visibility:n.visibility?n.visibility.toUpperCase():void 0,pagination:{limit:n.limit,offset:n.offset}});a(n,r.artListCollections.items,{headers:["ID","Title","Slug","Medium","Visibility"],rows:r.artListCollections.items.map(e=>[m(e.id,12),e.title,e.slug,e.medium??"-",e.visibility])});}catch(r){s(r);}}),i.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(n,r)=>{try{let e=await d(F,{id:n});if(!e.artCollection)throw new l(`Collection ${n} not found`);a(r,e.artCollection);}catch(e){s(e);}}),i.command("create").description("Create a collection").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").option("--description <d>","Description").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PRIVATE").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async n=>{try{let r={title:n.title,slug:n.slug,visibility:(n.visibility??"PRIVATE").toUpperCase()};n.description&&(r.description=n.description),n.medium&&(r.medium=n.medium.toUpperCase()),n.coverFile&&(r.coverFileId=n.coverFile),n.tags&&(r.tags=I(n.tags));let e=await d(M,{input:r});p(`Collection created: ${e.artCreateCollection.title}`),a(n,e.artCreateCollection);}catch(r){s(r);}}),i.command("update").description("Update a collection").argument("<id>","Collection ID").option("--title <t>","Title").option("--description <d>","Description").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(n,r)=>{try{let e={};if(r.title&&(e.title=r.title),r.description!==void 0&&(e.description=r.description),r.medium&&(e.medium=r.medium.toUpperCase()),r.visibility&&(e.visibility=r.visibility.toUpperCase()),r.coverFile&&(e.coverFileId=r.coverFile),r.tags&&(e.tags=I(r.tags)),!Object.keys(e).length)throw new l("No updates specified");let t=await d(q,{id:n,input:e});p("Collection updated"),a(r,t.artUpdateCollection);}catch(e){s(e);}}),i.command("add-work").description("Add a work to a collection").argument("<collectionId>","Collection ID").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async(n,r)=>{try{let e=await d(V,{collectionId:n,workId:r.work});p("Work added to collection"),a(r,e.artAddWorkToCollection);}catch(e){s(e);}}),i.command("remove-work").description("Remove a work from a collection").argument("<collectionId>","Collection ID").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async(n,r)=>{try{let e=await d(B,{collectionId:n,workId:r.work});p("Work removed from collection"),a(r,e.artRemoveWorkFromCollection);}catch(e){s(e);}});}function bt(c){let i=c.command("productions").description("Artistrybase productions");i.command("list").description("List productions").option("--status <s>","Production status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(H,{status:e.status?e.status.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});a(e,t.artListProductions.items,{headers:["ID","Title","Slug","Medium","Status"],rows:t.artListProductions.items.map(o=>[m(o.id,12),o.title,o.slug,o.medium,o.status])});}catch(t){s(t);}}),i.command("get").description("Get a production by id").argument("<id>","Production ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(G,{id:e});if(!o.artProduction)throw new l(`Production ${e} not found`);a(t,o.artProduction);}catch(o){s(o);}}),i.command("create").description("Create a production").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO","MIXED").option("--synopsis <s>","Synopsis").option("--start-date <iso>","Start date (ISO)").option("--target-date <iso>","Target date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={title:e.title,slug:e.slug,medium:(e.medium??"MIXED").toUpperCase()};e.synopsis&&(t.synopsis=e.synopsis),e.startDate&&(t.startDate=e.startDate),e.targetDate&&(t.targetDate=e.targetDate),e.tags&&(t.tags=I(e.tags));let o=await d(j,{input:t});p(`Production created: ${o.artCreateProduction.title}`),a(e,o.artCreateProduction);}catch(t){s(t);}}),i.command("update").description("Update a production").argument("<id>","Production ID").option("--title <t>","Title").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--synopsis <s>","Synopsis").option("--start-date <iso>","Start date (ISO)").option("--target-date <iso>","Target date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o={};if(t.title&&(o.title=t.title),t.medium&&(o.medium=t.medium.toUpperCase()),t.synopsis!==void 0&&(o.synopsis=t.synopsis),t.startDate&&(o.startDate=t.startDate),t.targetDate&&(o.targetDate=t.targetDate),t.tags&&(o.tags=I(t.tags)),!Object.keys(o).length)throw new l("No updates specified");let u=await d(K,{id:e,input:o});p("Production updated"),a(t,u.artUpdateProduction);}catch(o){s(o);}}),i.command("transition").description("Advance a production through its lifecycle").argument("<id>","Production ID").requiredOption("--status <s>","PLANNING|IN_PRODUCTION|POST|REVIEW|ON_HOLD|RELEASED|CANCELLED").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(z,{id:e,status:t.status.toUpperCase()});p(`Production status set to ${o.artTransitionProduction.status}`),a(t,o.artTransitionProduction);}catch(o){s(o);}});let n=c.command("members").description("Artistrybase production members");n.command("list").description("List members for a production").requiredOption("--production <id>","Production ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(J,{productionId:e.production});a(e,t.artListProductionMembers,{headers:["ID","Member","Role","Title","Lead"],rows:t.artListProductionMembers.map(o=>[m(o.id,12),m(o.memberId,12),o.role,o.title??"-",o.isLead?"yes":"no"])});}catch(t){s(t);}}),n.command("add").description("Add a member to a production").requiredOption("--production <id>","Production ID").requiredOption("--member <id>","Member user ID").option("--role <r>","OWNER|PRODUCER|EDITOR|CREATOR|COLLABORATOR|REVIEWER|VIEWER","COLLABORATOR").option("--title <t>","Title").option("--lead","Mark as lead").option("-f, --format <format>","Output format").action(async e=>{try{let t={productionId:e.production,memberId:e.member,role:(e.role??"COLLABORATOR").toUpperCase(),isLead:e.lead??!1};e.title&&(t.title=e.title);let o=await d(Y,{input:t});p("Member added"),a(e,o.artAddProductionMember);}catch(t){s(t);}}),n.command("remove").description("Remove a production member").argument("<id>","Member ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(X,{id:e});p(`Member removed: ${String(o.artRemoveProductionMember)}`),a(t,{removed:o.artRemoveProductionMember});}catch(o){s(o);}});let r=c.command("references").description("Artistrybase production references");r.command("list").description("List references for a production").requiredOption("--production <id>","Production ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(Q,{productionId:e.production});a(e,t.artListReferences,{headers:["ID","Title","URL","File"],rows:t.artListReferences.map(o=>[m(o.id,12),o.title,m(o.url??"-",30),o.fileId?m(o.fileId,12):"-"])});}catch(t){s(t);}}),r.command("add").description("Add a reference to a production").requiredOption("--production <id>","Production ID").requiredOption("--title <t>","Title").option("--url <u>","Reference URL").option("--note <n>","Note").option("--file <id>","Attached file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={productionId:e.production,title:e.title};e.url&&(t.url=e.url),e.note&&(t.note=e.note),e.file&&(t.fileId=e.file),e.tags&&(t.tags=I(e.tags));let o=await d(Z,{input:t});p(`Reference added: ${o.artAddReference.title}`),a(e,o.artAddReference);}catch(t){s(t);}}),r.command("remove").description("Remove a reference").argument("<id>","Reference ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let o=await d(tt,{id:e});p(`Reference removed: ${String(o.artRemoveReference)}`),a(t,{removed:o.artRemoveReference});}catch(o){s(o);}});}function Tt(c){let i=c.command("reviews").description("Artistrybase review rounds");i.command("list").description("List review rounds for a work").requiredOption("--work <id>","Work ID").option("--status <s>","OPEN|CHANGES_REQUESTED|APPROVED|CLOSED").option("-f, --format <format>","Output format").action(async t=>{try{let o=await d(et,{workId:t.work,status:t.status?t.status.toUpperCase():void 0});a(t,o.artListReviewRounds,{headers:["ID","Round","Status","Title"],rows:o.artListReviewRounds.map(u=>[m(u.id,12),String(u.round),u.status,u.title??"-"])});}catch(o){s(o);}}),i.command("get").description("Get a review round by id").argument("<id>","Review round ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let u=await d(ot,{id:t});if(!u.artReviewRound)throw new l(`Review round ${t} not found`);a(o,u.artReviewRound);}catch(u){s(u);}}),i.command("open").description("Open a review round on a work").requiredOption("--work <id>","Work ID").option("--version <id>","Version ID").option("--title <t>","Title").option("--due-date <iso>","Due date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let o={workId:t.work};t.version&&(o.versionId=t.version),t.title&&(o.title=t.title),t.dueDate&&(o.dueDate=t.dueDate);let u=await d(rt,{input:o});p(`Review round opened: round ${u.artOpenReviewRound.round}`),a(t,u.artOpenReviewRound);}catch(o){s(o);}}),i.command("transition").description("Advance a review round through its lifecycle").argument("<id>","Review round ID").requiredOption("--status <s>","OPEN|CHANGES_REQUESTED|APPROVED|CLOSED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let u=await d(it,{id:t,status:o.status.toUpperCase()});p(`Review round status set to ${u.artTransitionReviewRound.status}`),a(o,u.artTransitionReviewRound);}catch(u){s(u);}});let n=c.command("feedback").description("Artistrybase review feedback");n.command("add").description("Add feedback to a review round").requiredOption("--round <id>","Review round ID").requiredOption("--body <text>","Feedback body").option("--anchor-type <t>","GENERAL|TIMECODE|PAGE|CHAPTER|PIN","GENERAL").option("--anchor-value <v>","Anchor value").option("-f, --format <format>","Output format").action(async t=>{try{let o={reviewRoundId:t.round,body:t.body,anchorType:(t.anchorType??"GENERAL").toUpperCase()};t.anchorValue&&(o.anchorValue=t.anchorValue);let u=await d(nt,{input:o});p("Feedback added"),a(t,u.artAddFeedback);}catch(o){s(o);}}),n.command("resolve").description("Resolve (or mark) a feedback item").argument("<id>","Feedback ID").requiredOption("--status <s>","OPEN|RESOLVED|WONT_FIX").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let u=await d(st,{id:t,status:o.status.toUpperCase()});p(`Feedback status set to ${u.artResolveFeedback.status}`),a(o,u.artResolveFeedback);}catch(u){s(u);}}),c.command("approvals").description("Artistrybase review approvals").command("record").description("Record an approval decision on a review round").requiredOption("--round <id>","Review round ID").requiredOption("--decision <d>","PENDING|APPROVED|REJECTED").option("--comment <c>","Comment").option("-f, --format <format>","Output format").action(async t=>{try{let o={reviewRoundId:t.round,decision:t.decision.toUpperCase()};t.comment&&(o.comment=t.comment);let u=await d(at,{input:o});p(`Approval recorded: ${u.artRecordApproval.decision}`),a(t,u.artRecordApproval);}catch(o){s(o);}});let e=c.command("releases").description("Artistrybase release pipeline");e.command("list").description("List releases for a work").requiredOption("--work <id>","Work ID").option("--status <s>","SCHEDULED|PUBLISHED|UNPUBLISHED|FAILED").option("-f, --format <format>","Output format").action(async t=>{try{let o=await d(dt,{workId:t.work,status:t.status?t.status.toUpperCase():void 0});a(t,o.artListReleases,{headers:["ID","Channel","Status","Visibility"],rows:o.artListReleases.map(u=>[m(u.id,12),u.channel,u.status,u.visibility])});}catch(o){s(o);}}),e.command("create").description("Create a release for a work").requiredOption("--work <id>","Work ID").option("--version <id>","Version ID").option("--channel <c>","Release channel").option("--notes <n>","Notes").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PUBLIC").option("--scheduled-for <iso>","Scheduled for (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let o={workId:t.work,visibility:(t.visibility??"PUBLIC").toUpperCase()};t.version&&(o.versionId=t.version),t.channel&&(o.channel=t.channel),t.notes&&(o.notes=t.notes),t.scheduledFor&&(o.scheduledFor=t.scheduledFor);let u=await d(ct,{input:o});p(`Release created on channel ${u.artCreateRelease.channel}`),a(t,u.artCreateRelease);}catch(o){s(o);}}),e.command("publish").description("Publish a release").argument("<id>","Release ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let u=await d(ut,{id:t});p(`Release published: ${u.artPublishRelease.status}`),a(o,u.artPublishRelease);}catch(u){s(u);}});}function Et(c){let i=c.command("portfolios").description("Artistrybase public portfolios");i.command("list").description("List portfolios").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async r=>{try{let e=await d(pt,{visibility:r.visibility?r.visibility.toUpperCase():void 0,pagination:{limit:r.limit,offset:r.offset}});a(r,e.artListPortfolios.items,{headers:["ID","Handle","Display Name","Visibility","Followers"],rows:e.artListPortfolios.items.map(t=>[m(t.id,12),t.handle,t.displayName,t.visibility,String(t.followerCount)])});}catch(e){s(e);}}),i.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t=await d(lt,{id:r});if(!t.artPortfolio)throw new l(`Portfolio ${r} not found`);a(e,t.artPortfolio);}catch(t){s(t);}}),i.command("create").description("Create a portfolio").requiredOption("--handle <h>","Unique handle").requiredOption("--display-name <n>","Display name").option("--bio <b>","Bio").option("--owner <id>","Owner user ID").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PUBLIC").option("--avatar-file <id>","Avatar file ID").option("--banner-file <id>","Banner file ID").option("--featured-works <csv>","Comma-separated work IDs").option("--links <json>","Links JSON").option("-f, --format <format>","Output format").action(async r=>{try{let e={handle:r.handle,displayName:r.displayName,visibility:(r.visibility??"PUBLIC").toUpperCase()};r.bio&&(e.bio=r.bio),r.owner&&(e.ownerId=r.owner),r.avatarFile&&(e.avatarFileId=r.avatarFile),r.bannerFile&&(e.bannerFileId=r.bannerFile),r.featuredWorks&&(e.featuredWorkIds=I(r.featuredWorks)),r.links&&(e.links=h("links",r.links));let t=await d(mt,{input:e});p(`Portfolio created: ${t.artCreatePortfolio.handle}`),a(r,t.artCreatePortfolio);}catch(e){s(e);}}),i.command("update").description("Update a portfolio").argument("<id>","Portfolio ID").option("--display-name <n>","Display name").option("--bio <b>","Bio").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--avatar-file <id>","Avatar file ID").option("--banner-file <id>","Banner file ID").option("--featured-works <csv>","Comma-separated work IDs").option("--links <json>","Links JSON").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t={};if(e.displayName&&(t.displayName=e.displayName),e.bio!==void 0&&(t.bio=e.bio),e.visibility&&(t.visibility=e.visibility.toUpperCase()),e.avatarFile&&(t.avatarFileId=e.avatarFile),e.bannerFile&&(t.bannerFileId=e.bannerFile),e.featuredWorks&&(t.featuredWorkIds=I(e.featuredWorks)),e.links&&(t.links=h("links",e.links)),!Object.keys(t).length)throw new l("No updates specified");let o=await d(ft,{id:r,input:t});p("Portfolio updated"),a(e,o.artUpdatePortfolio);}catch(t){s(t);}}),i.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t=await d(gt,{id:r});p(`Portfolio archived: ${String(t.artArchivePortfolio)}`),a(e,{archived:t.artArchivePortfolio});}catch(t){s(t);}}),i.command("follow").description("Follow a portfolio").argument("<portfolioId>","Portfolio ID").option("--no-notify","Do not receive notifications").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t=await d(It,{portfolioId:r,notify:e.notify});p("Portfolio followed"),a(e,t.artFollowPortfolio);}catch(t){s(t);}}),i.command("unfollow").description("Unfollow a portfolio").argument("<portfolioId>","Portfolio ID").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t=await d(wt,{portfolioId:r});p(`Portfolio unfollowed: ${String(t.artUnfollowPortfolio)}`),a(e,{unfollowed:t.artUnfollowPortfolio});}catch(t){s(t);}});let n=c.command("licenses").description("Artistrybase work licenses");n.command("list").description("List licenses for a work").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async r=>{try{let e=await d(At,{workId:r.work});a(r,e.artListLicenses,{headers:["ID","Name","Model","Status","Price","Currency"],rows:e.artListLicenses.map(t=>[m(t.id,12),t.name,t.model,t.status,String(t.priceAmount),t.currency])});}catch(e){s(e);}}),n.command("create").description("Create a license for a work").requiredOption("--work <id>","Work ID").requiredOption("--name <n>","License name").option("--model <m>","FREE|LICENSE|PURCHASE|MEMBERSHIP","FREE").option("--price <n>","Price amount",v).option("--currency <c>","Currency code").option("--spdx <s>","SPDX identifier").option("--terms <t>","License terms").option("--attribution <a>","Attribution text").option("-f, --format <format>","Output format").action(async r=>{try{let e={workId:r.work,name:r.name,model:(r.model??"FREE").toUpperCase()};r.price!==void 0&&(e.priceAmount=r.price),r.currency&&(e.currency=r.currency),r.spdx&&(e.spdx=r.spdx),r.terms&&(e.terms=r.terms),r.attribution&&(e.attribution=r.attribution);let t=await d(Rt,{input:e});p(`License created: ${t.artCreateLicense.name}`),a(r,t.artCreateLicense);}catch(e){s(e);}}),n.command("update").description("Update a license").argument("<id>","License ID").option("--name <n>","License name").option("--model <m>","FREE|LICENSE|PURCHASE|MEMBERSHIP").option("--price <n>","Price amount",v).option("--currency <c>","Currency code").option("--spdx <s>","SPDX identifier").option("--terms <t>","License terms").option("--attribution <a>","Attribution text").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.model&&(t.model=e.model.toUpperCase()),e.price!==void 0&&(t.priceAmount=e.price),e.currency&&(t.currency=e.currency),e.spdx&&(t.spdx=e.spdx),e.terms&&(t.terms=e.terms),e.attribution&&(t.attribution=e.attribution),!Object.keys(t).length)throw new l("No updates specified");let o=await d(kt,{id:r,input:t});p("License updated"),a(e,o.artUpdateLicense);}catch(t){s(t);}}),n.command("activate").description("Activate a license").argument("<id>","License ID").option("-f, --format <format>","Output format").action(async(r,e)=>{try{let t=await d(yt,{id:r});p(`License activated: ${t.artActivateLicense.status}`),a(e,t.artActivateLicense);}catch(t){s(t);}});}function Ot(c){c.command("health").description("Artistrybase subgraph health check (public)").option("-f, --format <format>","Output format").action(async i=>{try{let n=await C(Ct);p(n.artHealth),a(i,{health:n.artHealth});}catch(n){s(n);}});}var qt={id:"artistrybase",version:"1.0.0",displayName:"Artistrybase",dependsOn:["auth","workspaces"],register(c,i){E(i);let n=c.command("artistrybase").description("Artistrybase multi-medium creative platform");ht(n),vt(n),bt(n),Tt(n),Et(n),Ot(n);}},ho=qt;module.exports=ho;
|
|
334
|
+
`;function h(c,i){try{return JSON.parse(i)}catch{throw new l(`--${c} must be valid JSON`)}}function g(c){let i=Number.parseInt(c,10);if(Number.isNaN(i))throw new l(`Expected an integer but got "${c}"`);return i}function v(c){let i=Number.parseFloat(c);if(Number.isNaN(i))throw new l(`Expected a number but got "${c}"`);return i}function I(c){return c.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function ht(c){let i=c.command("works").description("Artistrybase creative works");i.command("list").description("List works").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--status <s>","DRAFT|IN_REVIEW|APPROVED|RELEASED|ARCHIVED").option("--production <id>","Filter by production ID").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={limit:e.limit,offset:e.offset},r=await d(O,{medium:e.medium?e.medium.toUpperCase():void 0,status:e.status?e.status.toUpperCase():void 0,productionId:e.production,pagination:t});a(e,r.artListWorks.items,{headers:["ID","Title","Medium","Status","Visibility"],rows:r.artListWorks.items.map(u=>[m(u.id,12),u.title,u.medium,u.status,u.visibility])});}catch(t){s(t);}}),i.command("get").description("Get a work by id").argument("<id>","Work ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(D,{id:e});if(!r.artWork)throw new l(`Work ${e} not found`);a(t,r.artWork);}catch(r){s(r);}}),i.command("create").description("Create a work").requiredOption("--title <t>","Title").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO","MIXED").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PRIVATE").option("--summary <s>","Summary").option("--production <id>","Production ID").option("--cover-file <id>","Cover file ID").option("--duration-ms <n>","Duration in ms",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={title:e.title,medium:(e.medium??"MIXED").toUpperCase(),visibility:(e.visibility??"PRIVATE").toUpperCase()};e.summary&&(t.summary=e.summary),e.production&&(t.productionId=e.production),e.coverFile&&(t.coverFileId=e.coverFile),e.durationMs!==void 0&&(t.durationMs=e.durationMs),e.tags&&(t.tags=I(e.tags));let r=await d(L,{input:t});p(`Work created: ${r.artCreateWork.title}`),a(e,r.artCreateWork);}catch(t){s(t);}}),i.command("update").description("Update a work").argument("<id>","Work ID").option("--title <t>","Title").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--summary <s>","Summary").option("--production <id>","Production ID").option("--cover-file <id>","Cover file ID").option("--duration-ms <n>","Duration in ms",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.title&&(r.title=t.title),t.medium&&(r.medium=t.medium.toUpperCase()),t.visibility&&(r.visibility=t.visibility.toUpperCase()),t.summary!==void 0&&(r.summary=t.summary),t.production&&(r.productionId=t.production),t.coverFile&&(r.coverFileId=t.coverFile),t.durationMs!==void 0&&(r.durationMs=t.durationMs),t.tags&&(r.tags=I(t.tags)),!Object.keys(r).length)throw new l("No updates specified");let u=await d(P,{id:e,input:r});p("Work updated"),a(t,u.artUpdateWork);}catch(r){s(r);}}),i.command("archive").description("Archive a work").argument("<id>","Work ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(x,{id:e});p(`Work archived: ${String(r.artArchiveWork)}`),a(t,{archived:r.artArchiveWork});}catch(r){s(r);}}),i.command("publish-version").description("Promote a version to the work's published current version").argument("<workId>","Work ID").requiredOption("--version <id>","Version ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(S,{workId:e,versionId:t.version});p("Version published"),a(t,r.artPublishWorkVersion);}catch(r){s(r);}});let n=c.command("versions").description("Artistrybase work versions");n.command("list").description("List versions for a work").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(_,{workId:e.work});a(e,t.artListWorkVersions,{headers:["ID","No","Label","Published","File"],rows:t.artListWorkVersions.map(r=>[m(r.id,12),String(r.versionNo),r.label??"-",r.isPublished?"yes":"no",m(String(r.fileId??"-"),12)])});}catch(t){s(t);}}),n.command("add").description("Upload a new immutable version of a work").requiredOption("--work <id>","Work ID").option("--label <l>","Version label").option("--notes <n>","Notes").option("--file <id>","Source file ID").option("--checksum <c>","Checksum").option("-f, --format <format>","Output format").action(async e=>{try{let t={workId:e.work};e.label&&(t.label=e.label),e.notes&&(t.notes=e.notes),e.file&&(t.fileId=e.file),e.checksum&&(t.checksum=e.checksum);let r=await d($,{input:t});p(`Version added: v${r.artAddWorkVersion.versionNo}`),a(e,r.artAddWorkVersion);}catch(t){s(t);}});let o=c.command("assets").description("Artistrybase work assets");o.command("list").description("List assets for a work").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(N,{workId:e.work});a(e,t.artListAssets,{headers:["ID","Kind","File","MIME"],rows:t.artListAssets.map(r=>[m(r.id,12),r.kind,m(r.fileId,12),r.mimeType??"-"])});}catch(t){s(t);}}),o.command("add").description("Attach a file asset to a work").requiredOption("--work <id>","Work ID").requiredOption("--file <id>","File ID").option("--kind <k>","SOURCE|MASTER|PREVIEW|COVER|CAPTION|ATTACHMENT","SOURCE").option("--mime-type <t>","MIME type").option("--version <id>","Version ID").option("--width <n>","Width",g).option("--height <n>","Height",g).option("--duration-ms <n>","Duration in ms",g).option("-f, --format <format>","Output format").action(async e=>{try{let t={workId:e.work,fileId:e.file,kind:(e.kind??"SOURCE").toUpperCase()};e.mimeType&&(t.mimeType=e.mimeType),e.version&&(t.versionId=e.version),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.durationMs!==void 0&&(t.durationMs=e.durationMs);let r=await d(U,{input:t});p(`Asset added: ${r.artAddAsset.kind}`),a(e,r.artAddAsset);}catch(t){s(t);}});}function vt(c){let i=c.command("collections").description("Artistrybase curated collections");i.command("list").description("List collections").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async n=>{try{let o=await d(W,{visibility:n.visibility?n.visibility.toUpperCase():void 0,pagination:{limit:n.limit,offset:n.offset}});a(n,o.artListCollections.items,{headers:["ID","Title","Slug","Medium","Visibility"],rows:o.artListCollections.items.map(e=>[m(e.id,12),e.title,e.slug,e.medium??"-",e.visibility])});}catch(o){s(o);}}),i.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(n,o)=>{try{let e=await d(F,{id:n});if(!e.artCollection)throw new l(`Collection ${n} not found`);a(o,e.artCollection);}catch(e){s(e);}}),i.command("create").description("Create a collection").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").option("--description <d>","Description").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PRIVATE").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async n=>{try{let o={title:n.title,slug:n.slug,visibility:(n.visibility??"PRIVATE").toUpperCase()};n.description&&(o.description=n.description),n.medium&&(o.medium=n.medium.toUpperCase()),n.coverFile&&(o.coverFileId=n.coverFile),n.tags&&(o.tags=I(n.tags));let e=await d(M,{input:o});p(`Collection created: ${e.artCreateCollection.title}`),a(n,e.artCreateCollection);}catch(o){s(o);}}),i.command("update").description("Update a collection").argument("<id>","Collection ID").option("--title <t>","Title").option("--description <d>","Description").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--cover-file <id>","Cover file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(n,o)=>{try{let e={};if(o.title&&(e.title=o.title),o.description!==void 0&&(e.description=o.description),o.medium&&(e.medium=o.medium.toUpperCase()),o.visibility&&(e.visibility=o.visibility.toUpperCase()),o.coverFile&&(e.coverFileId=o.coverFile),o.tags&&(e.tags=I(o.tags)),!Object.keys(e).length)throw new l("No updates specified");let t=await d(q,{id:n,input:e});p("Collection updated"),a(o,t.artUpdateCollection);}catch(e){s(e);}}),i.command("add-work").description("Add a work to a collection").argument("<collectionId>","Collection ID").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async(n,o)=>{try{let e=await d(V,{collectionId:n,workId:o.work});p("Work added to collection"),a(o,e.artAddWorkToCollection);}catch(e){s(e);}}),i.command("remove-work").description("Remove a work from a collection").argument("<collectionId>","Collection ID").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async(n,o)=>{try{let e=await d(B,{collectionId:n,workId:o.work});p("Work removed from collection"),a(o,e.artRemoveWorkFromCollection);}catch(e){s(e);}});}function bt(c){let i=c.command("productions").description("Artistrybase productions");i.command("list").description("List productions").option("--status <s>","Production status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(H,{status:e.status?e.status.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});a(e,t.artListProductions.items,{headers:["ID","Title","Slug","Medium","Status"],rows:t.artListProductions.items.map(r=>[m(r.id,12),r.title,r.slug,r.medium,r.status])});}catch(t){s(t);}}),i.command("get").description("Get a production by id").argument("<id>","Production ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(G,{id:e});if(!r.artProduction)throw new l(`Production ${e} not found`);a(t,r.artProduction);}catch(r){s(r);}}),i.command("create").description("Create a production").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO","MIXED").option("--synopsis <s>","Synopsis").option("--start-date <iso>","Start date (ISO)").option("--target-date <iso>","Target date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={title:e.title,slug:e.slug,medium:(e.medium??"MIXED").toUpperCase()};e.synopsis&&(t.synopsis=e.synopsis),e.startDate&&(t.startDate=e.startDate),e.targetDate&&(t.targetDate=e.targetDate),e.tags&&(t.tags=I(e.tags));let r=await d(j,{input:t});p(`Production created: ${r.artCreateProduction.title}`),a(e,r.artCreateProduction);}catch(t){s(t);}}),i.command("update").description("Update a production").argument("<id>","Production ID").option("--title <t>","Title").option("--medium <m>","ART|AUDIO|MIXED|STORY|VIDEO").option("--synopsis <s>","Synopsis").option("--start-date <iso>","Start date (ISO)").option("--target-date <iso>","Target date (ISO)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.title&&(r.title=t.title),t.medium&&(r.medium=t.medium.toUpperCase()),t.synopsis!==void 0&&(r.synopsis=t.synopsis),t.startDate&&(r.startDate=t.startDate),t.targetDate&&(r.targetDate=t.targetDate),t.tags&&(r.tags=I(t.tags)),!Object.keys(r).length)throw new l("No updates specified");let u=await d(K,{id:e,input:r});p("Production updated"),a(t,u.artUpdateProduction);}catch(r){s(r);}}),i.command("transition").description("Advance a production through its lifecycle").argument("<id>","Production ID").requiredOption("--status <s>","PLANNING|IN_PRODUCTION|POST|REVIEW|ON_HOLD|RELEASED|CANCELLED").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(z,{id:e,status:t.status.toUpperCase()});p(`Production status set to ${r.artTransitionProduction.status}`),a(t,r.artTransitionProduction);}catch(r){s(r);}});let n=c.command("members").description("Artistrybase production members");n.command("list").description("List members for a production").requiredOption("--production <id>","Production ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(J,{productionId:e.production});a(e,t.artListProductionMembers,{headers:["ID","Member","Role","Title","Lead"],rows:t.artListProductionMembers.map(r=>[m(r.id,12),m(r.memberId,12),r.role,r.title??"-",r.isLead?"yes":"no"])});}catch(t){s(t);}}),n.command("add").description("Add a member to a production").requiredOption("--production <id>","Production ID").requiredOption("--member <id>","Member user ID").option("--role <r>","OWNER|PRODUCER|EDITOR|CREATOR|COLLABORATOR|REVIEWER|VIEWER","COLLABORATOR").option("--title <t>","Title").option("--lead","Mark as lead").option("-f, --format <format>","Output format").action(async e=>{try{let t={productionId:e.production,memberId:e.member,role:(e.role??"COLLABORATOR").toUpperCase(),isLead:e.lead??!1};e.title&&(t.title=e.title);let r=await d(Y,{input:t});p("Member added"),a(e,r.artAddProductionMember);}catch(t){s(t);}}),n.command("remove").description("Remove a production member").argument("<id>","Member ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(X,{id:e});p(`Member removed: ${String(r.artRemoveProductionMember)}`),a(t,{removed:r.artRemoveProductionMember});}catch(r){s(r);}});let o=c.command("references").description("Artistrybase production references");o.command("list").description("List references for a production").requiredOption("--production <id>","Production ID").option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(Q,{productionId:e.production});a(e,t.artListReferences,{headers:["ID","Title","URL","File"],rows:t.artListReferences.map(r=>[m(r.id,12),r.title,m(r.url??"-",30),r.fileId?m(r.fileId,12):"-"])});}catch(t){s(t);}}),o.command("add").description("Add a reference to a production").requiredOption("--production <id>","Production ID").requiredOption("--title <t>","Title").option("--url <u>","Reference URL").option("--note <n>","Note").option("--file <id>","Attached file ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async e=>{try{let t={productionId:e.production,title:e.title};e.url&&(t.url=e.url),e.note&&(t.note=e.note),e.file&&(t.fileId=e.file),e.tags&&(t.tags=I(e.tags));let r=await d(Z,{input:t});p(`Reference added: ${r.artAddReference.title}`),a(e,r.artAddReference);}catch(t){s(t);}}),o.command("remove").description("Remove a reference").argument("<id>","Reference ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await d(tt,{id:e});p(`Reference removed: ${String(r.artRemoveReference)}`),a(t,{removed:r.artRemoveReference});}catch(r){s(r);}});}function Et(c){let i=c.command("reviews").description("Artistrybase review rounds");i.command("list").description("List review rounds for a work").requiredOption("--work <id>","Work ID").option("--status <s>","OPEN|CHANGES_REQUESTED|APPROVED|CLOSED").option("-f, --format <format>","Output format").action(async t=>{try{let r=await d(et,{workId:t.work,status:t.status?t.status.toUpperCase():void 0});a(t,r.artListReviewRounds,{headers:["ID","Round","Status","Title"],rows:r.artListReviewRounds.map(u=>[m(u.id,12),String(u.round),u.status,u.title??"-"])});}catch(r){s(r);}}),i.command("get").description("Get a review round by id").argument("<id>","Review round ID").option("-f, --format <format>","Output format").action(async(t,r)=>{try{let u=await d(rt,{id:t});if(!u.artReviewRound)throw new l(`Review round ${t} not found`);a(r,u.artReviewRound);}catch(u){s(u);}}),i.command("open").description("Open a review round on a work").requiredOption("--work <id>","Work ID").option("--version <id>","Version ID").option("--title <t>","Title").option("--due-date <iso>","Due date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let r={workId:t.work};t.version&&(r.versionId=t.version),t.title&&(r.title=t.title),t.dueDate&&(r.dueDate=t.dueDate);let u=await d(ot,{input:r});p(`Review round opened: round ${u.artOpenReviewRound.round}`),a(t,u.artOpenReviewRound);}catch(r){s(r);}}),i.command("transition").description("Advance a review round through its lifecycle").argument("<id>","Review round ID").requiredOption("--status <s>","OPEN|CHANGES_REQUESTED|APPROVED|CLOSED").option("-f, --format <format>","Output format").action(async(t,r)=>{try{let u=await d(it,{id:t,status:r.status.toUpperCase()});p(`Review round status set to ${u.artTransitionReviewRound.status}`),a(r,u.artTransitionReviewRound);}catch(u){s(u);}});let n=c.command("feedback").description("Artistrybase review feedback");n.command("add").description("Add feedback to a review round").requiredOption("--round <id>","Review round ID").requiredOption("--body <text>","Feedback body").option("--anchor-type <t>","GENERAL|TIMECODE|PAGE|CHAPTER|PIN","GENERAL").option("--anchor-value <v>","Anchor value").option("-f, --format <format>","Output format").action(async t=>{try{let r={reviewRoundId:t.round,body:t.body,anchorType:(t.anchorType??"GENERAL").toUpperCase()};t.anchorValue&&(r.anchorValue=t.anchorValue);let u=await d(nt,{input:r});p("Feedback added"),a(t,u.artAddFeedback);}catch(r){s(r);}}),n.command("resolve").description("Resolve (or mark) a feedback item").argument("<id>","Feedback ID").requiredOption("--status <s>","OPEN|RESOLVED|WONT_FIX").option("-f, --format <format>","Output format").action(async(t,r)=>{try{let u=await d(st,{id:t,status:r.status.toUpperCase()});p(`Feedback status set to ${u.artResolveFeedback.status}`),a(r,u.artResolveFeedback);}catch(u){s(u);}}),c.command("approvals").description("Artistrybase review approvals").command("record").description("Record an approval decision on a review round").requiredOption("--round <id>","Review round ID").requiredOption("--decision <d>","PENDING|APPROVED|REJECTED").option("--comment <c>","Comment").option("-f, --format <format>","Output format").action(async t=>{try{let r={reviewRoundId:t.round,decision:t.decision.toUpperCase()};t.comment&&(r.comment=t.comment);let u=await d(at,{input:r});p(`Approval recorded: ${u.artRecordApproval.decision}`),a(t,u.artRecordApproval);}catch(r){s(r);}});let e=c.command("releases").description("Artistrybase release pipeline");e.command("list").description("List releases for a work").requiredOption("--work <id>","Work ID").option("--status <s>","SCHEDULED|PUBLISHED|UNPUBLISHED|FAILED").option("-f, --format <format>","Output format").action(async t=>{try{let r=await d(dt,{workId:t.work,status:t.status?t.status.toUpperCase():void 0});a(t,r.artListReleases,{headers:["ID","Channel","Status","Visibility"],rows:r.artListReleases.map(u=>[m(u.id,12),u.channel,u.status,u.visibility])});}catch(r){s(r);}}),e.command("create").description("Create a release for a work").requiredOption("--work <id>","Work ID").option("--version <id>","Version ID").option("--channel <c>","Release channel").option("--notes <n>","Notes").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PUBLIC").option("--scheduled-for <iso>","Scheduled for (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let r={workId:t.work,visibility:(t.visibility??"PUBLIC").toUpperCase()};t.version&&(r.versionId=t.version),t.channel&&(r.channel=t.channel),t.notes&&(r.notes=t.notes),t.scheduledFor&&(r.scheduledFor=t.scheduledFor);let u=await d(ct,{input:r});p(`Release created on channel ${u.artCreateRelease.channel}`),a(t,u.artCreateRelease);}catch(r){s(r);}}),e.command("publish").description("Publish a release").argument("<id>","Release ID").option("-f, --format <format>","Output format").action(async(t,r)=>{try{let u=await d(ut,{id:t});p(`Release published: ${u.artPublishRelease.status}`),a(r,u.artPublishRelease);}catch(u){s(u);}});}function Tt(c){let i=c.command("portfolios").description("Artistrybase public portfolios");i.command("list").description("List portfolios").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async o=>{try{let e=await d(pt,{visibility:o.visibility?o.visibility.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});a(o,e.artListPortfolios.items,{headers:["ID","Handle","Display Name","Visibility","Followers"],rows:e.artListPortfolios.items.map(t=>[m(t.id,12),t.handle,t.displayName,t.visibility,String(t.followerCount)])});}catch(e){s(e);}}),i.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t=await d(lt,{id:o});if(!t.artPortfolio)throw new l(`Portfolio ${o} not found`);a(e,t.artPortfolio);}catch(t){s(t);}}),i.command("create").description("Create a portfolio").requiredOption("--handle <h>","Unique handle").requiredOption("--display-name <n>","Display name").option("--bio <b>","Bio").option("--owner <id>","Owner user ID").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED","PUBLIC").option("--avatar-file <id>","Avatar file ID").option("--banner-file <id>","Banner file ID").option("--featured-works <csv>","Comma-separated work IDs").option("--links <json>","Links JSON").option("-f, --format <format>","Output format").action(async o=>{try{let e={handle:o.handle,displayName:o.displayName,visibility:(o.visibility??"PUBLIC").toUpperCase()};o.bio&&(e.bio=o.bio),o.owner&&(e.ownerId=o.owner),o.avatarFile&&(e.avatarFileId=o.avatarFile),o.bannerFile&&(e.bannerFileId=o.bannerFile),o.featuredWorks&&(e.featuredWorkIds=I(o.featuredWorks)),o.links&&(e.links=h("links",o.links));let t=await d(mt,{input:e});p(`Portfolio created: ${t.artCreatePortfolio.handle}`),a(o,t.artCreatePortfolio);}catch(e){s(e);}}),i.command("update").description("Update a portfolio").argument("<id>","Portfolio ID").option("--display-name <n>","Display name").option("--bio <b>","Bio").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--avatar-file <id>","Avatar file ID").option("--banner-file <id>","Banner file ID").option("--featured-works <csv>","Comma-separated work IDs").option("--links <json>","Links JSON").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t={};if(e.displayName&&(t.displayName=e.displayName),e.bio!==void 0&&(t.bio=e.bio),e.visibility&&(t.visibility=e.visibility.toUpperCase()),e.avatarFile&&(t.avatarFileId=e.avatarFile),e.bannerFile&&(t.bannerFileId=e.bannerFile),e.featuredWorks&&(t.featuredWorkIds=I(e.featuredWorks)),e.links&&(t.links=h("links",e.links)),!Object.keys(t).length)throw new l("No updates specified");let r=await d(ft,{id:o,input:t});p("Portfolio updated"),a(e,r.artUpdatePortfolio);}catch(t){s(t);}}),i.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t=await d(gt,{id:o});p(`Portfolio archived: ${String(t.artArchivePortfolio)}`),a(e,{archived:t.artArchivePortfolio});}catch(t){s(t);}}),i.command("follow").description("Follow a portfolio").argument("<portfolioId>","Portfolio ID").option("--no-notify","Do not receive notifications").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t=await d(It,{portfolioId:o,notify:e.notify});p("Portfolio followed"),a(e,t.artFollowPortfolio);}catch(t){s(t);}}),i.command("unfollow").description("Unfollow a portfolio").argument("<portfolioId>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t=await d(wt,{portfolioId:o});p(`Portfolio unfollowed: ${String(t.artUnfollowPortfolio)}`),a(e,{unfollowed:t.artUnfollowPortfolio});}catch(t){s(t);}});let n=c.command("licenses").description("Artistrybase work licenses");n.command("list").description("List licenses for a work").requiredOption("--work <id>","Work ID").option("-f, --format <format>","Output format").action(async o=>{try{let e=await d(Rt,{workId:o.work});a(o,e.artListLicenses,{headers:["ID","Name","Model","Status","Price","Currency"],rows:e.artListLicenses.map(t=>[m(t.id,12),t.name,t.model,t.status,String(t.priceAmount),t.currency])});}catch(e){s(e);}}),n.command("create").description("Create a license for a work").requiredOption("--work <id>","Work ID").requiredOption("--name <n>","License name").option("--model <m>","FREE|LICENSE|PURCHASE|MEMBERSHIP","FREE").option("--price <n>","Price amount",v).option("--currency <c>","Currency code").option("--spdx <s>","SPDX identifier").option("--terms <t>","License terms").option("--attribution <a>","Attribution text").option("-f, --format <format>","Output format").action(async o=>{try{let e={workId:o.work,name:o.name,model:(o.model??"FREE").toUpperCase()};o.price!==void 0&&(e.priceAmount=o.price),o.currency&&(e.currency=o.currency),o.spdx&&(e.spdx=o.spdx),o.terms&&(e.terms=o.terms),o.attribution&&(e.attribution=o.attribution);let t=await d(At,{input:e});p(`License created: ${t.artCreateLicense.name}`),a(o,t.artCreateLicense);}catch(e){s(e);}}),n.command("update").description("Update a license").argument("<id>","License ID").option("--name <n>","License name").option("--model <m>","FREE|LICENSE|PURCHASE|MEMBERSHIP").option("--price <n>","Price amount",v).option("--currency <c>","Currency code").option("--spdx <s>","SPDX identifier").option("--terms <t>","License terms").option("--attribution <a>","Attribution text").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t={};if(e.name&&(t.name=e.name),e.model&&(t.model=e.model.toUpperCase()),e.price!==void 0&&(t.priceAmount=e.price),e.currency&&(t.currency=e.currency),e.spdx&&(t.spdx=e.spdx),e.terms&&(t.terms=e.terms),e.attribution&&(t.attribution=e.attribution),!Object.keys(t).length)throw new l("No updates specified");let r=await d(kt,{id:o,input:t});p("License updated"),a(e,r.artUpdateLicense);}catch(t){s(t);}}),n.command("activate").description("Activate a license").argument("<id>","License ID").option("-f, --format <format>","Output format").action(async(o,e)=>{try{let t=await d(yt,{id:o});p(`License activated: ${t.artActivateLicense.status}`),a(e,t.artActivateLicense);}catch(t){s(t);}});}function Ot(c){c.command("health").description("Artistrybase subgraph health check (public)").option("-f, --format <format>","Output format").action(async i=>{try{let n=await C(Ct);p(n.artHealth),a(i,{health:n.artHealth});}catch(n){s(n);}});}var qt={id:"artistrybase",version:"1.0.0",displayName:"Artistrybase",dependsOn:["auth","workspaces"],register(c,i){T(i);let n=c.command("artistrybase").description("Artistrybase multi-medium creative platform");ht(n),vt(n),bt(n),Et(n),Tt(n),Ot(n);}},Cr=qt;module.exports=Cr;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-
|
|
1
|
+
import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-NLEVVDXR.js';import {o}from'../../chunk-IZXPWPKX.js';var v=`
|
|
2
2
|
query ArtListWorks(
|
|
3
3
|
$medium: ArtMedium
|
|
4
4
|
$status: ArtWorkStatus
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var g=class extends Error{exitCode;hint;constructor(i,t){super(i),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},w=class extends g{constructor(i,t){super(i,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(i,t){super(i),this.name="CliInternalError",this.cause=t;}};var T=null;function E(r){T=r;}function I(){if(!T)throw new f("vibecontrols module helpers used before setHelpersContext was called");return T}function St(){let r=I();if(!r.auth.isAuthenticated())throw new w(
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var g=class extends Error{exitCode;hint;constructor(i,t){super(i),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},w=class extends g{constructor(i,t){super(i,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(i,t){super(i),this.name="CliInternalError",this.cause=t;}};var T=null;function E(r){T=r;}function I(){if(!T)throw new f("vibecontrols module helpers used before setHelpersContext was called");return T}function St(){let r=I();if(!r.auth.isAuthenticated())throw new w("Authentication required.",{hint:`Run \`${r.productName} auth login\` to authenticate.`})}async function o(r,i){return St(),I().gql.workspace.request(r,i)}function s(r){let i=r instanceof Error?r.message:String(r);throw new g(i)}function a(r,i,t){I().output.formatAndOutput(r,i,t);}function m(r){I().output.printSuccess(r);}function v(r){return I().output.formatDate(r)}function c(r,i){return I().output.truncate(r,i)}var S=`
|
|
2
2
|
query AssetHandlerGetAsset($id: ID!) {
|
|
3
3
|
asset(id: $id) {
|
|
4
4
|
id assetNumber name description category status condition
|
|
@@ -252,4 +252,4 @@
|
|
|
252
252
|
totalAssets totalTransactions openIncidents openWorkOrders
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
`;function l(r,i){try{return JSON.parse(i)}catch{throw new g(`--${r} must be valid JSON`)}}function d(r){let i=Number.parseInt(r,10);if(Number.isNaN(i))throw new g(`Expected an integer but got "${r}"`);return i}function A(r){let i=Number.parseFloat(r);if(Number.isNaN(i))throw new g(`Expected a number but got "${r}"`);return i}function C(r){return r.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function u(r,i){let t={};return r!==void 0&&(t.limit=r),i&&(t.cursor=i),Object.keys(t).length?t:void 0}function ct(r){let i=r.command("assets").description("Assethandler assets");i.command("list").description("List assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(b,{pagination:u(t.limit,t.cursor)});a(t,e.assets,{headers:["ID","Asset #","Name","Category","Status","Condition"],rows:e.assets.map(n=>[c(n.id,12),n.assetNumber,n.name,n.category,n.status,n.condition])});}catch(e){s(e);}}),i.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await o(S,{id:t});if(!n.asset)throw new g(`Asset ${t} not found`);a(e,n.asset);}catch(n){s(n);}}),i.command("create").description("Create an asset").requiredOption("--asset-number <s>","Asset number").requiredOption("--name <name>","Asset name").requiredOption("--category <c>","Category").option("--description <s>","Description").option("--status <s>","ACTIVE|INACTIVE|MAINTENANCE|RETIRED|DISPOSED").option("--condition <c>","EXCELLENT|GOOD|FAIR|POOR|DAMAGED").option("--serial-number <s>","Serial number").option("--location-name <s>","Location name").option("--assigned-to <s>","Assignee").option("--tags <csv>","Comma-separated tags").option("--custom-attributes <json>","Custom attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetNumber:t.assetNumber,name:t.name,category:t.category};t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.condition&&(e.condition=t.condition.toUpperCase()),t.serialNumber&&(e.serialNumber=t.serialNumber),t.locationName&&(e.locationName=t.locationName),t.assignedTo&&(e.assignedTo=t.assignedTo),t.tags&&(e.tags=C(t.tags)),t.customAttributes&&(e.customAttributes=l("custom-attributes",t.customAttributes));let n=await o(O,{input:e});m(`Asset created: ${n.createAsset.assetNumber}`),a(t,n.createAsset);}catch(e){s(e);}});}function dt(r){bt(r),Ot(r),xt(r),Rt(r);}function bt(r){let i=r.command("software-assets").description("Assethandler software assets & licenses");i.command("list").description("List software assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(x,{pagination:u(t.limit,t.cursor)});a(t,e.softwareAssets,{headers:["ID","Name","Vendor","Version","License","Seats","Compliance %"],rows:e.softwareAssets.map(n=>[c(n.id,12),n.name,n.vendor,n.version,n.licenseType,`${n.seatsUsed??0}/${n.seatsPurchased??0}`,String(n.compliancePercent)])});}catch(e){s(e);}}),i.command("upsert").description("Create or update a software asset").requiredOption("--name <name>","Name").requiredOption("--vendor <v>","Vendor").requiredOption("--version <v>","Version").requiredOption("--license-type <t>","License type").option("--id <id>","Existing software asset ID (update)").option("--seats-purchased <n>","Seats purchased",d).option("--seats-used <n>","Seats used",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,vendor:t.vendor,version:t.version,licenseType:t.licenseType};t.id&&(e.id=t.id),t.seatsPurchased!==void 0&&(e.seatsPurchased=t.seatsPurchased),t.seatsUsed!==void 0&&(e.seatsUsed=t.seatsUsed);let n=await o(R,{input:e});m(`Software asset saved: ${n.upsertSoftwareAsset.name}`),a(t,n.upsertSoftwareAsset);}catch(e){s(e);}});}function Ot(r){let i=r.command("digital-twins").description("Assethandler digital twins");i.command("list").description("List digital twins").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(D,{pagination:u(t.limit,t.cursor)});a(t,e.digitalTwins,{headers:["ID","Asset","Fidelity","Model Ref"],rows:e.digitalTwins.map(n=>[c(n.id,12),c(n.assetId,12),n.fidelityLevel,n.modelRef])});}catch(e){s(e);}}),i.command("create").description("Create a digital twin for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--fidelity-level <l>","Fidelity level").requiredOption("--model-ref <ref>","Model reference").option("--geometry-ref <ref>","Geometry reference").option("--properties <json>","Properties JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,fidelityLevel:t.fidelityLevel,modelRef:t.modelRef};t.geometryRef&&(e.geometryRef=t.geometryRef),t.properties&&(e.properties=l("properties",t.properties));let n=await o(P,{input:e});m(`Digital twin created for asset ${n.createDigitalTwin.assetId}`),a(t,n.createDigitalTwin);}catch(e){s(e);}});}function xt(r){let i=r.command("config-items").description("Assethandler configuration items (CMDB)");i.command("list").description("List configuration items").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(N,{pagination:u(t.limit,t.cursor)});a(t,e.configurationItems,{headers:["ID","CI #","Name","Type","Status","Environment"],rows:e.configurationItems.map(n=>[c(n.id,12),n.ciNumber,n.name,n.ciType,n.status,n.environment??"-"])});}catch(e){s(e);}}),i.command("upsert").description("Create or update a configuration item").requiredOption("--ci-number <s>","CI number").requiredOption("--name <name>","Name").requiredOption("--ci-type <t>","CI type").requiredOption("--status <s>","Status").option("--id <id>","Existing CI ID (update)").option("--environment <e>","Environment").option("--owner <o>","Owner").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={ciNumber:t.ciNumber,name:t.name,ciType:t.ciType,status:t.status};t.id&&(e.id=t.id),t.environment&&(e.environment=t.environment),t.owner&&(e.owner=t.owner),t.attributes&&(e.attributes=l("attributes",t.attributes));let n=await o(L,{input:e});m(`Configuration item saved: ${n.upsertConfigurationItem.ciNumber}`),a(t,n.upsertConfigurationItem);}catch(e){s(e);}});}function Rt(r){let i=r.command("iot-devices").description("Assethandler IoT devices");i.command("list").description("List IoT devices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(q,{pagination:u(t.limit,t.cursor)});a(t,e.iotDevices,{headers:["ID","Device","Name","Type","Protocol","Status"],rows:e.iotDevices.map(n=>[c(n.id,12),c(n.deviceId,16),n.name,n.type,n.protocol,n.status])});}catch(e){s(e);}}),i.command("register").description("Register an IoT device").requiredOption("--device-id <s>","Device ID").requiredOption("--name <name>","Name").requiredOption("--type <t>","Type").requiredOption("--protocol <p>","Protocol").option("--status <s>","Status").option("--asset <id>","Linked asset ID").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={deviceId:t.deviceId,name:t.name,type:t.type,protocol:t.protocol};t.status&&(e.status=t.status),t.asset&&(e.assetId=t.asset),t.metadata&&(e.metadata=l("metadata",t.metadata));let n=await o(_,{input:e});m(`IoT device registered: ${n.registerIoTDevice.deviceId}`),a(t,n.registerIoTDevice);}catch(e){s(e);}});}function ut(r){Dt(r),Pt(r),Nt(r),Lt(r),qt(r),_t(r);}function Dt(r){let i=r.command("incidents").description("Assethandler ITSM incidents");i.command("list").description("List incidents").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o($,{pagination:u(t.limit,t.cursor)});a(t,e.incidents,{headers:["ID","Title","Category","Priority","Status","SLA"],rows:e.incidents.map(n=>[c(n.id,12),n.title,n.category,n.priority,n.status,n.slaBreached?"breached":"ok"])});}catch(e){s(e);}}),i.command("create").description("Create an incident").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").requiredOption("--category <c>","Category").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:t.category};t.priority&&(e.priority=t.priority.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let n=await o(H,{input:e});m(`Incident created: ${n.createIncident.title}`),a(t,n.createIncident);}catch(e){s(e);}});}function Pt(r){r.command("problems").description("Assethandler ITSM problems").command("list").description("List problems").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(M,{pagination:u(t.limit,t.cursor)});a(t,e.problems,{headers:["ID","Title","Category","Priority","Status"],rows:e.problems.map(n=>[c(n.id,12),n.title,n.category,n.priority,n.status])});}catch(e){s(e);}});}function Nt(r){r.command("change-requests").description("Assethandler change requests").command("list").description("List change requests").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(W,{pagination:u(t.limit,t.cursor)});a(t,e.changeRequests,{headers:["ID","Title","Type","Risk","Status","Requested By"],rows:e.changeRequests.map(n=>[c(n.id,12),n.title,n.type,n.risk,n.status,c(n.requestedBy,16)])});}catch(e){s(e);}});}function Lt(r){let i=r.command("work-orders").description("Assethandler work orders");i.command("list").description("List work orders").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(U,{pagination:u(t.limit,t.cursor)});a(t,e.workOrders,{headers:["ID","Title","Type","Priority","Status","Asset"],rows:e.workOrders.map(n=>[c(n.id,12),n.title,n.type,n.priority,n.status,n.assetId?c(n.assetId,12):"-"])});}catch(e){s(e);}}),i.command("create").description("Create a work order").requiredOption("--title <t>","Title").requiredOption("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|EMERGENCY").option("--description <s>","Description").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--status <s>","DRAFT|SCHEDULED|APPROVED|IN_PROGRESS|COMPLETED|CANCELLED").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,type:t.type.toUpperCase()};t.description&&(e.description=t.description),t.priority&&(e.priority=t.priority.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let n=await o(G,{input:e});m(`Work order created: ${n.createWorkOrder.title}`),a(t,n.createWorkOrder);}catch(e){s(e);}});}function qt(r){r.command("maintenance").description("Assethandler maintenance records").command("list").description("List maintenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(F,{pagination:u(t.limit,t.cursor)});a(t,e.maintenanceRecords,{headers:["ID","Asset","Title","Type","Priority","Status"],rows:e.maintenanceRecords.map(n=>[c(n.id,12),c(n.assetId,12),n.title,n.type,n.priority,n.status])});}catch(e){s(e);}});}function _t(r){let i=r.command("knowledge-articles").description("Assethandler knowledge base articles");i.command("list").description("List knowledge articles").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(V,{pagination:u(t.limit,t.cursor)});a(t,e.knowledgeArticles,{headers:["ID","Title","Slug","Status","Views"],rows:e.knowledgeArticles.map(n=>[c(n.id,12),n.title,n.slug,n.status,String(n.views)])});}catch(e){s(e);}}),i.command("create").description("Create a knowledge article").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").requiredOption("--content <s>","Article content").option("--summary <s>","Summary").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("--tags <csv>","Comma-separated tags").option("--related-asset <id>","Related asset ID").option("--related-incident <id>","Related incident ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,slug:t.slug,content:t.content};t.summary&&(e.summary=t.summary),t.status&&(e.status=t.status.toUpperCase()),t.tags&&(e.tags=C(t.tags)),t.relatedAsset&&(e.relatedAssetId=t.relatedAsset),t.relatedIncident&&(e.relatedIncidentId=t.relatedIncident);let n=await o(B,{input:e});m(`Knowledge article created: ${n.createKnowledgeArticle.slug}`),a(t,n.createKnowledgeArticle);}catch(e){s(e);}});}function pt(r){$t(r),Ht(r),Mt(r);}function $t(r){let i=r.command("transactions").description("Assethandler asset finance transactions");i.command("list").description("List transactions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(j,{pagination:u(t.limit,t.cursor)});a(t,e.transactions,{headers:["ID","Type","Category","Amount","Currency","Status"],rows:e.transactions.map(n=>[c(n.id,12),n.type,n.category,String(n.amount),n.currency,n.status])});}catch(e){s(e);}}),i.command("create").description("Create a transaction").requiredOption("--type <t>","PURCHASE|LEASE|MAINTENANCE|DISPOSAL|TRANSFER").requiredOption("--category <c>","Category").requiredOption("--description <s>","Description").requiredOption("--amount <n>","Amount",A).option("--currency <c>","Currency code").option("--vendor <v>","Vendor").option("--department <d>","Department").option("--status <s>","PENDING|APPROVED|COMPLETED|REJECTED").option("-f, --format <format>","Output format").action(async t=>{try{let e={type:t.type.toUpperCase(),category:t.category,description:t.description,amount:t.amount};t.currency&&(e.currency=t.currency),t.vendor&&(e.vendor=t.vendor),t.department&&(e.department=t.department),t.status&&(e.status=t.status.toUpperCase());let n=await o(J,{input:e});m(`Transaction created: ${n.createTransaction.id}`),a(t,n.createTransaction);}catch(e){s(e);}});}function Ht(r){r.command("invoices").description("Assethandler invoices").command("list").description("List invoices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(K,{pagination:u(t.limit,t.cursor)});a(t,e.invoices,{headers:["ID","Number","Vendor","Amount","Status","Due"],rows:e.invoices.map(n=>[c(n.id,12),n.number,n.vendor,`${n.amount} ${n.currency}`,n.status,v(n.dueDate)])});}catch(e){s(e);}});}function Mt(r){r.command("budgets").description("Assethandler asset budgets").command("list").description("List budgets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(z,{pagination:u(t.limit,t.cursor)});a(t,e.budgets,{headers:["ID","Name","Department","Allocated","Spent","Remaining","Status"],rows:e.budgets.map(n=>[c(n.id,12),n.name,n.department,String(n.allocated),String(n.spent),String(n.remaining),n.status])});}catch(e){s(e);}});}function mt(r){Wt(r),Ut(r),Gt(r),Ft(r);}function Wt(r){r.command("compliance").description("Assethandler compliance frameworks").command("list").description("List compliance frameworks").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(Y,{pagination:u(t.limit,t.cursor)});a(t,e.complianceFrameworks,{headers:["ID","Name","Version","Status","Score","Passed","Failed"],rows:e.complianceFrameworks.map(n=>[c(n.id,12),n.name,n.version,n.status,String(n.score),String(n.passedControls),String(n.failedControls)])});}catch(e){s(e);}});}function Ut(r){r.command("security-policies").description("Assethandler asset security policies").command("list").description("List security policies").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(Q,{pagination:u(t.limit,t.cursor)});a(t,e.assetSecurityPolicies,{headers:["ID","Name","Version","Category","Status","Owner"],rows:e.assetSecurityPolicies.map(n=>[c(n.id,12),n.name,n.version,n.category,n.status,c(n.owner,16)])});}catch(e){s(e);}});}function Gt(r){r.command("security-events").description("Assethandler security events").command("list").description("List security events").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(X,{pagination:u(t.limit,t.cursor)});a(t,e.securityEvents,{headers:["ID","Title","Type","Severity","Source","Resolved"],rows:e.securityEvents.map(n=>[c(n.id,12),n.title,n.eventType,n.severity,n.source,n.resolved?"yes":"no"])});}catch(e){s(e);}});}function Ft(r){let i=r.command("esg-metrics").description("Assethandler ESG metrics");i.command("list").description("List ESG metrics").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(Z,{pagination:u(t.limit,t.cursor)});a(t,e.esgMetrics,{headers:["ID","Category","Metric","Value","Unit","Target","Trend"],rows:e.esgMetrics.map(n=>[c(n.id,12),n.category,n.metricName,String(n.value),n.unit,n.target!=null?String(n.target):"-",n.trend??"-"])});}catch(e){s(e);}}),i.command("upsert").description("Create or update an ESG metric").requiredOption("--category <c>","Category").requiredOption("--metric-key <k>","Metric key").requiredOption("--metric-name <n>","Metric name").requiredOption("--value <n>","Value",A).requiredOption("--unit <u>","Unit").requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--target <n>","Target value",A).option("--trend <t>","Trend").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,metricKey:t.metricKey,metricName:t.metricName,value:t.value,unit:t.unit,periodStart:t.periodStart,periodEnd:t.periodEnd};t.target!==void 0&&(e.target=t.target),t.trend&&(e.trend=t.trend);let n=await o(tt,{input:e});m(`ESG metric saved: ${n.upsertEsgMetric.metricKey}`),a(t,n.upsertEsgMetric);}catch(e){s(e);}});}function gt(r){Vt(r),Bt(r),jt(r);}function Vt(r){let i=r.command("predictions").description("Assethandler AI predictions");i.command("list").description("List AI predictions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(et,{pagination:u(t.limit,t.cursor)});a(t,e.aiPredictions,{headers:["ID","Asset","Type","Model","Score","Confidence","Status"],rows:e.aiPredictions.map(n=>[c(n.id,12),c(n.assetId,12),n.predictionType,n.modelVersion,String(n.score),String(n.confidence),n.status])});}catch(e){s(e);}}),i.command("request").description("Request an AI prediction for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--prediction-type <t>","Prediction type").option("--feature-vector <json>","Feature vector JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,predictionType:t.predictionType};t.featureVector&&(e.featureVector=l("feature-vector",t.featureVector));let n=await o(nt,{input:e});m(`Prediction requested: ${n.requestAIPrediction.id}`),a(t,n.requestAIPrediction);}catch(e){s(e);}});}function Bt(r){let i=r.command("provenance").description("Assethandler asset provenance records");i.command("list").description("List provenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(rt,{pagination:u(t.limit,t.cursor)});a(t,e.provenanceRecords,{headers:["ID","Asset","Chain","Hash","Attested By"],rows:e.provenanceRecords.map(n=>[c(n.id,12),c(n.assetId,12),n.chainNetwork,c(n.hash,16),c(n.attestedBy,16)])});}catch(e){s(e);}}),i.command("record").description("Record an asset provenance attestation").requiredOption("--asset <id>","Asset ID").requiredOption("--chain-network <n>","Chain network").requiredOption("--hash <h>","Attestation hash").option("--tx-hash <h>","Transaction hash").option("--block-number <n>","Block number",d).option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,chainNetwork:t.chainNetwork,hash:t.hash};t.txHash&&(e.txHash=t.txHash),t.blockNumber!==void 0&&(e.blockNumber=t.blockNumber),t.metadata&&(e.metadata=l("metadata",t.metadata));let n=await o(it,{input:e});m(`Provenance recorded: ${n.recordProvenance.id}`),a(t,n.recordProvenance);}catch(e){s(e);}});}function jt(r){let i=r.command("discovery-jobs").description("Assethandler asset discovery jobs");i.command("list").description("List discovery jobs").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(ot,{pagination:u(t.limit,t.cursor)});a(t,e.discoveryJobs,{headers:["ID","Name","Source","Status","Discovered"],rows:e.discoveryJobs.map(n=>[c(n.id,12),n.name,n.source,n.status,String(n.assetsDiscovered)])});}catch(e){s(e);}}),i.command("start").description("Start an asset discovery job").requiredOption("--name <name>","Job name").requiredOption("--source <s>","Discovery source").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,source:t.source},n=await o(st,{input:e});m(`Discovery job started: ${n.startDiscoveryJob.name}`),a(t,n.startDiscoveryJob);}catch(e){s(e);}});}function lt(r){r.command("dashboard").description("Assethandler dashboard overview").command("overview").description("Asset / transaction / incident / work-order counts").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(at);a(t,e.dashboardOverview);}catch(e){s(e);}});}var Jt={id:"assethandler",version:"1.0.0",displayName:"Assethandler",dependsOn:["auth","workspaces"],register(r,i){E(i);let t=r.command("assethandler").description("Assethandler enterprise asset management platform");ct(t),dt(t),ut(t),pt(t),mt(t),gt(t),lt(t);}},Hn=Jt;module.exports=Hn;
|
|
255
|
+
`;function l(r,i){try{return JSON.parse(i)}catch{throw new g(`--${r} must be valid JSON`)}}function d(r){let i=Number.parseInt(r,10);if(Number.isNaN(i))throw new g(`Expected an integer but got "${r}"`);return i}function C(r){let i=Number.parseFloat(r);if(Number.isNaN(i))throw new g(`Expected a number but got "${r}"`);return i}function A(r){return r.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function u(r,i){let t={};return r!==void 0&&(t.limit=r),i&&(t.cursor=i),Object.keys(t).length?t:void 0}function ct(r){let i=r.command("assets").description("Assethandler assets");i.command("list").description("List assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(b,{pagination:u(t.limit,t.cursor)});a(t,e.assets,{headers:["ID","Asset #","Name","Category","Status","Condition"],rows:e.assets.map(n=>[c(n.id,12),n.assetNumber,n.name,n.category,n.status,n.condition])});}catch(e){s(e);}}),i.command("get").description("Get an asset by id").argument("<id>","Asset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await o(S,{id:t});if(!n.asset)throw new g(`Asset ${t} not found`);a(e,n.asset);}catch(n){s(n);}}),i.command("create").description("Create an asset").requiredOption("--asset-number <s>","Asset number").requiredOption("--name <name>","Asset name").requiredOption("--category <c>","Category").option("--description <s>","Description").option("--status <s>","ACTIVE|INACTIVE|MAINTENANCE|RETIRED|DISPOSED").option("--condition <c>","EXCELLENT|GOOD|FAIR|POOR|DAMAGED").option("--serial-number <s>","Serial number").option("--location-name <s>","Location name").option("--assigned-to <s>","Assignee").option("--tags <csv>","Comma-separated tags").option("--custom-attributes <json>","Custom attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetNumber:t.assetNumber,name:t.name,category:t.category};t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.condition&&(e.condition=t.condition.toUpperCase()),t.serialNumber&&(e.serialNumber=t.serialNumber),t.locationName&&(e.locationName=t.locationName),t.assignedTo&&(e.assignedTo=t.assignedTo),t.tags&&(e.tags=A(t.tags)),t.customAttributes&&(e.customAttributes=l("custom-attributes",t.customAttributes));let n=await o(O,{input:e});m(`Asset created: ${n.createAsset.assetNumber}`),a(t,n.createAsset);}catch(e){s(e);}});}function dt(r){bt(r),Ot(r),xt(r),Rt(r);}function bt(r){let i=r.command("software-assets").description("Assethandler software assets & licenses");i.command("list").description("List software assets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(x,{pagination:u(t.limit,t.cursor)});a(t,e.softwareAssets,{headers:["ID","Name","Vendor","Version","License","Seats","Compliance %"],rows:e.softwareAssets.map(n=>[c(n.id,12),n.name,n.vendor,n.version,n.licenseType,`${n.seatsUsed??0}/${n.seatsPurchased??0}`,String(n.compliancePercent)])});}catch(e){s(e);}}),i.command("upsert").description("Create or update a software asset").requiredOption("--name <name>","Name").requiredOption("--vendor <v>","Vendor").requiredOption("--version <v>","Version").requiredOption("--license-type <t>","License type").option("--id <id>","Existing software asset ID (update)").option("--seats-purchased <n>","Seats purchased",d).option("--seats-used <n>","Seats used",d).option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,vendor:t.vendor,version:t.version,licenseType:t.licenseType};t.id&&(e.id=t.id),t.seatsPurchased!==void 0&&(e.seatsPurchased=t.seatsPurchased),t.seatsUsed!==void 0&&(e.seatsUsed=t.seatsUsed);let n=await o(R,{input:e});m(`Software asset saved: ${n.upsertSoftwareAsset.name}`),a(t,n.upsertSoftwareAsset);}catch(e){s(e);}});}function Ot(r){let i=r.command("digital-twins").description("Assethandler digital twins");i.command("list").description("List digital twins").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(D,{pagination:u(t.limit,t.cursor)});a(t,e.digitalTwins,{headers:["ID","Asset","Fidelity","Model Ref"],rows:e.digitalTwins.map(n=>[c(n.id,12),c(n.assetId,12),n.fidelityLevel,n.modelRef])});}catch(e){s(e);}}),i.command("create").description("Create a digital twin for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--fidelity-level <l>","Fidelity level").requiredOption("--model-ref <ref>","Model reference").option("--geometry-ref <ref>","Geometry reference").option("--properties <json>","Properties JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,fidelityLevel:t.fidelityLevel,modelRef:t.modelRef};t.geometryRef&&(e.geometryRef=t.geometryRef),t.properties&&(e.properties=l("properties",t.properties));let n=await o(P,{input:e});m(`Digital twin created for asset ${n.createDigitalTwin.assetId}`),a(t,n.createDigitalTwin);}catch(e){s(e);}});}function xt(r){let i=r.command("config-items").description("Assethandler configuration items (CMDB)");i.command("list").description("List configuration items").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(N,{pagination:u(t.limit,t.cursor)});a(t,e.configurationItems,{headers:["ID","CI #","Name","Type","Status","Environment"],rows:e.configurationItems.map(n=>[c(n.id,12),n.ciNumber,n.name,n.ciType,n.status,n.environment??"-"])});}catch(e){s(e);}}),i.command("upsert").description("Create or update a configuration item").requiredOption("--ci-number <s>","CI number").requiredOption("--name <name>","Name").requiredOption("--ci-type <t>","CI type").requiredOption("--status <s>","Status").option("--id <id>","Existing CI ID (update)").option("--environment <e>","Environment").option("--owner <o>","Owner").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={ciNumber:t.ciNumber,name:t.name,ciType:t.ciType,status:t.status};t.id&&(e.id=t.id),t.environment&&(e.environment=t.environment),t.owner&&(e.owner=t.owner),t.attributes&&(e.attributes=l("attributes",t.attributes));let n=await o(L,{input:e});m(`Configuration item saved: ${n.upsertConfigurationItem.ciNumber}`),a(t,n.upsertConfigurationItem);}catch(e){s(e);}});}function Rt(r){let i=r.command("iot-devices").description("Assethandler IoT devices");i.command("list").description("List IoT devices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(q,{pagination:u(t.limit,t.cursor)});a(t,e.iotDevices,{headers:["ID","Device","Name","Type","Protocol","Status"],rows:e.iotDevices.map(n=>[c(n.id,12),c(n.deviceId,16),n.name,n.type,n.protocol,n.status])});}catch(e){s(e);}}),i.command("register").description("Register an IoT device").requiredOption("--device-id <s>","Device ID").requiredOption("--name <name>","Name").requiredOption("--type <t>","Type").requiredOption("--protocol <p>","Protocol").option("--status <s>","Status").option("--asset <id>","Linked asset ID").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={deviceId:t.deviceId,name:t.name,type:t.type,protocol:t.protocol};t.status&&(e.status=t.status),t.asset&&(e.assetId=t.asset),t.metadata&&(e.metadata=l("metadata",t.metadata));let n=await o(_,{input:e});m(`IoT device registered: ${n.registerIoTDevice.deviceId}`),a(t,n.registerIoTDevice);}catch(e){s(e);}});}function ut(r){Dt(r),Pt(r),Nt(r),Lt(r),qt(r),_t(r);}function Dt(r){let i=r.command("incidents").description("Assethandler ITSM incidents");i.command("list").description("List incidents").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o($,{pagination:u(t.limit,t.cursor)});a(t,e.incidents,{headers:["ID","Title","Category","Priority","Status","SLA"],rows:e.incidents.map(n=>[c(n.id,12),n.title,n.category,n.priority,n.status,n.slaBreached?"breached":"ok"])});}catch(e){s(e);}}),i.command("create").description("Create an incident").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").requiredOption("--category <c>","Category").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:t.category};t.priority&&(e.priority=t.priority.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let n=await o(H,{input:e});m(`Incident created: ${n.createIncident.title}`),a(t,n.createIncident);}catch(e){s(e);}});}function Pt(r){r.command("problems").description("Assethandler ITSM problems").command("list").description("List problems").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(M,{pagination:u(t.limit,t.cursor)});a(t,e.problems,{headers:["ID","Title","Category","Priority","Status"],rows:e.problems.map(n=>[c(n.id,12),n.title,n.category,n.priority,n.status])});}catch(e){s(e);}});}function Nt(r){r.command("change-requests").description("Assethandler change requests").command("list").description("List change requests").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(W,{pagination:u(t.limit,t.cursor)});a(t,e.changeRequests,{headers:["ID","Title","Type","Risk","Status","Requested By"],rows:e.changeRequests.map(n=>[c(n.id,12),n.title,n.type,n.risk,n.status,c(n.requestedBy,16)])});}catch(e){s(e);}});}function Lt(r){let i=r.command("work-orders").description("Assethandler work orders");i.command("list").description("List work orders").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(U,{pagination:u(t.limit,t.cursor)});a(t,e.workOrders,{headers:["ID","Title","Type","Priority","Status","Asset"],rows:e.workOrders.map(n=>[c(n.id,12),n.title,n.type,n.priority,n.status,n.assetId?c(n.assetId,12):"-"])});}catch(e){s(e);}}),i.command("create").description("Create a work order").requiredOption("--title <t>","Title").requiredOption("--type <t>","PREVENTIVE|CORRECTIVE|PREDICTIVE|EMERGENCY").option("--description <s>","Description").option("--priority <p>","LOW|MEDIUM|HIGH|CRITICAL").option("--status <s>","DRAFT|SCHEDULED|APPROVED|IN_PROGRESS|COMPLETED|CANCELLED").option("--asset <id>","Related asset ID").option("--assigned-to <s>","Assignee").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,type:t.type.toUpperCase()};t.description&&(e.description=t.description),t.priority&&(e.priority=t.priority.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.asset&&(e.assetId=t.asset),t.assignedTo&&(e.assignedTo=t.assignedTo);let n=await o(G,{input:e});m(`Work order created: ${n.createWorkOrder.title}`),a(t,n.createWorkOrder);}catch(e){s(e);}});}function qt(r){r.command("maintenance").description("Assethandler maintenance records").command("list").description("List maintenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(F,{pagination:u(t.limit,t.cursor)});a(t,e.maintenanceRecords,{headers:["ID","Asset","Title","Type","Priority","Status"],rows:e.maintenanceRecords.map(n=>[c(n.id,12),c(n.assetId,12),n.title,n.type,n.priority,n.status])});}catch(e){s(e);}});}function _t(r){let i=r.command("knowledge-articles").description("Assethandler knowledge base articles");i.command("list").description("List knowledge articles").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(V,{pagination:u(t.limit,t.cursor)});a(t,e.knowledgeArticles,{headers:["ID","Title","Slug","Status","Views"],rows:e.knowledgeArticles.map(n=>[c(n.id,12),n.title,n.slug,n.status,String(n.views)])});}catch(e){s(e);}}),i.command("create").description("Create a knowledge article").requiredOption("--title <t>","Title").requiredOption("--slug <s>","URL slug").requiredOption("--content <s>","Article content").option("--summary <s>","Summary").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("--tags <csv>","Comma-separated tags").option("--related-asset <id>","Related asset ID").option("--related-incident <id>","Related incident ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,slug:t.slug,content:t.content};t.summary&&(e.summary=t.summary),t.status&&(e.status=t.status.toUpperCase()),t.tags&&(e.tags=A(t.tags)),t.relatedAsset&&(e.relatedAssetId=t.relatedAsset),t.relatedIncident&&(e.relatedIncidentId=t.relatedIncident);let n=await o(B,{input:e});m(`Knowledge article created: ${n.createKnowledgeArticle.slug}`),a(t,n.createKnowledgeArticle);}catch(e){s(e);}});}function pt(r){$t(r),Ht(r),Mt(r);}function $t(r){let i=r.command("transactions").description("Assethandler asset finance transactions");i.command("list").description("List transactions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(j,{pagination:u(t.limit,t.cursor)});a(t,e.transactions,{headers:["ID","Type","Category","Amount","Currency","Status"],rows:e.transactions.map(n=>[c(n.id,12),n.type,n.category,String(n.amount),n.currency,n.status])});}catch(e){s(e);}}),i.command("create").description("Create a transaction").requiredOption("--type <t>","PURCHASE|LEASE|MAINTENANCE|DISPOSAL|TRANSFER").requiredOption("--category <c>","Category").requiredOption("--description <s>","Description").requiredOption("--amount <n>","Amount",C).option("--currency <c>","Currency code").option("--vendor <v>","Vendor").option("--department <d>","Department").option("--status <s>","PENDING|APPROVED|COMPLETED|REJECTED").option("-f, --format <format>","Output format").action(async t=>{try{let e={type:t.type.toUpperCase(),category:t.category,description:t.description,amount:t.amount};t.currency&&(e.currency=t.currency),t.vendor&&(e.vendor=t.vendor),t.department&&(e.department=t.department),t.status&&(e.status=t.status.toUpperCase());let n=await o(J,{input:e});m(`Transaction created: ${n.createTransaction.id}`),a(t,n.createTransaction);}catch(e){s(e);}});}function Ht(r){r.command("invoices").description("Assethandler invoices").command("list").description("List invoices").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(K,{pagination:u(t.limit,t.cursor)});a(t,e.invoices,{headers:["ID","Number","Vendor","Amount","Status","Due"],rows:e.invoices.map(n=>[c(n.id,12),n.number,n.vendor,`${n.amount} ${n.currency}`,n.status,v(n.dueDate)])});}catch(e){s(e);}});}function Mt(r){r.command("budgets").description("Assethandler asset budgets").command("list").description("List budgets").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(z,{pagination:u(t.limit,t.cursor)});a(t,e.budgets,{headers:["ID","Name","Department","Allocated","Spent","Remaining","Status"],rows:e.budgets.map(n=>[c(n.id,12),n.name,n.department,String(n.allocated),String(n.spent),String(n.remaining),n.status])});}catch(e){s(e);}});}function mt(r){Wt(r),Ut(r),Gt(r),Ft(r);}function Wt(r){r.command("compliance").description("Assethandler compliance frameworks").command("list").description("List compliance frameworks").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(Y,{pagination:u(t.limit,t.cursor)});a(t,e.complianceFrameworks,{headers:["ID","Name","Version","Status","Score","Passed","Failed"],rows:e.complianceFrameworks.map(n=>[c(n.id,12),n.name,n.version,n.status,String(n.score),String(n.passedControls),String(n.failedControls)])});}catch(e){s(e);}});}function Ut(r){r.command("security-policies").description("Assethandler asset security policies").command("list").description("List security policies").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(Q,{pagination:u(t.limit,t.cursor)});a(t,e.assetSecurityPolicies,{headers:["ID","Name","Version","Category","Status","Owner"],rows:e.assetSecurityPolicies.map(n=>[c(n.id,12),n.name,n.version,n.category,n.status,c(n.owner,16)])});}catch(e){s(e);}});}function Gt(r){r.command("security-events").description("Assethandler security events").command("list").description("List security events").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(X,{pagination:u(t.limit,t.cursor)});a(t,e.securityEvents,{headers:["ID","Title","Type","Severity","Source","Resolved"],rows:e.securityEvents.map(n=>[c(n.id,12),n.title,n.eventType,n.severity,n.source,n.resolved?"yes":"no"])});}catch(e){s(e);}});}function Ft(r){let i=r.command("esg-metrics").description("Assethandler ESG metrics");i.command("list").description("List ESG metrics").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(Z,{pagination:u(t.limit,t.cursor)});a(t,e.esgMetrics,{headers:["ID","Category","Metric","Value","Unit","Target","Trend"],rows:e.esgMetrics.map(n=>[c(n.id,12),n.category,n.metricName,String(n.value),n.unit,n.target!=null?String(n.target):"-",n.trend??"-"])});}catch(e){s(e);}}),i.command("upsert").description("Create or update an ESG metric").requiredOption("--category <c>","Category").requiredOption("--metric-key <k>","Metric key").requiredOption("--metric-name <n>","Metric name").requiredOption("--value <n>","Value",C).requiredOption("--unit <u>","Unit").requiredOption("--period-start <iso>","Period start (ISO date)").requiredOption("--period-end <iso>","Period end (ISO date)").option("--target <n>","Target value",C).option("--trend <t>","Trend").option("-f, --format <format>","Output format").action(async t=>{try{let e={category:t.category,metricKey:t.metricKey,metricName:t.metricName,value:t.value,unit:t.unit,periodStart:t.periodStart,periodEnd:t.periodEnd};t.target!==void 0&&(e.target=t.target),t.trend&&(e.trend=t.trend);let n=await o(tt,{input:e});m(`ESG metric saved: ${n.upsertEsgMetric.metricKey}`),a(t,n.upsertEsgMetric);}catch(e){s(e);}});}function gt(r){Vt(r),Bt(r),jt(r);}function Vt(r){let i=r.command("predictions").description("Assethandler AI predictions");i.command("list").description("List AI predictions").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(et,{pagination:u(t.limit,t.cursor)});a(t,e.aiPredictions,{headers:["ID","Asset","Type","Model","Score","Confidence","Status"],rows:e.aiPredictions.map(n=>[c(n.id,12),c(n.assetId,12),n.predictionType,n.modelVersion,String(n.score),String(n.confidence),n.status])});}catch(e){s(e);}}),i.command("request").description("Request an AI prediction for an asset").requiredOption("--asset <id>","Asset ID").requiredOption("--prediction-type <t>","Prediction type").option("--feature-vector <json>","Feature vector JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,predictionType:t.predictionType};t.featureVector&&(e.featureVector=l("feature-vector",t.featureVector));let n=await o(nt,{input:e});m(`Prediction requested: ${n.requestAIPrediction.id}`),a(t,n.requestAIPrediction);}catch(e){s(e);}});}function Bt(r){let i=r.command("provenance").description("Assethandler asset provenance records");i.command("list").description("List provenance records").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(rt,{pagination:u(t.limit,t.cursor)});a(t,e.provenanceRecords,{headers:["ID","Asset","Chain","Hash","Attested By"],rows:e.provenanceRecords.map(n=>[c(n.id,12),c(n.assetId,12),n.chainNetwork,c(n.hash,16),c(n.attestedBy,16)])});}catch(e){s(e);}}),i.command("record").description("Record an asset provenance attestation").requiredOption("--asset <id>","Asset ID").requiredOption("--chain-network <n>","Chain network").requiredOption("--hash <h>","Attestation hash").option("--tx-hash <h>","Transaction hash").option("--block-number <n>","Block number",d).option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assetId:t.asset,chainNetwork:t.chainNetwork,hash:t.hash};t.txHash&&(e.txHash=t.txHash),t.blockNumber!==void 0&&(e.blockNumber=t.blockNumber),t.metadata&&(e.metadata=l("metadata",t.metadata));let n=await o(it,{input:e});m(`Provenance recorded: ${n.recordProvenance.id}`),a(t,n.recordProvenance);}catch(e){s(e);}});}function jt(r){let i=r.command("discovery-jobs").description("Assethandler asset discovery jobs");i.command("list").description("List discovery jobs").option("--limit <n>","Page size (max 100)",d,50).option("--cursor <id>","Opaque cursor from a previous page").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(ot,{pagination:u(t.limit,t.cursor)});a(t,e.discoveryJobs,{headers:["ID","Name","Source","Status","Discovered"],rows:e.discoveryJobs.map(n=>[c(n.id,12),n.name,n.source,n.status,String(n.assetsDiscovered)])});}catch(e){s(e);}}),i.command("start").description("Start an asset discovery job").requiredOption("--name <name>","Job name").requiredOption("--source <s>","Discovery source").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,source:t.source},n=await o(st,{input:e});m(`Discovery job started: ${n.startDiscoveryJob.name}`),a(t,n.startDiscoveryJob);}catch(e){s(e);}});}function lt(r){r.command("dashboard").description("Assethandler dashboard overview").command("overview").description("Asset / transaction / incident / work-order counts").option("-f, --format <format>","Output format").action(async t=>{try{let e=await o(at);a(t,e.dashboardOverview);}catch(e){s(e);}});}var Jt={id:"assethandler",version:"1.0.0",displayName:"Assethandler",dependsOn:["auth","workspaces"],register(r,i){E(i);let t=r.command("assethandler").description("Assethandler enterprise asset management platform");ct(t),dt(t),ut(t),pt(t),mt(t),gt(t),lt(t);}},Hn=Jt;module.exports=Hn;
|