@burdenoff/cli-sdk 2026.1101.1 → 2026.1102.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/chunk-O6UCQ5IT.js +1 -0
- package/dist/{chunk-REBBLQFS.js → chunk-ZGT7IIOP.js} +494 -522
- package/dist/modules/adaptercloud/index.cjs +4 -4
- package/dist/modules/adaptercloud/index.js +2 -2
- package/dist/modules/artistrybase/index.js +2 -2
- package/dist/modules/assethandler/index.cjs +2 -2
- package/dist/modules/assethandler/index.js +2 -2
- package/dist/modules/atheletebridge/index.cjs +8 -8
- package/dist/modules/atheletebridge/index.js +2 -2
- package/dist/modules/auth/index.cjs +37 -37
- package/dist/modules/auth/index.js +33 -29
- package/dist/modules/billing/index.cjs +18 -18
- package/dist/modules/billing/index.js +22 -22
- package/dist/modules/brainyrich/index.cjs +44 -28
- package/dist/modules/brainyrich/index.js +47 -31
- package/dist/modules/buildmyiq/index.js +2 -2
- package/dist/modules/channels/index.cjs +3 -3
- package/dist/modules/channels/index.js +2 -2
- package/dist/modules/collabkin/index.cjs +4 -4
- package/dist/modules/collabkin/index.js +2 -2
- package/dist/modules/comradecircle/index.cjs +6 -6
- package/dist/modules/comradecircle/index.js +2 -2
- package/dist/modules/conversations/index.cjs +7 -7
- package/dist/modules/conversations/index.js +2 -2
- package/dist/modules/coolandlovely/index.cjs +2 -2
- package/dist/modules/coolandlovely/index.js +2 -2
- package/dist/modules/cosmicintersection/index.cjs +6 -6
- package/dist/modules/cosmicintersection/index.js +2 -2
- package/dist/modules/crewfoundry/index.js +2 -2
- package/dist/modules/devportal/index.cjs +40 -34
- package/dist/modules/devportal/index.js +49 -43
- package/dist/modules/ecoimpacthub/index.cjs +5 -5
- package/dist/modules/ecoimpacthub/index.js +2 -2
- package/dist/modules/eventfullymanaged/index.cjs +12 -12
- package/dist/modules/eventfullymanaged/index.js +2 -2
- package/dist/modules/export/index.cjs +4 -4
- package/dist/modules/export/index.js +2 -2
- package/dist/modules/files/index.cjs +3 -3
- package/dist/modules/files/index.js +4 -4
- package/dist/modules/fluidgrids/index.cjs +16 -16
- package/dist/modules/fluidgrids/index.js +3 -3
- package/dist/modules/ggnomad/index.cjs +4 -4
- package/dist/modules/ggnomad/index.js +2 -2
- package/dist/modules/govcitizenhub/index.cjs +4 -4
- package/dist/modules/govcitizenhub/index.js +2 -2
- package/dist/modules/groups/index.cjs +4 -4
- package/dist/modules/groups/index.js +2 -2
- package/dist/modules/headshotmarketing/index.js +2 -2
- package/dist/modules/hookmovies/index.cjs +6 -6
- package/dist/modules/hookmovies/index.js +2 -2
- package/dist/modules/housingvista/index.cjs +3 -3
- package/dist/modules/housingvista/index.js +2 -2
- package/dist/modules/integrations/index.cjs +5 -5
- package/dist/modules/integrations/index.js +2 -2
- package/dist/modules/intelwatchtower/index.cjs +5 -5
- package/dist/modules/intelwatchtower/index.js +2 -2
- package/dist/modules/kadaikodi/index.cjs +2 -2
- package/dist/modules/kadaikodi/index.js +2 -2
- package/dist/modules/labsofscience/index.cjs +3 -3
- package/dist/modules/labsofscience/index.js +2 -2
- package/dist/modules/manufacturedops/index.cjs +2 -2
- package/dist/modules/manufacturedops/index.js +2 -2
- package/dist/modules/movethewheels/index.js +2 -2
- package/dist/modules/notifications/index.cjs +2 -2
- package/dist/modules/notifications/index.js +2 -2
- package/dist/modules/organizations/index.js +2 -2
- package/dist/modules/planmagnet/index.js +2 -2
- package/dist/modules/products/index.cjs +4 -4
- package/dist/modules/products/index.js +2 -2
- package/dist/modules/proserviceworld/index.cjs +2 -2
- package/dist/modules/proserviceworld/index.js +2 -2
- package/dist/modules/rbac/index.js +2 -2
- package/dist/modules/sandbox/index.cjs +32 -51
- package/dist/modules/sandbox/index.js +1 -1
- package/dist/modules/scheduler/index.cjs +2 -2
- package/dist/modules/scheduler/index.js +2 -2
- package/dist/modules/security/index.cjs +3 -3
- package/dist/modules/security/index.js +2 -2
- package/dist/modules/semanticfed/index.cjs +3 -3
- package/dist/modules/semanticfed/index.js +2 -2
- package/dist/modules/store/index.cjs +46 -40
- package/dist/modules/store/index.js +45 -39
- package/dist/modules/subscriberbot/index.cjs +1 -1
- package/dist/modules/subscriberbot/index.js +2 -2
- package/dist/modules/support/index.cjs +2 -2
- package/dist/modules/support/index.js +2 -2
- package/dist/modules/tags/index.js +2 -2
- package/dist/modules/technospam/index.cjs +2 -2
- package/dist/modules/technospam/index.js +2 -2
- package/dist/modules/theculturepost/index.js +2 -2
- package/dist/modules/theglobalfuel/index.cjs +2 -2
- package/dist/modules/theglobalfuel/index.js +2 -2
- package/dist/modules/timecampus/index.js +2 -2
- package/dist/modules/tours/index.cjs +2 -2
- package/dist/modules/tours/index.js +2 -2
- package/dist/modules/vibecontrols/index.cjs +573 -577
- package/dist/modules/vibecontrols/index.js +5 -4
- package/dist/modules/workspaces/index.cjs +4 -4
- package/dist/modules/workspaces/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-W4JZR7RJ.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,
|
|
1
|
+
import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var k=`
|
|
2
2
|
query CooGetBrand($id: ID!) {
|
|
3
3
|
cooBrand(id: $id) {
|
|
4
4
|
id name handle tagline bio status isFeatured aesthetics tags websiteUrl
|
|
@@ -279,4 +279,4 @@ import {a,b as b$1,h as h$1,p,g,i,d}from'../../chunk-W4JZR7RJ.js';import {o}from
|
|
|
279
279
|
query CooHealth {
|
|
280
280
|
cooHealth
|
|
281
281
|
}
|
|
282
|
-
`;function b(d,i){try{return JSON.parse(i)}catch{throw new o(`--${d} must be valid JSON`)}}function f(d){let i=Number.parseInt(d,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${d}"`);return i}function I(d){let i=Number.parseFloat(d);if(Number.isNaN(i))throw new o(`Expected a number but got "${d}"`);return i}function c(d){return d.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function st(d){let i$1=d.command("brands").description("Coolandlovely brand storefronts");i$1.command("list").description("List brand storefronts").option("--status <s>","Filter by brand status").option("--featured","Only featured brands").option("--limit <n>","Page size",f,50).option("--offset <n>","Offset",f,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(O,{status:t.status?t.status.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});h$1(t,o.cooListBrands.items,{headers:["ID","Name","Handle","Status","Featured"],rows:o.cooListBrands.items.map(e=>[p(e.id,12),e.name,e.handle,e.status,e.isFeatured?"yes":"no"])});}catch(o){g(o);}}),i$1.command("get").description("Get a brand by id").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(k,{id:t});if(!e.cooBrand)throw new o(`Brand ${t} not found`);h$1(o$1,e.cooBrand);}catch(e){g(e);}}),i$1.command("create").description("Create a brand storefront").requiredOption("--name <name>","Brand name").requiredOption("--handle <handle>","Unique storefront handle").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID (wspace-files-svc)").option("--cover-file <id>","Cover File ID (wspace-files-svc)").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,handle:t.handle};t.tagline&&(o.tagline=t.tagline),t.bio&&(o.bio=t.bio),t.websiteUrl&&(o.websiteUrl=t.websiteUrl),t.logoFile&&(o.logoFileId=t.logoFile),t.coverFile&&(o.coverFileId=t.coverFile),t.aesthetics&&(o.aesthetics=c(t.aesthetics)),t.tags&&(o.tags=c(t.tags));let e=await b$1(E,{input:o});i(`Brand created: ${e.cooCreateBrand.name}`),h$1(t,e.cooCreateBrand);}catch(o){g(o);}}),i$1.command("update").description("Update a brand storefront").argument("<id>","Brand ID").option("--name <name>","Brand name").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID").option("--cover-file <id>","Cover File ID").option("--featured <bool>","true|false",t=>t==="true").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.tagline!==void 0&&(e.tagline=o$1.tagline),o$1.bio!==void 0&&(e.bio=o$1.bio),o$1.websiteUrl!==void 0&&(e.websiteUrl=o$1.websiteUrl),o$1.logoFile&&(e.logoFileId=o$1.logoFile),o$1.coverFile&&(e.coverFileId=o$1.coverFile),o$1.featured!==void 0&&(e.isFeatured=o$1.featured),o$1.aesthetics&&(e.aesthetics=c(o$1.aesthetics)),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(h,{id:t,input:e});i("Brand updated"),h$1(o$1,p.cooUpdateBrand);}catch(e){g(e);}}),i$1.command("transition").description("Advance a brand through its publish lifecycle").argument("<id>","Brand ID").requiredOption("--status <s>","DRAFT|PENDING_REVIEW|PUBLISHED|SUSPENDED|ARCHIVED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(A,{id:t,status:o.status.toUpperCase()});i(`Brand status set to ${e.cooTransitionBrand.status}`),h$1(o,e.cooTransitionBrand);}catch(e){g(e);}}),i$1.command("archive").description("Archive a brand storefront").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(w,{id:t});i(`Brand archived: ${e.cooArchiveBrand}`),h$1(o,{archived:e.cooArchiveBrand});}catch(e){g(e);}});}function ct(d){let i$1=d.command("collections").description("Coolandlovely seasonal collections");i$1.command("list").description("List collections").option("--brand <id>","Filter by brand ID").option("--status <s>","Filter by collection status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(S,{brandId:t.brand,status:t.status?t.status.toUpperCase():void 0});h$1(t,o.cooListCollections,{headers:["ID","Name","Season","Status","Brand"],rows:o.cooListCollections.map(e=>[p(e.id,12),e.name,e.season,e.status,p(e.brandId,12)])});}catch(o){g(o);}}),i$1.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(R,{id:t});if(!e.cooCollection)throw new o(`Collection ${t} not found`);h$1(o$1,e.cooCollection);}catch(e){g(e);}}),i$1.command("create").description("Create a collection").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.description&&(o.description=t.description),t.season&&(o.season=t.season.toUpperCase()),t.coverFile&&(o.coverFileId=t.coverFile),t.publishAt&&(o.publishAt=t.publishAt),t.endAt&&(o.endAt=t.endAt),t.tags&&(o.tags=c(t.tags));let e=await b$1(D,{input:o});i(`Collection created: ${e.cooCreateCollection.name}`),h$1(t,e.cooCreateCollection);}catch(o){g(o);}}),i$1.command("update").description("Update a collection").argument("<id>","Collection ID").option("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.description!==void 0&&(e.description=o$1.description),o$1.season&&(e.season=o$1.season.toUpperCase()),o$1.coverFile&&(e.coverFileId=o$1.coverFile),o$1.publishAt&&(e.publishAt=o$1.publishAt),o$1.endAt&&(e.endAt=o$1.endAt),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(v,{id:t,input:e});i("Collection updated"),h$1(o$1,p.cooUpdateCollection);}catch(e){g(e);}}),i$1.command("publish").description("Publish a collection (go live)").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(T,{id:t});i(`Collection published: ${e.cooPublishCollection.status}`),h$1(o,e.cooPublishCollection);}catch(e){g(e);}});}function dt(d){let i$1=d.command("style-items").description("Coolandlovely style items (catalog products)");i$1.command("list").description("List style items").option("--brand <id>","Filter by brand ID").option("--collection <id>","Filter by collection ID").option("--category <c>","Filter by category").option("--status <s>","Filter by status").option("--limit <n>","Page size",f,50).option("--offset <n>","Offset",f,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(B,{brandId:t.brand,collectionId:t.collection,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});h$1(t,o.cooListStyleItems.items,{headers:["ID","Name","Category","Status","Price"],rows:o.cooListStyleItems.items.map(e=>[p(e.id,12),e.name,e.category,e.status,`${e.price} ${e.currency}`])});}catch(o){g(o);}}),i$1.command("get").description("Get a style item by id").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1($,{id:t});if(!e.cooStyleItem)throw new o(`Style item ${t} not found`);h$1(o$1,e.cooStyleItem);}catch(e){g(e);}}),i$1.command("create").description("Create a style item").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.category&&(o.category=t.category.toUpperCase()),t.collection&&(o.collectionId=t.collection),t.description&&(o.description=t.description),t.sku&&(o.sku=t.sku),t.price!==void 0&&(o.price=t.price),t.currency&&(o.currency=t.currency),t.imageFile&&(o.imageFileId=t.imageFile),t.colours&&(o.colours=c(t.colours)),t.sizes&&(o.sizes=c(t.sizes)),t.materials&&(o.materials=c(t.materials)),t.tags&&(o.tags=c(t.tags));let e=await b$1(U,{input:o});i(`Style item created: ${e.cooCreateStyleItem.name}`),h$1(t,e.cooCreateStyleItem);}catch(o){g(o);}}),i$1.command("update").description("Update a style item").argument("<id>","Style item ID").option("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.category&&(e.category=o$1.category.toUpperCase()),o$1.collection&&(e.collectionId=o$1.collection),o$1.description!==void 0&&(e.description=o$1.description),o$1.sku!==void 0&&(e.sku=o$1.sku),o$1.price!==void 0&&(e.price=o$1.price),o$1.currency&&(e.currency=o$1.currency),o$1.imageFile&&(e.imageFileId=o$1.imageFile),o$1.colours&&(e.colours=c(o$1.colours)),o$1.sizes&&(e.sizes=c(o$1.sizes)),o$1.materials&&(e.materials=c(o$1.materials)),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(_,{id:t,input:e});i("Style item updated"),h$1(o$1,p.cooUpdateStyleItem);}catch(e){g(e);}}),i$1.command("archive").description("Archive (retire) a style item").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(N,{id:t});i(`Style item archived: ${e.cooArchiveStyleItem}`),h$1(o,{archived:e.cooArchiveStyleItem});}catch(e){g(e);}});}function lt(d){let i$1=d.command("collaborations").description("Coolandlovely brand \u2194 creator collaborations");i$1.command("list").description("List collaborations").option("--brand <id>","Filter by brand ID").option("--creator <id>","Filter by creator ID").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(P,{brandId:t.brand,creatorId:t.creator,status:t.status?t.status.toUpperCase():void 0});h$1(t,o.cooListCollaborations,{headers:["ID","Title","Status","Role","Brand","Creator"],rows:o.cooListCollaborations.map(e=>[p(e.id,12),e.title,e.status,e.role,p(e.brandId,12),p(e.creatorId,12)])});}catch(o){g(o);}}),i$1.command("get").description("Get a collaboration by id").argument("<id>","Collaboration ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(F,{id:t});if(!e.cooCollaboration)throw new o(`Collaboration ${t} not found`);h$1(o$1,e.cooCollaboration);}catch(e){g(e);}}),i$1.command("create").description("Create a collaboration").requiredOption("--brand <id>","Brand ID").requiredOption("--creator <id>","Creator user ID").requiredOption("--title <title>","Collaboration title").option("--brief <s>","Brief").option("--collection <id>","Collection ID").option("--role <r>","CREATOR|STYLIST|PHOTOGRAPHER|BRAND").option("--compensation <n>","Compensation",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO 8601)").option("--end-date <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,creatorId:t.creator,title:t.title};t.brief&&(o.brief=t.brief),t.collection&&(o.collectionId=t.collection),t.role&&(o.role=t.role.toUpperCase()),t.compensation!==void 0&&(o.compensation=t.compensation),t.currency&&(o.currency=t.currency),t.startDate&&(o.startDate=t.startDate),t.endDate&&(o.endDate=t.endDate),t.tags&&(o.tags=c(t.tags));let e=await b$1(W,{input:o});i(`Collaboration created: ${e.cooCreateCollaboration.title}`),h$1(t,e.cooCreateCollaboration);}catch(o){g(o);}}),i$1.command("transition").description("Advance a collaboration through its lifecycle").argument("<id>","Collaboration ID").requiredOption("--status <s>","PROPOSED|ACCEPTED|DECLINED|IN_PROGRESS|PUBLISHED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(x,{id:t,status:o.status.toUpperCase()});i(`Collaboration status set to ${e.cooTransitionCollaboration.status}`),h$1(o,e.cooTransitionCollaboration);}catch(e){g(e);}});}function mt(d){let i$1=d.command("looks").description("Coolandlovely styled looks");i$1.command("list").description("List looks").option("--author <id>","Filter by author ID").option("--occasion <o>","Filter by occasion").option("--featured","Only featured looks").option("--limit <n>","Page size",f,50).option("--offset <n>","Offset",f,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(z,{authorId:t.author,occasion:t.occasion?t.occasion.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});h$1(t,o.cooListLooks.items,{headers:["ID","Title","Occasion","Visibility","Likes","Featured"],rows:o.cooListLooks.items.map(e=>[p(e.id,12),e.title,e.occasion,e.visibility,String(e.likeCount??0),e.isFeatured?"yes":"no"])});}catch(o){g(o);}}),i$1.command("get").description("Get a look by id").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(M,{id:t});if(!e.cooLook)throw new o(`Look ${t} not found`);h$1(o$1,e.cooLook);}catch(e){g(e);}}),i$1.command("create").description("Create a look").requiredOption("--title <title>","Look title").option("--caption <s>","Caption").option("--collaboration <id>","Collaboration ID").option("--image-file <id>","Image File ID").option("--occasion <o>","EVERYDAY|WORK|EVENING|PARTY|WEDDING_GUEST|VACATION|ACTIVE|OTHER").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--items <json>","Look items JSON array: [{ styleItemId, position?, styling? }]").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o$1={title:t.title};if(t.caption&&(o$1.caption=t.caption),t.collaboration&&(o$1.collaborationId=t.collaboration),t.imageFile&&(o$1.imageFileId=t.imageFile),t.occasion&&(o$1.occasion=t.occasion.toUpperCase()),t.visibility&&(o$1.visibility=t.visibility.toUpperCase()),t.items){let p=b("items",t.items);if(!Array.isArray(p))throw new o("--items must be a JSON array");o$1.items=p;}t.tags&&(o$1.tags=c(t.tags));let e=await b$1(K,{input:o$1});i(`Look created: ${e.cooCreateLook.title}`),h$1(t,e.cooCreateLook);}catch(o){g(o);}}),i$1.command("update").description("Update a look").argument("<id>","Look ID").option("--title <title>","Look title").option("--caption <s>","Caption").option("--image-file <id>","Image File ID").option("--occasion <o>","Occasion").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.title&&(e.title=o$1.title),o$1.caption!==void 0&&(e.caption=o$1.caption),o$1.imageFile&&(e.imageFileId=o$1.imageFile),o$1.occasion&&(e.occasion=o$1.occasion.toUpperCase()),o$1.visibility&&(e.visibility=o$1.visibility.toUpperCase()),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(G,{id:t,input:e});i("Look updated"),h$1(o$1,p.cooUpdateLook);}catch(e){g(e);}}),i$1.command("publish").description("Publish a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(q,{id:t});i(`Look published: ${e.cooPublishLook.title}`),h$1(o,e.cooPublishLook);}catch(e){g(e);}}),i$1.command("like").description("Like a published look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(H,{id:t});i(`Look liked (likes: ${e.cooLikeLook.likeCount??0})`),h$1(o,e.cooLikeLook);}catch(e){g(e);}}),i$1.command("delete").description("Delete a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(Y,{id:t});i(`Look deleted: ${e.cooDeleteLook}`),h$1(o,{deleted:e.cooDeleteLook});}catch(e){g(e);}});}function pt(d){let i$1=d.command("lookbooks").description("Coolandlovely curated lookbooks");i$1.command("list").description("List lookbooks").option("--owner <id>","Filter by owner ID").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(j,{ownerId:t.owner});h$1(t,o.cooListLookbooks,{headers:["ID","Name","Visibility","Owner"],rows:o.cooListLookbooks.map(e=>[p(e.id,12),e.name,e.visibility,p(e.ownerId,12)])});}catch(o){g(o);}}),i$1.command("get").description("Get a lookbook by id").argument("<id>","Lookbook ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(V,{id:t});if(!e.cooLookbook)throw new o(`Lookbook ${t} not found`);h$1(o$1,e.cooLookbook);}catch(e){g(e);}}),i$1.command("create").description("Create a lookbook").requiredOption("--name <name>","Lookbook name").option("--description <s>","Description").option("--cover-file <id>","Cover File ID").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.description&&(o.description=t.description),t.coverFile&&(o.coverFileId=t.coverFile),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.tags&&(o.tags=c(t.tags));let e=await b$1(J,{input:o});i(`Lookbook created: ${e.cooCreateLookbook.name}`),h$1(t,e.cooCreateLookbook);}catch(o){g(o);}}),i$1.command("add-entry").description("Add an entry (look or style item) to a lookbook").requiredOption("--lookbook <id>","Lookbook ID").option("--look <id>","Look ID to add").option("--style-item <id>","Style item ID to add").option("--note <s>","Note").option("--position <n>","Position",f).option("-f, --format <format>","Output format").action(async t=>{try{let o={lookbookId:t.lookbook};t.look&&(o.lookId=t.look),t.styleItem&&(o.styleItemId=t.styleItem),t.note&&(o.note=t.note),t.position!==void 0&&(o.position=t.position);let e=await b$1(Q,{input:o});i(`Lookbook entry added: ${e.cooAddLookbookEntry.id}`),h$1(t,e.cooAddLookbookEntry);}catch(o){g(o);}}),i$1.command("remove-entry").description("Remove an entry from a lookbook").argument("<id>","Lookbook entry ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(X,{id:t});i(`Lookbook entry removed: ${e.cooRemoveLookbookEntry}`),h$1(o,{removed:e.cooRemoveLookbookEntry});}catch(e){g(e);}});}function ut(d){let i$1=d.command("wardrobe").description("Coolandlovely digital wardrobe (the shopper's own pieces)");i$1.command("list").description("List wardrobe items").option("--category <c>","Filter by category").option("--source <s>","Filter by source").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(Z,{category:t.category?t.category.toUpperCase():void 0,source:t.source?t.source.toUpperCase():void 0});h$1(t,o.cooListWardrobeItems,{headers:["ID","Name","Category","Source","Times Worn"],rows:o.cooListWardrobeItems.map(e=>[p(e.id,12),e.name,e.category,e.source,String(e.timesWorn??0)])});}catch(o){g(o);}}),i$1.command("create").description("Add an item to the wardrobe").requiredOption("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--style-item <id>","Linked style item ID").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.brandName&&(o.brandName=t.brandName),t.category&&(o.category=t.category.toUpperCase()),t.colour&&(o.colour=t.colour),t.size&&(o.size=t.size),t.source&&(o.source=t.source.toUpperCase()),t.styleItem&&(o.styleItemId=t.styleItem),t.imageFile&&(o.imageFileId=t.imageFile),t.notes&&(o.notes=t.notes),t.tags&&(o.tags=c(t.tags));let e=await b$1(tt,{input:o});i(`Wardrobe item added: ${e.cooCreateWardrobeItem.name}`),h$1(t,e.cooCreateWardrobeItem);}catch(o){g(o);}}),i$1.command("update").description("Update a wardrobe item").argument("<id>","Wardrobe item ID").option("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.brandName!==void 0&&(e.brandName=o$1.brandName),o$1.category&&(e.category=o$1.category.toUpperCase()),o$1.colour!==void 0&&(e.colour=o$1.colour),o$1.size!==void 0&&(e.size=o$1.size),o$1.source&&(e.source=o$1.source.toUpperCase()),o$1.imageFile&&(e.imageFileId=o$1.imageFile),o$1.notes!==void 0&&(e.notes=o$1.notes),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(ot,{id:t,input:e});i("Wardrobe item updated"),h$1(o$1,p.cooUpdateWardrobeItem);}catch(e){g(e);}}),i$1.command("wear").description("Log that the shopper wore a wardrobe piece").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(et,{id:t});i(`Wear logged (times worn: ${e.cooLogWardrobeWear.timesWorn??0})`),h$1(o,e.cooLogWardrobeWear);}catch(e){g(e);}}),i$1.command("remove").description("Remove a wardrobe item").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(it,{id:t});i(`Wardrobe item removed: ${e.cooRemoveWardrobeItem}`),h$1(o,{removed:e.cooRemoveWardrobeItem});}catch(e){g(e);}});}function gt(d){let i$1=d.command("profile").description("Coolandlovely shopper style profile (self-scoped)");i$1.command("get").description("Show the calling shopper's own style profile").option("-f, --format <format>","Output format").action(async t=>{try{let o$1=await b$1(rt);if(!o$1.cooMyStyleProfile)throw new o("No style profile yet. Run `profile upsert` to create one.");h$1(t,o$1.cooMyStyleProfile);}catch(o){g(o);}}),i$1.command("upsert").description("Create or update the calling shopper style profile").option("--display-name <s>","Display name").option("--bio <s>","Bio").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--favourite-brands <csv>","Comma-separated favourite brands").option("--palette <csv>","Comma-separated colour palette").option("--style-preferences <csv>","Comma-separated style preferences").option("--sizes <json>",'Sizes JSON (e.g. {"tops":"M","shoes":"8"})').option("-f, --format <format>","Output format").action(async t=>{try{let o={};t.displayName&&(o.displayName=t.displayName),t.bio!==void 0&&(o.bio=t.bio),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.favouriteBrands&&(o.favouriteBrands=c(t.favouriteBrands)),t.palette&&(o.palette=c(t.palette)),t.stylePreferences&&(o.stylePreferences=c(t.stylePreferences)),t.sizes&&(o.sizes=b("sizes",t.sizes));let e=await b$1(nt,{input:o});i("Style profile saved"),h$1(t,e.cooUpsertStyleProfile);}catch(o){g(o);}});}function ft(d$1){d$1.command("health").description("Coolandlovely service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(at);i(t.cooHealth),h$1(i$1,{health:t.cooHealth});}catch(t){g(t);}});}var yt={id:"coolandlovely",version:"1.0.0",displayName:"Coolandlovely",dependsOn:["auth","workspaces"],register(d,i){a(i);let t=d.command("coolandlovely").description("Coolandlovely fashion & lifestyle platform");st(t),ct(t),dt(t),lt(t),mt(t),pt(t),ut(t),gt(t),ft(t);}},ao=yt;export{ao as default};
|
|
282
|
+
`;function b(d,i){try{return JSON.parse(i)}catch{throw new o(`--${d} must be valid JSON`)}}function f(d){let i=Number.parseInt(d,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${d}"`);return i}function I(d){let i=Number.parseFloat(d);if(Number.isNaN(i))throw new o(`Expected a number but got "${d}"`);return i}function c(d){return d.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function st(d){let i$1=d.command("brands").description("Coolandlovely brand storefronts");i$1.command("list").description("List brand storefronts").option("--status <s>","Filter by brand status").option("--featured","Only featured brands").option("--limit <n>","Page size",f,50).option("--offset <n>","Offset",f,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(O,{status:t.status?t.status.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,o.cooListBrands.items,{headers:["ID","Name","Handle","Status","Featured"],rows:o.cooListBrands.items.map(e=>[r(e.id,12),e.name,e.handle,e.status,e.isFeatured?"yes":"no"])});}catch(o){h$1(o);}}),i$1.command("get").description("Get a brand by id").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(k,{id:t});if(!e.cooBrand)throw new o(`Brand ${t} not found`);i(o$1,e.cooBrand);}catch(e){h$1(e);}}),i$1.command("create").description("Create a brand storefront").requiredOption("--name <name>","Brand name").requiredOption("--handle <handle>","Unique storefront handle").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID (wspace-files-svc)").option("--cover-file <id>","Cover File ID (wspace-files-svc)").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,handle:t.handle};t.tagline&&(o.tagline=t.tagline),t.bio&&(o.bio=t.bio),t.websiteUrl&&(o.websiteUrl=t.websiteUrl),t.logoFile&&(o.logoFileId=t.logoFile),t.coverFile&&(o.coverFileId=t.coverFile),t.aesthetics&&(o.aesthetics=c(t.aesthetics)),t.tags&&(o.tags=c(t.tags));let e=await b$1(E,{input:o});k$1(`Brand created: ${e.cooCreateBrand.name}`),i(t,e.cooCreateBrand);}catch(o){h$1(o);}}),i$1.command("update").description("Update a brand storefront").argument("<id>","Brand ID").option("--name <name>","Brand name").option("--tagline <s>","Tagline").option("--bio <s>","Bio").option("--website-url <url>","Website URL").option("--logo-file <id>","Logo File ID").option("--cover-file <id>","Cover File ID").option("--featured <bool>","true|false",t=>t==="true").option("--aesthetics <csv>","Comma-separated aesthetics").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.tagline!==void 0&&(e.tagline=o$1.tagline),o$1.bio!==void 0&&(e.bio=o$1.bio),o$1.websiteUrl!==void 0&&(e.websiteUrl=o$1.websiteUrl),o$1.logoFile&&(e.logoFileId=o$1.logoFile),o$1.coverFile&&(e.coverFileId=o$1.coverFile),o$1.featured!==void 0&&(e.isFeatured=o$1.featured),o$1.aesthetics&&(e.aesthetics=c(o$1.aesthetics)),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(h,{id:t,input:e});k$1("Brand updated"),i(o$1,p.cooUpdateBrand);}catch(e){h$1(e);}}),i$1.command("transition").description("Advance a brand through its publish lifecycle").argument("<id>","Brand ID").requiredOption("--status <s>","DRAFT|PENDING_REVIEW|PUBLISHED|SUSPENDED|ARCHIVED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(A,{id:t,status:o.status.toUpperCase()});k$1(`Brand status set to ${e.cooTransitionBrand.status}`),i(o,e.cooTransitionBrand);}catch(e){h$1(e);}}),i$1.command("archive").description("Archive a brand storefront").argument("<id>","Brand ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(w,{id:t});k$1(`Brand archived: ${e.cooArchiveBrand}`),i(o,{archived:e.cooArchiveBrand});}catch(e){h$1(e);}});}function ct(d){let i$1=d.command("collections").description("Coolandlovely seasonal collections");i$1.command("list").description("List collections").option("--brand <id>","Filter by brand ID").option("--status <s>","Filter by collection status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(S,{brandId:t.brand,status:t.status?t.status.toUpperCase():void 0});i(t,o.cooListCollections,{headers:["ID","Name","Season","Status","Brand"],rows:o.cooListCollections.map(e=>[r(e.id,12),e.name,e.season,e.status,r(e.brandId,12)])});}catch(o){h$1(o);}}),i$1.command("get").description("Get a collection by id").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(R,{id:t});if(!e.cooCollection)throw new o(`Collection ${t} not found`);i(o$1,e.cooCollection);}catch(e){h$1(e);}}),i$1.command("create").description("Create a collection").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.description&&(o.description=t.description),t.season&&(o.season=t.season.toUpperCase()),t.coverFile&&(o.coverFileId=t.coverFile),t.publishAt&&(o.publishAt=t.publishAt),t.endAt&&(o.endAt=t.endAt),t.tags&&(o.tags=c(t.tags));let e=await b$1(D,{input:o});k$1(`Collection created: ${e.cooCreateCollection.name}`),i(t,e.cooCreateCollection);}catch(o){h$1(o);}}),i$1.command("update").description("Update a collection").argument("<id>","Collection ID").option("--name <name>","Collection name").option("--description <s>","Description").option("--season <s>","ALL_SEASON|SPRING|SUMMER|AUTUMN|WINTER|RESORT").option("--cover-file <id>","Cover File ID").option("--publish-at <iso>","Scheduled publish date (ISO 8601)").option("--end-at <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.description!==void 0&&(e.description=o$1.description),o$1.season&&(e.season=o$1.season.toUpperCase()),o$1.coverFile&&(e.coverFileId=o$1.coverFile),o$1.publishAt&&(e.publishAt=o$1.publishAt),o$1.endAt&&(e.endAt=o$1.endAt),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(v,{id:t,input:e});k$1("Collection updated"),i(o$1,p.cooUpdateCollection);}catch(e){h$1(e);}}),i$1.command("publish").description("Publish a collection (go live)").argument("<id>","Collection ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(T,{id:t});k$1(`Collection published: ${e.cooPublishCollection.status}`),i(o,e.cooPublishCollection);}catch(e){h$1(e);}});}function dt(d){let i$1=d.command("style-items").description("Coolandlovely style items (catalog products)");i$1.command("list").description("List style items").option("--brand <id>","Filter by brand ID").option("--collection <id>","Filter by collection ID").option("--category <c>","Filter by category").option("--status <s>","Filter by status").option("--limit <n>","Page size",f,50).option("--offset <n>","Offset",f,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(B,{brandId:t.brand,collectionId:t.collection,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,o.cooListStyleItems.items,{headers:["ID","Name","Category","Status","Price"],rows:o.cooListStyleItems.items.map(e=>[r(e.id,12),e.name,e.category,e.status,`${e.price} ${e.currency}`])});}catch(o){h$1(o);}}),i$1.command("get").description("Get a style item by id").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1($,{id:t});if(!e.cooStyleItem)throw new o(`Style item ${t} not found`);i(o$1,e.cooStyleItem);}catch(e){h$1(e);}}),i$1.command("create").description("Create a style item").requiredOption("--brand <id>","Brand ID").requiredOption("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,name:t.name};t.category&&(o.category=t.category.toUpperCase()),t.collection&&(o.collectionId=t.collection),t.description&&(o.description=t.description),t.sku&&(o.sku=t.sku),t.price!==void 0&&(o.price=t.price),t.currency&&(o.currency=t.currency),t.imageFile&&(o.imageFileId=t.imageFile),t.colours&&(o.colours=c(t.colours)),t.sizes&&(o.sizes=c(t.sizes)),t.materials&&(o.materials=c(t.materials)),t.tags&&(o.tags=c(t.tags));let e=await b$1(U,{input:o});k$1(`Style item created: ${e.cooCreateStyleItem.name}`),i(t,e.cooCreateStyleItem);}catch(o){h$1(o);}}),i$1.command("update").description("Update a style item").argument("<id>","Style item ID").option("--name <name>","Item name").option("--category <c>","Category").option("--collection <id>","Collection ID").option("--description <s>","Description").option("--sku <sku>","SKU").option("--price <n>","Price",I).option("--currency <c>","Currency code").option("--image-file <id>","Image File ID").option("--colours <csv>","Comma-separated colours").option("--sizes <csv>","Comma-separated sizes").option("--materials <csv>","Comma-separated materials").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.category&&(e.category=o$1.category.toUpperCase()),o$1.collection&&(e.collectionId=o$1.collection),o$1.description!==void 0&&(e.description=o$1.description),o$1.sku!==void 0&&(e.sku=o$1.sku),o$1.price!==void 0&&(e.price=o$1.price),o$1.currency&&(e.currency=o$1.currency),o$1.imageFile&&(e.imageFileId=o$1.imageFile),o$1.colours&&(e.colours=c(o$1.colours)),o$1.sizes&&(e.sizes=c(o$1.sizes)),o$1.materials&&(e.materials=c(o$1.materials)),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(_,{id:t,input:e});k$1("Style item updated"),i(o$1,p.cooUpdateStyleItem);}catch(e){h$1(e);}}),i$1.command("archive").description("Archive (retire) a style item").argument("<id>","Style item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(N,{id:t});k$1(`Style item archived: ${e.cooArchiveStyleItem}`),i(o,{archived:e.cooArchiveStyleItem});}catch(e){h$1(e);}});}function lt(d){let i$1=d.command("collaborations").description("Coolandlovely brand \u2194 creator collaborations");i$1.command("list").description("List collaborations").option("--brand <id>","Filter by brand ID").option("--creator <id>","Filter by creator ID").option("--status <s>","Filter by status").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(P,{brandId:t.brand,creatorId:t.creator,status:t.status?t.status.toUpperCase():void 0});i(t,o.cooListCollaborations,{headers:["ID","Title","Status","Role","Brand","Creator"],rows:o.cooListCollaborations.map(e=>[r(e.id,12),e.title,e.status,e.role,r(e.brandId,12),r(e.creatorId,12)])});}catch(o){h$1(o);}}),i$1.command("get").description("Get a collaboration by id").argument("<id>","Collaboration ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(F,{id:t});if(!e.cooCollaboration)throw new o(`Collaboration ${t} not found`);i(o$1,e.cooCollaboration);}catch(e){h$1(e);}}),i$1.command("create").description("Create a collaboration").requiredOption("--brand <id>","Brand ID").requiredOption("--creator <id>","Creator user ID").requiredOption("--title <title>","Collaboration title").option("--brief <s>","Brief").option("--collection <id>","Collection ID").option("--role <r>","CREATOR|STYLIST|PHOTOGRAPHER|BRAND").option("--compensation <n>","Compensation",I).option("--currency <c>","Currency code").option("--start-date <iso>","Start date (ISO 8601)").option("--end-date <iso>","End date (ISO 8601)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={brandId:t.brand,creatorId:t.creator,title:t.title};t.brief&&(o.brief=t.brief),t.collection&&(o.collectionId=t.collection),t.role&&(o.role=t.role.toUpperCase()),t.compensation!==void 0&&(o.compensation=t.compensation),t.currency&&(o.currency=t.currency),t.startDate&&(o.startDate=t.startDate),t.endDate&&(o.endDate=t.endDate),t.tags&&(o.tags=c(t.tags));let e=await b$1(W,{input:o});k$1(`Collaboration created: ${e.cooCreateCollaboration.title}`),i(t,e.cooCreateCollaboration);}catch(o){h$1(o);}}),i$1.command("transition").description("Advance a collaboration through its lifecycle").argument("<id>","Collaboration ID").requiredOption("--status <s>","PROPOSED|ACCEPTED|DECLINED|IN_PROGRESS|PUBLISHED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(x,{id:t,status:o.status.toUpperCase()});k$1(`Collaboration status set to ${e.cooTransitionCollaboration.status}`),i(o,e.cooTransitionCollaboration);}catch(e){h$1(e);}});}function mt(d){let i$1=d.command("looks").description("Coolandlovely styled looks");i$1.command("list").description("List looks").option("--author <id>","Filter by author ID").option("--occasion <o>","Filter by occasion").option("--featured","Only featured looks").option("--limit <n>","Page size",f,50).option("--offset <n>","Offset",f,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(z,{authorId:t.author,occasion:t.occasion?t.occasion.toUpperCase():void 0,featured:t.featured?!0:void 0,pagination:{limit:t.limit,offset:t.offset,cursor:t.cursor}});i(t,o.cooListLooks.items,{headers:["ID","Title","Occasion","Visibility","Likes","Featured"],rows:o.cooListLooks.items.map(e=>[r(e.id,12),e.title,e.occasion,e.visibility,String(e.likeCount??0),e.isFeatured?"yes":"no"])});}catch(o){h$1(o);}}),i$1.command("get").description("Get a look by id").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(M,{id:t});if(!e.cooLook)throw new o(`Look ${t} not found`);i(o$1,e.cooLook);}catch(e){h$1(e);}}),i$1.command("create").description("Create a look").requiredOption("--title <title>","Look title").option("--caption <s>","Caption").option("--collaboration <id>","Collaboration ID").option("--image-file <id>","Image File ID").option("--occasion <o>","EVERYDAY|WORK|EVENING|PARTY|WEDDING_GUEST|VACATION|ACTIVE|OTHER").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--items <json>","Look items JSON array: [{ styleItemId, position?, styling? }]").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o$1={title:t.title};if(t.caption&&(o$1.caption=t.caption),t.collaboration&&(o$1.collaborationId=t.collaboration),t.imageFile&&(o$1.imageFileId=t.imageFile),t.occasion&&(o$1.occasion=t.occasion.toUpperCase()),t.visibility&&(o$1.visibility=t.visibility.toUpperCase()),t.items){let p=b("items",t.items);if(!Array.isArray(p))throw new o("--items must be a JSON array");o$1.items=p;}t.tags&&(o$1.tags=c(t.tags));let e=await b$1(K,{input:o$1});k$1(`Look created: ${e.cooCreateLook.title}`),i(t,e.cooCreateLook);}catch(o){h$1(o);}}),i$1.command("update").description("Update a look").argument("<id>","Look ID").option("--title <title>","Look title").option("--caption <s>","Caption").option("--image-file <id>","Image File ID").option("--occasion <o>","Occasion").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.title&&(e.title=o$1.title),o$1.caption!==void 0&&(e.caption=o$1.caption),o$1.imageFile&&(e.imageFileId=o$1.imageFile),o$1.occasion&&(e.occasion=o$1.occasion.toUpperCase()),o$1.visibility&&(e.visibility=o$1.visibility.toUpperCase()),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(G,{id:t,input:e});k$1("Look updated"),i(o$1,p.cooUpdateLook);}catch(e){h$1(e);}}),i$1.command("publish").description("Publish a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(q,{id:t});k$1(`Look published: ${e.cooPublishLook.title}`),i(o,e.cooPublishLook);}catch(e){h$1(e);}}),i$1.command("like").description("Like a published look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(H,{id:t});k$1(`Look liked (likes: ${e.cooLikeLook.likeCount??0})`),i(o,e.cooLikeLook);}catch(e){h$1(e);}}),i$1.command("delete").description("Delete a look").argument("<id>","Look ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(Y,{id:t});k$1(`Look deleted: ${e.cooDeleteLook}`),i(o,{deleted:e.cooDeleteLook});}catch(e){h$1(e);}});}function pt(d){let i$1=d.command("lookbooks").description("Coolandlovely curated lookbooks");i$1.command("list").description("List lookbooks").option("--owner <id>","Filter by owner ID").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(j,{ownerId:t.owner});i(t,o.cooListLookbooks,{headers:["ID","Name","Visibility","Owner"],rows:o.cooListLookbooks.map(e=>[r(e.id,12),e.name,e.visibility,r(e.ownerId,12)])});}catch(o){h$1(o);}}),i$1.command("get").description("Get a lookbook by id").argument("<id>","Lookbook ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(V,{id:t});if(!e.cooLookbook)throw new o(`Lookbook ${t} not found`);i(o$1,e.cooLookbook);}catch(e){h$1(e);}}),i$1.command("create").description("Create a lookbook").requiredOption("--name <name>","Lookbook name").option("--description <s>","Description").option("--cover-file <id>","Cover File ID").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.description&&(o.description=t.description),t.coverFile&&(o.coverFileId=t.coverFile),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.tags&&(o.tags=c(t.tags));let e=await b$1(J,{input:o});k$1(`Lookbook created: ${e.cooCreateLookbook.name}`),i(t,e.cooCreateLookbook);}catch(o){h$1(o);}}),i$1.command("add-entry").description("Add an entry (look or style item) to a lookbook").requiredOption("--lookbook <id>","Lookbook ID").option("--look <id>","Look ID to add").option("--style-item <id>","Style item ID to add").option("--note <s>","Note").option("--position <n>","Position",f).option("-f, --format <format>","Output format").action(async t=>{try{let o={lookbookId:t.lookbook};t.look&&(o.lookId=t.look),t.styleItem&&(o.styleItemId=t.styleItem),t.note&&(o.note=t.note),t.position!==void 0&&(o.position=t.position);let e=await b$1(Q,{input:o});k$1(`Lookbook entry added: ${e.cooAddLookbookEntry.id}`),i(t,e.cooAddLookbookEntry);}catch(o){h$1(o);}}),i$1.command("remove-entry").description("Remove an entry from a lookbook").argument("<id>","Lookbook entry ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(X,{id:t});k$1(`Lookbook entry removed: ${e.cooRemoveLookbookEntry}`),i(o,{removed:e.cooRemoveLookbookEntry});}catch(e){h$1(e);}});}function ut(d){let i$1=d.command("wardrobe").description("Coolandlovely digital wardrobe (the shopper's own pieces)");i$1.command("list").description("List wardrobe items").option("--category <c>","Filter by category").option("--source <s>","Filter by source").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(Z,{category:t.category?t.category.toUpperCase():void 0,source:t.source?t.source.toUpperCase():void 0});i(t,o.cooListWardrobeItems,{headers:["ID","Name","Category","Source","Times Worn"],rows:o.cooListWardrobeItems.map(e=>[r(e.id,12),e.name,e.category,e.source,String(e.timesWorn??0)])});}catch(o){h$1(o);}}),i$1.command("create").description("Add an item to the wardrobe").requiredOption("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--style-item <id>","Linked style item ID").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name};t.brandName&&(o.brandName=t.brandName),t.category&&(o.category=t.category.toUpperCase()),t.colour&&(o.colour=t.colour),t.size&&(o.size=t.size),t.source&&(o.source=t.source.toUpperCase()),t.styleItem&&(o.styleItemId=t.styleItem),t.imageFile&&(o.imageFileId=t.imageFile),t.notes&&(o.notes=t.notes),t.tags&&(o.tags=c(t.tags));let e=await b$1(tt,{input:o});k$1(`Wardrobe item added: ${e.cooCreateWardrobeItem.name}`),i(t,e.cooCreateWardrobeItem);}catch(o){h$1(o);}}),i$1.command("update").description("Update a wardrobe item").argument("<id>","Wardrobe item ID").option("--name <name>","Item name").option("--brand-name <s>","Brand name (free text)").option("--category <c>","Category").option("--colour <s>","Colour").option("--size <s>","Size").option("--source <s>","OWNED|PURCHASED_ON_PLATFORM|GIFTED|WISHLIST").option("--image-file <id>","Image File ID").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e={};if(o$1.name&&(e.name=o$1.name),o$1.brandName!==void 0&&(e.brandName=o$1.brandName),o$1.category&&(e.category=o$1.category.toUpperCase()),o$1.colour!==void 0&&(e.colour=o$1.colour),o$1.size!==void 0&&(e.size=o$1.size),o$1.source&&(e.source=o$1.source.toUpperCase()),o$1.imageFile&&(e.imageFileId=o$1.imageFile),o$1.notes!==void 0&&(e.notes=o$1.notes),o$1.tags&&(e.tags=c(o$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let p=await b$1(ot,{id:t,input:e});k$1("Wardrobe item updated"),i(o$1,p.cooUpdateWardrobeItem);}catch(e){h$1(e);}}),i$1.command("wear").description("Log that the shopper wore a wardrobe piece").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(et,{id:t});k$1(`Wear logged (times worn: ${e.cooLogWardrobeWear.timesWorn??0})`),i(o,e.cooLogWardrobeWear);}catch(e){h$1(e);}}),i$1.command("remove").description("Remove a wardrobe item").argument("<id>","Wardrobe item ID").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1(it,{id:t});k$1(`Wardrobe item removed: ${e.cooRemoveWardrobeItem}`),i(o,{removed:e.cooRemoveWardrobeItem});}catch(e){h$1(e);}});}function gt(d){let i$1=d.command("profile").description("Coolandlovely shopper style profile (self-scoped)");i$1.command("get").description("Show the calling shopper's own style profile").option("-f, --format <format>","Output format").action(async t=>{try{let o$1=await b$1(rt);if(!o$1.cooMyStyleProfile)throw new o("No style profile yet. Run `profile upsert` to create one.");i(t,o$1.cooMyStyleProfile);}catch(o){h$1(o);}}),i$1.command("upsert").description("Create or update the calling shopper style profile").option("--display-name <s>","Display name").option("--bio <s>","Bio").option("--visibility <v>","PUBLIC|FOLLOWERS|PRIVATE").option("--favourite-brands <csv>","Comma-separated favourite brands").option("--palette <csv>","Comma-separated colour palette").option("--style-preferences <csv>","Comma-separated style preferences").option("--sizes <json>",'Sizes JSON (e.g. {"tops":"M","shoes":"8"})').option("-f, --format <format>","Output format").action(async t=>{try{let o={};t.displayName&&(o.displayName=t.displayName),t.bio!==void 0&&(o.bio=t.bio),t.visibility&&(o.visibility=t.visibility.toUpperCase()),t.favouriteBrands&&(o.favouriteBrands=c(t.favouriteBrands)),t.palette&&(o.palette=c(t.palette)),t.stylePreferences&&(o.stylePreferences=c(t.stylePreferences)),t.sizes&&(o.sizes=b("sizes",t.sizes));let e=await b$1(nt,{input:o});k$1("Style profile saved"),i(t,e.cooUpsertStyleProfile);}catch(o){h$1(o);}});}function ft(d$1){d$1.command("health").description("Coolandlovely service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(at);k$1(t.cooHealth),i(i$1,{health:t.cooHealth});}catch(t){h$1(t);}});}var yt={id:"coolandlovely",version:"1.0.0",displayName:"Coolandlovely",dependsOn:["auth","workspaces"],register(d,i){a(i);let t=d.command("coolandlovely").description("Coolandlovely fashion & lifestyle platform");st(t),ct(t),dt(t),lt(t),mt(t),pt(t),ut(t),gt(t),ft(t);}},ao=yt;export{ao as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var u=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},E=class extends u{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 u=class extends Error{exitCode;hint;constructor(o,t){super(o),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},E=class extends u{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 S=null;function b(r){S=r;}function h(){if(!S)throw new I("vibecontrols module helpers used before setHelpersContext was called");return S}function Pt(){let r=h();if(!r.auth.isAuthenticated())throw new E("Authentication required.",{hint:`Run \`${r.productName} auth login\` to authenticate.`})}async function a(r,o){return Pt(),h().gql.workspace.request(r,o)}async function k(r,o){return h().gql.workspaceAuthOnly.request(r,o)}function s(r){let o=r instanceof Error?r.message:String(r);throw new u(o)}function i(r,o,t){h().output.formatAndOutput(r,o,t);}function c(r){h().output.printSuccess(r);}function A(r){return h().output.formatDate(r)}function p(r,o){return h().output.truncate(r,o)}var R=`
|
|
2
2
|
query CosListCollections {
|
|
3
3
|
cosListCollections {
|
|
4
4
|
id name slug description isPublic tags
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
collectionId sourceId tags createdAt workspaceId
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
-
`,
|
|
55
|
+
`,x=`
|
|
56
56
|
mutation CosUpdateDataset($id: ID!, $input: CosUpdateDatasetInput!) {
|
|
57
57
|
cosUpdateDataset(id: $id, input: $input) {
|
|
58
58
|
id name accessLevel status format description
|
|
59
59
|
collectionId tags updatedAt workspaceId
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
`,
|
|
62
|
+
`,L=`
|
|
63
63
|
mutation CosPublishDataset($id: ID!) {
|
|
64
64
|
cosPublishDataset(id: $id) {
|
|
65
65
|
id name status ingestedAt updatedAt workspaceId
|
|
@@ -307,14 +307,14 @@
|
|
|
307
307
|
id title version status doi publishedAt updatedAt workspaceId
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
-
`,
|
|
310
|
+
`,dt=`
|
|
311
311
|
query CosListAccessGrants($datasetId: ID, $status: CosGrantStatus) {
|
|
312
312
|
cosListAccessGrants(datasetId: $datasetId, status: $status) {
|
|
313
313
|
id datasetId granteeId status scopes reason
|
|
314
314
|
grantedAt expiresAt revokedAt createdAt updatedAt workspaceId
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
`,
|
|
317
|
+
`,pt=`
|
|
318
318
|
mutation CosGrantAccess($input: CosGrantAccessInput!) {
|
|
319
319
|
cosGrantAccess(input: $input) {
|
|
320
320
|
id datasetId granteeId status scopes reason
|
|
@@ -331,4 +331,4 @@
|
|
|
331
331
|
query CosHealth {
|
|
332
332
|
cosHealth
|
|
333
333
|
}
|
|
334
|
-
`;function f(r,o){try{return JSON.parse(o)}catch{throw new u(`--${r} must be valid JSON`)}}function m(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new u(`Expected an integer but got "${r}"`);return o}function l(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function ft(r){let o=r.command("collections").description("Cosmicintersection dataset collections");o.command("list").description("List collections").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(b);i(t,e.cosListCollections,{headers:["ID","Name","Slug","Public","Tags"],rows:e.cosListCollections.map(n=>[d(n.id,12),n.name,n.slug??"-",n.isPublic?"yes":"no",(n.tags??[]).join(", ")])});}catch(e){s(e);}}),o.command("create").description("Create a collection").requiredOption("--name <name>","Collection name").option("--slug <slug>","URL slug").option("--description <s>","Description").option("--public","Mark the collection public").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.slug&&(e.slug=t.slug),t.description&&(e.description=t.description),t.public&&(e.isPublic=!0),t.tags&&(e.tags=l(t.tags));let n=await a(T,{input:e});c(`Collection created: ${n.cosCreateCollection.name}`),i(t,n.cosCreateCollection);}catch(e){s(e);}});}function gt(r){let o=r.command("datasets").description("Cosmicintersection datasets");o.command("list").description("List datasets").option("--collection <id>","Filter by collection ID").option("--source <id>","Filter by source ID").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(O,{collectionId:t.collection,sourceId:t.source,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListDatasets.items,{headers:["ID","Name","Access","Status","Format","Rows"],rows:e.cosListDatasets.items.map(n=>[d(n.id,12),n.name,n.accessLevel??"-",n.status??"-",n.format??"-",n.rowCount??"-"])});}catch(e){s(e);}}),o.command("get").description("Get a dataset by id").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});if(!n.cosDataset)throw new u(`Dataset ${t} not found`);i(e,n.cosDataset);}catch(n){s(n);}}),o.command("create").description("Create a dataset").requiredOption("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--source <id>","Source ID").option("--file <id>","File ID (wspace-files-svc)").option("--format <fmt>","Data format").option("--description <s>","Description").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async t=>{try{let e={name:t.name};t.accessLevel&&(e.accessLevel=t.accessLevel.toUpperCase()),t.collection&&(e.collectionId=t.collection),t.source&&(e.sourceId=t.source),t.file&&(e.fileId=t.file),t.format&&(e.format=t.format),t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.coverage&&(e.coverage=f("coverage",t.coverage)),t.tags&&(e.tags=l(t.tags));let n=await a(v,{input:e});c(`Dataset created: ${n.cosCreateDataset.name}`),i({format:t.formatOut},n.cosCreateDataset);}catch(e){s(e);}}),o.command("update").description("Update a dataset").argument("<id>","Dataset ID").option("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--format <fmt>","Data format").option("--description <s>","Description").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.accessLevel&&(n.accessLevel=e.accessLevel.toUpperCase()),e.collection&&(n.collectionId=e.collection),e.format&&(n.format=e.format),e.description!==void 0&&(n.description=e.description),e.coverage&&(n.coverage=f("coverage",e.coverage)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(L,{id:t,input:n});c("Dataset updated"),i({format:e.formatOut},C.cosUpdateDataset);}catch(n){s(n);}}),o.command("publish").description("Mark a dataset AVAILABLE once ingestion completes").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(x,{id:t});c(`Dataset published: ${n.cosPublishDataset.status}`),i(e,n.cosPublishDataset);}catch(n){s(n);}}),o.command("archive").description("Archive a dataset").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(N,{id:t});c(`Dataset archived: ${String(n.cosArchiveDataset)}`),i(e,{archived:n.cosArchiveDataset});}catch(n){s(n);}}),o.command("schema-fields").description("List schema fields for a dataset").requiredOption("--dataset <id>","Dataset ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{datasetId:t.dataset});i(t,e.cosListSchemaFields,{headers:["ID","Name","Type","Nullable","Pos","Unit"],rows:e.cosListSchemaFields.map(n=>[d(n.id,12),n.name,n.fieldType,n.nullable?"yes":"no",n.position!=null?String(n.position):"-",n.unit??"-"])});}catch(e){s(e);}}),o.command("add-field").description("Add a schema field to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--name <name>","Field name").option("--field-type <t>","STRING|INTEGER|FLOAT|BOOLEAN|TIMESTAMP|...").option("--description <s>","Description").option("--unit <u>","Unit").option("--provenance <p>","Provenance").option("--position <n>","Position",m).option("--not-nullable","Mark the field as not nullable").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,name:t.name};t.fieldType&&(e.fieldType=t.fieldType.toUpperCase()),t.description&&(e.description=t.description),t.unit&&(e.unit=t.unit),t.provenance&&(e.provenance=t.provenance),t.position!==void 0&&(e.position=t.position),t.notNullable&&(e.nullable=!1);let n=await a(P,{input:e});c(`Schema field added: ${n.cosAddSchemaField.name}`),i(t,n.cosAddSchemaField);}catch(e){s(e);}});}function Ct(r){let o=r.command("sources").description("Cosmicintersection data sources");o.command("list").description("List data sources").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","CONFIGURING|CONNECTED|SYNCING|DEGRADED|DISABLED|ERROR").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(U,{type:t.type?t.type.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListSources.items,{headers:["ID","Name","Type","Status","Last Synced"],rows:e.cosListSources.items.map(n=>[d(n.id,12),n.name,n.type??"-",n.status??"-",A(n.lastSyncedAt)])});}catch(e){s(e);}}),o.command("get").description("Get a data source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});if(!n.cosSource)throw new u(`Source ${t} not found`);i(e,n.cosSource);}catch(n){s(n);}}),o.command("create").description("Create a data source").requiredOption("--name <name>","Source name").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.endpoint&&(e.endpoint=t.endpoint),t.description&&(e.description=t.description),t.credentialRef&&(e.credentialRef=t.credentialRef),t.config&&(e.config=f("config",t.config)),t.tags&&(e.tags=l(t.tags));let n=await a(q,{input:e});c(`Source created: ${n.cosCreateSource.name}`),i(t,n.cosCreateSource);}catch(e){s(e);}}),o.command("update").description("Update a data source").argument("<id>","Source ID").option("--name <name>","Source name").option("--type <t>","Source type").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential 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.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.endpoint!==void 0&&(n.endpoint=e.endpoint),e.description!==void 0&&(n.description=e.description),e.credentialRef&&(n.credentialRef=e.credentialRef),e.config&&(n.config=f("config",e.config)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(G,{id:t,input:n});c("Source updated"),i(e,C.cosUpdateSource);}catch(n){s(n);}}),o.command("mark-synced").description("Record a successful sync (sets status CONNECTED + lastSyncedAt)").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(F,{id:t});c(`Source synced: ${n.cosMarkSourceSynced.status}`),i(e,n.cosMarkSourceSynced);}catch(n){s(n);}}),o.command("archive").description("Archive a data source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t});c(`Source archived: ${String(n.cosArchiveSource)}`),i(e,{archived:n.cosArchiveSource});}catch(n){s(n);}});}function It(r){let o=r.command("notebooks").description("Cosmicintersection computational notebooks");o.command("list").description("List notebooks").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(W,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListNotebooks.items,{headers:["ID","Title","Status","Runtime","Shared"],rows:e.cosListNotebooks.items.map(n=>[d(n.id,12),n.title,n.status??"-",n.runtime??"-",n.isShared?"yes":"no"])});}catch(e){s(e);}}),o.command("get").description("Get a notebook by id").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(H,{id:t});if(!n.cosNotebook)throw new u(`Notebook ${t} not found`);i(e,n.cosNotebook);}catch(n){s(n);}}),o.command("create").description("Create a notebook").requiredOption("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--file <id>","File ID (notebook document)").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.description&&(e.description=t.description),t.runtime&&(e.runtime=t.runtime),t.file&&(e.fileId=t.file),t.datasetIds&&(e.datasetIds=l(t.datasetIds)),t.environment&&(e.environment=f("environment",t.environment)),t.tags&&(e.tags=l(t.tags));let n=await a(j,{input:e});c(`Notebook created: ${n.cosCreateNotebook.title}`),i(t,n.cosCreateNotebook);}catch(e){s(e);}}),o.command("update").description("Update a notebook").argument("<id>","Notebook ID").option("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--shared <bool>","true|false",t=>t==="true").option("--share-slug <slug>","Share slug").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.runtime&&(n.runtime=e.runtime),e.status&&(n.status=e.status.toUpperCase()),e.datasetIds&&(n.datasetIds=l(e.datasetIds)),e.environment&&(n.environment=f("environment",e.environment)),e.shared!==void 0&&(n.isShared=e.shared),e.shareSlug&&(n.shareSlug=e.shareSlug),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(V,{id:t,input:n});c("Notebook updated"),i(e,C.cosUpdateNotebook);}catch(n){s(n);}}),o.command("archive").description("Archive a notebook").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t});c(`Notebook archived: ${String(n.cosArchiveNotebook)}`),i(e,{archived:n.cosArchiveNotebook});}catch(n){s(n);}});}function ht(r){let o=r.command("pipelines").description("Cosmicintersection data pipelines");o.command("list").description("List pipelines").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListPipelines.items,{headers:["ID","Name","Status","Trigger","Schedule","Version"],rows:e.cosListPipelines.items.map(n=>[d(n.id,12),n.name,n.status??"-",n.trigger??"-",n.schedule??"-",n.version!=null?String(n.version):"-"])});}catch(e){s(e);}}),o.command("get").description("Get a pipeline by id").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(J,{id:t});if(!n.cosPipeline)throw new u(`Pipeline ${t} not found`);i(e,n.cosPipeline);}catch(n){s(n);}}),o.command("create").description("Create a pipeline").requiredOption("--name <name>","Pipeline name").option("--description <s>","Description").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.trigger&&(e.trigger=t.trigger.toUpperCase()),t.schedule&&(e.schedule=t.schedule),t.definition&&(e.definition=f("definition",t.definition)),t.tags&&(e.tags=l(t.tags));let n=await a(z,{input:e});c(`Pipeline created: ${n.cosCreatePipeline.name}`),i(t,n.cosCreatePipeline);}catch(e){s(e);}}),o.command("update").description("Update a pipeline").argument("<id>","Pipeline ID").option("--name <name>","Pipeline name").option("--description <s>","Description").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition 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.description!==void 0&&(n.description=e.description),e.status&&(n.status=e.status.toUpperCase()),e.trigger&&(n.trigger=e.trigger.toUpperCase()),e.schedule&&(n.schedule=e.schedule),e.definition&&(n.definition=f("definition",e.definition)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(Y,{id:t,input:n});c("Pipeline updated"),i(e,C.cosUpdatePipeline);}catch(n){s(n);}}),o.command("archive").description("Archive a pipeline").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Q,{id:t});c(`Pipeline archived: ${String(n.cosArchivePipeline)}`),i(e,{archived:n.cosArchivePipeline});}catch(n){s(n);}});}function At(r){let o=r.command("runs").description("Cosmicintersection pipeline runs & steps");o.command("list").description("List pipeline runs").option("--pipeline <id>","Filter by pipeline ID").option("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Z,{pipelineId:t.pipeline,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListRuns.items,{headers:["ID","Pipeline","Run #","Status","Started"],rows:e.cosListRuns.items.map(n=>[d(n.id,12),d(n.pipelineId,12),String(n.runNumber),n.status??"-",A(n.startedAt)])});}catch(e){s(e);}}),o.command("get").description("Get a run by id").argument("<id>","Run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(X,{id:t});if(!n.cosRun)throw new u(`Run ${t} not found`);i(e,n.cosRun);}catch(n){s(n);}}),o.command("start").description("Queue a new run of a pipeline").requiredOption("--pipeline <id>","Pipeline ID").option("--dataset <id>","Dataset ID").option("--params <json>","Params JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={pipelineId:t.pipeline};t.dataset&&(e.datasetId=t.dataset),t.params&&(e.params=f("params",t.params));let n=await a(tt,{input:e});c(`Run started: #${n.cosStartRun.runNumber}`),i(t,n.cosStartRun);}catch(e){s(e);}}),o.command("transition").description("Advance a run through its lifecycle").argument("<id>","Run ID").requiredOption("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(et,{id:t,status:e.status.toUpperCase()});c(`Run transitioned to ${n.cosTransitionRun.status}`),i(e,n.cosTransitionRun);}catch(n){s(n);}}),o.command("steps").description("List steps for a run").requiredOption("--run <id>","Run ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{runId:t.run});i(t,e.cosListRunSteps,{headers:["ID","Name","Kind","Status","Pos"],rows:e.cosListRunSteps.map(n=>[d(n.id,12),n.name,n.kind,n.status??"-",n.position!=null?String(n.position):"-"])});}catch(e){s(e);}}),o.command("add-step").description("Append a step to a run").requiredOption("--run <id>","Run ID").requiredOption("--name <name>","Step name").option("--kind <k>","INGEST|TRANSFORM|ANALYZE|CALIBRATE|EXPORT|NOTIFY").option("--position <n>","Position",m).option("--inputs <json>","Inputs JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={runId:t.run,name:t.name};t.kind&&(e.kind=t.kind.toUpperCase()),t.position!==void 0&&(e.position=t.position),t.inputs&&(e.inputs=f("inputs",t.inputs));let n=await a(ot,{input:e});c(`Step added: ${n.cosAddRunStep.name}`),i(t,n.cosAddRunStep);}catch(e){s(e);}});}function Et(r){let o=r.command("analyses").description("Cosmicintersection analyses");o.command("list").description("List analyses").option("--dataset <id>","Filter by dataset ID").option("--notebook <id>","Filter by notebook ID").option("--status <s>","PENDING|RUNNING|COMPLETED|FAILED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(st,{datasetId:t.dataset,notebookId:t.notebook,status:t.status?t.status.toUpperCase():void 0});i(t,e.cosListAnalyses,{headers:["ID","Title","Status","Method","AI"],rows:e.cosListAnalyses.map(n=>[d(n.id,12),n.title,n.status??"-",n.method??"-",n.aiAssisted?"yes":"no"])});}catch(e){s(e);}}),o.command("run").description("Start an analysis run").requiredOption("--title <t>","Analysis title").option("--dataset <id>","Dataset ID").option("--notebook <id>","Notebook ID").option("--method <m>","Analysis method").option("--ai-assisted","Mark the analysis as AI-assisted").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.dataset&&(e.datasetId=t.dataset),t.notebook&&(e.notebookId=t.notebook),t.method&&(e.method=t.method),t.aiAssisted&&(e.aiAssisted=!0);let n=await a(it,{input:e});c(`Analysis started: ${n.cosRunAnalysis.title}`),i(t,n.cosRunAnalysis);}catch(e){s(e);}}),o.command("complete").description("Record the terminal outcome of an analysis run").argument("<id>","Analysis ID").requiredOption("--status <s>","COMPLETED|FAILED").option("--results <json>","Results JSON").option("--output-file <id>","Output file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(rt,{id:t,status:e.status.toUpperCase(),results:e.results?f("results",e.results):void 0,outputFileId:e.outputFile});c(`Analysis completed: ${n.cosCompleteAnalysis.status}`),i(e,n.cosCompleteAnalysis);}catch(n){s(n);}});}function yt(r){let o=r.command("releases").description("Cosmicintersection citable releases");o.command("list").description("List releases").option("--status <s>","DRAFT|UNDER_REVIEW|PUBLISHED|RETRACTED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(at,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListReleases.items,{headers:["ID","Title","Version","Status","DOI"],rows:e.cosListReleases.items.map(n=>[d(n.id,12),n.title,n.version,n.status??"-",n.doi??"-"])});}catch(e){s(e);}}),o.command("create").description("Create a release").requiredOption("--title <t>","Release title").option("--version <v>","Version").option("--abstract <s>","Abstract").option("--license <l>","License").option("--notebook <id>","Notebook ID").option("--authors <csv>","Comma-separated authors").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.version&&(e.version=t.version),t.abstract&&(e.abstract=t.abstract),t.license&&(e.license=t.license),t.notebook&&(e.notebookId=t.notebook),t.authors&&(e.authors=l(t.authors)),t.datasetIds&&(e.datasetIds=l(t.datasetIds));let n=await a(ct,{input:e});c(`Release created: ${n.cosCreateRelease.title}`),i(t,n.cosCreateRelease);}catch(e){s(e);}}),o.command("publish").description("Publish a citable release and stamp it with a DOI").argument("<id>","Release ID").option("--doi <doi>","DOI to stamp").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(ut,{id:t,doi:e.doi});c(`Release published: ${n.cosPublishRelease.version}`),i(e,n.cosPublishRelease);}catch(n){s(n);}});}function St(r){let o=r.command("grants").description("Cosmicintersection data-access grants");o.command("list").description("List data-access grants").option("--dataset <id>","Filter by dataset ID").option("--status <s>","PENDING|ACTIVE|REVOKED|EXPIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(pt,{datasetId:t.dataset,status:t.status?t.status.toUpperCase():void 0});i(t,e.cosListAccessGrants,{headers:["ID","Dataset","Grantee","Status","Scopes","Expires"],rows:e.cosListAccessGrants.map(n=>[d(n.id,12),d(n.datasetId,12),d(n.granteeId,12),n.status??"-",(n.scopes??[]).join(", "),A(n.expiresAt)])});}catch(e){s(e);}}),o.command("grant").description("Grant a grantee access to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--grantee <id>","Grantee ID").option("--scopes <csv>","Comma-separated scopes").option("--reason <s>","Reason").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,granteeId:t.grantee};t.scopes&&(e.scopes=l(t.scopes)),t.reason&&(e.reason=t.reason),t.expiresAt&&(e.expiresAt=t.expiresAt);let n=await a(dt,{input:e});c(`Access granted to ${n.cosGrantAccess.granteeId}`),i(t,n.cosGrantAccess);}catch(e){s(e);}}),o.command("revoke").description("Revoke a data-access grant").argument("<id>","Grant ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(lt,{id:t});c(`Access revoked: ${n.cosRevokeAccess.status}`),i(e,n.cosRevokeAccess);}catch(n){s(n);}});}function kt(r){r.command("health").description("Cosmicintersection service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await S(mt);c(t.cosHealth),i(o,{health:t.cosHealth});}catch(t){s(t);}});}var _t={id:"cosmicintersection",version:"1.0.0",displayName:"Cosmicintersection",dependsOn:["auth","workspaces"],register(r,o){R(o);let t=r.command("cosmicintersection").description("Cosmicintersection open-science data platform");ft(t),gt(t),Ct(t),It(t),ht(t),At(t),Et(t),yt(t),St(t),kt(t);}},Nn=_t;module.exports=Nn;
|
|
334
|
+
`;function f(r,o){try{return JSON.parse(o)}catch{throw new u(`--${r} must be valid JSON`)}}function m(r){let o=Number.parseInt(r,10);if(Number.isNaN(o))throw new u(`Expected an integer but got "${r}"`);return o}function l(r){return r.split(",").map(o=>o.trim()).filter(o=>o.length>0)}function ft(r){let o=r.command("collections").description("Cosmicintersection dataset collections");o.command("list").description("List collections").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(R);i(t,e.cosListCollections,{headers:["ID","Name","Slug","Public","Tags"],rows:e.cosListCollections.map(n=>[p(n.id,12),n.name,n.slug??"-",n.isPublic?"yes":"no",(n.tags??[]).join(", ")])});}catch(e){s(e);}}),o.command("create").description("Create a collection").requiredOption("--name <name>","Collection name").option("--slug <slug>","URL slug").option("--description <s>","Description").option("--public","Mark the collection public").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.slug&&(e.slug=t.slug),t.description&&(e.description=t.description),t.public&&(e.isPublic=!0),t.tags&&(e.tags=l(t.tags));let n=await a(T,{input:e});c(`Collection created: ${n.cosCreateCollection.name}`),i(t,n.cosCreateCollection);}catch(e){s(e);}});}function gt(r){let o=r.command("datasets").description("Cosmicintersection datasets");o.command("list").description("List datasets").option("--collection <id>","Filter by collection ID").option("--source <id>","Filter by source ID").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(O,{collectionId:t.collection,sourceId:t.source,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListDatasets.items,{headers:["ID","Name","Access","Status","Format","Rows"],rows:e.cosListDatasets.items.map(n=>[p(n.id,12),n.name,n.accessLevel??"-",n.status??"-",n.format??"-",n.rowCount??"-"])});}catch(e){s(e);}}),o.command("get").description("Get a dataset by id").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});if(!n.cosDataset)throw new u(`Dataset ${t} not found`);i(e,n.cosDataset);}catch(n){s(n);}}),o.command("create").description("Create a dataset").requiredOption("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--source <id>","Source ID").option("--file <id>","File ID (wspace-files-svc)").option("--format <fmt>","Data format").option("--description <s>","Description").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async t=>{try{let e={name:t.name};t.accessLevel&&(e.accessLevel=t.accessLevel.toUpperCase()),t.collection&&(e.collectionId=t.collection),t.source&&(e.sourceId=t.source),t.file&&(e.fileId=t.file),t.format&&(e.format=t.format),t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.coverage&&(e.coverage=f("coverage",t.coverage)),t.tags&&(e.tags=l(t.tags));let n=await a(v,{input:e});c(`Dataset created: ${n.cosCreateDataset.name}`),i({format:t.formatOut},n.cosCreateDataset);}catch(e){s(e);}}),o.command("update").description("Update a dataset").argument("<id>","Dataset ID").option("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--format <fmt>","Data format").option("--description <s>","Description").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.accessLevel&&(n.accessLevel=e.accessLevel.toUpperCase()),e.collection&&(n.collectionId=e.collection),e.format&&(n.format=e.format),e.description!==void 0&&(n.description=e.description),e.coverage&&(n.coverage=f("coverage",e.coverage)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(x,{id:t,input:n});c("Dataset updated"),i({format:e.formatOut},C.cosUpdateDataset);}catch(n){s(n);}}),o.command("publish").description("Mark a dataset AVAILABLE once ingestion completes").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t});c(`Dataset published: ${n.cosPublishDataset.status}`),i(e,n.cosPublishDataset);}catch(n){s(n);}}),o.command("archive").description("Archive a dataset").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(N,{id:t});c(`Dataset archived: ${String(n.cosArchiveDataset)}`),i(e,{archived:n.cosArchiveDataset});}catch(n){s(n);}}),o.command("schema-fields").description("List schema fields for a dataset").requiredOption("--dataset <id>","Dataset ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{datasetId:t.dataset});i(t,e.cosListSchemaFields,{headers:["ID","Name","Type","Nullable","Pos","Unit"],rows:e.cosListSchemaFields.map(n=>[p(n.id,12),n.name,n.fieldType,n.nullable?"yes":"no",n.position!=null?String(n.position):"-",n.unit??"-"])});}catch(e){s(e);}}),o.command("add-field").description("Add a schema field to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--name <name>","Field name").option("--field-type <t>","STRING|INTEGER|FLOAT|BOOLEAN|TIMESTAMP|...").option("--description <s>","Description").option("--unit <u>","Unit").option("--provenance <p>","Provenance").option("--position <n>","Position",m).option("--not-nullable","Mark the field as not nullable").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,name:t.name};t.fieldType&&(e.fieldType=t.fieldType.toUpperCase()),t.description&&(e.description=t.description),t.unit&&(e.unit=t.unit),t.provenance&&(e.provenance=t.provenance),t.position!==void 0&&(e.position=t.position),t.notNullable&&(e.nullable=!1);let n=await a(P,{input:e});c(`Schema field added: ${n.cosAddSchemaField.name}`),i(t,n.cosAddSchemaField);}catch(e){s(e);}});}function Ct(r){let o=r.command("sources").description("Cosmicintersection data sources");o.command("list").description("List data sources").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","CONFIGURING|CONNECTED|SYNCING|DEGRADED|DISABLED|ERROR").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(U,{type:t.type?t.type.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListSources.items,{headers:["ID","Name","Type","Status","Last Synced"],rows:e.cosListSources.items.map(n=>[p(n.id,12),n.name,n.type??"-",n.status??"-",A(n.lastSyncedAt)])});}catch(e){s(e);}}),o.command("get").description("Get a data source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(_,{id:t});if(!n.cosSource)throw new u(`Source ${t} not found`);i(e,n.cosSource);}catch(n){s(n);}}),o.command("create").description("Create a data source").requiredOption("--name <name>","Source name").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.endpoint&&(e.endpoint=t.endpoint),t.description&&(e.description=t.description),t.credentialRef&&(e.credentialRef=t.credentialRef),t.config&&(e.config=f("config",t.config)),t.tags&&(e.tags=l(t.tags));let n=await a(q,{input:e});c(`Source created: ${n.cosCreateSource.name}`),i(t,n.cosCreateSource);}catch(e){s(e);}}),o.command("update").description("Update a data source").argument("<id>","Source ID").option("--name <name>","Source name").option("--type <t>","Source type").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential 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.type&&(n.type=e.type.toUpperCase()),e.status&&(n.status=e.status.toUpperCase()),e.endpoint!==void 0&&(n.endpoint=e.endpoint),e.description!==void 0&&(n.description=e.description),e.credentialRef&&(n.credentialRef=e.credentialRef),e.config&&(n.config=f("config",e.config)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(G,{id:t,input:n});c("Source updated"),i(e,C.cosUpdateSource);}catch(n){s(n);}}),o.command("mark-synced").description("Record a successful sync (sets status CONNECTED + lastSyncedAt)").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(F,{id:t});c(`Source synced: ${n.cosMarkSourceSynced.status}`),i(e,n.cosMarkSourceSynced);}catch(n){s(n);}}),o.command("archive").description("Archive a data source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t});c(`Source archived: ${String(n.cosArchiveSource)}`),i(e,{archived:n.cosArchiveSource});}catch(n){s(n);}});}function It(r){let o=r.command("notebooks").description("Cosmicintersection computational notebooks");o.command("list").description("List notebooks").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(W,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListNotebooks.items,{headers:["ID","Title","Status","Runtime","Shared"],rows:e.cosListNotebooks.items.map(n=>[p(n.id,12),n.title,n.status??"-",n.runtime??"-",n.isShared?"yes":"no"])});}catch(e){s(e);}}),o.command("get").description("Get a notebook by id").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(H,{id:t});if(!n.cosNotebook)throw new u(`Notebook ${t} not found`);i(e,n.cosNotebook);}catch(n){s(n);}}),o.command("create").description("Create a notebook").requiredOption("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--file <id>","File ID (notebook document)").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.description&&(e.description=t.description),t.runtime&&(e.runtime=t.runtime),t.file&&(e.fileId=t.file),t.datasetIds&&(e.datasetIds=l(t.datasetIds)),t.environment&&(e.environment=f("environment",t.environment)),t.tags&&(e.tags=l(t.tags));let n=await a(j,{input:e});c(`Notebook created: ${n.cosCreateNotebook.title}`),i(t,n.cosCreateNotebook);}catch(e){s(e);}}),o.command("update").description("Update a notebook").argument("<id>","Notebook ID").option("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--shared <bool>","true|false",t=>t==="true").option("--share-slug <slug>","Share slug").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.title&&(n.title=e.title),e.description!==void 0&&(n.description=e.description),e.runtime&&(n.runtime=e.runtime),e.status&&(n.status=e.status.toUpperCase()),e.datasetIds&&(n.datasetIds=l(e.datasetIds)),e.environment&&(n.environment=f("environment",e.environment)),e.shared!==void 0&&(n.isShared=e.shared),e.shareSlug&&(n.shareSlug=e.shareSlug),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(V,{id:t,input:n});c("Notebook updated"),i(e,C.cosUpdateNotebook);}catch(n){s(n);}}),o.command("archive").description("Archive a notebook").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t});c(`Notebook archived: ${String(n.cosArchiveNotebook)}`),i(e,{archived:n.cosArchiveNotebook});}catch(n){s(n);}});}function ht(r){let o=r.command("pipelines").description("Cosmicintersection data pipelines");o.command("list").description("List pipelines").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(K,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListPipelines.items,{headers:["ID","Name","Status","Trigger","Schedule","Version"],rows:e.cosListPipelines.items.map(n=>[p(n.id,12),n.name,n.status??"-",n.trigger??"-",n.schedule??"-",n.version!=null?String(n.version):"-"])});}catch(e){s(e);}}),o.command("get").description("Get a pipeline by id").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(J,{id:t});if(!n.cosPipeline)throw new u(`Pipeline ${t} not found`);i(e,n.cosPipeline);}catch(n){s(n);}}),o.command("create").description("Create a pipeline").requiredOption("--name <name>","Pipeline name").option("--description <s>","Description").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.trigger&&(e.trigger=t.trigger.toUpperCase()),t.schedule&&(e.schedule=t.schedule),t.definition&&(e.definition=f("definition",t.definition)),t.tags&&(e.tags=l(t.tags));let n=await a(z,{input:e});c(`Pipeline created: ${n.cosCreatePipeline.name}`),i(t,n.cosCreatePipeline);}catch(e){s(e);}}),o.command("update").description("Update a pipeline").argument("<id>","Pipeline ID").option("--name <name>","Pipeline name").option("--description <s>","Description").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition 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.description!==void 0&&(n.description=e.description),e.status&&(n.status=e.status.toUpperCase()),e.trigger&&(n.trigger=e.trigger.toUpperCase()),e.schedule&&(n.schedule=e.schedule),e.definition&&(n.definition=f("definition",e.definition)),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new u("No updates specified");let C=await a(Y,{id:t,input:n});c("Pipeline updated"),i(e,C.cosUpdatePipeline);}catch(n){s(n);}}),o.command("archive").description("Archive a pipeline").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Q,{id:t});c(`Pipeline archived: ${String(n.cosArchivePipeline)}`),i(e,{archived:n.cosArchivePipeline});}catch(n){s(n);}});}function At(r){let o=r.command("runs").description("Cosmicintersection pipeline runs & steps");o.command("list").description("List pipeline runs").option("--pipeline <id>","Filter by pipeline ID").option("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Z,{pipelineId:t.pipeline,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListRuns.items,{headers:["ID","Pipeline","Run #","Status","Started"],rows:e.cosListRuns.items.map(n=>[p(n.id,12),p(n.pipelineId,12),String(n.runNumber),n.status??"-",A(n.startedAt)])});}catch(e){s(e);}}),o.command("get").description("Get a run by id").argument("<id>","Run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(X,{id:t});if(!n.cosRun)throw new u(`Run ${t} not found`);i(e,n.cosRun);}catch(n){s(n);}}),o.command("start").description("Queue a new run of a pipeline").requiredOption("--pipeline <id>","Pipeline ID").option("--dataset <id>","Dataset ID").option("--params <json>","Params JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={pipelineId:t.pipeline};t.dataset&&(e.datasetId=t.dataset),t.params&&(e.params=f("params",t.params));let n=await a(tt,{input:e});c(`Run started: #${n.cosStartRun.runNumber}`),i(t,n.cosStartRun);}catch(e){s(e);}}),o.command("transition").description("Advance a run through its lifecycle").argument("<id>","Run ID").requiredOption("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(et,{id:t,status:e.status.toUpperCase()});c(`Run transitioned to ${n.cosTransitionRun.status}`),i(e,n.cosTransitionRun);}catch(n){s(n);}}),o.command("steps").description("List steps for a run").requiredOption("--run <id>","Run ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{runId:t.run});i(t,e.cosListRunSteps,{headers:["ID","Name","Kind","Status","Pos"],rows:e.cosListRunSteps.map(n=>[p(n.id,12),n.name,n.kind,n.status??"-",n.position!=null?String(n.position):"-"])});}catch(e){s(e);}}),o.command("add-step").description("Append a step to a run").requiredOption("--run <id>","Run ID").requiredOption("--name <name>","Step name").option("--kind <k>","INGEST|TRANSFORM|ANALYZE|CALIBRATE|EXPORT|NOTIFY").option("--position <n>","Position",m).option("--inputs <json>","Inputs JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={runId:t.run,name:t.name};t.kind&&(e.kind=t.kind.toUpperCase()),t.position!==void 0&&(e.position=t.position),t.inputs&&(e.inputs=f("inputs",t.inputs));let n=await a(ot,{input:e});c(`Step added: ${n.cosAddRunStep.name}`),i(t,n.cosAddRunStep);}catch(e){s(e);}});}function Et(r){let o=r.command("analyses").description("Cosmicintersection analyses");o.command("list").description("List analyses").option("--dataset <id>","Filter by dataset ID").option("--notebook <id>","Filter by notebook ID").option("--status <s>","PENDING|RUNNING|COMPLETED|FAILED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(st,{datasetId:t.dataset,notebookId:t.notebook,status:t.status?t.status.toUpperCase():void 0});i(t,e.cosListAnalyses,{headers:["ID","Title","Status","Method","AI"],rows:e.cosListAnalyses.map(n=>[p(n.id,12),n.title,n.status??"-",n.method??"-",n.aiAssisted?"yes":"no"])});}catch(e){s(e);}}),o.command("run").description("Start an analysis run").requiredOption("--title <t>","Analysis title").option("--dataset <id>","Dataset ID").option("--notebook <id>","Notebook ID").option("--method <m>","Analysis method").option("--ai-assisted","Mark the analysis as AI-assisted").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.dataset&&(e.datasetId=t.dataset),t.notebook&&(e.notebookId=t.notebook),t.method&&(e.method=t.method),t.aiAssisted&&(e.aiAssisted=!0);let n=await a(it,{input:e});c(`Analysis started: ${n.cosRunAnalysis.title}`),i(t,n.cosRunAnalysis);}catch(e){s(e);}}),o.command("complete").description("Record the terminal outcome of an analysis run").argument("<id>","Analysis ID").requiredOption("--status <s>","COMPLETED|FAILED").option("--results <json>","Results JSON").option("--output-file <id>","Output file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(rt,{id:t,status:e.status.toUpperCase(),results:e.results?f("results",e.results):void 0,outputFileId:e.outputFile});c(`Analysis completed: ${n.cosCompleteAnalysis.status}`),i(e,n.cosCompleteAnalysis);}catch(n){s(n);}});}function St(r){let o=r.command("releases").description("Cosmicintersection citable releases");o.command("list").description("List releases").option("--status <s>","DRAFT|UNDER_REVIEW|PUBLISHED|RETRACTED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(at,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListReleases.items,{headers:["ID","Title","Version","Status","DOI"],rows:e.cosListReleases.items.map(n=>[p(n.id,12),n.title,n.version,n.status??"-",n.doi??"-"])});}catch(e){s(e);}}),o.command("create").description("Create a release").requiredOption("--title <t>","Release title").option("--version <v>","Version").option("--abstract <s>","Abstract").option("--license <l>","License").option("--notebook <id>","Notebook ID").option("--authors <csv>","Comma-separated authors").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.version&&(e.version=t.version),t.abstract&&(e.abstract=t.abstract),t.license&&(e.license=t.license),t.notebook&&(e.notebookId=t.notebook),t.authors&&(e.authors=l(t.authors)),t.datasetIds&&(e.datasetIds=l(t.datasetIds));let n=await a(ct,{input:e});c(`Release created: ${n.cosCreateRelease.title}`),i(t,n.cosCreateRelease);}catch(e){s(e);}}),o.command("publish").description("Publish a citable release and stamp it with a DOI").argument("<id>","Release ID").option("--doi <doi>","DOI to stamp").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(ut,{id:t,doi:e.doi});c(`Release published: ${n.cosPublishRelease.version}`),i(e,n.cosPublishRelease);}catch(n){s(n);}});}function kt(r){let o=r.command("grants").description("Cosmicintersection data-access grants");o.command("list").description("List data-access grants").option("--dataset <id>","Filter by dataset ID").option("--status <s>","PENDING|ACTIVE|REVOKED|EXPIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(dt,{datasetId:t.dataset,status:t.status?t.status.toUpperCase():void 0});i(t,e.cosListAccessGrants,{headers:["ID","Dataset","Grantee","Status","Scopes","Expires"],rows:e.cosListAccessGrants.map(n=>[p(n.id,12),p(n.datasetId,12),p(n.granteeId,12),n.status??"-",(n.scopes??[]).join(", "),A(n.expiresAt)])});}catch(e){s(e);}}),o.command("grant").description("Grant a grantee access to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--grantee <id>","Grantee ID").option("--scopes <csv>","Comma-separated scopes").option("--reason <s>","Reason").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,granteeId:t.grantee};t.scopes&&(e.scopes=l(t.scopes)),t.reason&&(e.reason=t.reason),t.expiresAt&&(e.expiresAt=t.expiresAt);let n=await a(pt,{input:e});c(`Access granted to ${n.cosGrantAccess.granteeId}`),i(t,n.cosGrantAccess);}catch(e){s(e);}}),o.command("revoke").description("Revoke a data-access grant").argument("<id>","Grant ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(lt,{id:t});c(`Access revoked: ${n.cosRevokeAccess.status}`),i(e,n.cosRevokeAccess);}catch(n){s(n);}});}function wt(r){r.command("health").description("Cosmicintersection service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await k(mt);c(t.cosHealth),i(o,{health:t.cosHealth});}catch(t){s(t);}});}var _t={id:"cosmicintersection",version:"1.0.0",displayName:"Cosmicintersection",dependsOn:["auth","workspaces"],register(r,o){b(o);let t=r.command("cosmicintersection").description("Cosmicintersection open-science data platform");ft(t),gt(t),Ct(t),It(t),ht(t),At(t),Et(t),St(t),kt(t),wt(t);}},Nn=_t;module.exports=Nn;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,
|
|
1
|
+
import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var E=`
|
|
2
2
|
query CosListCollections {
|
|
3
3
|
cosListCollections {
|
|
4
4
|
id name slug description isPublic tags
|
|
@@ -331,4 +331,4 @@ import {a,b as b$1,h as h$1,p as p$1,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js
|
|
|
331
331
|
query CosHealth {
|
|
332
332
|
cosHealth
|
|
333
333
|
}
|
|
334
|
-
`;function l(c,i){try{return JSON.parse(i)}catch{throw new o(`--${c} must be valid JSON`)}}function u(c){let i=Number.parseInt(c,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${c}"`);return i}function p(c){return c.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function dt(c){let i$1=c.command("collections").description("Cosmicintersection dataset collections");i$1.command("list").description("List collections").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(E);h$1(t,e.cosListCollections,{headers:["ID","Name","Slug","Public","Tags"],rows:e.cosListCollections.map(s=>[p$1(s.id,12),s.name,s.slug??"-",s.isPublic?"yes":"no",(s.tags??[]).join(", ")])});}catch(e){g(e);}}),i$1.command("create").description("Create a collection").requiredOption("--name <name>","Collection name").option("--slug <slug>","URL slug").option("--description <s>","Description").option("--public","Mark the collection public").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.slug&&(e.slug=t.slug),t.description&&(e.description=t.description),t.public&&(e.isPublic=!0),t.tags&&(e.tags=p(t.tags));let s=await b$1(D,{input:e});i(`Collection created: ${s.cosCreateCollection.name}`),h$1(t,s.cosCreateCollection);}catch(e){g(e);}});}function pt(c){let i$1=c.command("datasets").description("Cosmicintersection datasets");i$1.command("list").description("List datasets").option("--collection <id>","Filter by collection ID").option("--source <id>","Filter by source ID").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(y,{collectionId:t.collection,sourceId:t.source,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.cosListDatasets.items,{headers:["ID","Name","Access","Status","Format","Rows"],rows:e.cosListDatasets.items.map(s=>[p$1(s.id,12),s.name,s.accessLevel??"-",s.status??"-",s.format??"-",s.rowCount??"-"])});}catch(e){g(e);}}),i$1.command("get").description("Get a dataset by id").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(h,{id:t});if(!s.cosDataset)throw new o(`Dataset ${t} not found`);h$1(e,s.cosDataset);}catch(s){g(s);}}),i$1.command("create").description("Create a dataset").requiredOption("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--source <id>","Source ID").option("--file <id>","File ID (wspace-files-svc)").option("--format <fmt>","Data format").option("--description <s>","Description").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async t=>{try{let e={name:t.name};t.accessLevel&&(e.accessLevel=t.accessLevel.toUpperCase()),t.collection&&(e.collectionId=t.collection),t.source&&(e.sourceId=t.source),t.file&&(e.fileId=t.file),t.format&&(e.format=t.format),t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.coverage&&(e.coverage=l("coverage",t.coverage)),t.tags&&(e.tags=p(t.tags));let s=await b$1(O,{input:e});i(`Dataset created: ${s.cosCreateDataset.name}`),h$1({format:t.formatOut},s.cosCreateDataset);}catch(e){g(e);}}),i$1.command("update").description("Update a dataset").argument("<id>","Dataset ID").option("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--format <fmt>","Data format").option("--description <s>","Description").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async(t,e)=>{try{let s={};if(e.name&&(s.name=e.name),e.accessLevel&&(s.accessLevel=e.accessLevel.toUpperCase()),e.collection&&(s.collectionId=e.collection),e.format&&(s.format=e.format),e.description!==void 0&&(s.description=e.description),e.coverage&&(s.coverage=l("coverage",e.coverage)),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(b,{id:t,input:s});i("Dataset updated"),h$1({format:e.formatOut},C.cosUpdateDataset);}catch(s){g(s);}}),i$1.command("publish").description("Mark a dataset AVAILABLE once ingestion completes").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(L,{id:t});i(`Dataset published: ${s.cosPublishDataset.status}`),h$1(e,s.cosPublishDataset);}catch(s){g(s);}}),i$1.command("archive").description("Archive a dataset").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(k,{id:t});i(`Dataset archived: ${String(s.cosArchiveDataset)}`),h$1(e,{archived:s.cosArchiveDataset});}catch(s){g(s);}}),i$1.command("schema-fields").description("List schema fields for a dataset").requiredOption("--dataset <id>","Dataset ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(N,{datasetId:t.dataset});h$1(t,e.cosListSchemaFields,{headers:["ID","Name","Type","Nullable","Pos","Unit"],rows:e.cosListSchemaFields.map(s=>[p$1(s.id,12),s.name,s.fieldType,s.nullable?"yes":"no",s.position!=null?String(s.position):"-",s.unit??"-"])});}catch(e){g(e);}}),i$1.command("add-field").description("Add a schema field to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--name <name>","Field name").option("--field-type <t>","STRING|INTEGER|FLOAT|BOOLEAN|TIMESTAMP|...").option("--description <s>","Description").option("--unit <u>","Unit").option("--provenance <p>","Provenance").option("--position <n>","Position",u).option("--not-nullable","Mark the field as not nullable").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,name:t.name};t.fieldType&&(e.fieldType=t.fieldType.toUpperCase()),t.description&&(e.description=t.description),t.unit&&(e.unit=t.unit),t.provenance&&(e.provenance=t.provenance),t.position!==void 0&&(e.position=t.position),t.notNullable&&(e.nullable=!1);let s=await b$1(w,{input:e});i(`Schema field added: ${s.cosAddSchemaField.name}`),h$1(t,s.cosAddSchemaField);}catch(e){g(e);}});}function ut(c){let i$1=c.command("sources").description("Cosmicintersection data sources");i$1.command("list").description("List data sources").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","CONFIGURING|CONNECTED|SYNCING|DEGRADED|DISABLED|ERROR").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1($,{type:t.type?t.type.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.cosListSources.items,{headers:["ID","Name","Type","Status","Last Synced"],rows:e.cosListSources.items.map(s=>[p$1(s.id,12),s.name,s.type??"-",s.status??"-",o$1(s.lastSyncedAt)])});}catch(e){g(e);}}),i$1.command("get").description("Get a data source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(T,{id:t});if(!s.cosSource)throw new o(`Source ${t} not found`);h$1(e,s.cosSource);}catch(s){g(s);}}),i$1.command("create").description("Create a data source").requiredOption("--name <name>","Source name").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.endpoint&&(e.endpoint=t.endpoint),t.description&&(e.description=t.description),t.credentialRef&&(e.credentialRef=t.credentialRef),t.config&&(e.config=l("config",t.config)),t.tags&&(e.tags=p(t.tags));let s=await b$1(v,{input:e});i(`Source created: ${s.cosCreateSource.name}`),h$1(t,s.cosCreateSource);}catch(e){g(e);}}),i$1.command("update").description("Update a data source").argument("<id>","Source ID").option("--name <name>","Source name").option("--type <t>","Source type").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.name&&(s.name=e.name),e.type&&(s.type=e.type.toUpperCase()),e.status&&(s.status=e.status.toUpperCase()),e.endpoint!==void 0&&(s.endpoint=e.endpoint),e.description!==void 0&&(s.description=e.description),e.credentialRef&&(s.credentialRef=e.credentialRef),e.config&&(s.config=l("config",e.config)),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(P,{id:t,input:s});i("Source updated"),h$1(e,C.cosUpdateSource);}catch(s){g(s);}}),i$1.command("mark-synced").description("Record a successful sync (sets status CONNECTED + lastSyncedAt)").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(U,{id:t});i(`Source synced: ${s.cosMarkSourceSynced.status}`),h$1(e,s.cosMarkSourceSynced);}catch(s){g(s);}}),i$1.command("archive").description("Archive a data source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(_,{id:t});i(`Source archived: ${String(s.cosArchiveSource)}`),h$1(e,{archived:s.cosArchiveSource});}catch(s){g(s);}});}function mt(c){let i$1=c.command("notebooks").description("Cosmicintersection computational notebooks");i$1.command("list").description("List notebooks").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.cosListNotebooks.items,{headers:["ID","Title","Status","Runtime","Shared"],rows:e.cosListNotebooks.items.map(s=>[p$1(s.id,12),s.title,s.status??"-",s.runtime??"-",s.isShared?"yes":"no"])});}catch(e){g(e);}}),i$1.command("get").description("Get a notebook by id").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(G,{id:t});if(!s.cosNotebook)throw new o(`Notebook ${t} not found`);h$1(e,s.cosNotebook);}catch(s){g(s);}}),i$1.command("create").description("Create a notebook").requiredOption("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--file <id>","File ID (notebook document)").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.description&&(e.description=t.description),t.runtime&&(e.runtime=t.runtime),t.file&&(e.fileId=t.file),t.datasetIds&&(e.datasetIds=p(t.datasetIds)),t.environment&&(e.environment=l("environment",t.environment)),t.tags&&(e.tags=p(t.tags));let s=await b$1(M,{input:e});i(`Notebook created: ${s.cosCreateNotebook.title}`),h$1(t,s.cosCreateNotebook);}catch(e){g(e);}}),i$1.command("update").description("Update a notebook").argument("<id>","Notebook ID").option("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--shared <bool>","true|false",t=>t==="true").option("--share-slug <slug>","Share slug").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.title&&(s.title=e.title),e.description!==void 0&&(s.description=e.description),e.runtime&&(s.runtime=e.runtime),e.status&&(s.status=e.status.toUpperCase()),e.datasetIds&&(s.datasetIds=p(e.datasetIds)),e.environment&&(s.environment=l("environment",e.environment)),e.shared!==void 0&&(s.isShared=e.shared),e.shareSlug&&(s.shareSlug=e.shareSlug),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(H,{id:t,input:s});i("Notebook updated"),h$1(e,C.cosUpdateNotebook);}catch(s){g(s);}}),i$1.command("archive").description("Archive a notebook").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(x,{id:t});i(`Notebook archived: ${String(s.cosArchiveNotebook)}`),h$1(e,{archived:s.cosArchiveNotebook});}catch(s){g(s);}});}function lt(c){let i$1=c.command("pipelines").description("Cosmicintersection data pipelines");i$1.command("list").description("List pipelines").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(B,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.cosListPipelines.items,{headers:["ID","Name","Status","Trigger","Schedule","Version"],rows:e.cosListPipelines.items.map(s=>[p$1(s.id,12),s.name,s.status??"-",s.trigger??"-",s.schedule??"-",s.version!=null?String(s.version):"-"])});}catch(e){g(e);}}),i$1.command("get").description("Get a pipeline by id").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(q,{id:t});if(!s.cosPipeline)throw new o(`Pipeline ${t} not found`);h$1(e,s.cosPipeline);}catch(s){g(s);}}),i$1.command("create").description("Create a pipeline").requiredOption("--name <name>","Pipeline name").option("--description <s>","Description").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.trigger&&(e.trigger=t.trigger.toUpperCase()),t.schedule&&(e.schedule=t.schedule),t.definition&&(e.definition=l("definition",t.definition)),t.tags&&(e.tags=p(t.tags));let s=await b$1(V,{input:e});i(`Pipeline created: ${s.cosCreatePipeline.name}`),h$1(t,s.cosCreatePipeline);}catch(e){g(e);}}),i$1.command("update").description("Update a pipeline").argument("<id>","Pipeline ID").option("--name <name>","Pipeline name").option("--description <s>","Description").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.name&&(s.name=e.name),e.description!==void 0&&(s.description=e.description),e.status&&(s.status=e.status.toUpperCase()),e.trigger&&(s.trigger=e.trigger.toUpperCase()),e.schedule&&(s.schedule=e.schedule),e.definition&&(s.definition=l("definition",e.definition)),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(J,{id:t,input:s});i("Pipeline updated"),h$1(e,C.cosUpdatePipeline);}catch(s){g(s);}}),i$1.command("archive").description("Archive a pipeline").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(K,{id:t});i(`Pipeline archived: ${String(s.cosArchivePipeline)}`),h$1(e,{archived:s.cosArchivePipeline});}catch(s){g(s);}});}function ft(c){let i$1=c.command("runs").description("Cosmicintersection pipeline runs & steps");i$1.command("list").description("List pipeline runs").option("--pipeline <id>","Filter by pipeline ID").option("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{pipelineId:t.pipeline,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.cosListRuns.items,{headers:["ID","Pipeline","Run #","Status","Started"],rows:e.cosListRuns.items.map(s=>[p$1(s.id,12),p$1(s.pipelineId,12),String(s.runNumber),s.status??"-",o$1(s.startedAt)])});}catch(e){g(e);}}),i$1.command("get").description("Get a run by id").argument("<id>","Run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(j,{id:t});if(!s.cosRun)throw new o(`Run ${t} not found`);h$1(e,s.cosRun);}catch(s){g(s);}}),i$1.command("start").description("Queue a new run of a pipeline").requiredOption("--pipeline <id>","Pipeline ID").option("--dataset <id>","Dataset ID").option("--params <json>","Params JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={pipelineId:t.pipeline};t.dataset&&(e.datasetId=t.dataset),t.params&&(e.params=l("params",t.params));let s=await b$1(Y,{input:e});i(`Run started: #${s.cosStartRun.runNumber}`),h$1(t,s.cosStartRun);}catch(e){g(e);}}),i$1.command("transition").description("Advance a run through its lifecycle").argument("<id>","Run ID").requiredOption("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(z,{id:t,status:e.status.toUpperCase()});i(`Run transitioned to ${s.cosTransitionRun.status}`),h$1(e,s.cosTransitionRun);}catch(s){g(s);}}),i$1.command("steps").description("List steps for a run").requiredOption("--run <id>","Run ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q,{runId:t.run});h$1(t,e.cosListRunSteps,{headers:["ID","Name","Kind","Status","Pos"],rows:e.cosListRunSteps.map(s=>[p$1(s.id,12),s.name,s.kind,s.status??"-",s.position!=null?String(s.position):"-"])});}catch(e){g(e);}}),i$1.command("add-step").description("Append a step to a run").requiredOption("--run <id>","Run ID").requiredOption("--name <name>","Step name").option("--kind <k>","INGEST|TRANSFORM|ANALYZE|CALIBRATE|EXPORT|NOTIFY").option("--position <n>","Position",u).option("--inputs <json>","Inputs JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={runId:t.run,name:t.name};t.kind&&(e.kind=t.kind.toUpperCase()),t.position!==void 0&&(e.position=t.position),t.inputs&&(e.inputs=l("inputs",t.inputs));let s=await b$1(X,{input:e});i(`Step added: ${s.cosAddRunStep.name}`),h$1(t,s.cosAddRunStep);}catch(e){g(e);}});}function gt(c){let i$1=c.command("analyses").description("Cosmicintersection analyses");i$1.command("list").description("List analyses").option("--dataset <id>","Filter by dataset ID").option("--notebook <id>","Filter by notebook ID").option("--status <s>","PENDING|RUNNING|COMPLETED|FAILED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Z,{datasetId:t.dataset,notebookId:t.notebook,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.cosListAnalyses,{headers:["ID","Title","Status","Method","AI"],rows:e.cosListAnalyses.map(s=>[p$1(s.id,12),s.title,s.status??"-",s.method??"-",s.aiAssisted?"yes":"no"])});}catch(e){g(e);}}),i$1.command("run").description("Start an analysis run").requiredOption("--title <t>","Analysis title").option("--dataset <id>","Dataset ID").option("--notebook <id>","Notebook ID").option("--method <m>","Analysis method").option("--ai-assisted","Mark the analysis as AI-assisted").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.dataset&&(e.datasetId=t.dataset),t.notebook&&(e.notebookId=t.notebook),t.method&&(e.method=t.method),t.aiAssisted&&(e.aiAssisted=!0);let s=await b$1(tt,{input:e});i(`Analysis started: ${s.cosRunAnalysis.title}`),h$1(t,s.cosRunAnalysis);}catch(e){g(e);}}),i$1.command("complete").description("Record the terminal outcome of an analysis run").argument("<id>","Analysis ID").requiredOption("--status <s>","COMPLETED|FAILED").option("--results <json>","Results JSON").option("--output-file <id>","Output file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(et,{id:t,status:e.status.toUpperCase(),results:e.results?l("results",e.results):void 0,outputFileId:e.outputFile});i(`Analysis completed: ${s.cosCompleteAnalysis.status}`),h$1(e,s.cosCompleteAnalysis);}catch(s){g(s);}});}function It(c){let i$1=c.command("releases").description("Cosmicintersection citable releases");i$1.command("list").description("List releases").option("--status <s>","DRAFT|UNDER_REVIEW|PUBLISHED|RETRACTED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(st,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.cosListReleases.items,{headers:["ID","Title","Version","Status","DOI"],rows:e.cosListReleases.items.map(s=>[p$1(s.id,12),s.title,s.version,s.status??"-",s.doi??"-"])});}catch(e){g(e);}}),i$1.command("create").description("Create a release").requiredOption("--title <t>","Release title").option("--version <v>","Version").option("--abstract <s>","Abstract").option("--license <l>","License").option("--notebook <id>","Notebook ID").option("--authors <csv>","Comma-separated authors").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.version&&(e.version=t.version),t.abstract&&(e.abstract=t.abstract),t.license&&(e.license=t.license),t.notebook&&(e.notebookId=t.notebook),t.authors&&(e.authors=p(t.authors)),t.datasetIds&&(e.datasetIds=p(t.datasetIds));let s=await b$1(it,{input:e});i(`Release created: ${s.cosCreateRelease.title}`),h$1(t,s.cosCreateRelease);}catch(e){g(e);}}),i$1.command("publish").description("Publish a citable release and stamp it with a DOI").argument("<id>","Release ID").option("--doi <doi>","DOI to stamp").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(ot,{id:t,doi:e.doi});i(`Release published: ${s.cosPublishRelease.version}`),h$1(e,s.cosPublishRelease);}catch(s){g(s);}});}function Ct(c){let i$1=c.command("grants").description("Cosmicintersection data-access grants");i$1.command("list").description("List data-access grants").option("--dataset <id>","Filter by dataset ID").option("--status <s>","PENDING|ACTIVE|REVOKED|EXPIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(nt,{datasetId:t.dataset,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.cosListAccessGrants,{headers:["ID","Dataset","Grantee","Status","Scopes","Expires"],rows:e.cosListAccessGrants.map(s=>[p$1(s.id,12),p$1(s.datasetId,12),p$1(s.granteeId,12),s.status??"-",(s.scopes??[]).join(", "),o$1(s.expiresAt)])});}catch(e){g(e);}}),i$1.command("grant").description("Grant a grantee access to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--grantee <id>","Grantee ID").option("--scopes <csv>","Comma-separated scopes").option("--reason <s>","Reason").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,granteeId:t.grantee};t.scopes&&(e.scopes=p(t.scopes)),t.reason&&(e.reason=t.reason),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b$1(at,{input:e});i(`Access granted to ${s.cosGrantAccess.granteeId}`),h$1(t,s.cosGrantAccess);}catch(e){g(e);}}),i$1.command("revoke").description("Revoke a data-access grant").argument("<id>","Grant ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(rt,{id:t});i(`Access revoked: ${s.cosRevokeAccess.status}`),h$1(e,s.cosRevokeAccess);}catch(s){g(s);}});}function At(c){c.command("health").description("Cosmicintersection service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(ct);i(t.cosHealth),h$1(i$1,{health:t.cosHealth});}catch(t){g(t);}});}var St={id:"cosmicintersection",version:"1.0.0",displayName:"Cosmicintersection",dependsOn:["auth","workspaces"],register(c,i){a(i);let t=c.command("cosmicintersection").description("Cosmicintersection open-science data platform");dt(t),pt(t),ut(t),mt(t),lt(t),ft(t),gt(t),It(t),Ct(t),At(t);}},me=St;export{me as default};
|
|
334
|
+
`;function l(c,i){try{return JSON.parse(i)}catch{throw new o(`--${c} must be valid JSON`)}}function u(c){let i=Number.parseInt(c,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${c}"`);return i}function p(c){return c.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function dt(c){let i$1=c.command("collections").description("Cosmicintersection dataset collections");i$1.command("list").description("List collections").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(E);i(t,e.cosListCollections,{headers:["ID","Name","Slug","Public","Tags"],rows:e.cosListCollections.map(s=>[r(s.id,12),s.name,s.slug??"-",s.isPublic?"yes":"no",(s.tags??[]).join(", ")])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a collection").requiredOption("--name <name>","Collection name").option("--slug <slug>","URL slug").option("--description <s>","Description").option("--public","Mark the collection public").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.slug&&(e.slug=t.slug),t.description&&(e.description=t.description),t.public&&(e.isPublic=!0),t.tags&&(e.tags=p(t.tags));let s=await b$1(D,{input:e});k$1(`Collection created: ${s.cosCreateCollection.name}`),i(t,s.cosCreateCollection);}catch(e){h$1(e);}});}function pt(c){let i$1=c.command("datasets").description("Cosmicintersection datasets");i$1.command("list").description("List datasets").option("--collection <id>","Filter by collection ID").option("--source <id>","Filter by source ID").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(y,{collectionId:t.collection,sourceId:t.source,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListDatasets.items,{headers:["ID","Name","Access","Status","Format","Rows"],rows:e.cosListDatasets.items.map(s=>[r(s.id,12),s.name,s.accessLevel??"-",s.status??"-",s.format??"-",s.rowCount??"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a dataset by id").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(h,{id:t});if(!s.cosDataset)throw new o(`Dataset ${t} not found`);i(e,s.cosDataset);}catch(s){h$1(s);}}),i$1.command("create").description("Create a dataset").requiredOption("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--source <id>","Source ID").option("--file <id>","File ID (wspace-files-svc)").option("--format <fmt>","Data format").option("--description <s>","Description").option("--status <s>","DRAFT|INGESTING|AVAILABLE|DEPRECATED|ARCHIVED").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async t=>{try{let e={name:t.name};t.accessLevel&&(e.accessLevel=t.accessLevel.toUpperCase()),t.collection&&(e.collectionId=t.collection),t.source&&(e.sourceId=t.source),t.file&&(e.fileId=t.file),t.format&&(e.format=t.format),t.description&&(e.description=t.description),t.status&&(e.status=t.status.toUpperCase()),t.coverage&&(e.coverage=l("coverage",t.coverage)),t.tags&&(e.tags=p(t.tags));let s=await b$1(O,{input:e});k$1(`Dataset created: ${s.cosCreateDataset.name}`),i({format:t.formatOut},s.cosCreateDataset);}catch(e){h$1(e);}}),i$1.command("update").description("Update a dataset").argument("<id>","Dataset ID").option("--name <name>","Dataset name").option("--access-level <a>","EMBARGOED|PUBLIC|RESTRICTED|WORKSPACE").option("--collection <id>","Collection ID").option("--format <fmt>","Data format").option("--description <s>","Description").option("--coverage <json>","Coverage JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format-out <format>","Output format").action(async(t,e)=>{try{let s={};if(e.name&&(s.name=e.name),e.accessLevel&&(s.accessLevel=e.accessLevel.toUpperCase()),e.collection&&(s.collectionId=e.collection),e.format&&(s.format=e.format),e.description!==void 0&&(s.description=e.description),e.coverage&&(s.coverage=l("coverage",e.coverage)),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(b,{id:t,input:s});k$1("Dataset updated"),i({format:e.formatOut},C.cosUpdateDataset);}catch(s){h$1(s);}}),i$1.command("publish").description("Mark a dataset AVAILABLE once ingestion completes").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(L,{id:t});k$1(`Dataset published: ${s.cosPublishDataset.status}`),i(e,s.cosPublishDataset);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a dataset").argument("<id>","Dataset ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(k,{id:t});k$1(`Dataset archived: ${String(s.cosArchiveDataset)}`),i(e,{archived:s.cosArchiveDataset});}catch(s){h$1(s);}}),i$1.command("schema-fields").description("List schema fields for a dataset").requiredOption("--dataset <id>","Dataset ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(N,{datasetId:t.dataset});i(t,e.cosListSchemaFields,{headers:["ID","Name","Type","Nullable","Pos","Unit"],rows:e.cosListSchemaFields.map(s=>[r(s.id,12),s.name,s.fieldType,s.nullable?"yes":"no",s.position!=null?String(s.position):"-",s.unit??"-"])});}catch(e){h$1(e);}}),i$1.command("add-field").description("Add a schema field to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--name <name>","Field name").option("--field-type <t>","STRING|INTEGER|FLOAT|BOOLEAN|TIMESTAMP|...").option("--description <s>","Description").option("--unit <u>","Unit").option("--provenance <p>","Provenance").option("--position <n>","Position",u).option("--not-nullable","Mark the field as not nullable").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,name:t.name};t.fieldType&&(e.fieldType=t.fieldType.toUpperCase()),t.description&&(e.description=t.description),t.unit&&(e.unit=t.unit),t.provenance&&(e.provenance=t.provenance),t.position!==void 0&&(e.position=t.position),t.notNullable&&(e.nullable=!1);let s=await b$1(w,{input:e});k$1(`Schema field added: ${s.cosAddSchemaField.name}`),i(t,s.cosAddSchemaField);}catch(e){h$1(e);}});}function ut(c){let i$1=c.command("sources").description("Cosmicintersection data sources");i$1.command("list").description("List data sources").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","CONFIGURING|CONNECTED|SYNCING|DEGRADED|DISABLED|ERROR").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1($,{type:t.type?t.type.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListSources.items,{headers:["ID","Name","Type","Status","Last Synced"],rows:e.cosListSources.items.map(s=>[r(s.id,12),s.name,s.type??"-",s.status??"-",q$1(s.lastSyncedAt)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a data source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(T,{id:t});if(!s.cosSource)throw new o(`Source ${t} not found`);i(e,s.cosSource);}catch(s){h$1(s);}}),i$1.command("create").description("Create a data source").requiredOption("--name <name>","Source name").option("--type <t>","ARCHIVE|API|FILE_DROP|GROUND_SENSOR|SATELLITE|SIMULATION|STREAM|TELESCOPE").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.endpoint&&(e.endpoint=t.endpoint),t.description&&(e.description=t.description),t.credentialRef&&(e.credentialRef=t.credentialRef),t.config&&(e.config=l("config",t.config)),t.tags&&(e.tags=p(t.tags));let s=await b$1(v,{input:e});k$1(`Source created: ${s.cosCreateSource.name}`),i(t,s.cosCreateSource);}catch(e){h$1(e);}}),i$1.command("update").description("Update a data source").argument("<id>","Source ID").option("--name <name>","Source name").option("--type <t>","Source type").option("--status <s>","Source status").option("--endpoint <url>","Endpoint URL").option("--description <s>","Description").option("--credential-ref <ref>","Credential reference").option("--config <json>","Config JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.name&&(s.name=e.name),e.type&&(s.type=e.type.toUpperCase()),e.status&&(s.status=e.status.toUpperCase()),e.endpoint!==void 0&&(s.endpoint=e.endpoint),e.description!==void 0&&(s.description=e.description),e.credentialRef&&(s.credentialRef=e.credentialRef),e.config&&(s.config=l("config",e.config)),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(P,{id:t,input:s});k$1("Source updated"),i(e,C.cosUpdateSource);}catch(s){h$1(s);}}),i$1.command("mark-synced").description("Record a successful sync (sets status CONNECTED + lastSyncedAt)").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(U,{id:t});k$1(`Source synced: ${s.cosMarkSourceSynced.status}`),i(e,s.cosMarkSourceSynced);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a data source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(_,{id:t});k$1(`Source archived: ${String(s.cosArchiveSource)}`),i(e,{archived:s.cosArchiveSource});}catch(s){h$1(s);}});}function mt(c){let i$1=c.command("notebooks").description("Cosmicintersection computational notebooks");i$1.command("list").description("List notebooks").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(F,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListNotebooks.items,{headers:["ID","Title","Status","Runtime","Shared"],rows:e.cosListNotebooks.items.map(s=>[r(s.id,12),s.title,s.status??"-",s.runtime??"-",s.isShared?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a notebook by id").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(G,{id:t});if(!s.cosNotebook)throw new o(`Notebook ${t} not found`);i(e,s.cosNotebook);}catch(s){h$1(s);}}),i$1.command("create").description("Create a notebook").requiredOption("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--file <id>","File ID (notebook document)").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.description&&(e.description=t.description),t.runtime&&(e.runtime=t.runtime),t.file&&(e.fileId=t.file),t.datasetIds&&(e.datasetIds=p(t.datasetIds)),t.environment&&(e.environment=l("environment",t.environment)),t.tags&&(e.tags=p(t.tags));let s=await b$1(M,{input:e});k$1(`Notebook created: ${s.cosCreateNotebook.title}`),i(t,s.cosCreateNotebook);}catch(e){h$1(e);}}),i$1.command("update").description("Update a notebook").argument("<id>","Notebook ID").option("--title <t>","Notebook title").option("--description <s>","Description").option("--runtime <r>","Runtime").option("--status <s>","DRAFT|RUNNING|PUBLISHED|ARCHIVED").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("--environment <json>","Environment JSON").option("--shared <bool>","true|false",t=>t==="true").option("--share-slug <slug>","Share slug").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.title&&(s.title=e.title),e.description!==void 0&&(s.description=e.description),e.runtime&&(s.runtime=e.runtime),e.status&&(s.status=e.status.toUpperCase()),e.datasetIds&&(s.datasetIds=p(e.datasetIds)),e.environment&&(s.environment=l("environment",e.environment)),e.shared!==void 0&&(s.isShared=e.shared),e.shareSlug&&(s.shareSlug=e.shareSlug),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(H,{id:t,input:s});k$1("Notebook updated"),i(e,C.cosUpdateNotebook);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a notebook").argument("<id>","Notebook ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(x,{id:t});k$1(`Notebook archived: ${String(s.cosArchiveNotebook)}`),i(e,{archived:s.cosArchiveNotebook});}catch(s){h$1(s);}});}function lt(c){let i$1=c.command("pipelines").description("Cosmicintersection data pipelines");i$1.command("list").description("List pipelines").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(B,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListPipelines.items,{headers:["ID","Name","Status","Trigger","Schedule","Version"],rows:e.cosListPipelines.items.map(s=>[r(s.id,12),s.name,s.status??"-",s.trigger??"-",s.schedule??"-",s.version!=null?String(s.version):"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a pipeline by id").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(q,{id:t});if(!s.cosPipeline)throw new o(`Pipeline ${t} not found`);i(e,s.cosPipeline);}catch(s){h$1(s);}}),i$1.command("create").description("Create a pipeline").requiredOption("--name <name>","Pipeline name").option("--description <s>","Description").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.description&&(e.description=t.description),t.trigger&&(e.trigger=t.trigger.toUpperCase()),t.schedule&&(e.schedule=t.schedule),t.definition&&(e.definition=l("definition",t.definition)),t.tags&&(e.tags=p(t.tags));let s=await b$1(V,{input:e});k$1(`Pipeline created: ${s.cosCreatePipeline.name}`),i(t,s.cosCreatePipeline);}catch(e){h$1(e);}}),i$1.command("update").description("Update a pipeline").argument("<id>","Pipeline ID").option("--name <name>","Pipeline name").option("--description <s>","Description").option("--status <s>","DRAFT|ACTIVE|PAUSED|ARCHIVED").option("--trigger <t>","MANUAL|SCHEDULED|ON_INGEST|WEBHOOK").option("--schedule <cron>","Schedule (cron)").option("--definition <json>","Definition JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.name&&(s.name=e.name),e.description!==void 0&&(s.description=e.description),e.status&&(s.status=e.status.toUpperCase()),e.trigger&&(s.trigger=e.trigger.toUpperCase()),e.schedule&&(s.schedule=e.schedule),e.definition&&(s.definition=l("definition",e.definition)),e.tags&&(s.tags=p(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let C=await b$1(J,{id:t,input:s});k$1("Pipeline updated"),i(e,C.cosUpdatePipeline);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a pipeline").argument("<id>","Pipeline ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(K,{id:t});k$1(`Pipeline archived: ${String(s.cosArchivePipeline)}`),i(e,{archived:s.cosArchivePipeline});}catch(s){h$1(s);}});}function ft(c){let i$1=c.command("runs").description("Cosmicintersection pipeline runs & steps");i$1.command("list").description("List pipeline runs").option("--pipeline <id>","Filter by pipeline ID").option("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{pipelineId:t.pipeline,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListRuns.items,{headers:["ID","Pipeline","Run #","Status","Started"],rows:e.cosListRuns.items.map(s=>[r(s.id,12),r(s.pipelineId,12),String(s.runNumber),s.status??"-",q$1(s.startedAt)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a run by id").argument("<id>","Run ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(j,{id:t});if(!s.cosRun)throw new o(`Run ${t} not found`);i(e,s.cosRun);}catch(s){h$1(s);}}),i$1.command("start").description("Queue a new run of a pipeline").requiredOption("--pipeline <id>","Pipeline ID").option("--dataset <id>","Dataset ID").option("--params <json>","Params JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={pipelineId:t.pipeline};t.dataset&&(e.datasetId=t.dataset),t.params&&(e.params=l("params",t.params));let s=await b$1(Y,{input:e});k$1(`Run started: #${s.cosStartRun.runNumber}`),i(t,s.cosStartRun);}catch(e){h$1(e);}}),i$1.command("transition").description("Advance a run through its lifecycle").argument("<id>","Run ID").requiredOption("--status <s>","QUEUED|RUNNING|SUCCEEDED|FAILED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(z,{id:t,status:e.status.toUpperCase()});k$1(`Run transitioned to ${s.cosTransitionRun.status}`),i(e,s.cosTransitionRun);}catch(s){h$1(s);}}),i$1.command("steps").description("List steps for a run").requiredOption("--run <id>","Run ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q,{runId:t.run});i(t,e.cosListRunSteps,{headers:["ID","Name","Kind","Status","Pos"],rows:e.cosListRunSteps.map(s=>[r(s.id,12),s.name,s.kind,s.status??"-",s.position!=null?String(s.position):"-"])});}catch(e){h$1(e);}}),i$1.command("add-step").description("Append a step to a run").requiredOption("--run <id>","Run ID").requiredOption("--name <name>","Step name").option("--kind <k>","INGEST|TRANSFORM|ANALYZE|CALIBRATE|EXPORT|NOTIFY").option("--position <n>","Position",u).option("--inputs <json>","Inputs JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={runId:t.run,name:t.name};t.kind&&(e.kind=t.kind.toUpperCase()),t.position!==void 0&&(e.position=t.position),t.inputs&&(e.inputs=l("inputs",t.inputs));let s=await b$1(X,{input:e});k$1(`Step added: ${s.cosAddRunStep.name}`),i(t,s.cosAddRunStep);}catch(e){h$1(e);}});}function gt(c){let i$1=c.command("analyses").description("Cosmicintersection analyses");i$1.command("list").description("List analyses").option("--dataset <id>","Filter by dataset ID").option("--notebook <id>","Filter by notebook ID").option("--status <s>","PENDING|RUNNING|COMPLETED|FAILED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Z,{datasetId:t.dataset,notebookId:t.notebook,status:t.status?t.status.toUpperCase():void 0});i(t,e.cosListAnalyses,{headers:["ID","Title","Status","Method","AI"],rows:e.cosListAnalyses.map(s=>[r(s.id,12),s.title,s.status??"-",s.method??"-",s.aiAssisted?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("run").description("Start an analysis run").requiredOption("--title <t>","Analysis title").option("--dataset <id>","Dataset ID").option("--notebook <id>","Notebook ID").option("--method <m>","Analysis method").option("--ai-assisted","Mark the analysis as AI-assisted").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.dataset&&(e.datasetId=t.dataset),t.notebook&&(e.notebookId=t.notebook),t.method&&(e.method=t.method),t.aiAssisted&&(e.aiAssisted=!0);let s=await b$1(tt,{input:e});k$1(`Analysis started: ${s.cosRunAnalysis.title}`),i(t,s.cosRunAnalysis);}catch(e){h$1(e);}}),i$1.command("complete").description("Record the terminal outcome of an analysis run").argument("<id>","Analysis ID").requiredOption("--status <s>","COMPLETED|FAILED").option("--results <json>","Results JSON").option("--output-file <id>","Output file ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(et,{id:t,status:e.status.toUpperCase(),results:e.results?l("results",e.results):void 0,outputFileId:e.outputFile});k$1(`Analysis completed: ${s.cosCompleteAnalysis.status}`),i(e,s.cosCompleteAnalysis);}catch(s){h$1(s);}});}function It(c){let i$1=c.command("releases").description("Cosmicintersection citable releases");i$1.command("list").description("List releases").option("--status <s>","DRAFT|UNDER_REVIEW|PUBLISHED|RETRACTED").option("--limit <n>","Page size",u,50).option("--offset <n>","Offset",u,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(st,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.cosListReleases.items,{headers:["ID","Title","Version","Status","DOI"],rows:e.cosListReleases.items.map(s=>[r(s.id,12),s.title,s.version,s.status??"-",s.doi??"-"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a release").requiredOption("--title <t>","Release title").option("--version <v>","Version").option("--abstract <s>","Abstract").option("--license <l>","License").option("--notebook <id>","Notebook ID").option("--authors <csv>","Comma-separated authors").option("--dataset-ids <csv>","Comma-separated dataset IDs").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title};t.version&&(e.version=t.version),t.abstract&&(e.abstract=t.abstract),t.license&&(e.license=t.license),t.notebook&&(e.notebookId=t.notebook),t.authors&&(e.authors=p(t.authors)),t.datasetIds&&(e.datasetIds=p(t.datasetIds));let s=await b$1(it,{input:e});k$1(`Release created: ${s.cosCreateRelease.title}`),i(t,s.cosCreateRelease);}catch(e){h$1(e);}}),i$1.command("publish").description("Publish a citable release and stamp it with a DOI").argument("<id>","Release ID").option("--doi <doi>","DOI to stamp").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(ot,{id:t,doi:e.doi});k$1(`Release published: ${s.cosPublishRelease.version}`),i(e,s.cosPublishRelease);}catch(s){h$1(s);}});}function Ct(c){let i$1=c.command("grants").description("Cosmicintersection data-access grants");i$1.command("list").description("List data-access grants").option("--dataset <id>","Filter by dataset ID").option("--status <s>","PENDING|ACTIVE|REVOKED|EXPIRED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(nt,{datasetId:t.dataset,status:t.status?t.status.toUpperCase():void 0});i(t,e.cosListAccessGrants,{headers:["ID","Dataset","Grantee","Status","Scopes","Expires"],rows:e.cosListAccessGrants.map(s=>[r(s.id,12),r(s.datasetId,12),r(s.granteeId,12),s.status??"-",(s.scopes??[]).join(", "),q$1(s.expiresAt)])});}catch(e){h$1(e);}}),i$1.command("grant").description("Grant a grantee access to a dataset").requiredOption("--dataset <id>","Dataset ID").requiredOption("--grantee <id>","Grantee ID").option("--scopes <csv>","Comma-separated scopes").option("--reason <s>","Reason").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={datasetId:t.dataset,granteeId:t.grantee};t.scopes&&(e.scopes=p(t.scopes)),t.reason&&(e.reason=t.reason),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b$1(at,{input:e});k$1(`Access granted to ${s.cosGrantAccess.granteeId}`),i(t,s.cosGrantAccess);}catch(e){h$1(e);}}),i$1.command("revoke").description("Revoke a data-access grant").argument("<id>","Grant ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b$1(rt,{id:t});k$1(`Access revoked: ${s.cosRevokeAccess.status}`),i(e,s.cosRevokeAccess);}catch(s){h$1(s);}});}function At(c){c.command("health").description("Cosmicintersection service health check (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(ct);k$1(t.cosHealth),i(i$1,{health:t.cosHealth});}catch(t){h$1(t);}});}var St={id:"cosmicintersection",version:"1.0.0",displayName:"Cosmicintersection",dependsOn:["auth","workspaces"],register(c,i){a(i);let t=c.command("cosmicintersection").description("Cosmicintersection open-science data platform");dt(t),pt(t),ut(t),mt(t),lt(t),ft(t),gt(t),It(t),Ct(t),At(t);}},me=St;export{me as default};
|