@burdenoff/cli-sdk 2026.526.2 → 2026.527.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/{chunk-KTKHJORN.js → chunk-LZQBJDKZ.js} +1 -1
  2. package/dist/chunk-TCBALVP4.js +32 -0
  3. package/dist/core/index.cjs +7 -7
  4. package/dist/core/index.d.cts +2 -2
  5. package/dist/core/index.d.ts +2 -2
  6. package/dist/core/index.js +1 -1
  7. package/dist/index.cjs +7 -7
  8. package/dist/index.d.cts +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/{module-Bv5zhYt2.d.cts → module-DxCuik6L.d.cts} +1 -0
  12. package/dist/{module-Bv5zhYt2.d.ts → module-DxCuik6L.d.ts} +1 -0
  13. package/dist/modules/auth/index.cjs +4 -4
  14. package/dist/modules/auth/index.d.cts +1 -1
  15. package/dist/modules/auth/index.d.ts +1 -1
  16. package/dist/modules/auth/index.js +1 -1
  17. package/dist/modules/billing/index.cjs +2 -2
  18. package/dist/modules/billing/index.d.cts +1 -1
  19. package/dist/modules/billing/index.d.ts +1 -1
  20. package/dist/modules/billing/index.js +1 -1
  21. package/dist/modules/channels/index.cjs +4 -4
  22. package/dist/modules/channels/index.d.cts +1 -1
  23. package/dist/modules/channels/index.d.ts +1 -1
  24. package/dist/modules/channels/index.js +1 -1
  25. package/dist/modules/conversations/index.cjs +2 -2
  26. package/dist/modules/conversations/index.d.cts +1 -1
  27. package/dist/modules/conversations/index.d.ts +1 -1
  28. package/dist/modules/conversations/index.js +1 -1
  29. package/dist/modules/devportal/index.cjs +4 -4
  30. package/dist/modules/devportal/index.d.cts +1 -1
  31. package/dist/modules/devportal/index.d.ts +1 -1
  32. package/dist/modules/devportal/index.js +1 -1
  33. package/dist/modules/export/index.d.cts +1 -1
  34. package/dist/modules/export/index.d.ts +1 -1
  35. package/dist/modules/export/index.js +1 -1
  36. package/dist/modules/files/index.cjs +5 -5
  37. package/dist/modules/files/index.d.cts +1 -1
  38. package/dist/modules/files/index.d.ts +1 -1
  39. package/dist/modules/files/index.js +1 -1
  40. package/dist/modules/groups/index.cjs +4 -4
  41. package/dist/modules/groups/index.d.cts +1 -1
  42. package/dist/modules/groups/index.d.ts +1 -1
  43. package/dist/modules/groups/index.js +1 -1
  44. package/dist/modules/health/index.d.cts +1 -1
  45. package/dist/modules/health/index.d.ts +1 -1
  46. package/dist/modules/integrations/index.cjs +4 -4
  47. package/dist/modules/integrations/index.d.cts +1 -1
  48. package/dist/modules/integrations/index.d.ts +1 -1
  49. package/dist/modules/integrations/index.js +1 -1
  50. package/dist/modules/notifications/index.d.cts +1 -1
  51. package/dist/modules/notifications/index.d.ts +1 -1
  52. package/dist/modules/notifications/index.js +1 -1
  53. package/dist/modules/organizations/index.cjs +4 -4
  54. package/dist/modules/organizations/index.d.cts +1 -1
  55. package/dist/modules/organizations/index.d.ts +1 -1
  56. package/dist/modules/organizations/index.js +1 -1
  57. package/dist/modules/products/index.cjs +8 -8
  58. package/dist/modules/products/index.d.cts +1 -1
  59. package/dist/modules/products/index.d.ts +1 -1
  60. package/dist/modules/products/index.js +1 -1
  61. package/dist/modules/rbac/index.cjs +3 -3
  62. package/dist/modules/rbac/index.d.cts +1 -1
  63. package/dist/modules/rbac/index.d.ts +1 -1
  64. package/dist/modules/rbac/index.js +1 -1
  65. package/dist/modules/sandbox/index.d.cts +1 -1
  66. package/dist/modules/sandbox/index.d.ts +1 -1
  67. package/dist/modules/sandbox/index.js +1 -1
  68. package/dist/modules/scheduler/index.cjs +10 -10
  69. package/dist/modules/scheduler/index.d.cts +1 -1
  70. package/dist/modules/scheduler/index.d.ts +1 -1
  71. package/dist/modules/scheduler/index.js +1 -1
  72. package/dist/modules/security/index.cjs +7 -7
  73. package/dist/modules/security/index.d.cts +1 -1
  74. package/dist/modules/security/index.d.ts +1 -1
  75. package/dist/modules/security/index.js +1 -1
  76. package/dist/modules/store/index.cjs +2 -2
  77. package/dist/modules/store/index.d.cts +1 -1
  78. package/dist/modules/store/index.d.ts +1 -1
  79. package/dist/modules/store/index.js +1 -1
  80. package/dist/modules/support/index.cjs +2 -2
  81. package/dist/modules/support/index.d.cts +1 -1
  82. package/dist/modules/support/index.d.ts +1 -1
  83. package/dist/modules/support/index.js +1 -1
  84. package/dist/modules/tags/index.cjs +2 -2
  85. package/dist/modules/tags/index.d.cts +1 -1
  86. package/dist/modules/tags/index.d.ts +1 -1
  87. package/dist/modules/tags/index.js +1 -1
  88. package/dist/modules/tours/index.cjs +2 -2
  89. package/dist/modules/tours/index.d.cts +1 -1
  90. package/dist/modules/tours/index.d.ts +1 -1
  91. package/dist/modules/tours/index.js +1 -1
  92. package/dist/modules/vibecontrols/index.cjs +51 -51
  93. package/dist/modules/vibecontrols/index.d.cts +1 -1
  94. package/dist/modules/vibecontrols/index.d.ts +1 -1
  95. package/dist/modules/vibecontrols/index.js +1 -1
  96. package/dist/modules/workspaces/index.cjs +10 -10
  97. package/dist/modules/workspaces/index.d.cts +1 -1
  98. package/dist/modules/workspaces/index.d.ts +1 -1
  99. package/dist/modules/workspaces/index.js +1 -1
  100. package/package.json +1 -1
  101. package/dist/chunk-RNWXATAC.js +0 -32
