@burdenoff/cli-sdk 2026.1102.4 → 2026.1107.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/artistrybase/index.cjs +54 -33
- package/dist/modules/artistrybase/index.js +63 -42
- package/dist/modules/collabkin/index.cjs +68 -53
- package/dist/modules/collabkin/index.js +64 -49
- package/dist/modules/technospam/index.cjs +82 -64
- package/dist/modules/technospam/index.js +82 -64
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(r,n){super(r),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},R=class extends m{constructor(r,n){super(r,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},w=class extends Error{cause;constructor(r,n){super(r),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,r){return Mt(),A().gql.workspace.request(c,r)}async function C(c,r){return A().gql.workspaceAuthOnly.request(c,r)}function s(c){let r=c instanceof Error?c.message:String(c);throw new m(r)}function a(c,r,n){A().output.formatAndOutput(c,r,n);}function p(c){A().output.printSuccess(c);}function f(c,r){return A().output.truncate(c,r)}var O=`
|
|
2
2
|
query ArtListWorks(
|
|
3
3
|
$medium: ArtMedium
|
|
4
4
|
$status: ArtWorkStatus
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
createdAt updatedAt workspaceId
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
`,
|
|
29
|
+
`,P=`
|
|
30
30
|
mutation ArtCreateWork($input: ArtCreateWorkInput!) {
|
|
31
31
|
artCreateWork(input: $input) {
|
|
32
32
|
id title medium status visibility summary productionId coverFileId
|
|
33
33
|
durationMs tags createdAt
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
`,
|
|
36
|
+
`,L=`
|
|
37
37
|
mutation ArtUpdateWork($id: ID!, $input: ArtUpdateWorkInput!) {
|
|
38
38
|
artUpdateWork(id: $id, input: $input) {
|
|
39
39
|
id title medium status visibility summary productionId coverFileId
|
|
@@ -51,10 +51,13 @@
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
`,_=`
|
|
54
|
-
query ArtListWorkVersions($workId: ID
|
|
55
|
-
artListWorkVersions(workId: $workId) {
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
query ArtListWorkVersions($workId: ID!, $pagination: PaginationInput) {
|
|
55
|
+
artListWorkVersions(workId: $workId, pagination: $pagination) {
|
|
56
|
+
items {
|
|
57
|
+
id workId versionNo label notes fileId checksum sizeBytes
|
|
58
|
+
isPublished createdAt updatedAt workspaceId
|
|
59
|
+
}
|
|
60
|
+
pageInfo { cursor hasMore }
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
`,$=`
|
|
@@ -65,10 +68,13 @@
|
|
|
65
68
|
}
|
|
66
69
|
}
|
|
67
70
|
`,N=`
|
|
68
|
-
query ArtListAssets($workId: ID
|
|
69
|
-
artListAssets(workId: $workId) {
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
query ArtListAssets($workId: ID!, $pagination: PaginationInput) {
|
|
72
|
+
artListAssets(workId: $workId, pagination: $pagination) {
|
|
73
|
+
items {
|
|
74
|
+
id workId kind fileId mimeType sizeBytes width height durationMs
|
|
75
|
+
versionId createdAt updatedAt workspaceId
|
|
76
|
+
}
|
|
77
|
+
pageInfo { cursor hasMore }
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
`,U=`
|
|
@@ -159,9 +165,12 @@
|
|
|
159
165
|
}
|
|
160
166
|
}
|
|
161
167
|
`,J=`
|
|
162
|
-
query ArtListProductionMembers($productionId: ID
|
|
163
|
-
artListProductionMembers(productionId: $productionId) {
|
|
164
|
-
|
|
168
|
+
query ArtListProductionMembers($productionId: ID!, $pagination: PaginationInput) {
|
|
169
|
+
artListProductionMembers(productionId: $productionId, pagination: $pagination) {
|
|
170
|
+
items {
|
|
171
|
+
id productionId memberId role title isLead createdAt updatedAt workspaceId
|
|
172
|
+
}
|
|
173
|
+
pageInfo { cursor hasMore }
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
176
|
`,Y=`
|
|
@@ -175,9 +184,12 @@
|
|
|
175
184
|
artRemoveProductionMember(id: $id)
|
|
176
185
|
}
|
|
177
186
|
`,Q=`
|
|
178
|
-
query ArtListReferences($productionId: ID
|
|
179
|
-
artListReferences(productionId: $productionId) {
|
|
180
|
-
|
|
187
|
+
query ArtListReferences($productionId: ID!, $pagination: PaginationInput) {
|
|
188
|
+
artListReferences(productionId: $productionId, pagination: $pagination) {
|
|
189
|
+
items {
|
|
190
|
+
id productionId title url note fileId tags createdAt updatedAt workspaceId
|
|
191
|
+
}
|
|
192
|
+
pageInfo { cursor hasMore }
|
|
181
193
|
}
|
|
182
194
|
}
|
|
183
195
|
`,Z=`
|
|
@@ -191,13 +203,16 @@
|
|
|
191
203
|
artRemoveReference(id: $id)
|
|
192
204
|
}
|
|
193
205
|
`,et=`
|
|
194
|
-
query ArtListReviewRounds($workId: ID!, $status: ArtReviewStatus) {
|
|
195
|
-
artListReviewRounds(workId: $workId, status: $status) {
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
query ArtListReviewRounds($workId: ID!, $status: ArtReviewStatus, $pagination: PaginationInput) {
|
|
207
|
+
artListReviewRounds(workId: $workId, status: $status, pagination: $pagination) {
|
|
208
|
+
items {
|
|
209
|
+
id workId versionId round status title dueDate openedById
|
|
210
|
+
closedAt createdAt updatedAt workspaceId
|
|
211
|
+
}
|
|
212
|
+
pageInfo { cursor hasMore }
|
|
198
213
|
}
|
|
199
214
|
}
|
|
200
|
-
`,
|
|
215
|
+
`,ot=`
|
|
201
216
|
query ArtReviewRound($id: ID!) {
|
|
202
217
|
artReviewRound(id: $id) {
|
|
203
218
|
id workId versionId round status title dueDate openedById closedAt
|
|
@@ -206,13 +221,13 @@
|
|
|
206
221
|
approvals { id approverId decision comment }
|
|
207
222
|
}
|
|
208
223
|
}
|
|
209
|
-
`,
|
|
224
|
+
`,it=`
|
|
210
225
|
mutation ArtOpenReviewRound($input: ArtOpenReviewRoundInput!) {
|
|
211
226
|
artOpenReviewRound(input: $input) {
|
|
212
227
|
id workId versionId round status title dueDate createdAt
|
|
213
228
|
}
|
|
214
229
|
}
|
|
215
|
-
`,
|
|
230
|
+
`,rt=`
|
|
216
231
|
mutation ArtTransitionReviewRound($id: ID!, $status: ArtReviewStatus!) {
|
|
217
232
|
artTransitionReviewRound(id: $id, status: $status) {
|
|
218
233
|
id workId round status closedAt updatedAt
|
|
@@ -237,10 +252,13 @@
|
|
|
237
252
|
}
|
|
238
253
|
}
|
|
239
254
|
`,dt=`
|
|
240
|
-
query ArtListReleases($workId: ID!, $status: ArtReleaseStatus) {
|
|
241
|
-
artListReleases(workId: $workId, status: $status) {
|
|
242
|
-
|
|
243
|
-
|
|
255
|
+
query ArtListReleases($workId: ID!, $status: ArtReleaseStatus, $pagination: PaginationInput) {
|
|
256
|
+
artListReleases(workId: $workId, status: $status, pagination: $pagination) {
|
|
257
|
+
items {
|
|
258
|
+
id workId versionId channel status visibility notes scheduledFor
|
|
259
|
+
publishedAt createdAt updatedAt workspaceId
|
|
260
|
+
}
|
|
261
|
+
pageInfo { cursor hasMore }
|
|
244
262
|
}
|
|
245
263
|
}
|
|
246
264
|
`,ct=`
|
|
@@ -301,10 +319,13 @@
|
|
|
301
319
|
artUnfollowPortfolio(portfolioId: $portfolioId)
|
|
302
320
|
}
|
|
303
321
|
`,Rt=`
|
|
304
|
-
query ArtListLicenses($workId: ID
|
|
305
|
-
artListLicenses(workId: $workId) {
|
|
306
|
-
|
|
307
|
-
|
|
322
|
+
query ArtListLicenses($workId: ID!, $pagination: PaginationInput) {
|
|
323
|
+
artListLicenses(workId: $workId, pagination: $pagination) {
|
|
324
|
+
items {
|
|
325
|
+
id workId name model status priceAmount currency spdx terms attribution
|
|
326
|
+
createdAt updatedAt workspaceId
|
|
327
|
+
}
|
|
328
|
+
pageInfo { cursor hasMore }
|
|
308
329
|
}
|
|
309
330
|
}
|
|
310
331
|
`,At=`
|
|
@@ -331,4 +352,4 @@
|
|
|
331
352
|
query ArtHealth {
|
|
332
353
|
artHealth
|
|
333
354
|
}
|
|
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(V,{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(q,{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 Vt={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=Vt;module.exports=Cr;
|
|
355
|
+
`;function h(c,r){try{return JSON.parse(r)}catch{throw new m(`--${c} must be valid JSON`)}}function l(c){let r=Number.parseInt(c,10);if(Number.isNaN(r))throw new m(`Expected an integer but got "${c}"`);return r}function b(c){let r=Number.parseFloat(c);if(Number.isNaN(r))throw new m(`Expected a number but got "${c}"`);return r}function I(c){return c.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function ht(c){let r=c.command("works").description("Artistrybase creative works");r.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",l,50).option("--offset <n>","Offset",l,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=>[f(u.id,12),u.title,u.medium,u.status,u.visibility])});}catch(t){s(t);}}),r.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 m(`Work ${e} not found`);a(t,o.artWork);}catch(o){s(o);}}),r.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",l).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(P,{input:t});p(`Work created: ${o.artCreateWork.title}`),a(e,o.artCreateWork);}catch(t){s(t);}}),r.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",l).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 m("No updates specified");let u=await d(L,{id:e,input:o});p("Work updated"),a(t,u.artUpdateWork);}catch(o){s(o);}}),r.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);}}),r.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("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(_,{workId:e.work,pagination:{limit:e.limit,offset:e.offset}});a(e,t.artListWorkVersions.items,{headers:["ID","No","Label","Published","File"],rows:t.artListWorkVersions.items.map(o=>[f(o.id,12),String(o.versionNo),o.label??"-",o.isPublished?"yes":"no",f(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 i=c.command("assets").description("Artistrybase work assets");i.command("list").description("List assets for a work").requiredOption("--work <id>","Work ID").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(N,{workId:e.work,pagination:{limit:e.limit,offset:e.offset}});a(e,t.artListAssets.items,{headers:["ID","Kind","File","MIME"],rows:t.artListAssets.items.map(o=>[f(o.id,12),o.kind,f(o.fileId,12),o.mimeType??"-"])});}catch(t){s(t);}}),i.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",l).option("--height <n>","Height",l).option("--duration-ms <n>","Duration in ms",l).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 bt(c){let r=c.command("collections").description("Artistrybase curated collections");r.command("list").description("List collections").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async n=>{try{let i=await d(W,{visibility:n.visibility?n.visibility.toUpperCase():void 0,pagination:{limit:n.limit,offset:n.offset}});a(n,i.artListCollections.items,{headers:["ID","Title","Slug","Medium","Visibility"],rows:i.artListCollections.items.map(e=>[f(e.id,12),e.title,e.slug,e.medium??"-",e.visibility])});}catch(i){s(i);}}),r.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(n,i)=>{try{let e=await d(F,{id:n});if(!e.artCollection)throw new m(`Collection ${n} not found`);a(i,e.artCollection);}catch(e){s(e);}}),r.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 i={title:n.title,slug:n.slug,visibility:(n.visibility??"PRIVATE").toUpperCase()};n.description&&(i.description=n.description),n.medium&&(i.medium=n.medium.toUpperCase()),n.coverFile&&(i.coverFileId=n.coverFile),n.tags&&(i.tags=I(n.tags));let e=await d(M,{input:i});p(`Collection created: ${e.artCreateCollection.title}`),a(n,e.artCreateCollection);}catch(i){s(i);}}),r.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,i)=>{try{let e={};if(i.title&&(e.title=i.title),i.description!==void 0&&(e.description=i.description),i.medium&&(e.medium=i.medium.toUpperCase()),i.visibility&&(e.visibility=i.visibility.toUpperCase()),i.coverFile&&(e.coverFileId=i.coverFile),i.tags&&(e.tags=I(i.tags)),!Object.keys(e).length)throw new m("No updates specified");let t=await d(V,{id:n,input:e});p("Collection updated"),a(i,t.artUpdateCollection);}catch(e){s(e);}}),r.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,i)=>{try{let e=await d(q,{collectionId:n,workId:i.work});p("Work added to collection"),a(i,e.artAddWorkToCollection);}catch(e){s(e);}}),r.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,i)=>{try{let e=await d(B,{collectionId:n,workId:i.work});p("Work removed from collection"),a(i,e.artRemoveWorkFromCollection);}catch(e){s(e);}});}function vt(c){let r=c.command("productions").description("Artistrybase productions");r.command("list").description("List productions").option("--status <s>","Production status").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,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=>[f(o.id,12),o.title,o.slug,o.medium,o.status])});}catch(t){s(t);}}),r.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 m(`Production ${e} not found`);a(t,o.artProduction);}catch(o){s(o);}}),r.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);}}),r.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 m("No updates specified");let u=await d(K,{id:e,input:o});p("Production updated"),a(t,u.artUpdateProduction);}catch(o){s(o);}}),r.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("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(J,{productionId:e.production,pagination:{limit:e.limit,offset:e.offset}});a(e,t.artListProductionMembers.items,{headers:["ID","Member","Role","Title","Lead"],rows:t.artListProductionMembers.items.map(o=>[f(o.id,12),f(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 i=c.command("references").description("Artistrybase production references");i.command("list").description("List references for a production").requiredOption("--production <id>","Production ID").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await d(Q,{productionId:e.production,pagination:{limit:e.limit,offset:e.offset}});a(e,t.artListReferences.items,{headers:["ID","Title","URL","File"],rows:t.artListReferences.items.map(o=>[f(o.id,12),o.title,f(o.url??"-",30),o.fileId?f(o.fileId,12):"-"])});}catch(t){s(t);}}),i.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);}}),i.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 Et(c){let r=c.command("reviews").description("Artistrybase review rounds");r.command("list").description("List review rounds for a work").requiredOption("--work <id>","Work ID").option("--status <s>","OPEN|CHANGES_REQUESTED|APPROVED|CLOSED").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).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,pagination:{limit:t.limit,offset:t.offset}});a(t,o.artListReviewRounds.items,{headers:["ID","Round","Status","Title"],rows:o.artListReviewRounds.items.map(u=>[f(u.id,12),String(u.round),u.status,u.title??"-"])});}catch(o){s(o);}}),r.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 m(`Review round ${t} not found`);a(o,u.artReviewRound);}catch(u){s(u);}}),r.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(it,{input:o});p(`Review round opened: round ${u.artOpenReviewRound.round}`),a(t,u.artOpenReviewRound);}catch(o){s(o);}}),r.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(rt,{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("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).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,pagination:{limit:t.limit,offset:t.offset}});a(t,o.artListReleases.items,{headers:["ID","Channel","Status","Visibility"],rows:o.artListReleases.items.map(u=>[f(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 Tt(c){let r=c.command("portfolios").description("Artistrybase public portfolios");r.command("list").description("List portfolios").option("--visibility <v>","PRIVATE|PUBLIC|UNLISTED").option("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await d(pt,{visibility:i.visibility?i.visibility.toUpperCase():void 0,pagination:{limit:i.limit,offset:i.offset}});a(i,e.artListPortfolios.items,{headers:["ID","Handle","Display Name","Visibility","Followers"],rows:e.artListPortfolios.items.map(t=>[f(t.id,12),t.handle,t.displayName,t.visibility,String(t.followerCount)])});}catch(e){s(e);}}),r.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await d(lt,{id:i});if(!t.artPortfolio)throw new m(`Portfolio ${i} not found`);a(e,t.artPortfolio);}catch(t){s(t);}}),r.command("create").description("Create a portfolio").requiredOption("--handle <h>","Unique handle").requiredOption("--display-name <n>","Display name").option("--bio <b>","Bio").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 i=>{try{let e={handle:i.handle,displayName:i.displayName,visibility:(i.visibility??"PUBLIC").toUpperCase()};i.bio&&(e.bio=i.bio),i.avatarFile&&(e.avatarFileId=i.avatarFile),i.bannerFile&&(e.bannerFileId=i.bannerFile),i.featuredWorks&&(e.featuredWorkIds=I(i.featuredWorks)),i.links&&(e.links=h("links",i.links));let t=await d(mt,{input:e});p(`Portfolio created: ${t.artCreatePortfolio.handle}`),a(i,t.artCreatePortfolio);}catch(e){s(e);}}),r.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(i,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 m("No updates specified");let o=await d(ft,{id:i,input:t});p("Portfolio updated"),a(e,o.artUpdatePortfolio);}catch(t){s(t);}}),r.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await d(gt,{id:i});p(`Portfolio archived: ${String(t.artArchivePortfolio)}`),a(e,{archived:t.artArchivePortfolio});}catch(t){s(t);}}),r.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(i,e)=>{try{let t=await d(It,{portfolioId:i,notify:e.notify});p("Portfolio followed"),a(e,t.artFollowPortfolio);}catch(t){s(t);}}),r.command("unfollow").description("Unfollow a portfolio").argument("<portfolioId>","Portfolio ID").option("-f, --format <format>","Output format").action(async(i,e)=>{try{let t=await d(wt,{portfolioId:i});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("--limit <n>","Page size",l,50).option("--offset <n>","Offset",l,0).option("-f, --format <format>","Output format").action(async i=>{try{let e=await d(Rt,{workId:i.work,pagination:{limit:i.limit,offset:i.offset}});a(i,e.artListLicenses.items,{headers:["ID","Name","Model","Status","Price","Currency"],rows:e.artListLicenses.items.map(t=>[f(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",b).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 i=>{try{let e={workId:i.work,name:i.name,model:(i.model??"FREE").toUpperCase()};i.price!==void 0&&(e.priceAmount=i.price),i.currency&&(e.currency=i.currency),i.spdx&&(e.spdx=i.spdx),i.terms&&(e.terms=i.terms),i.attribution&&(e.attribution=i.attribution);let t=await d(At,{input:e});p(`License created: ${t.artCreateLicense.name}`),a(i,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",b).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(i,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 m("No updates specified");let o=await d(kt,{id:i,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(i,e)=>{try{let t=await d(yt,{id:i});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 r=>{try{let n=await C(Ct);p(n.artHealth),a(r,{health:n.artHealth});}catch(n){s(n);}});}var Vt={id:"artistrybase",version:"1.0.0",displayName:"Artistrybase",dependsOn:["auth","workspaces"],register(c,r){T(r);let n=c.command("artistrybase").description("Artistrybase multi-medium creative platform");ht(n),bt(n),vt(n),Et(n),Tt(n),Ot(n);}},ho=Vt;module.exports=ho;
|