@@ -1,4 +1,4 @@
1
- import {a,c,g,o,m as m$1,n,f,h as h$1,j}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var A=`
1
+ import {a,c,g,o,m as m$1,n,f,h as h$1,j}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var A=`
2
2
  query GetDefaultBillingAccount {
3
3
  getDefaultBillingAccount {
4
4
  id creditAmount currency
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(o,p){super(o),this.name="CliUserError",this.exitCode=p?.exitCode??1,this.hint=p?.hint;}};var d=class extends Error{cause;constructor(o,p){super(o),this.name="CliInternalError",this.cause=p;}};var h=null;function E(r){h=r;}function g(){if(!h)throw new d("vibecontrols module helpers used before setHelpersContext was called");return h}async function a(r,o){return g().gql.global.request(r,o)}function c(r){let o=r instanceof Error?r.message:String(r);throw new l(o)}function u(r,o,p){g().output.formatAndOutput(r,o,p);}function f(r){g().output.printSuccess(r);}function C(r){return g().output.formatStatus(r)}function T(r){return g().output.formatDate(r)}function w(r,o){return g().output.truncate(r,o)}function I(){return g()}var b=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(o,p){super(o),this.name="CliUserError",this.exitCode=p?.exitCode??1,this.hint=p?.hint;}};var d=class extends Error{cause;constructor(o,p){super(o),this.name="CliInternalError",this.cause=p;}};var h=null;function E(r){h=r;}function g(){if(!h)throw new d("vibecontrols module helpers used before setHelpersContext was called");return h}async function a(r,o){return g().gql.global.request(r,o)}function c(r){let o=r instanceof Error?r.message:String(r);throw new l(o)}function u(r,o,p){g().output.formatAndOutput(r,o,p);}function f(r){g().output.printSuccess(r);}function C(r){return g().output.formatStatus(r)}function I(r){return g().output.formatDate(r)}function w(r,o){return g().output.truncate(r,o)}function T(){return g()}var b=`
2
2
  query GetChannels($filter: ChannelFilterInput, $pagination: ChannelPaginationInput) {
3
3
  getChannels(filter: $filter, pagination: $pagination) {
4
4
  items { id name platform adapterType status connectionHealth priority createdAt }
@@ -57,14 +57,14 @@
57
57
  total hasMore
58
58
  }
59
59
  }
60
- `,R=`
60
+ `,_=`
61
61
  mutation CreateChannelConnection($input: CreateConnectionInput!) {
62
62
  createConnection(input: $input) {
63
63
  id channelId authType isActive
64
64
  }
65
65
  }
66
- `,_=`
66
+ `,R=`
67
67
  mutation DeleteChannelConnection($id: ID!) {
68
68
  deleteConnection(id: $id)
69
69
  }
70
- `;function q(r){let o=r.command("channels").description("Multi-platform message channels (email/SMS/Slack/etc.)");o.command("list").description("List channels").option("--platform <p>").option("--status <s>").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.platform&&(t.platform=e.platform.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let n=await a(b,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});u(e,n.getChannels.items,{headers:["ID","Name","Platform","Status","Priority"],rows:n.getChannels.items.map(i=>[w(i.id,12),i.name,i.platform,C(i.status),String(i.priority??"-")])});}catch(t){c(t);}}),o.command("get").description("Get a channel").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(A,{id:e});if(!n.getChannel)throw new l(`Channel ${e} not found`);u(t,n.getChannel);}catch(n){c(n);}}),o.command("create").description("Create a channel").requiredOption("--name <s>").requiredOption("--platform <p>","EMAIL|SMS|SLACK|TEAMS|DISCORD|WHATSAPP|WEBHOOK").option("--organization <id>","Organization id (defaults to current actor org)").option("--adapter <t>").option("-f, --format <format>").action(async e=>{try{let t=e.organization??I().auth.read()?.organizationId;if(!t)throw new l("No organization context. Pass --organization <id> or set auth.organizationId.");let n={name:e.name,platform:e.platform.toUpperCase(),organizationId:t,adapterType:e.adapter?e.adapter.toUpperCase():void 0},i=await a(v,{input:n});f("Channel created"),u(e,i.createChannel);}catch(t){c(t);}}),o.command("delete").description("Delete a channel").argument("<id>").action(async e=>{try{await a(S,{id:e}),f("Channel deleted");}catch(t){c(t);}}),o.command("send").description("Send a message via a channel").argument("<channelId>").requiredOption("--content <s>").option("--recipient <id>","External recipient id (e.g. email)").option("--subject <s>").option("-f, --format <format>").action(async(e,t)=>{try{let n={channelId:e,content:t.content,recipientId:t.recipient,subject:t.subject},i=await a(O,{input:n});i.sendMessage.success&&f(`Sent: ${i.sendMessage.messageId??"(no id)"}`),u(t,i.sendMessage);}catch(n){c(n);}}),o.command("deliveries").description("Recent delivery attempts for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(N,{channelId:e,limit:t.limit});u(t,n.getChannelDeliveryAttempts.items);}catch(n){c(n);}}),o.command("users").description("Users connected to this channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a($,{channelId:e,pagination:{limit:t.limit,offset:0}});u(t,n.listUserPlatformConnectionsByChannel.items);}catch(n){c(n);}}),o.command("webhooks").description("Channel webhook events").command("list").description("List webhook events for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(D,{channelId:e,limit:t.limit});u(t,n.getChannelWebhookEvents.items,{headers:["ID","Event","Status","When"],rows:n.getChannelWebhookEvents.items.map(i=>[w(i.id,12),i.eventType,C(i.status),T(i.createdAt)])});}catch(n){c(n);}});let m=o.command("connections").description("Channel connections (OAuth/API keys)");m.command("list").description("List connections for an organization").requiredOption("--organization <id>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t=await a(L,{organizationId:e.organization,pagination:{limit:e.limit,offset:0}});u(e,t.getConnectionsByOrganization.items);}catch(t){c(t);}}),m.command("create").description("Create a channel connection").requiredOption("--channel <id>").requiredOption("--auth-type <t>","OAUTH|API_KEY|WEBHOOK").option("-f, --format <format>").action(async e=>{try{let t={channelId:e.channel,authType:e.authType.toUpperCase()},n=await a(R,{input:t});f("Connection created"),u(e,n.createConnection);}catch(t){c(t);}}),m.command("delete").description("Delete a connection").argument("<id>").action(async e=>{try{await a(_,{id:e}),f("Connection deleted");}catch(t){c(t);}});}var Y={id:"channels",version:"1.0.0",displayName:"Channels",dependsOn:["auth"],register(r,o){E(o),q(r);}},it=Y;module.exports=it;
70
+ `;function P(r){let o=r.command("channels").description("Multi-platform message channels (email/SMS/Slack/etc.)");o.command("list").description("List channels").option("--platform <p>").option("--status <s>").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.platform&&(t.platform=e.platform.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let n=await a(b,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});u(e,n.getChannels.items,{headers:["ID","Name","Platform","Status","Priority"],rows:n.getChannels.items.map(i=>[w(i.id,12),i.name,i.platform,C(i.status),String(i.priority??"-")])});}catch(t){c(t);}}),o.command("get").description("Get a channel").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(A,{id:e});if(!n.getChannel)throw new l(`Channel ${e} not found`);u(t,n.getChannel);}catch(n){c(n);}}),o.command("create").description("Create a channel").requiredOption("--name <s>").requiredOption("--platform <p>","EMAIL|SMS|SLACK|TEAMS|DISCORD|WHATSAPP|WEBHOOK").option("--organization <id>","Organization id (defaults to current actor org)").option("--adapter <t>").option("-f, --format <format>").action(async e=>{try{let t=e.organization??T().auth.read()?.organizationId;if(!t)throw new l("No organization context. Pass --organization <id> or set auth.organizationId.");let n={name:e.name,platform:e.platform.toUpperCase(),organizationId:t,adapterType:e.adapter?e.adapter.toUpperCase():void 0},i=await a(v,{input:n});f("Channel created"),u(e,i.createChannel);}catch(t){c(t);}}),o.command("delete").description("Delete a channel").argument("<id>").action(async e=>{try{await a(S,{id:e}),f("Channel deleted");}catch(t){c(t);}}),o.command("send").description("Send a message via a channel").argument("<channelId>").requiredOption("--content <s>").option("--recipient <id>","External recipient id (e.g. email)").option("--subject <s>").option("-f, --format <format>").action(async(e,t)=>{try{let n={channelId:e,content:t.content,recipientId:t.recipient,subject:t.subject},i=await a(O,{input:n});i.sendMessage.success&&f(`Sent: ${i.sendMessage.messageId??"(no id)"}`),u(t,i.sendMessage);}catch(n){c(n);}}),o.command("deliveries").description("Recent delivery attempts for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(N,{channelId:e,limit:t.limit});u(t,n.getChannelDeliveryAttempts.items);}catch(n){c(n);}}),o.command("users").description("Users connected to this channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a($,{channelId:e,pagination:{limit:t.limit,offset:0}});u(t,n.listUserPlatformConnectionsByChannel.items);}catch(n){c(n);}}),o.command("webhooks").description("Channel webhook events").command("list").description("List webhook events for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(D,{channelId:e,limit:t.limit});u(t,n.getChannelWebhookEvents.items,{headers:["ID","Event","Status","When"],rows:n.getChannelWebhookEvents.items.map(i=>[w(i.id,12),i.eventType,C(i.status),I(i.createdAt)])});}catch(n){c(n);}});let m=o.command("connections").description("Channel connections (OAuth/API keys)");m.command("list").description("List connections for an organization").requiredOption("--organization <id>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t=await a(L,{organizationId:e.organization,pagination:{limit:e.limit,offset:0}});u(e,t.getConnectionsByOrganization.items);}catch(t){c(t);}}),m.command("create").description("Create a channel connection").requiredOption("--channel <id>").requiredOption("--auth-type <t>","OAUTH|API_KEY|WEBHOOK").option("-f, --format <format>").action(async e=>{try{let t={channelId:e.channel,authType:e.authType.toUpperCase()},n=await a(_,{input:t});f("Connection created"),u(e,n.createConnection);}catch(t){c(t);}}),m.command("delete").description("Delete a connection").argument("<id>").action(async e=>{try{await a(R,{id:e}),f("Connection deleted");}catch(t){c(t);}});}var Y={id:"channels",version:"1.0.0",displayName:"Channels",dependsOn:["auth"],register(r,o){E(o),P(r);}},it=Y;module.exports=it;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,c,g,o,m,f,r,h,n}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var y=`
1
+ import {a,c,g,o,m,f,r,h,n}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var y=`
2
2
  query GetChannels($filter: ChannelFilterInput, $pagination: ChannelPaginationInput) {
3
3
  getChannels(filter: $filter, pagination: $pagination) {
4
4
  items { id name platform adapterType status connectionHealth priority createdAt }
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var g=class extends Error{exitCode;hint;constructor(o,n){super(o),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},f=class extends g{constructor(o,n){super(o,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},l=class extends Error{cause;constructor(o,n){super(o),this.name="CliInternalError",this.cause=n;}};var h=null;function x(r){h=r;}function m(){if(!h)throw new l("vibecontrols module helpers used before setHelpersContext was called");return h}function me(){let r=m();if(!r.auth.isAuthenticated())throw new f(`Authentication required. Run \`${r.productName} auth login\`.`)}async function s(r,o){return me(),m().gql.workspace.request(r,o)}function a(r){let o=r instanceof Error?r.message:String(r);throw new g(o)}function d(r,o,n){m().output.formatAndOutput(r,o,n);}function c(r){m().output.printSuccess(r);}function w(r){return m().output.formatDate(r)}function I(r,o){return m().output.truncate(r,o)}function k(){return m()}var A=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var g=class extends Error{exitCode;hint;constructor(o,n){super(o),this.name="CliUserError",this.exitCode=n?.exitCode??1,this.hint=n?.hint;}},f=class extends g{constructor(o,n){super(o,{exitCode:2,hint:n?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},l=class extends Error{cause;constructor(o,n){super(o),this.name="CliInternalError",this.cause=n;}};var h=null;function x(r){h=r;}function m(){if(!h)throw new l("vibecontrols module helpers used before setHelpersContext was called");return h}function me(){let r=m();if(!r.auth.isAuthenticated())throw new f(`Authentication required. Run \`${r.productName} auth login\`.`)}async function s(r,o){return me(),m().gql.workspace.request(r,o)}function a(r){let o=r instanceof Error?r.message:String(r);throw new g(o)}function d(r,o,n){m().output.formatAndOutput(r,o,n);}function c(r){m().output.printSuccess(r);}function E(r){return m().output.formatDate(r)}function I(r,o){return m().output.truncate(r,o)}function k(){return m()}var A=`
2
2
  query ListConversations($filter: ConversationFilter, $first: Int, $after: String) {
3
3
  conversations(filter: $filter, first: $first, after: $after) {
4
4
  edges { node { id title type description createdAt updatedAt unreadCount } }
@@ -152,4 +152,4 @@
152
152
  conversation { id title type }
153
153
  }
154
154
  }
155
- `;function ne(r){let o=r.command("conversations").description("Conversation management");o.command("list").description("List conversations").option("--type <t>","Filter by type (DIRECT|GROUP|CHANNEL)").option("--limit <n>","Page size",n=>parseInt(n,10),50).option("-f, --format <format>").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase());let i=(await s(A,{filter:Object.keys(e).length?e:void 0,first:n.limit})).conversations.edges.map(p=>p.node);d(n,i,{headers:["ID","Title","Type","Unread","Created"],rows:i.map(p=>[I(p.id,12),p.title??"-",p.type??"-",String(p.unreadCount??0),w(p.createdAt)])});}catch(e){a(e);}}),o.command("get").description("Get a conversation").argument("<id>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(T,{id:n});if(!t.conversation)throw new g(`Conversation ${n} not found`);d(e,t.conversation);}catch(t){a(t);}}),o.command("create").description("Create a conversation").requiredOption("--title <s>").requiredOption("--participants <ids>","Comma-separated participant userIds (required by schema)").option("--description <s>").option("--type <t>","DIRECT|GROUP|CHANNEL","GROUP").option("-f, --format <format>").action(async n=>{try{let e=k().auth.read();if(!e?.workspaceId)throw new g("No workspace set. Run: vibecontrols workspace set <id>");let t={title:n.title,description:n.description,type:(n.type??"GROUP").toUpperCase(),participantIds:n.participants.split(","),workspaceId:e.workspaceId},i=await s(S,{input:t});c("Conversation created"),d(n,i.createConversation.conversation);}catch(e){a(e);}}),o.command("update").description("Update a conversation").argument("<id>").option("--title <s>").option("--description <s>").option("-f, --format <format>").action(async(n,e)=>{try{let t={id:n};if(e.title&&(t.title=e.title),e.description!==void 0&&(t.description=e.description),Object.keys(t).length===1)throw new g("No updates specified");let i=await s(b,{input:t});c("Conversation updated"),d(e,i.updateConversation.conversation);}catch(t){a(t);}}),o.command("delete").description("Delete a conversation").argument("<id>").action(async n=>{try{await s(R,{id:n}),c("Conversation deleted");}catch(e){a(e);}}),o.command("send").description("Send a message to a conversation").argument("<conversationId>").requiredOption("--content <text>").option("--parent <messageId>","Reply parent").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n,content:{text:e.content},type:"TEXT",parentMessageId:e.parent},i=await s(O,{input:t});c("Message sent"),d(e,i.sendMessage.message);}catch(t){a(t);}}),Ie(o),ve(o),Ce(o),he(o),we(o),ye(o);}function Ie(r){let o=r.command("messages").description("Message operations");o.command("edit").description("Edit a message").argument("<id>").requiredOption("--content <text>").option("--reason <s>").option("-f, --format <format>").action(async(n,e)=>{try{let t={id:n,content:{text:e.content}};e.reason&&(t.reason=e.reason);let i=await s(N,{input:t});c("Message edited"),d(e,i.editMessage);}catch(t){a(t);}}),o.command("delete").description("Delete a message").argument("<id>").option("--hard","Hard delete (default: soft)").action(async(n,e)=>{try{await s(D,{id:n,hard:e.hard??!1}),c("Message deleted");}catch(t){a(t);}}),o.command("forward").description("Forward a message to another conversation").argument("<messageId>").requiredOption("--to <targetConversationId>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s($,{messageId:n,targetConversationId:e.to});c("Message forwarded"),d(e,t.forwardMessage.message);}catch(t){a(t);}}),o.command("pin").description("Pin a message").argument("<messageId>").action(async n=>{try{await s(_,{messageId:n}),c("Message pinned");}catch(e){a(e);}}),o.command("unpin").description("Unpin a message").argument("<messageId>").action(async n=>{try{await s(P,{messageId:n}),c("Message unpinned");}catch(e){a(e);}}),o.command("search").description("Search messages").requiredOption("--query <s>").option("--conversation <id>","Restrict to a conversation").option("--limit <n>","Page size",n=>parseInt(n,10),50).option("-f, --format <format>").action(async n=>{try{let t=(await s(M,{query:n.query,conversationId:n.conversation,first:n.limit})).searchMessages.edges.map(i=>i.node);d(n,t,{headers:["ID","Conversation","Author","Created"],rows:t.map(i=>[I(i.id,12),I(i.conversationId??"-",12),I(i.authorId??"-",12),w(i.createdAt)])});}catch(e){a(e);}});}function ve(r){let o=r.command("drafts").description("Draft message operations");o.command("get").description("Get the actor\u2019s draft for a conversation").argument("<conversationId>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(L,{conversationId:n});if(!t.draft){c("No draft saved");return}d(e,t.draft);}catch(t){a(t);}}),o.command("save").description("Save (upsert) a draft for a conversation").argument("<conversationId>").requiredOption("--content <text>").option("--parent <messageId>").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n,content:{text:e.content}};e.parent&&(t.parentMessageId=e.parent);let i=await s(q,{input:t});c("Draft saved"),d(e,i.saveDraft);}catch(t){a(t);}}),o.command("delete").description("Delete the actor\u2019s draft for a conversation").argument("<conversationId>").action(async n=>{try{await s(U,{conversationId:n}),c("Draft deleted");}catch(e){a(e);}});}function Ce(r){let o=r.command("reactions").description("Reaction operations");o.command("add").description("Add an emoji reaction to a message").argument("<messageId>").requiredOption("--emoji <e>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(V,{messageId:n,emoji:e.emoji});c("Reaction added"),d(e,t.addReaction);}catch(t){a(t);}}),o.command("remove").description("Remove an emoji reaction from a message").argument("<messageId>").requiredOption("--emoji <e>").action(async(n,e)=>{try{await s(G,{messageId:n,emoji:e.emoji}),c("Reaction removed");}catch(t){a(t);}});}function he(r){let o=r.command("participants").description("Participant operations");o.command("add").description("Add a participant to a conversation").argument("<conversationId>").requiredOption("--user <userId>").option("--role <role>","ADMIN | MODERATOR | MEMBER | GUEST").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n,userId:e.user};e.role&&(t.role=e.role.toUpperCase());let i=await s(j,{input:t});c("Participant added"),d(e,i.addParticipant);}catch(t){a(t);}}),o.command("remove").description("Remove a participant from a conversation").argument("<conversationId>").requiredOption("--user <userId>").option("--reason <s>").action(async(n,e)=>{try{let t={conversationId:n,userId:e.user};e.reason&&(t.reason=e.reason),await s(F,{input:t}),c("Participant removed");}catch(t){a(t);}}),o.command("role").description("Update a participant\u2019s role").argument("<conversationId>").requiredOption("--user <userId>").requiredOption("--role <role>","ADMIN | MODERATOR | MEMBER | GUEST").action(async(n,e)=>{try{await s(W,{input:{conversationId:n,userId:e.user,role:e.role.toUpperCase()}}),c("Participant role updated");}catch(t){a(t);}});}function we(r){let o=(e,t,i,p)=>{r.command(e).description(t).argument("<id>").action(async v=>{try{await s(i,{id:v}),c(p);}catch(C){a(C);}});},n=(e,t,i,p)=>{r.command(e).description(t).argument("<conversationId>").action(async v=>{try{await s(i,{conversationId:v}),c(p);}catch(C){a(C);}});};o("archive","Archive a conversation",z,"Archived"),o("unarchive","Unarchive a conversation",K,"Unarchived"),r.command("mute").description("Mute a conversation").argument("<conversationId>").option("--until <iso>","ISO timestamp; omit for indefinite").action(async(e,t)=>{try{await s(B,{conversationId:e,until:t.until}),c("Muted");}catch(i){a(i);}}),n("unmute","Unmute a conversation",J,"Unmuted"),n("pin","Pin a conversation",Y,"Pinned"),n("unpin","Unpin a conversation",Q,"Unpinned"),r.command("read").description("Mark a conversation as read").argument("<conversationId>").option("--message <messageId>","Mark read up to this message (defaults to latest)").action(async(e,t)=>{try{await s(X,{conversationId:e,messageId:t.message}),c("Marked as read");}catch(i){a(i);}}),n("leave","Leave a conversation",H,"Left conversation");}function ye(r){let o=r.command("invites").description("Invite link operations");o.command("create").description("Create an invite link for a conversation").argument("<conversationId>").option("--max-uses <n>","Maximum number of uses",n=>parseInt(n,10)).option("--expires-at <iso>","ISO expiry timestamp").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n};e.maxUses!==void 0&&(t.maxUses=e.maxUses),e.expiresAt&&(t.expiresAt=e.expiresAt);let i=await s(Z,{input:t});c("Invite link created"),d(e,i.createInviteLink);}catch(t){a(t);}}),o.command("join").description("Join a conversation via invite code").argument("<code>").action(async n=>{try{await s(ee,{code:n}),c("Joined via invite link");}catch(e){a(e);}}),o.command("validate").description("Validate an invite code").argument("<code>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(te,{code:n});d(e,t.validateInviteLink);}catch(t){a(t);}});}var Ee={id:"conversations",version:"1.0.0",displayName:"Conversations",dependsOn:["auth","workspaces"],register(r,o){x(o),ne(r);}},Dt=Ee;module.exports=Dt;
155
+ `;function ne(r){let o=r.command("conversations").description("Conversation management");o.command("list").description("List conversations").option("--type <t>","Filter by type (DIRECT|GROUP|CHANNEL)").option("--limit <n>","Page size",n=>parseInt(n,10),50).option("-f, --format <format>").action(async n=>{try{let e={};n.type&&(e.type=n.type.toUpperCase());let i=(await s(A,{filter:Object.keys(e).length?e:void 0,first:n.limit})).conversations.edges.map(p=>p.node);d(n,i,{headers:["ID","Title","Type","Unread","Created"],rows:i.map(p=>[I(p.id,12),p.title??"-",p.type??"-",String(p.unreadCount??0),E(p.createdAt)])});}catch(e){a(e);}}),o.command("get").description("Get a conversation").argument("<id>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(T,{id:n});if(!t.conversation)throw new g(`Conversation ${n} not found`);d(e,t.conversation);}catch(t){a(t);}}),o.command("create").description("Create a conversation").requiredOption("--title <s>").requiredOption("--participants <ids>","Comma-separated participant userIds (required by schema)").option("--description <s>").option("--type <t>","DIRECT|GROUP|CHANNEL","GROUP").option("-f, --format <format>").action(async n=>{try{let e=k().auth.read();if(!e?.workspaceId)throw new g("No workspace set. Run: vibecontrols workspace set <id>");let t={title:n.title,description:n.description,type:(n.type??"GROUP").toUpperCase(),participantIds:n.participants.split(","),workspaceId:e.workspaceId},i=await s(S,{input:t});c("Conversation created"),d(n,i.createConversation.conversation);}catch(e){a(e);}}),o.command("update").description("Update a conversation").argument("<id>").option("--title <s>").option("--description <s>").option("-f, --format <format>").action(async(n,e)=>{try{let t={id:n};if(e.title&&(t.title=e.title),e.description!==void 0&&(t.description=e.description),Object.keys(t).length===1)throw new g("No updates specified");let i=await s(b,{input:t});c("Conversation updated"),d(e,i.updateConversation.conversation);}catch(t){a(t);}}),o.command("delete").description("Delete a conversation").argument("<id>").action(async n=>{try{await s(R,{id:n}),c("Conversation deleted");}catch(e){a(e);}}),o.command("send").description("Send a message to a conversation").argument("<conversationId>").requiredOption("--content <text>").option("--parent <messageId>","Reply parent").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n,content:{text:e.content},type:"TEXT",parentMessageId:e.parent},i=await s(O,{input:t});c("Message sent"),d(e,i.sendMessage.message);}catch(t){a(t);}}),Ie(o),ve(o),Ce(o),he(o),Ee(o),we(o);}function Ie(r){let o=r.command("messages").description("Message operations");o.command("edit").description("Edit a message").argument("<id>").requiredOption("--content <text>").option("--reason <s>").option("-f, --format <format>").action(async(n,e)=>{try{let t={id:n,content:{text:e.content}};e.reason&&(t.reason=e.reason);let i=await s(N,{input:t});c("Message edited"),d(e,i.editMessage);}catch(t){a(t);}}),o.command("delete").description("Delete a message").argument("<id>").option("--hard","Hard delete (default: soft)").action(async(n,e)=>{try{await s(D,{id:n,hard:e.hard??!1}),c("Message deleted");}catch(t){a(t);}}),o.command("forward").description("Forward a message to another conversation").argument("<messageId>").requiredOption("--to <targetConversationId>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s($,{messageId:n,targetConversationId:e.to});c("Message forwarded"),d(e,t.forwardMessage.message);}catch(t){a(t);}}),o.command("pin").description("Pin a message").argument("<messageId>").action(async n=>{try{await s(_,{messageId:n}),c("Message pinned");}catch(e){a(e);}}),o.command("unpin").description("Unpin a message").argument("<messageId>").action(async n=>{try{await s(P,{messageId:n}),c("Message unpinned");}catch(e){a(e);}}),o.command("search").description("Search messages").requiredOption("--query <s>").option("--conversation <id>","Restrict to a conversation").option("--limit <n>","Page size",n=>parseInt(n,10),50).option("-f, --format <format>").action(async n=>{try{let t=(await s(M,{query:n.query,conversationId:n.conversation,first:n.limit})).searchMessages.edges.map(i=>i.node);d(n,t,{headers:["ID","Conversation","Author","Created"],rows:t.map(i=>[I(i.id,12),I(i.conversationId??"-",12),I(i.authorId??"-",12),E(i.createdAt)])});}catch(e){a(e);}});}function ve(r){let o=r.command("drafts").description("Draft message operations");o.command("get").description("Get the actor\u2019s draft for a conversation").argument("<conversationId>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(L,{conversationId:n});if(!t.draft){c("No draft saved");return}d(e,t.draft);}catch(t){a(t);}}),o.command("save").description("Save (upsert) a draft for a conversation").argument("<conversationId>").requiredOption("--content <text>").option("--parent <messageId>").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n,content:{text:e.content}};e.parent&&(t.parentMessageId=e.parent);let i=await s(q,{input:t});c("Draft saved"),d(e,i.saveDraft);}catch(t){a(t);}}),o.command("delete").description("Delete the actor\u2019s draft for a conversation").argument("<conversationId>").action(async n=>{try{await s(U,{conversationId:n}),c("Draft deleted");}catch(e){a(e);}});}function Ce(r){let o=r.command("reactions").description("Reaction operations");o.command("add").description("Add an emoji reaction to a message").argument("<messageId>").requiredOption("--emoji <e>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(V,{messageId:n,emoji:e.emoji});c("Reaction added"),d(e,t.addReaction);}catch(t){a(t);}}),o.command("remove").description("Remove an emoji reaction from a message").argument("<messageId>").requiredOption("--emoji <e>").action(async(n,e)=>{try{await s(G,{messageId:n,emoji:e.emoji}),c("Reaction removed");}catch(t){a(t);}});}function he(r){let o=r.command("participants").description("Participant operations");o.command("add").description("Add a participant to a conversation").argument("<conversationId>").requiredOption("--user <userId>").option("--role <role>","ADMIN | MODERATOR | MEMBER | GUEST").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n,userId:e.user};e.role&&(t.role=e.role.toUpperCase());let i=await s(j,{input:t});c("Participant added"),d(e,i.addParticipant);}catch(t){a(t);}}),o.command("remove").description("Remove a participant from a conversation").argument("<conversationId>").requiredOption("--user <userId>").option("--reason <s>").action(async(n,e)=>{try{let t={conversationId:n,userId:e.user};e.reason&&(t.reason=e.reason),await s(F,{input:t}),c("Participant removed");}catch(t){a(t);}}),o.command("role").description("Update a participant\u2019s role").argument("<conversationId>").requiredOption("--user <userId>").requiredOption("--role <role>","ADMIN | MODERATOR | MEMBER | GUEST").action(async(n,e)=>{try{await s(W,{input:{conversationId:n,userId:e.user,role:e.role.toUpperCase()}}),c("Participant role updated");}catch(t){a(t);}});}function Ee(r){let o=(e,t,i,p)=>{r.command(e).description(t).argument("<id>").action(async v=>{try{await s(i,{id:v}),c(p);}catch(C){a(C);}});},n=(e,t,i,p)=>{r.command(e).description(t).argument("<conversationId>").action(async v=>{try{await s(i,{conversationId:v}),c(p);}catch(C){a(C);}});};o("archive","Archive a conversation",z,"Archived"),o("unarchive","Unarchive a conversation",K,"Unarchived"),r.command("mute").description("Mute a conversation").argument("<conversationId>").option("--until <iso>","ISO timestamp; omit for indefinite").action(async(e,t)=>{try{await s(B,{conversationId:e,until:t.until}),c("Muted");}catch(i){a(i);}}),n("unmute","Unmute a conversation",J,"Unmuted"),n("pin","Pin a conversation",Y,"Pinned"),n("unpin","Unpin a conversation",Q,"Unpinned"),r.command("read").description("Mark a conversation as read").argument("<conversationId>").option("--message <messageId>","Mark read up to this message (defaults to latest)").action(async(e,t)=>{try{await s(X,{conversationId:e,messageId:t.message}),c("Marked as read");}catch(i){a(i);}}),n("leave","Leave a conversation",H,"Left conversation");}function we(r){let o=r.command("invites").description("Invite link operations");o.command("create").description("Create an invite link for a conversation").argument("<conversationId>").option("--max-uses <n>","Maximum number of uses",n=>parseInt(n,10)).option("--expires-at <iso>","ISO expiry timestamp").option("-f, --format <format>").action(async(n,e)=>{try{let t={conversationId:n};e.maxUses!==void 0&&(t.maxUses=e.maxUses),e.expiresAt&&(t.expiresAt=e.expiresAt);let i=await s(Z,{input:t});c("Invite link created"),d(e,i.createInviteLink);}catch(t){a(t);}}),o.command("join").description("Join a conversation via invite code").argument("<code>").action(async n=>{try{await s(ee,{code:n}),c("Joined via invite link");}catch(e){a(e);}}),o.command("validate").description("Validate an invite code").argument("<code>").option("-f, --format <format>").action(async(n,e)=>{try{let t=await s(te,{code:n});d(e,t.validateInviteLink);}catch(t){a(t);}});}var ye={id:"conversations",version:"1.0.0",displayName:"Conversations",dependsOn:["auth","workspaces"],register(r,o){x(o),ne(r);}},Dt=ye;module.exports=Dt;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,b as b$1,g,o,n,f,r,h as h$1}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var l=`
1
+ import {a,b as b$1,g,o,n,f,r,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var l=`
2
2
  query ListConversations($filter: ConversationFilter, $first: Int, $after: String) {
3
3
  conversations(filter: $filter, first: $first, after: $after) {
4
4
  edges { node { id title type description createdAt updatedAt unreadCount } }
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(a,d){super(a),this.name="CliUserError",this.exitCode=d?.exitCode??1,this.hint=d?.hint;}};var f=class extends Error{cause;constructor(a,d){super(a),this.name="CliInternalError",this.cause=d;}};var k=null;function b(s){k=s;}function I(){if(!k)throw new f("vibecontrols module helpers used before setHelpersContext was called");return k}async function r(s,a){return I().gql.global.request(s,a)}function i(s){let a=s instanceof Error?s.message:String(s);throw new l(a)}function c(s,a,d){I().output.formatAndOutput(s,a,d);}function u(s){I().output.printSuccess(s);}function w(s){return I().output.formatStatus(s)}function m(s,a){return I().output.truncate(s,a)}var v=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var l=class extends Error{exitCode;hint;constructor(a,d){super(a),this.name="CliUserError",this.exitCode=d?.exitCode??1,this.hint=d?.hint;}};var f=class extends Error{cause;constructor(a,d){super(a),this.name="CliInternalError",this.cause=d;}};var k=null;function v(s){k=s;}function A(){if(!k)throw new f("vibecontrols module helpers used before setHelpersContext was called");return k}async function r(s,a){return A().gql.global.request(s,a)}function i(s){let a=s instanceof Error?s.message:String(s);throw new l(a)}function c(s,a,d){A().output.formatAndOutput(s,a,d);}function u(s){A().output.printSuccess(s);}function w(s){return A().output.formatStatus(s)}function m(s,a){return A().output.truncate(s,a)}var b=`
2
2
  query ListOrganizations($filter: OrganizationFilterInput, $limit: Int, $offset: Int) {
3
3
  organizations(filter: $filter, limit: $limit, offset: $offset) {
4
4
  items { id name slug status }
@@ -27,14 +27,14 @@
27
27
  mutation DeleteOrganization($id: ID!) {
28
28
  deleteOrganization(id: $id) { success }
29
29
  }
30
- `,$=`
30
+ `,P=`
31
31
  query ListApplications($organizationId: ID, $status: AppStatus, $limit: Int) {
32
32
  applications(organizationId: $organizationId, status: $status, limit: $limit) {
33
33
  edges { node { id name status installCount averageRating } }
34
34
  totalCount
35
35
  }
36
36
  }
37
- `,P=`
37
+ `,$=`
38
38
  query GetApplication($id: ID!) {
39
39
  application(id: $id) {
40
40
  id name status reviewStatus publishedAt installCount
@@ -130,4 +130,4 @@
130
130
  id status reviewStatus reviewNotes
131
131
  }
132
132
  }
133
- `;function K(s){let a=s.command("devportal").description("Developer portal: orgs, apps, webhooks, revenue"),d=a.command("orgs").description("Publisher organizations");d.command("list").description("List devportal organizations").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await r(v,{limit:t.limit,offset:0})).organizations.items;c(t,n,{headers:["ID","Name","Slug","Status"],rows:n.map(o=>[m(o.id,12),o.name,o.slug??"-",w(o.status)])});}catch(e){i(e);}}),d.command("get").description("Get an organization").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(O,{id:t});if(!n.organization)throw new l(`Organization ${t} not found`);c(e,n.organization);}catch(n){i(n);}}),d.command("create").description("Create a publisher organization").requiredOption("--name <s>").requiredOption("--slug <s>","Unique slug (required by schema)").option("--description <s>").option("--tier <t>","INDIVIDUAL|ORGANIZATION|ENTERPRISE","ORGANIZATION").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,slug:t.slug,description:t.description,tier:(t.tier??"ORGANIZATION").toUpperCase()},n=await r(S,{input:e});u(`Organization created: ${n.createOrganization.name}`),c(t,n.createOrganization);}catch(e){i(e);}}),d.command("update").description("Update an organization").argument("<id>").option("--name <s>").option("--description <s>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),!Object.keys(n).length)throw new l("No updates specified");let o=await r(R,{id:t,input:n});u("Organization updated"),c(e,o.updateOrganization);}catch(n){i(n);}}),d.command("delete").description("Delete an organization").argument("<id>").action(async t=>{try{await r(D,{id:t}),u("Organization deleted");}catch(e){i(e);}});let g=a.command("apps").description("Applications");g.command("list").description("List applications").option("--organization <id>").option("--status <s>","DRAFT|REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await r($,{organizationId:t.organization,status:t.status?.toUpperCase(),limit:t.limit})).applications.edges.map(o=>o.node);c(t,n,{headers:["ID","Name","Status","Installs","Rating"],rows:n.map(o=>[m(o.id,12),o.name,w(o.status),String(o.installCount??0),String(o.averageRating??"-")])});}catch(e){i(e);}}),g.command("get").description("Get an application").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(P,{id:t});if(!n.application)throw new l(`Application ${t} not found`);c(e,n.application);}catch(n){i(n);}}),g.command("create").description("Create an application").requiredOption("--name <s>").requiredOption("--organization <id>").option("--type <t>","API_INTEGRATION|WEB_APP|MOBILE_APP","API_INTEGRATION").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,developerOrganizationId:t.organization,appType:(t.type??"API_INTEGRATION").toUpperCase(),description:t.description},n=await r(N,{input:e});u(`Application created: ${n.createApplication.name}`),c(t,n.createApplication);}catch(e){i(e);}}),g.command("update").description("Update an application").argument("<id>").option("--description <s>").option("--pricing <p>","FREE|PAID_ONETIME|SUBSCRIPTION").option("--docs-url <url>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.description!==void 0&&(n.description=e.description),e.pricing&&(n.pricingType=e.pricing.toUpperCase()),e.docsUrl&&(n.documentationUrl=e.docsUrl),!Object.keys(n).length)throw new l("No updates specified");let o=await r(L,{id:t,input:n});u("Application updated"),c(e,o.updateApplication);}catch(n){i(n);}}),g.command("submit-review").description("Submit an application for review").argument("<id>").option("--notes <s>").action(async(t,e)=>{try{await r(_,{id:t,notes:e.notes}),u("Submitted for review");}catch(n){i(n);}}),g.command("publish").description("Publish an application").argument("<id>").action(async t=>{try{await r(q,{id:t}),u("Application published");}catch(e){i(e);}}),g.command("delete").description("Delete an application").argument("<id>").action(async t=>{try{await r(z,{id:t}),u("Application deleted");}catch(e){i(e);}});let y=g.command("versions").description("Application versions");y.command("list").description("List versions for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,e)=>{try{let o=(await r(W,{applicationId:t})).application?.versions??[];c(e,o,{headers:["ID","Version","Status","Latest","Stable"],rows:o.map(A=>[m(A.id,12),A.version,w(A.status),String(!!A.isLatest),String(!!A.isStable)])});}catch(n){i(n);}}),y.command("create").description("Create an application version").requiredOption("--application <id>").requiredOption("--version <v>").option("--notes <s>").option("--package <url>","Package URL").option("-f, --format <format>").action(async t=>{try{let e={version:t.version,releaseNotes:t.notes,packageUrl:t.package},n=await r(G,{applicationId:t.application,input:e});u(`Version created: ${n.createApplicationVersion.version}`),c(t,n.createApplicationVersion);}catch(e){i(e);}});let h=g.command("webhooks").description("Application webhooks");h.command("list").description("List webhooks for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(U,{applicationId:t});c(e,n.webhooks,{headers:["ID","Name","URL","Active","Failures"],rows:n.webhooks.map(o=>[m(o.id,12),o.name,m(o.url,40),String(!!o.isActive),String(o.failureCount??0)])});}catch(n){i(n);}}),h.command("add").description("Add a webhook to an application").requiredOption("--application <id>").requiredOption("--name <s>").requiredOption("--url <url>").requiredOption("--events <s>","Comma-separated event names").option("--max-retries <n>","",t=>parseInt(t,10),5).option("-f, --format <format>").action(async t=>{try{let e={applicationId:t.application,name:t.name,url:t.url,events:t.events.split(","),retryEnabled:!0,maxRetries:t.maxRetries},n=await r(F,{input:e});u("Webhook created"),c(t,n.createWebhook);}catch(e){i(e);}}),h.command("remove").description("Remove a webhook").argument("<id>").action(async t=>{try{await r(V,{id:t}),u("Webhook removed");}catch(e){i(e);}}),g.command("analytics").description("Application analytics for a period").requiredOption("--application <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|CUSTOM","LAST_30_DAYS").option("--from <iso>").option("--to <iso>").option("-f, --format <format>").action(async t=>{try{let e=await r(j,{applicationId:t.application,period:(t.period??"LAST_30_DAYS").toUpperCase(),startDate:t.from,endDate:t.to});c(t,e.applicationAnalytics);}catch(e){i(e);}}),a.command("revenue").description("Revenue for an organization").requiredOption("--organization <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|YTD","LAST_30_DAYS").option("-f, --format <format>").action(async t=>{try{let e=await r(M,{organizationId:t.organization,period:(t.period??"LAST_30_DAYS").toUpperCase()});c(t,e.organizationRevenue);}catch(e){i(e);}});let C=a.command("admin").description("Admin operations").command("reviews").description("Application review queue");C.command("list").description("List applications pending review").option("--status <s>","PENDING|APPROVED|REJECTED","PENDING").option("-f, --format <format>").action(async t=>{try{let e=await r(B,{status:(t.status??"PENDING").toUpperCase()});c(t,e.adminReviews.edges.map(n=>n.node));}catch(e){i(e);}}),C.command("approve").description("Approve an application").argument("<applicationId>").option("--notes <s>").action(async(t,e)=>{try{await r(H,{id:t,notes:e.notes}),u("Application approved");}catch(n){i(n);}}),C.command("reject").description("Reject an application").argument("<applicationId>").requiredOption("--notes <s>","Reason for rejection").action(async(t,e)=>{try{await r(Y,{id:t,notes:e.notes}),u("Application rejected");}catch(n){i(n);}});}var ct={id:"devportal",version:"1.0.0",displayName:"Developer Portal",dependsOn:["auth"],register(s,a){b(a),K(s);}},Ce=ct;module.exports=Ce;
133
+ `;function K(s){let a=s.command("devportal").description("Developer portal: orgs, apps, webhooks, revenue"),d=a.command("orgs").description("Publisher organizations");d.command("list").description("List devportal organizations").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await r(b,{limit:t.limit,offset:0})).organizations.items;c(t,n,{headers:["ID","Name","Slug","Status"],rows:n.map(o=>[m(o.id,12),o.name,o.slug??"-",w(o.status)])});}catch(e){i(e);}}),d.command("get").description("Get an organization").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(O,{id:t});if(!n.organization)throw new l(`Organization ${t} not found`);c(e,n.organization);}catch(n){i(n);}}),d.command("create").description("Create a publisher organization").requiredOption("--name <s>").requiredOption("--slug <s>","Unique slug (required by schema)").option("--description <s>").option("--tier <t>","INDIVIDUAL|ORGANIZATION|ENTERPRISE","ORGANIZATION").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,slug:t.slug,description:t.description,tier:(t.tier??"ORGANIZATION").toUpperCase()},n=await r(S,{input:e});u(`Organization created: ${n.createOrganization.name}`),c(t,n.createOrganization);}catch(e){i(e);}}),d.command("update").description("Update an organization").argument("<id>").option("--name <s>").option("--description <s>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),!Object.keys(n).length)throw new l("No updates specified");let o=await r(R,{id:t,input:n});u("Organization updated"),c(e,o.updateOrganization);}catch(n){i(n);}}),d.command("delete").description("Delete an organization").argument("<id>").action(async t=>{try{await r(D,{id:t}),u("Organization deleted");}catch(e){i(e);}});let g=a.command("apps").description("Applications");g.command("list").description("List applications").option("--organization <id>").option("--status <s>","DRAFT|REVIEW|PUBLISHED|ARCHIVED").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n=(await r(P,{organizationId:t.organization,status:t.status?.toUpperCase(),limit:t.limit})).applications.edges.map(o=>o.node);c(t,n,{headers:["ID","Name","Status","Installs","Rating"],rows:n.map(o=>[m(o.id,12),o.name,w(o.status),String(o.installCount??0),String(o.averageRating??"-")])});}catch(e){i(e);}}),g.command("get").description("Get an application").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r($,{id:t});if(!n.application)throw new l(`Application ${t} not found`);c(e,n.application);}catch(n){i(n);}}),g.command("create").description("Create an application").requiredOption("--name <s>").requiredOption("--organization <id>").option("--type <t>","API_INTEGRATION|WEB_APP|MOBILE_APP","API_INTEGRATION").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,developerOrganizationId:t.organization,appType:(t.type??"API_INTEGRATION").toUpperCase(),description:t.description},n=await r(N,{input:e});u(`Application created: ${n.createApplication.name}`),c(t,n.createApplication);}catch(e){i(e);}}),g.command("update").description("Update an application").argument("<id>").option("--description <s>").option("--pricing <p>","FREE|PAID_ONETIME|SUBSCRIPTION").option("--docs-url <url>").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.description!==void 0&&(n.description=e.description),e.pricing&&(n.pricingType=e.pricing.toUpperCase()),e.docsUrl&&(n.documentationUrl=e.docsUrl),!Object.keys(n).length)throw new l("No updates specified");let o=await r(L,{id:t,input:n});u("Application updated"),c(e,o.updateApplication);}catch(n){i(n);}}),g.command("submit-review").description("Submit an application for review").argument("<id>").option("--notes <s>").action(async(t,e)=>{try{await r(_,{id:t,notes:e.notes}),u("Submitted for review");}catch(n){i(n);}}),g.command("publish").description("Publish an application").argument("<id>").action(async t=>{try{await r(q,{id:t}),u("Application published");}catch(e){i(e);}}),g.command("delete").description("Delete an application").argument("<id>").action(async t=>{try{await r(z,{id:t}),u("Application deleted");}catch(e){i(e);}});let y=g.command("versions").description("Application versions");y.command("list").description("List versions for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,e)=>{try{let o=(await r(W,{applicationId:t})).application?.versions??[];c(e,o,{headers:["ID","Version","Status","Latest","Stable"],rows:o.map(I=>[m(I.id,12),I.version,w(I.status),String(!!I.isLatest),String(!!I.isStable)])});}catch(n){i(n);}}),y.command("create").description("Create an application version").requiredOption("--application <id>").requiredOption("--version <v>").option("--notes <s>").option("--package <url>","Package URL").option("-f, --format <format>").action(async t=>{try{let e={version:t.version,releaseNotes:t.notes,packageUrl:t.package},n=await r(G,{applicationId:t.application,input:e});u(`Version created: ${n.createApplicationVersion.version}`),c(t,n.createApplicationVersion);}catch(e){i(e);}});let h=g.command("webhooks").description("Application webhooks");h.command("list").description("List webhooks for an application").argument("<applicationId>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(U,{applicationId:t});c(e,n.webhooks,{headers:["ID","Name","URL","Active","Failures"],rows:n.webhooks.map(o=>[m(o.id,12),o.name,m(o.url,40),String(!!o.isActive),String(o.failureCount??0)])});}catch(n){i(n);}}),h.command("add").description("Add a webhook to an application").requiredOption("--application <id>").requiredOption("--name <s>").requiredOption("--url <url>").requiredOption("--events <s>","Comma-separated event names").option("--max-retries <n>","",t=>parseInt(t,10),5).option("-f, --format <format>").action(async t=>{try{let e={applicationId:t.application,name:t.name,url:t.url,events:t.events.split(","),retryEnabled:!0,maxRetries:t.maxRetries},n=await r(F,{input:e});u("Webhook created"),c(t,n.createWebhook);}catch(e){i(e);}}),h.command("remove").description("Remove a webhook").argument("<id>").action(async t=>{try{await r(V,{id:t}),u("Webhook removed");}catch(e){i(e);}}),g.command("analytics").description("Application analytics for a period").requiredOption("--application <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|CUSTOM","LAST_30_DAYS").option("--from <iso>").option("--to <iso>").option("-f, --format <format>").action(async t=>{try{let e=await r(j,{applicationId:t.application,period:(t.period??"LAST_30_DAYS").toUpperCase(),startDate:t.from,endDate:t.to});c(t,e.applicationAnalytics);}catch(e){i(e);}}),a.command("revenue").description("Revenue for an organization").requiredOption("--organization <id>").option("--period <p>","LAST_7_DAYS|LAST_30_DAYS|YTD","LAST_30_DAYS").option("-f, --format <format>").action(async t=>{try{let e=await r(M,{organizationId:t.organization,period:(t.period??"LAST_30_DAYS").toUpperCase()});c(t,e.organizationRevenue);}catch(e){i(e);}});let C=a.command("admin").description("Admin operations").command("reviews").description("Application review queue");C.command("list").description("List applications pending review").option("--status <s>","PENDING|APPROVED|REJECTED","PENDING").option("-f, --format <format>").action(async t=>{try{let e=await r(B,{status:(t.status??"PENDING").toUpperCase()});c(t,e.adminReviews.edges.map(n=>n.node));}catch(e){i(e);}}),C.command("approve").description("Approve an application").argument("<applicationId>").option("--notes <s>").action(async(t,e)=>{try{await r(H,{id:t,notes:e.notes}),u("Application approved");}catch(n){i(n);}}),C.command("reject").description("Reject an application").argument("<applicationId>").requiredOption("--notes <s>","Reason for rejection").action(async(t,e)=>{try{await r(Y,{id:t,notes:e.notes}),u("Application rejected");}catch(n){i(n);}});}var ct={id:"devportal",version:"1.0.0",displayName:"Developer Portal",dependsOn:["auth"],register(s,a){v(a),K(s);}},Ce=ct;module.exports=Ce;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,c,g,o,m,f,h as h$1}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var N=`
1
+ import {a,c,g,o,m,f,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var N=`
2
2
  query ListOrganizations($filter: OrganizationFilterInput, $limit: Int, $offset: Int) {
3
3
  organizations(filter: $filter, limit: $limit, offset: $offset) {
4
4
  items { id name slug status }
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,b,g,o,m,n,f,h as h$1,j,r}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';import {writeFile}from'fs/promises';var J=`
1
+ import {a,b,g,o,m,n,f,h as h$1,j,r}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';import {writeFile}from'fs/promises';var J=`
2
2
  query ListExportJobs($context: ContextInput!, $filter: ExportJobFilterInput, $pagination: ExportPaginationInput) {
3
3
  listExportJobs(context: $context, filter: $filter, pagination: $pagination) {
4
4
  edges { node {
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var fs=require('fs'),path=require('path'),crypto=require('crypto');var u=class extends Error{exitCode;hint;constructor(r,a){super(r),this.name="CliUserError",this.exitCode=a?.exitCode??1,this.hint=a?.hint;}},m=class extends u{constructor(r,a){super(r,{exitCode:2,hint:a?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(r,a){super(r),this.name="CliInternalError",this.cause=a;}};var C=null;function E(n){C=n;}function w(){if(!C)throw new g("vibecontrols module helpers used before setHelpersContext was called");return C}function H(){let n=w();if(!n.auth.isAuthenticated())throw new m(`Authentication required. Run \`${n.productName} auth login\`.`)}async function l(n,r){return H(),w().gql.workspace.request(n,r)}function p(n){let r=n instanceof Error?n.message:String(n);throw new u(r)}function d(n,r,a){w().output.formatAndOutput(n,r,a);}function h(n){w().output.printSuccess(n);}function x(n){w().output.printInfo(n);}function y(n,r){return w().output.truncate(n,r)}var v=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var fs=require('fs'),path=require('path'),crypto=require('crypto');var u=class extends Error{exitCode;hint;constructor(r,a){super(r),this.name="CliUserError",this.exitCode=a?.exitCode??1,this.hint=a?.hint;}},m=class extends u{constructor(r,a){super(r,{exitCode:2,hint:a?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(r,a){super(r),this.name="CliInternalError",this.cause=a;}};var k=null;function E(n){k=n;}function w(){if(!k)throw new g("vibecontrols module helpers used before setHelpersContext was called");return k}function H(){let n=w();if(!n.auth.isAuthenticated())throw new m(`Authentication required. Run \`${n.productName} auth login\`.`)}async function l(n,r){return H(),w().gql.workspace.request(n,r)}function p(n){let r=n instanceof Error?n.message:String(n);throw new u(r)}function d(n,r,a){w().output.formatAndOutput(n,r,a);}function h(n){w().output.printSuccess(n);}function x(n){w().output.printInfo(n);}function y(n,r){return w().output.truncate(n,r)}var v=`
2
2
  query BrowseFolderRoot($pagination: PaginationInput) {
3
3
  getFilesInFolder(pagination: $pagination) {
4
4
  files { id name size mimeType extension createdAt }
@@ -31,14 +31,14 @@
31
31
  fileId
32
32
  }
33
33
  }
34
- `,$=`
34
+ `,D=`
35
35
  mutation CreateShare($input: FileCreateShareInput!) {
36
36
  createShare(input: $input) {
37
37
  id token shareType accessLevel expiresAt requiresPassword
38
38
  downloadCount maxDownloads createdAt
39
39
  }
40
40
  }
41
- `,D=`
41
+ `,$=`
42
42
  mutation RevokeShare($id: ID!) {
43
43
  revokeShare(id: $id) {
44
44
  id revokedAt revokedBy
@@ -59,6 +59,6 @@
59
59
  query GetFileDownloadUrl($id: ID!, $expiresIn: Int) {
60
60
  getFileDownloadUrl(id: $id, expiresIn: $expiresIn)
61
61
  }
62
- `;function L(n){let r=n.command("files").description("Workspace file management");r.command("browse").description("Browse a folder (defaults to root)").argument("[folderId]").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let o={limit:e.limit,offset:0};if(t){let i=await l(A,{folderId:t,pagination:o});if(e.format){d(e,{folder:i.getFolder,files:i.getFilesInFolder.files});return}i.getFolder&&x(`Folder: ${i.getFolder.name}`);for(let c of i.getFilesInFolder.files){let k=c.size?`${c.size}b`:"-";console.log(` \u{1F4C4} ${y(c.id,12)} ${c.name} ${k} ${c.mimeType??"-"}`);}console.log(`
62
+ `;function L(n){let r=n.command("files").description("Workspace file management");r.command("browse").description("Browse a folder (defaults to root)").argument("[folderId]").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let o={limit:e.limit,offset:0};if(t){let i=await l(A,{folderId:t,pagination:o});if(e.format){d(e,{folder:i.getFolder,files:i.getFilesInFolder.files});return}i.getFolder&&x(`Folder: ${i.getFolder.name}`);for(let c of i.getFilesInFolder.files){let C=c.size?`${c.size}b`:"-";console.log(` \u{1F4C4} ${y(c.id,12)} ${c.name} ${C} ${c.mimeType??"-"}`);}console.log(`
63
63
  ${i.getFilesInFolder.total} files`);return}let f=await l(v,{pagination:o});if(e.format){d(e,{files:f.getFilesInFolder.files});return}for(let i of f.getFilesInFolder.files){let c=i.size?`${i.size}b`:"-";console.log(` \u{1F4C4} ${y(i.id,12)} ${i.name} ${c} ${i.mimeType??"-"}`);}console.log(`
64
- ${f.getFilesInFolder.total} files`);}catch(o){p(o);}}),r.command("upload").description("Upload a local file (initiates a multipart session)").argument("<path>","Local file path").option("--folder <folderId>","Target folder id").option("--visibility <v>","PRIVATE|WORKSPACE|PUBLIC","WORKSPACE").option("-f, --format <format>").action(async(t,e)=>{try{let o=fs.statSync(t),f=path.basename(t),i=path.extname(t).slice(1)||void 0,c=fs.readFileSync(t),k=crypto.createHash("sha256").update(c).digest("hex"),q={fileName:f,fileSize:o.size,mimeType:"application/octet-stream",extension:i,folderId:e.folder,sha256Hash:k,visibility:(e.visibility??"WORKSPACE").toUpperCase()},I=await l(S,{input:q});x("Upload session created. PUT the local bytes to the returned URL(s)."),d(e,I.initiateUpload),x(`After uploading, complete with: vibecontrols files upload-complete --session ${I.initiateUpload.session.id}`);}catch(o){p(o);}}),r.command("upload-complete").description("Complete an in-flight upload session").requiredOption("--session <id>","Session id from `files upload`").option("--folder <folderId>").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let e=await l(O,{input:{sessionId:t.session,folderId:t.folder,description:t.description}});h(`Upload complete: ${e.completeUpload.fileId}`),d(t,e.completeUpload.file);}catch(e){p(e);}}),r.command("get").description("Get a file by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await l(R,{id:t});if(!o.getFile)throw new u(`File ${t} not found`);d(e,o.getFile);}catch(o){p(o);}}),r.command("download").description("Get a pre-signed download URL for a file").argument("<id>").option("--expires <seconds>","URL expiry in seconds",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let o=await l(F,{id:t,expiresIn:e.expires});if(e.format){d(e,{url:o.getFileDownloadUrl});return}h("Download URL:"),console.log(o.getFileDownloadUrl);}catch(o){p(o);}});let a=r.command("share").description("Manage file shares");a.command("create").description("Create a share link for a file").argument("<fileId>").option("--access <a>","VIEW|DOWNLOAD","DOWNLOAD").option("--expires <iso>","Expiry timestamp").option("--password <p>").option("--max-downloads <n>","",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let o={fileId:t,shareType:"PUBLIC_LINK",accessLevel:(e.access??"DOWNLOAD").toUpperCase(),expiresAt:e.expires,password:e.password,maxDownloads:e.maxDownloads},f=await l($,{input:o});h("Share created"),d(e,f.createShare);}catch(o){p(o);}}),a.command("revoke").description("Revoke a share by id").argument("<shareId>").action(async t=>{try{await l(D,{id:t}),h("Share revoked");}catch(e){p(e);}});}var ee={id:"files",version:"1.0.0",displayName:"Files",dependsOn:["auth","workspaces"],register(n,r){E(r),L(n);}},ft=ee;module.exports=ft;
64
+ ${f.getFilesInFolder.total} files`);}catch(o){p(o);}}),r.command("upload").description("Upload a local file (initiates a multipart session)").argument("<path>","Local file path").option("--folder <folderId>","Target folder id").option("--visibility <v>","PRIVATE|WORKSPACE|PUBLIC","WORKSPACE").option("-f, --format <format>").action(async(t,e)=>{try{let o=fs.statSync(t),f=path.basename(t),i=path.extname(t).slice(1)||void 0,c=fs.readFileSync(t),C=crypto.createHash("sha256").update(c).digest("hex"),P={fileName:f,fileSize:o.size,mimeType:"application/octet-stream",extension:i,folderId:e.folder,sha256Hash:C,visibility:(e.visibility??"WORKSPACE").toUpperCase()},I=await l(S,{input:P});x("Upload session created. PUT the local bytes to the returned URL(s)."),d(e,I.initiateUpload),x(`After uploading, complete with: vibecontrols files upload-complete --session ${I.initiateUpload.session.id}`);}catch(o){p(o);}}),r.command("upload-complete").description("Complete an in-flight upload session").requiredOption("--session <id>","Session id from `files upload`").option("--folder <folderId>").option("--description <s>").option("-f, --format <format>").action(async t=>{try{let e=await l(O,{input:{sessionId:t.session,folderId:t.folder,description:t.description}});h(`Upload complete: ${e.completeUpload.fileId}`),d(t,e.completeUpload.file);}catch(e){p(e);}}),r.command("get").description("Get a file by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let o=await l(R,{id:t});if(!o.getFile)throw new u(`File ${t} not found`);d(e,o.getFile);}catch(o){p(o);}}),r.command("download").description("Get a pre-signed download URL for a file").argument("<id>").option("--expires <seconds>","URL expiry in seconds",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let o=await l(F,{id:t,expiresIn:e.expires});if(e.format){d(e,{url:o.getFileDownloadUrl});return}h("Download URL:"),console.log(o.getFileDownloadUrl);}catch(o){p(o);}});let a=r.command("share").description("Manage file shares");a.command("create").description("Create a share link for a file").argument("<fileId>").option("--access <a>","VIEW|DOWNLOAD","DOWNLOAD").option("--expires <iso>","Expiry timestamp").option("--password <p>").option("--max-downloads <n>","",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let o={fileId:t,shareType:"PUBLIC_LINK",accessLevel:(e.access??"DOWNLOAD").toUpperCase(),expiresAt:e.expires,password:e.password,maxDownloads:e.maxDownloads},f=await l(D,{input:o});h("Share created"),d(e,f.createShare);}catch(o){p(o);}}),a.command("revoke").description("Revoke a share by id").argument("<shareId>").action(async t=>{try{await l($,{id:t}),h("Share revoked");}catch(e){p(e);}});}var ee={id:"files",version:"1.0.0",displayName:"Files",dependsOn:["auth","workspaces"],register(n,r){E(r),L(n);}},ft=ee;module.exports=ft;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,b,g,j,o,f,h as h$1}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';import {statSync,readFileSync}from'fs';import {basename,extname}from'path';import {createHash}from'crypto';var h=`
1
+ import {a,b,g,j,o,f,h as h$1}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';import {statSync,readFileSync}from'fs';import {basename,extname}from'path';import {createHash}from'crypto';var h=`
2
2
  query BrowseFolderRoot($pagination: PaginationInput) {
3
3
  getFilesInFolder(pagination: $pagination) {
4
4
  files { id name size mimeType extension createdAt }
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(o,a){super(o),this.name="CliUserError",this.exitCode=a?.exitCode??1,this.hint=a?.hint;}},y=class extends p{constructor(o,a){super(o,{exitCode:2,hint:a?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(o,a){super(o),this.name="CliInternalError",this.cause=a;}};var C=null;function k(n){C=n;}function f(){if(!C)throw new g("vibecontrols module helpers used before setHelpersContext was called");return C}function z(){let n=f();if(!n.auth.isAuthenticated())throw new y(`Authentication required. Run \`${n.productName} auth login\`.`)}async function u(n,o){return z(),f().gql.workspace.request(n,o)}function c(n){let o=n instanceof Error?n.message:String(n);throw new p(o)}function l(n,o,a){f().output.formatAndOutput(n,o,a);}function m(n){f().output.printSuccess(n);}function w(n){return f().output.formatStatus(n)}function T(n){return f().output.formatDate(n)}function h(n,o){return f().output.truncate(n,o)}var I=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(o,a){super(o),this.name="CliUserError",this.exitCode=a?.exitCode??1,this.hint=a?.hint;}},y=class extends p{constructor(o,a){super(o,{exitCode:2,hint:a?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},g=class extends Error{cause;constructor(o,a){super(o),this.name="CliInternalError",this.cause=a;}};var C=null;function k(n){C=n;}function f(){if(!C)throw new g("vibecontrols module helpers used before setHelpersContext was called");return C}function z(){let n=f();if(!n.auth.isAuthenticated())throw new y(`Authentication required. Run \`${n.productName} auth login\`.`)}async function u(n,o){return z(),f().gql.workspace.request(n,o)}function c(n){let o=n instanceof Error?n.message:String(n);throw new p(o)}function l(n,o,a){f().output.formatAndOutput(n,o,a);}function m(n){f().output.printSuccess(n);}function w(n){return f().output.formatStatus(n)}function I(n){return f().output.formatDate(n)}function h(n,o){return f().output.truncate(n,o)}var T=`
2
2
  query ListGroups($filter: GroupFilter, $first: Int, $after: String, $sort: GroupSort) {
3
3
  groups(filter: $filter, first: $first, after: $after, sort: $sort) {
4
4
  edges { node { id name groupType visibility status memberCount createdAt } }
@@ -11,13 +11,13 @@
11
11
  id name description groupType visibility status scope membershipType memberCount createdAt updatedAt
12
12
  }
13
13
  }
14
- `,A=`
14
+ `,v=`
15
15
  mutation CreateGroup($input: CreateGroupInput!) {
16
16
  createGroup(input: $input) {
17
17
  id name groupType visibility status
18
18
  }
19
19
  }
20
- `,v=`
20
+ `,A=`
21
21
  mutation UpdateGroup($id: ID!, $input: UpdateGroupInput!) {
22
22
  updateGroup(id: $id, input: $input) {
23
23
  id name description visibility status updatedAt
@@ -64,4 +64,4 @@
64
64
  edges { node { id name groupType visibility memberCount } }
65
65
  }
66
66
  }
67
- `;function L(n){let o=n.command("groups").description("Group management");o.command("list").description("List groups").option("--type <t>","Filter by groupType").option("--status <s>","Filter by status").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.type&&(t.groupType=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let d=(await u(I,{filter:Object.keys(t).length?t:void 0,first:e.limit})).groups.edges.map(i=>i.node);l(e,d,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:d.map(i=>[h(i.id,12),i.name,i.groupType??"-",i.visibility??"-",w(i.status),String(i.memberCount??0)])});}catch(t){c(t);}}),o.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(E,{id:e});if(!r.group)throw new p(`Group ${e} not found`);l(t,r.group);}catch(r){c(r);}}),o.command("create").description("Create a group").requiredOption("--name <name>").option("--description <s>").option("--type <t>","AUDIENCE|BETA_PROGRAM|CHANNEL_GROUP|CUSTOM|DYNAMIC_AUDIENCE|FEATURE_FLAG_GROUP|PROJECT_GROUP|RESOURCE_COLLECTION|SECURITY_GROUP|TEAM","TEAM").option("--visibility <v>","PUBLIC|PRIVATE|HIDDEN","PRIVATE").option("--scope <s>","WORKSPACE|ORGANIZATION","WORKSPACE").option("--membership <m>","STATIC|DYNAMIC|HYBRID","STATIC").option("-f, --format <format>").action(async e=>{try{let t={name:e.name,description:e.description,groupType:(e.type??"TEAM").toUpperCase(),visibility:(e.visibility??"PRIVATE").toUpperCase(),scope:(e.scope??"WORKSPACE").toUpperCase(),membershipType:(e.membership??"STATIC").toUpperCase()},r=await u(A,{input:t});m(`Group created: ${r.createGroup.name}`),l(e,r.createGroup);}catch(t){c(t);}}),o.command("update").description("Update a group").argument("<id>").option("--name <s>").option("--description <s>").option("--visibility <v>").option("--status <s>").option("-f, --format <format>").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.visibility&&(r.visibility=t.visibility.toUpperCase()),t.status&&(r.status=t.status.toUpperCase()),!Object.keys(r).length)throw new p("No updates specified");let d=await u(v,{id:e,input:r});m("Group updated"),l(t,d.updateGroup);}catch(r){c(r);}}),o.command("delete").description("Delete a group (use --archive for soft delete)").argument("<id>").option("--archive","Archive instead of hard delete",false).action(async(e,t)=>{try{t.archive?(await u(R,{id:e}),m("Group archived")):(await u(S,{id:e}),m("Group deleted"));}catch(r){c(r);}});let a=o.command("members").description("Group membership");a.command("list").description("List members of a group").argument("<groupId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let d=(await u(O,{groupId:e,first:t.limit})).groupMembers.edges.map(i=>i.node);l(t,d,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:d.map(i=>[h(i.id,12),h(i.entityId,12),i.entityType??"-",i.role??"-",w(i.invitationStatus),T(i.joinedAt)])});}catch(r){c(r);}}),a.command("add").description("Add a member to a group").requiredOption("--group <id>").requiredOption("--entity <id>").option("--entity-type <t>","USER|GROUP|BOT|INTEGRATION","USER").option("--role <r>","MEMBER|OWNER|ADMIN","MEMBER").option("-f, --format <format>").action(async e=>{try{let t={entityId:e.entity,entityType:(e.entityType??"USER").toUpperCase(),role:(e.role??"MEMBER").toUpperCase()},r=await u(G,{groupId:e.group,members:[t]});m(`Added ${r.addGroupMembers.added} member(s)`),l(e,r.addGroupMembers.memberships);}catch(t){c(t);}}),a.command("remove").description("Remove members by membership id").requiredOption("--group <id>").requiredOption("--membership <ids>","Comma-separated membership ids").action(async e=>{try{let t=e.membership.split(",").filter(Boolean);await u($,{groupId:e.group,membershipIds:t}),m(`Removed ${t.length} membership(s)`);}catch(t){c(t);}}),o.command("hierarchy").description("Show entity-group hierarchy for a user/entity").argument("<entityId>").option("--type <t>","USER|GROUP","USER").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(D,{entityId:e,entityType:(t.type??"USER").toUpperCase(),first:t.limit});l(t,r.entityGroups.edges.map(d=>d.node));}catch(r){c(r);}}),o.command("activity").description("Audit log for a group").argument("<groupId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(P,{groupId:e,first:t.limit});l(t,r.groupAuditLogs);}catch(r){c(r);}});}var J={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(n,o){k(o),L(n);}},it=J;module.exports=it;
67
+ `;function L(n){let o=n.command("groups").description("Group management");o.command("list").description("List groups").option("--type <t>","Filter by groupType").option("--status <s>","Filter by status").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.type&&(t.groupType=e.type.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let d=(await u(T,{filter:Object.keys(t).length?t:void 0,first:e.limit})).groups.edges.map(i=>i.node);l(e,d,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:d.map(i=>[h(i.id,12),i.name,i.groupType??"-",i.visibility??"-",w(i.status),String(i.memberCount??0)])});}catch(t){c(t);}}),o.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(E,{id:e});if(!r.group)throw new p(`Group ${e} not found`);l(t,r.group);}catch(r){c(r);}}),o.command("create").description("Create a group").requiredOption("--name <name>").option("--description <s>").option("--type <t>","AUDIENCE|BETA_PROGRAM|CHANNEL_GROUP|CUSTOM|DYNAMIC_AUDIENCE|FEATURE_FLAG_GROUP|PROJECT_GROUP|RESOURCE_COLLECTION|SECURITY_GROUP|TEAM","TEAM").option("--visibility <v>","PUBLIC|PRIVATE|HIDDEN","PRIVATE").option("--scope <s>","WORKSPACE|ORGANIZATION","WORKSPACE").option("--membership <m>","STATIC|DYNAMIC|HYBRID","STATIC").option("-f, --format <format>").action(async e=>{try{let t={name:e.name,description:e.description,groupType:(e.type??"TEAM").toUpperCase(),visibility:(e.visibility??"PRIVATE").toUpperCase(),scope:(e.scope??"WORKSPACE").toUpperCase(),membershipType:(e.membership??"STATIC").toUpperCase()},r=await u(v,{input:t});m(`Group created: ${r.createGroup.name}`),l(e,r.createGroup);}catch(t){c(t);}}),o.command("update").description("Update a group").argument("<id>").option("--name <s>").option("--description <s>").option("--visibility <v>").option("--status <s>").option("-f, --format <format>").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.visibility&&(r.visibility=t.visibility.toUpperCase()),t.status&&(r.status=t.status.toUpperCase()),!Object.keys(r).length)throw new p("No updates specified");let d=await u(A,{id:e,input:r});m("Group updated"),l(t,d.updateGroup);}catch(r){c(r);}}),o.command("delete").description("Delete a group (use --archive for soft delete)").argument("<id>").option("--archive","Archive instead of hard delete",false).action(async(e,t)=>{try{t.archive?(await u(R,{id:e}),m("Group archived")):(await u(S,{id:e}),m("Group deleted"));}catch(r){c(r);}});let a=o.command("members").description("Group membership");a.command("list").description("List members of a group").argument("<groupId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let d=(await u(O,{groupId:e,first:t.limit})).groupMembers.edges.map(i=>i.node);l(t,d,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:d.map(i=>[h(i.id,12),h(i.entityId,12),i.entityType??"-",i.role??"-",w(i.invitationStatus),I(i.joinedAt)])});}catch(r){c(r);}}),a.command("add").description("Add a member to a group").requiredOption("--group <id>").requiredOption("--entity <id>").option("--entity-type <t>","USER|GROUP|BOT|INTEGRATION","USER").option("--role <r>","MEMBER|OWNER|ADMIN","MEMBER").option("-f, --format <format>").action(async e=>{try{let t={entityId:e.entity,entityType:(e.entityType??"USER").toUpperCase(),role:(e.role??"MEMBER").toUpperCase()},r=await u(G,{groupId:e.group,members:[t]});m(`Added ${r.addGroupMembers.added} member(s)`),l(e,r.addGroupMembers.memberships);}catch(t){c(t);}}),a.command("remove").description("Remove members by membership id").requiredOption("--group <id>").requiredOption("--membership <ids>","Comma-separated membership ids").action(async e=>{try{let t=e.membership.split(",").filter(Boolean);await u($,{groupId:e.group,membershipIds:t}),m(`Removed ${t.length} membership(s)`);}catch(t){c(t);}}),o.command("hierarchy").description("Show entity-group hierarchy for a user/entity").argument("<entityId>").option("--type <t>","USER|GROUP","USER").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(D,{entityId:e,entityType:(t.type??"USER").toUpperCase(),first:t.limit});l(t,r.entityGroups.edges.map(d=>d.node));}catch(r){c(r);}}),o.command("activity").description("Audit log for a group").argument("<groupId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let r=await u(P,{groupId:e,first:t.limit});l(t,r.groupAuditLogs);}catch(r){c(r);}});}var K={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(n,o){k(o),L(n);}},it=K;module.exports=it;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,b,g,o,m,f,h as h$1,n}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var l=`
1
+ import {a,b,g,o,m,f,h as h$1,n}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var l=`
2
2
  query ListGroups($filter: GroupFilter, $first: Int, $after: String, $sort: GroupSort) {
3
3
  groups(filter: $filter, first: $first, after: $after, sort: $sort) {
4
4
  edges { node { id name groupType visibility status memberCount createdAt } }
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var g=class extends Error{exitCode;hint;constructor(a,u){super(a),this.name="CliUserError",this.exitCode=u?.exitCode??1,this.hint=u?.hint;}},C=class extends g{constructor(a,u){super(a,{exitCode:2,hint:u?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(a,u){super(a),this.name="CliInternalError",this.cause=u;}};var w=null;function E(o){w=o;}function m(){if(!w)throw new f("vibecontrols module helpers used before setHelpersContext was called");return w}function dt(){let o=m();if(!o.auth.isAuthenticated())throw new C(`Authentication required. Run \`${o.productName} auth login\`.`)}async function r(o,a){return dt(),m().gql.workspace.request(o,a)}function i(o){let a=o instanceof Error?o.message:String(o);throw new g(a)}function s(o,a,u){m().output.formatAndOutput(o,a,u);}function d(o){m().output.printSuccess(o);}function x(o){return m().output.formatStatus(o)}function v(o){return m().output.formatDate(o)}function y(o,a){return m().output.truncate(o,a)}var A=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var g=class extends Error{exitCode;hint;constructor(a,u){super(a),this.name="CliUserError",this.exitCode=u?.exitCode??1,this.hint=u?.hint;}},C=class extends g{constructor(a,u){super(a,{exitCode:2,hint:u?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(a,u){super(a),this.name="CliInternalError",this.cause=u;}};var w=null;function E(o){w=o;}function m(){if(!w)throw new f("vibecontrols module helpers used before setHelpersContext was called");return w}function de(){let o=m();if(!o.auth.isAuthenticated())throw new C(`Authentication required. Run \`${o.productName} auth login\`.`)}async function r(o,a){return de(),m().gql.workspace.request(o,a)}function i(o){let a=o instanceof Error?o.message:String(o);throw new g(a)}function s(o,a,u){m().output.formatAndOutput(o,a,u);}function d(o){m().output.printSuccess(o);}function x(o){return m().output.formatStatus(o)}function v(o){return m().output.formatDate(o)}function y(o,a){return m().output.truncate(o,a)}var A=`
2
2
  query GetProviders($filter: ProviderFilterInput, $pagination: IntegrationsPaginationInput) {
3
3
  getProviders(filter: $filter, pagination: $pagination) {
4
4
  items { id key name category authType isEnabled }
@@ -30,7 +30,7 @@
30
30
  id name status providerId
31
31
  }
32
32
  }
33
- `,$=`
33
+ `,P=`
34
34
  mutation DeleteConnection($id: ID!, $deleteVaultSecret: Boolean) {
35
35
  deleteConnection(id: $id, deleteVaultSecret: $deleteVaultSecret)
36
36
  }
@@ -41,7 +41,7 @@
41
41
  total hasMore
42
42
  }
43
43
  }
44
- `,P=`
44
+ `,$=`
45
45
  mutation UpdateConnection($id: ID!, $input: UpdateConnectionInput!) {
46
46
  updateConnection(id: $id, input: $input) { id name status }
47
47
  }
@@ -125,4 +125,4 @@
125
125
  query GetConnectionTags($input: GetConnectionTagsInput!) {
126
126
  getConnectionTags(input: $input) { id entityId tagId source assignedAt }
127
127
  }
128
- `;function X(o){let a=o.command("integrations").description("Integration providers, connections, and logs"),u=a.command("providers").description("Available providers");u.command("list").description("List integration providers").option("--category <c>").option("--enabled").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.category&&(e.category=t.category.toUpperCase()),t.enabled!==void 0&&(e.isEnabled=t.enabled);let n=await r(A,{filter:Object.keys(e).length?e:void 0,pagination:{limit:t.limit,offset:0}});s(t,n.getProviders.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:n.getProviders.items.map(c=>[y(c.id,12),c.key,c.name,c.category??"-",c.authType??"-",String(!!c.isEnabled)])});}catch(e){i(e);}}),u.command("get").description("Get a provider").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(O,{id:t});if(!n.getProvider)throw new g(`Provider ${t} not found`);s(e,n.getProvider);}catch(n){i(n);}});let l=a.command("connections").description("Provider connections (OAuth + credential)");l.command("list").description("List connections").option("--provider <id>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.provider&&(e.providerId=t.provider),t.status&&(e.status=t.status.toUpperCase());let n=await r(b,{filter:Object.keys(e).length?e:void 0,pagination:{limit:t.limit,offset:0}});s(t,n.getConnections.items,{headers:["ID","Name","Provider","Status"],rows:n.getConnections.items.map(c=>[y(c.id,12),c.name,y(c.providerId,12),x(c.status)])});}catch(e){i(e);}}),l.command("get").description("Get a connection").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(N,{id:t});if(!n.getConnection)throw new g(`Connection ${t} not found`);s(e,n.getConnection);}catch(n){i(n);}}),l.command("add").description("Create a connection (provider id required; credentials stored in vault)").requiredOption("--name <name>").requiredOption("--provider <id>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async t=>{try{let e={name:t.name,providerId:t.provider,grantedScopes:t.scopes?t.scopes.split(","):void 0},n=await r(R,{input:e});d("Connection created"),s(t,n.createConnection);}catch(e){i(e);}}),l.command("delete").description("Delete a connection").argument("<id>").option("--keep-secret","Keep vault secret",false).action(async(t,e)=>{try{await r($,{id:t,deleteVaultSecret:!e.keepSecret}),d("Connection deleted");}catch(n){i(n);}}),l.command("update").description("Update a connection (name / description / config JSON)").argument("<id>").option("--name <name>").option("--description <desc>").option("--config <json>","Config JSON string").option("-f, --format <format>").action(async(t,e)=>{try{let n={};if(e.name!==void 0&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.config!==void 0&&(n.config=JSON.parse(e.config)),Object.keys(n).length===0)throw new g("Provide at least one of --name, --description, --config");let c=await r(P,{id:t,input:n});d("Connection updated"),s(e,c.updateConnection);}catch(n){i(n);}}),l.command("revoke").description("Revoke a connection (soft delete; tokens invalidated)").argument("<connectionId>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(_,{connectionId:t});d("Connection revoked"),s(e,n.revokeConnection);}catch(n){i(n);}}),l.command("test").description("Test a connection (health/auth probe)").argument("<connectionId>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(D,{connectionId:t});s(e,n.testConnection);}catch(n){i(n);}}),l.command("link").description("Link a connection to a channel for DM/notification routing").requiredOption("--channel <channelId>").requiredOption("--connection <id>").requiredOption("--organization <id>").option("-f, --format <format>").action(async t=>{try{let e=await r(q,{channelId:t.channel,connectionId:t.connection,organizationId:t.organization});d("Linked"),s(t,e.linkIntegrationToChannel);}catch(e){i(e);}}),l.command("refresh-token").description("Force a connection token refresh (OAuth refresh_grant)").argument("<connectionId>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(L,{connectionId:t});d("Token refreshed"),s(e,n.refreshConnectionToken);}catch(n){i(n);}});let h=a.command("auth").description("Per-connection auth flows");h.command("api-key").description("Authenticate a connection with an API key").requiredOption("--connection <id>").requiredOption("--api-key <key>").option("-f, --format <format>").action(async t=>{try{let e=await r(G,{input:{connectionId:t.connection,apiKey:t.apiKey}});d("Authenticated"),s(t,e.authenticateWithApiKey);}catch(e){i(e);}}),h.command("basic").description("Authenticate a connection with Basic Auth").requiredOption("--connection <id>").requiredOption("--username <u>").requiredOption("--password <p>").option("-f, --format <format>").action(async t=>{try{let e=await r(U,{input:{connectionId:t.connection,username:t.username,password:t.password}});d("Authenticated"),s(t,e.authenticateWithBasicAuth);}catch(e){i(e);}}),h.command("bearer").description("Authenticate a connection with a Bearer token").requiredOption("--connection <id>").requiredOption("--token <t>").option("-f, --format <format>").action(async t=>{try{let e=await r(W,{input:{connectionId:t.connection,token:t.token}});d("Authenticated"),s(t,e.authenticateWithBearerToken);}catch(e){i(e);}}),h.command("oauth-start").description("Initiate an OAuth flow; prints redirect URL + state").requiredOption("--connection <id>").requiredOption("--redirect-uri <uri>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async t=>{try{let e={connectionId:t.connection,redirectUri:t.redirectUri};t.scopes&&(e.scopes=t.scopes.split(","));let n=await r(B,{input:e});s(t,n.initiateOAuth);}catch(e){i(e);}}),h.command("oauth-complete").description("Complete an OAuth flow with the authorization code + state").requiredOption("--connection <id>").requiredOption("--code <c>").requiredOption("--redirect-uri <uri>").requiredOption("--state <s>").option("-f, --format <format>").action(async t=>{try{let e=await r(F,{input:{connectionId:t.connection,code:t.code,redirectUri:t.redirectUri,state:t.state}});d("OAuth complete"),s(t,e.completeOAuth);}catch(e){i(e);}});let I=l.command("tags").description("Connection tag assignments");I.command("add").description("Tag a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").option("--source <s>").option("-f, --format <format>").action(async t=>{try{let e={entityId:t.entity,tagId:t.tag};t.source&&(e.source=t.source);let n=await r(H,{input:e});d("Tagged"),s(t,n.tagConnection);}catch(e){i(e);}}),I.command("remove").description("Remove a tag from a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").action(async t=>{try{await r(Y,{input:{entityId:t.entity,tagId:t.tag}}),d("Tag removed");}catch(e){i(e);}}),I.command("replace").description("Replace all tags on a connection").requiredOption("--entity <id>").requiredOption("--tags <ids>","Comma-separated tag IDs").option("-f, --format <format>").action(async t=>{try{let e=await r(J,{input:{entityId:t.entity,tagIds:t.tags.split(",")}});d("Tags replaced"),s(t,e.replaceConnectionTags);}catch(e){i(e);}}),I.command("list").description("List tags on a connection").requiredOption("--entity <id>").option("-f, --format <format>").action(async t=>{try{let e=await r(Q,{input:{entityId:t.entity}});s(t,e.getConnectionTags);}catch(e){i(e);}}),u.command("get-by-key").description("Get a provider by key (e.g. github, slack)").argument("<key>").option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(j,{key:t});if(!n.getProviderByKey)throw new g(`Provider ${t} not found`);s(e,n.getProviderByKey);}catch(n){i(n);}}),u.command("catalog").description("Browseable provider catalog").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e=await r(M,{pagination:{limit:t.limit,offset:0}});s(t,e.getProviderCatalog.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:e.getProviderCatalog.items.map(n=>[y(n.id,12),n.key,n.name,n.category??"-",n.authType??"-",String(!!n.isEnabled)])});}catch(e){i(e);}}),u.command("connections").description("Connections for a given provider").argument("<providerId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let n=await r(V,{providerId:t,pagination:{limit:e.limit,offset:0}});s(e,n.getConnectionsByProvider.items);}catch(n){i(n);}}),u.command("enable").description("Enable a provider").argument("<id>").action(async t=>{try{await r(K,{id:t}),d("Provider enabled");}catch(e){i(e);}}),u.command("disable").description("Disable a provider").argument("<id>").action(async t=>{try{await r(z,{id:t}),d("Provider disabled");}catch(e){i(e);}}),a.command("logs").description("Integration audit logs").option("--connection <id>").option("--level <l>","INFO|WARN|ERROR").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={};t.connection&&(e.connectionId=t.connection),t.level&&(e.level=t.level.toUpperCase());let n=await r(S,{filter:Object.keys(e).length?e:void 0,pagination:{limit:t.limit,offset:0}});s(t,n.getIntegrationLogs.items,{headers:["When","Action","Level","Message"],rows:n.getIntegrationLogs.items.map(c=>[v(c.createdAt),c.action,c.level,c.message])});}catch(e){i(e);}});}var gt={id:"integrations",version:"1.0.0",displayName:"Integrations",dependsOn:["auth","workspaces"],register(o,a){E(a),X(o);}},ke=gt;module.exports=ke;
128
+ `;function X(o){let a=o.command("integrations").description("Integration providers, connections, and logs"),u=a.command("providers").description("Available providers");u.command("list").description("List integration providers").option("--category <c>").option("--enabled").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.category&&(t.category=e.category.toUpperCase()),e.enabled!==void 0&&(t.isEnabled=e.enabled);let n=await r(A,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getProviders.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:n.getProviders.items.map(c=>[y(c.id,12),c.key,c.name,c.category??"-",c.authType??"-",String(!!c.isEnabled)])});}catch(t){i(t);}}),u.command("get").description("Get a provider").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(O,{id:e});if(!n.getProvider)throw new g(`Provider ${e} not found`);s(t,n.getProvider);}catch(n){i(n);}});let l=a.command("connections").description("Provider connections (OAuth + credential)");l.command("list").description("List connections").option("--provider <id>").option("--status <s>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.provider&&(t.providerId=e.provider),e.status&&(t.status=e.status.toUpperCase());let n=await r(b,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getConnections.items,{headers:["ID","Name","Provider","Status"],rows:n.getConnections.items.map(c=>[y(c.id,12),c.name,y(c.providerId,12),x(c.status)])});}catch(t){i(t);}}),l.command("get").description("Get a connection").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(N,{id:e});if(!n.getConnection)throw new g(`Connection ${e} not found`);s(t,n.getConnection);}catch(n){i(n);}}),l.command("add").description("Create a connection (provider id required; credentials stored in vault)").requiredOption("--name <name>").requiredOption("--provider <id>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async e=>{try{let t={name:e.name,providerId:e.provider,grantedScopes:e.scopes?e.scopes.split(","):void 0},n=await r(R,{input:t});d("Connection created"),s(e,n.createConnection);}catch(t){i(t);}}),l.command("delete").description("Delete a connection").argument("<id>").option("--keep-secret","Keep vault secret",false).action(async(e,t)=>{try{await r(P,{id:e,deleteVaultSecret:!t.keepSecret}),d("Connection deleted");}catch(n){i(n);}}),l.command("update").description("Update a connection (name / description / config JSON)").argument("<id>").option("--name <name>").option("--description <desc>").option("--config <json>","Config JSON string").option("-f, --format <format>").action(async(e,t)=>{try{let n={};if(t.name!==void 0&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.config!==void 0&&(n.config=JSON.parse(t.config)),Object.keys(n).length===0)throw new g("Provide at least one of --name, --description, --config");let c=await r($,{id:e,input:n});d("Connection updated"),s(t,c.updateConnection);}catch(n){i(n);}}),l.command("revoke").description("Revoke a connection (soft delete; tokens invalidated)").argument("<connectionId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(_,{connectionId:e});d("Connection revoked"),s(t,n.revokeConnection);}catch(n){i(n);}}),l.command("test").description("Test a connection (health/auth probe)").argument("<connectionId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(D,{connectionId:e});s(t,n.testConnection);}catch(n){i(n);}}),l.command("link").description("Link a connection to a channel for DM/notification routing").requiredOption("--channel <channelId>").requiredOption("--connection <id>").requiredOption("--organization <id>").option("-f, --format <format>").action(async e=>{try{let t=await r(q,{channelId:e.channel,connectionId:e.connection,organizationId:e.organization});d("Linked"),s(e,t.linkIntegrationToChannel);}catch(t){i(t);}}),l.command("refresh-token").description("Force a connection token refresh (OAuth refresh_grant)").argument("<connectionId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(L,{connectionId:e});d("Token refreshed"),s(t,n.refreshConnectionToken);}catch(n){i(n);}});let h=a.command("auth").description("Per-connection auth flows");h.command("api-key").description("Authenticate a connection with an API key").requiredOption("--connection <id>").requiredOption("--api-key <key>").option("-f, --format <format>").action(async e=>{try{let t=await r(G,{input:{connectionId:e.connection,apiKey:e.apiKey}});d("Authenticated"),s(e,t.authenticateWithApiKey);}catch(t){i(t);}}),h.command("basic").description("Authenticate a connection with Basic Auth").requiredOption("--connection <id>").requiredOption("--username <u>").requiredOption("--password <p>").option("-f, --format <format>").action(async e=>{try{let t=await r(U,{input:{connectionId:e.connection,username:e.username,password:e.password}});d("Authenticated"),s(e,t.authenticateWithBasicAuth);}catch(t){i(t);}}),h.command("bearer").description("Authenticate a connection with a Bearer token").requiredOption("--connection <id>").requiredOption("--token <t>").option("-f, --format <format>").action(async e=>{try{let t=await r(W,{input:{connectionId:e.connection,token:e.token}});d("Authenticated"),s(e,t.authenticateWithBearerToken);}catch(t){i(t);}}),h.command("oauth-start").description("Initiate an OAuth flow; prints redirect URL + state").requiredOption("--connection <id>").requiredOption("--redirect-uri <uri>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async e=>{try{let t={connectionId:e.connection,redirectUri:e.redirectUri};e.scopes&&(t.scopes=e.scopes.split(","));let n=await r(B,{input:t});s(e,n.initiateOAuth);}catch(t){i(t);}}),h.command("oauth-complete").description("Complete an OAuth flow with the authorization code + state").requiredOption("--connection <id>").requiredOption("--code <c>").requiredOption("--redirect-uri <uri>").requiredOption("--state <s>").option("-f, --format <format>").action(async e=>{try{let t=await r(F,{input:{connectionId:e.connection,code:e.code,redirectUri:e.redirectUri,state:e.state}});d("OAuth complete"),s(e,t.completeOAuth);}catch(t){i(t);}});let I=l.command("tags").description("Connection tag assignments");I.command("add").description("Tag a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").option("--source <s>").option("-f, --format <format>").action(async e=>{try{let t={entityId:e.entity,tagId:e.tag};e.source&&(t.source=e.source);let n=await r(H,{input:t});d("Tagged"),s(e,n.tagConnection);}catch(t){i(t);}}),I.command("remove").description("Remove a tag from a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").action(async e=>{try{await r(Y,{input:{entityId:e.entity,tagId:e.tag}}),d("Tag removed");}catch(t){i(t);}}),I.command("replace").description("Replace all tags on a connection").requiredOption("--entity <id>").requiredOption("--tags <ids>","Comma-separated tag IDs").option("-f, --format <format>").action(async e=>{try{let t=await r(J,{input:{entityId:e.entity,tagIds:e.tags.split(",")}});d("Tags replaced"),s(e,t.replaceConnectionTags);}catch(t){i(t);}}),I.command("list").description("List tags on a connection").requiredOption("--entity <id>").option("-f, --format <format>").action(async e=>{try{let t=await r(Q,{input:{entityId:e.entity}});s(e,t.getConnectionTags);}catch(t){i(t);}}),u.command("get-by-key").description("Get a provider by key (e.g. github, slack)").argument("<key>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(j,{key:e});if(!n.getProviderByKey)throw new g(`Provider ${e} not found`);s(t,n.getProviderByKey);}catch(n){i(n);}}),u.command("catalog").description("Browseable provider catalog").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t=await r(M,{pagination:{limit:e.limit,offset:0}});s(e,t.getProviderCatalog.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:t.getProviderCatalog.items.map(n=>[y(n.id,12),n.key,n.name,n.category??"-",n.authType??"-",String(!!n.isEnabled)])});}catch(t){i(t);}}),u.command("connections").description("Connections for a given provider").argument("<providerId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(V,{providerId:e,pagination:{limit:t.limit,offset:0}});s(t,n.getConnectionsByProvider.items);}catch(n){i(n);}}),u.command("enable").description("Enable a provider").argument("<id>").action(async e=>{try{await r(K,{id:e}),d("Provider enabled");}catch(t){i(t);}}),u.command("disable").description("Disable a provider").argument("<id>").action(async e=>{try{await r(z,{id:e}),d("Provider disabled");}catch(t){i(t);}}),a.command("logs").description("Integration audit logs").option("--connection <id>").option("--level <l>","INFO|WARN|ERROR").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.connection&&(t.connectionId=e.connection),e.level&&(t.level=e.level.toUpperCase());let n=await r(S,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getIntegrationLogs.items,{headers:["When","Action","Level","Message"],rows:n.getIntegrationLogs.items.map(c=>[v(c.createdAt),c.action,c.level,c.message])});}catch(t){i(t);}});}var ge={id:"integrations",version:"1.0.0",displayName:"Integrations",dependsOn:["auth","workspaces"],register(o,a){E(a),X(o);}},kt=ge;module.exports=kt;
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
1
+ import { C as CliModule } from '../../module-DxCuik6L.cjs';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import { C as CliModule } from '../../module-Bv5zhYt2.js';
1
+ import { C as CliModule } from '../../module-DxCuik6L.js';
2
2
  import 'commander';
3
3
  import 'graphql-request';
4
4
 
@@ -1,4 +1,4 @@
1
- import {a,b as b$1,g,o,f,m,h,n}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var E=`
1
+ import {a,b as b$1,g,o,f,m,h,n}from'../../chunk-LZQBJDKZ.js';import {o as o$1}from'../../chunk-TCBALVP4.js';var E=`
2
2
  query GetProviders($filter: ProviderFilterInput, $pagination: IntegrationsPaginationInput) {
3
3
  getProviders(filter: $filter, pagination: $pagination) {
4
4
  items { id key name category authType isEnabled }