@burdenoff/cli-sdk 2026.504.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 (107) hide show
  1. package/README.md +60 -0
  2. package/dist/chunk-KTKHJORN.js +1 -0
  3. package/dist/chunk-MRONTCXQ.js +879 -0
  4. package/dist/chunk-RNWXATAC.js +32 -0
  5. package/dist/core/index.cjs +32 -0
  6. package/dist/core/index.d.cts +57 -0
  7. package/dist/core/index.d.ts +57 -0
  8. package/dist/core/index.js +1 -0
  9. package/dist/index.cjs +32 -0
  10. package/dist/index.d.cts +4 -0
  11. package/dist/index.d.ts +4 -0
  12. package/dist/index.js +1 -0
  13. package/dist/module-Bv5zhYt2.d.cts +166 -0
  14. package/dist/module-Bv5zhYt2.d.ts +166 -0
  15. package/dist/modules/auth/index.cjs +183 -0
  16. package/dist/modules/auth/index.d.cts +7 -0
  17. package/dist/modules/auth/index.d.ts +7 -0
  18. package/dist/modules/auth/index.js +160 -0
  19. package/dist/modules/billing/index.cjs +105 -0
  20. package/dist/modules/billing/index.d.cts +7 -0
  21. package/dist/modules/billing/index.d.ts +7 -0
  22. package/dist/modules/billing/index.js +105 -0
  23. package/dist/modules/channels/index.cjs +70 -0
  24. package/dist/modules/channels/index.d.cts +7 -0
  25. package/dist/modules/channels/index.d.ts +7 -0
  26. package/dist/modules/channels/index.js +70 -0
  27. package/dist/modules/conversations/index.cjs +37 -0
  28. package/dist/modules/conversations/index.d.cts +7 -0
  29. package/dist/modules/conversations/index.d.ts +7 -0
  30. package/dist/modules/conversations/index.js +37 -0
  31. package/dist/modules/devportal/index.cjs +133 -0
  32. package/dist/modules/devportal/index.d.cts +7 -0
  33. package/dist/modules/devportal/index.d.ts +7 -0
  34. package/dist/modules/devportal/index.js +133 -0
  35. package/dist/modules/export/index.cjs +37 -0
  36. package/dist/modules/export/index.d.cts +7 -0
  37. package/dist/modules/export/index.d.ts +7 -0
  38. package/dist/modules/export/index.js +37 -0
  39. package/dist/modules/files/index.cjs +49 -0
  40. package/dist/modules/files/index.d.cts +7 -0
  41. package/dist/modules/files/index.d.ts +7 -0
  42. package/dist/modules/files/index.js +49 -0
  43. package/dist/modules/groups/index.cjs +67 -0
  44. package/dist/modules/groups/index.d.cts +7 -0
  45. package/dist/modules/groups/index.d.ts +7 -0
  46. package/dist/modules/groups/index.js +67 -0
  47. package/dist/modules/health/index.cjs +1 -0
  48. package/dist/modules/health/index.d.cts +7 -0
  49. package/dist/modules/health/index.d.ts +7 -0
  50. package/dist/modules/health/index.js +1 -0
  51. package/dist/modules/integrations/index.cjs +44 -0
  52. package/dist/modules/integrations/index.d.cts +7 -0
  53. package/dist/modules/integrations/index.d.ts +7 -0
  54. package/dist/modules/integrations/index.js +44 -0
  55. package/dist/modules/notifications/index.cjs +26 -0
  56. package/dist/modules/notifications/index.d.cts +7 -0
  57. package/dist/modules/notifications/index.d.ts +7 -0
  58. package/dist/modules/notifications/index.js +26 -0
  59. package/dist/modules/organizations/index.cjs +53 -0
  60. package/dist/modules/organizations/index.d.cts +7 -0
  61. package/dist/modules/organizations/index.d.ts +7 -0
  62. package/dist/modules/organizations/index.js +53 -0
  63. package/dist/modules/products/index.cjs +102 -0
  64. package/dist/modules/products/index.d.cts +7 -0
  65. package/dist/modules/products/index.d.ts +7 -0
  66. package/dist/modules/products/index.js +102 -0
  67. package/dist/modules/rbac/index.cjs +63 -0
  68. package/dist/modules/rbac/index.d.cts +7 -0
  69. package/dist/modules/rbac/index.d.ts +7 -0
  70. package/dist/modules/rbac/index.js +63 -0
  71. package/dist/modules/sandbox/index.cjs +33 -0
  72. package/dist/modules/sandbox/index.d.cts +7 -0
  73. package/dist/modules/sandbox/index.d.ts +7 -0
  74. package/dist/modules/sandbox/index.js +1 -0
  75. package/dist/modules/scheduler/index.cjs +32 -0
  76. package/dist/modules/scheduler/index.d.cts +7 -0
  77. package/dist/modules/scheduler/index.d.ts +7 -0
  78. package/dist/modules/scheduler/index.js +32 -0
  79. package/dist/modules/security/index.cjs +69 -0
  80. package/dist/modules/security/index.d.cts +7 -0
  81. package/dist/modules/security/index.d.ts +7 -0
  82. package/dist/modules/security/index.js +69 -0
  83. package/dist/modules/store/index.cjs +63 -0
  84. package/dist/modules/store/index.d.cts +7 -0
  85. package/dist/modules/store/index.d.ts +7 -0
  86. package/dist/modules/store/index.js +63 -0
  87. package/dist/modules/support/index.cjs +45 -0
  88. package/dist/modules/support/index.d.cts +7 -0
  89. package/dist/modules/support/index.d.ts +7 -0
  90. package/dist/modules/support/index.js +45 -0
  91. package/dist/modules/tags/index.cjs +54 -0
  92. package/dist/modules/tags/index.d.cts +7 -0
  93. package/dist/modules/tags/index.d.ts +7 -0
  94. package/dist/modules/tags/index.js +54 -0
  95. package/dist/modules/tours/index.cjs +48 -0
  96. package/dist/modules/tours/index.d.cts +7 -0
  97. package/dist/modules/tours/index.d.ts +7 -0
  98. package/dist/modules/tours/index.js +48 -0
  99. package/dist/modules/vibecontrols/index.cjs +844 -0
  100. package/dist/modules/vibecontrols/index.d.cts +7 -0
  101. package/dist/modules/vibecontrols/index.d.ts +7 -0
  102. package/dist/modules/vibecontrols/index.js +2 -0
  103. package/dist/modules/workspaces/index.cjs +90 -0
  104. package/dist/modules/workspaces/index.d.cts +7 -0
  105. package/dist/modules/workspaces/index.d.ts +7 -0
  106. package/dist/modules/workspaces/index.js +77 -0
  107. package/package.json +104 -0
@@ -0,0 +1,63 @@
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,s){super(o),this.name="CliUserError",this.exitCode=s?.exitCode??1,this.hint=s?.hint;}};var l=class extends Error{cause;constructor(o,s){super(o),this.name="CliInternalError",this.cause=s;}};var y=null;function A(r){y=r;}function g(){if(!y)throw new l("vibecontrols module helpers used before setHelpersContext was called");return y}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 d(o)}function u(r,o,s){g().output.formatAndOutput(r,o,s);}function C(r){g().output.printSuccess(r);}function h(r){return g().output.formatStatus(r)}function w(r){return g().output.formatDate(r)}function f(r,o){return g().output.truncate(r,o)}var v=K();function K(){return `
2
+ query SearchStore($input: BrowseStoreInput!) {
3
+ browseStore(input: $input) {
4
+ products { id name description price currency type status }
5
+ totalCount hasMore
6
+ }
7
+ }
8
+ `}var S=`
9
+ query MyCart {
10
+ myCart {
11
+ id currency subtotal total itemCount isEmpty
12
+ items { id productId quantity }
13
+ }
14
+ }
15
+ `,O=`
16
+ mutation AddToCart($input: AddToCartInput!) {
17
+ addToCart(input: $input) {
18
+ id itemCount subtotal items { productId quantity }
19
+ }
20
+ }
21
+ `,R=`
22
+ mutation RemoveFromCart($cartId: ID!, $itemId: ID!) {
23
+ removeFromCart(cartId: $cartId, itemId: $itemId) {
24
+ id itemCount subtotal
25
+ }
26
+ }
27
+ `,D=`
28
+ mutation CheckoutCart($cartId: ID!) {
29
+ checkoutCart(cartId: $cartId) {
30
+ success order { id total status }
31
+ }
32
+ }
33
+ `,$=`
34
+ query GetOrders($limit: Int, $offset: Int, $status: OrderStatus) {
35
+ myOrders(limit: $limit, offset: $offset, status: $status) {
36
+ id status total currency createdAt
37
+ }
38
+ }
39
+ `,q=`
40
+ query GetOrder($id: ID!) {
41
+ getOrder(id: $id) {
42
+ id status total currency paidAt billingAccountId
43
+ lineItems { productId quantity unitPrice }
44
+ }
45
+ }
46
+ `,L=`
47
+ query GetInstalledProducts {
48
+ myStoreAppInstallations {
49
+ items { id productId workspaceId status version installedAt }
50
+ total hasMore
51
+ }
52
+ }
53
+ `,P=`
54
+ mutation UninstallProduct($installationId: ID!) {
55
+ uninstallProduct(installationId: $installationId) { success }
56
+ }
57
+ `,_=`
58
+ query GetLicenses($entitlementId: ID!) {
59
+ getLicenses(entitlementId: $entitlementId) {
60
+ id status validFrom expiresAt
61
+ }
62
+ }
63
+ `;function N(r){let o=r.command("store").description("Store: marketplace, cart, orders, installed apps");o.command("search").description("Search the store").argument("<query>").option("--type <t>").option("--category <c>").option("--limit <n>","Page size",e=>parseInt(e,10),20).option("-f, --format <format>").action(async(e,t)=>{try{let n={search:e};t.type&&(n.productType=t.type.toUpperCase()),t.category&&(n.categories=[t.category]);let p={filter:n,pagination:{limit:t.limit,offset:0},sortBy:"RELEVANCE"},I=await a(v,{input:p});u(t,I.browseStore.products,{headers:["ID","Name","Type","Price"],rows:I.browseStore.products.map(m=>[f(m.id,12),m.name,m.type??"-",`${m.price??"-"} ${m.currency??""}`.trim()])});}catch(n){c(n);}});let s=o.command("cart").description("Shopping cart");s.command("list").description("Show current cart").option("-f, --format <format>").action(async e=>{try{let t=await a(S);u(e,t.myCart);}catch(t){c(t);}}),s.command("add").description("Add a product to the cart").requiredOption("--product <id>").option("--quantity <n>","",e=>parseInt(e,10),1).option("--variant <id>").option("-f, --format <format>").action(async e=>{try{let t={productId:e.product,quantity:e.quantity,variantId:e.variant},n=await a(O,{input:t});C("Added to cart"),u(e,n.addToCart);}catch(t){c(t);}}),s.command("remove").description("Remove an item from the cart").requiredOption("--cart <id>").requiredOption("--item <id>").action(async e=>{try{await a(R,{cartId:e.cart,itemId:e.item}),C("Item removed from cart");}catch(t){c(t);}}),s.command("checkout").description("Check out the cart").argument("<cartId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(D,{cartId:e});n.checkoutCart.success&&C("Checkout complete"),u(t,n.checkoutCart);}catch(n){c(n);}});let k=o.command("orders").description("Orders");k.command("list").description("List orders").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t=await a($,{limit:e.limit,offset:0});u(e,t.myOrders,{headers:["ID","Status","Total","Currency","Created"],rows:t.myOrders.map(n=>[f(n.id,12),h(n.status),String(n.total??"-"),n.currency??"-",w(n.createdAt)])});}catch(t){c(t);}}),k.command("get").description("Get an order").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(q,{id:e});if(!n.getOrder)throw new d(`Order ${e} not found`);u(t,n.getOrder);}catch(n){c(n);}});let x=o.command("installed").description("Installed products");x.command("list").description("List the current user's installed store apps").option("-f, --format <format>").action(async e=>{try{let n=(await a(L)).myStoreAppInstallations.items;u(e,n,{headers:["InstallationID","ProductID","Workspace","Status","Version","Installed"],rows:n.map(p=>[f(p.id,12),f(p.productId,12),f(p.workspaceId,12),h(p.status),p.version??"-",w(p.installedAt)])});}catch(t){c(t);}}),x.command("uninstall").description("Uninstall a product by installation id").argument("<installationId>").action(async e=>{try{await a(P,{installationId:e}),C("Product uninstalled");}catch(t){c(t);}}),o.command("licenses").description("Licenses").command("list").description("List licenses for an entitlement").requiredOption("--entitlement <id>").option("-f, --format <format>").action(async e=>{try{let t=await a(_,{entitlementId:e.entitlement});u(e,t.getLicenses);}catch(t){c(t);}});}var Q={id:"store",version:"1.0.0",displayName:"Store",dependsOn:["auth"],register(r,o){A(o),N(r);}},ce=Q;module.exports=ce;
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const storeModule: CliModule;
6
+
7
+ export { storeModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const storeModule: CliModule;
6
+
7
+ export { storeModule as default };
@@ -0,0 +1,63 @@
1
+ import {a,c,g,o,f,h as h$1,m,n}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var E=x();function x(){return `
2
+ query SearchStore($input: BrowseStoreInput!) {
3
+ browseStore(input: $input) {
4
+ products { id name description price currency type status }
5
+ totalCount hasMore
6
+ }
7
+ }
8
+ `}var T=`
9
+ query MyCart {
10
+ myCart {
11
+ id currency subtotal total itemCount isEmpty
12
+ items { id productId quantity }
13
+ }
14
+ }
15
+ `,h=`
16
+ mutation AddToCart($input: AddToCartInput!) {
17
+ addToCart(input: $input) {
18
+ id itemCount subtotal items { productId quantity }
19
+ }
20
+ }
21
+ `,A=`
22
+ mutation RemoveFromCart($cartId: ID!, $itemId: ID!) {
23
+ removeFromCart(cartId: $cartId, itemId: $itemId) {
24
+ id itemCount subtotal
25
+ }
26
+ }
27
+ `,w=`
28
+ mutation CheckoutCart($cartId: ID!) {
29
+ checkoutCart(cartId: $cartId) {
30
+ success order { id total status }
31
+ }
32
+ }
33
+ `,_=`
34
+ query GetOrders($limit: Int, $offset: Int, $status: OrderStatus) {
35
+ myOrders(limit: $limit, offset: $offset, status: $status) {
36
+ id status total currency createdAt
37
+ }
38
+ }
39
+ `,$=`
40
+ query GetOrder($id: ID!) {
41
+ getOrder(id: $id) {
42
+ id status total currency paidAt billingAccountId
43
+ lineItems { productId quantity unitPrice }
44
+ }
45
+ }
46
+ `,D=`
47
+ query GetInstalledProducts {
48
+ myStoreAppInstallations {
49
+ items { id productId workspaceId status version installedAt }
50
+ total hasMore
51
+ }
52
+ }
53
+ `,b=`
54
+ mutation UninstallProduct($installationId: ID!) {
55
+ uninstallProduct(installationId: $installationId) { success }
56
+ }
57
+ `,L=`
58
+ query GetLicenses($entitlementId: ID!) {
59
+ getLicenses(entitlementId: $entitlementId) {
60
+ id status validFrom expiresAt
61
+ }
62
+ }
63
+ `;function q(p){let a=p.command("store").description("Store: marketplace, cart, orders, installed apps");a.command("search").description("Search the store").argument("<query>").option("--type <t>").option("--category <c>").option("--limit <n>","Page size",r=>parseInt(r,10),20).option("-f, --format <format>").action(async(r,t)=>{try{let e={search:r};t.type&&(e.productType=t.type.toUpperCase()),t.category&&(e.categories=[t.category]);let s={filter:e,pagination:{limit:t.limit,offset:0},sortBy:"RELEVANCE"},I=await c(E,{input:s});g(t,I.browseStore.products,{headers:["ID","Name","Type","Price"],rows:I.browseStore.products.map(d=>[o(d.id,12),d.name,d.type??"-",`${d.price??"-"} ${d.currency??""}`.trim()])});}catch(e){f(e);}});let u=a.command("cart").description("Shopping cart");u.command("list").description("Show current cart").option("-f, --format <format>").action(async r=>{try{let t=await c(T);g(r,t.myCart);}catch(t){f(t);}}),u.command("add").description("Add a product to the cart").requiredOption("--product <id>").option("--quantity <n>","",r=>parseInt(r,10),1).option("--variant <id>").option("-f, --format <format>").action(async r=>{try{let t={productId:r.product,quantity:r.quantity,variantId:r.variant},e=await c(h,{input:t});h$1("Added to cart"),g(r,e.addToCart);}catch(t){f(t);}}),u.command("remove").description("Remove an item from the cart").requiredOption("--cart <id>").requiredOption("--item <id>").action(async r=>{try{await c(A,{cartId:r.cart,itemId:r.item}),h$1("Item removed from cart");}catch(t){f(t);}}),u.command("checkout").description("Check out the cart").argument("<cartId>").option("-f, --format <format>").action(async(r,t)=>{try{let e=await c(w,{cartId:r});e.checkoutCart.success&&h$1("Checkout complete"),g(t,e.checkoutCart);}catch(e){f(e);}});let g$1=a.command("orders").description("Orders");g$1.command("list").description("List orders").option("--limit <n>","Page size",r=>parseInt(r,10),50).option("-f, --format <format>").action(async r=>{try{let t=await c(_,{limit:r.limit,offset:0});g(r,t.myOrders,{headers:["ID","Status","Total","Currency","Created"],rows:t.myOrders.map(e=>[o(e.id,12),m(e.status),String(e.total??"-"),e.currency??"-",n(e.createdAt)])});}catch(t){f(t);}}),g$1.command("get").description("Get an order").argument("<id>").option("-f, --format <format>").action(async(r,t)=>{try{let e=await c($,{id:r});if(!e.getOrder)throw new o$1(`Order ${r} not found`);g(t,e.getOrder);}catch(e){f(e);}});let C=a.command("installed").description("Installed products");C.command("list").description("List the current user's installed store apps").option("-f, --format <format>").action(async r=>{try{let e=(await c(D)).myStoreAppInstallations.items;g(r,e,{headers:["InstallationID","ProductID","Workspace","Status","Version","Installed"],rows:e.map(s=>[o(s.id,12),o(s.productId,12),o(s.workspaceId,12),m(s.status),s.version??"-",n(s.installedAt)])});}catch(t){f(t);}}),C.command("uninstall").description("Uninstall a product by installation id").argument("<installationId>").action(async r=>{try{await c(b,{installationId:r}),h$1("Product uninstalled");}catch(t){f(t);}}),a.command("licenses").description("Licenses").command("list").description("List licenses for an entitlement").requiredOption("--entitlement <id>").option("-f, --format <format>").action(async r=>{try{let t=await c(L,{entitlementId:r.entitlement});g(r,t.getLicenses);}catch(t){f(t);}});}var v={id:"store",version:"1.0.0",displayName:"Store",dependsOn:["auth"],register(p,a$1){a(a$1),q(p);}},H=v;export{H as default};
@@ -0,0 +1,45 @@
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var c=class extends Error{exitCode;hint;constructor(o,s){super(o),this.name="CliUserError",this.exitCode=s?.exitCode??1,this.hint=s?.hint;}};var l=class extends Error{cause;constructor(o,s){super(o),this.name="CliInternalError",this.cause=s;}};var k=null;function y(t){k=t;}function d(){if(!k)throw new l("vibecontrols module helpers used before setHelpersContext was called");return k}async function u(t,o){return d().gql.global.request(t,o)}function p(t){let o=t instanceof Error?t.message:String(t);throw new c(o)}function g(t,o,s){d().output.formatAndOutput(t,o,s);}function f(t){d().output.printSuccess(t);}function T(t){return d().output.formatStatus(t)}function x(t){return d().output.formatDate(t)}function m(t,o){return d().output.truncate(t,o)}var b=`
2
+ query ListSupportTickets($filter: SupportTicketFilterInput, $limit: Int, $offset: Int) {
3
+ supportTickets(filter: $filter, limit: $limit, offset: $offset) {
4
+ nodes { id ticketNumber subject status priority category createdAt }
5
+ totalCount
6
+ }
7
+ }
8
+ `,E=`
9
+ query GetSupportTicket($id: ID!) {
10
+ supportTicket(id: $id) {
11
+ id ticketNumber subject description status priority category createdAt
12
+ messages { id message createdAt isInternal }
13
+ }
14
+ }
15
+ `,I=`
16
+ mutation CreateSupportTicket($input: CreateSupportTicketInput!) {
17
+ createSupportTicket(input: $input) {
18
+ id ticketNumber status priority
19
+ }
20
+ }
21
+ `,S=`
22
+ mutation CreateSupportMessage($input: CreateSupportMessageInput!) {
23
+ createSupportMessage(input: $input) {
24
+ id message createdAt isInternal
25
+ }
26
+ }
27
+ `,v=`
28
+ mutation CloseSupportTicket($id: ID!) {
29
+ closeSupportTicket(id: $id) {
30
+ id status closedAt
31
+ }
32
+ }
33
+ `,A=`
34
+ mutation ResolveSupportTicket($id: ID!, $resolution: String) {
35
+ resolveSupportTicket(id: $id, resolution: $resolution) {
36
+ id status resolvedAt
37
+ }
38
+ }
39
+ `,O=`
40
+ query SearchKnowledgeBase($query: String!, $limit: Int, $offset: Int) {
41
+ searchKnowledgeBase(query: $query, limit: $limit, offset: $offset) {
42
+ id title slug helpfulnessScore
43
+ }
44
+ }
45
+ `;function R(t){let o=t.command("support").description("Support tickets & knowledge base"),s=o.command("tickets").description("Manage support tickets");s.command("list").description("List support tickets").option("--status <s>").option("--priority <p>").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let n={};e.status&&(n.status=e.status.toUpperCase()),e.priority&&(n.priority=e.priority.toUpperCase());let r=await u(b,{filter:Object.keys(n).length?n:void 0,limit:e.limit,offset:0});g(e,r.supportTickets.nodes,{headers:["#","Subject","Status","Priority","Category","Created"],rows:r.supportTickets.nodes.map(a=>[a.ticketNumber??m(a.id,8),m(a.subject??"-",40),T(a.status),a.priority??"-",a.category??"-",x(a.createdAt)])});}catch(n){p(n);}}),s.command("get").description("Get a support ticket").argument("<id>").option("-f, --format <format>").action(async(e,n)=>{try{let r=await u(E,{id:e});if(!r.supportTicket)throw new c(`Ticket ${e} not found`);g(n,r.supportTicket);}catch(r){p(r);}}),s.command("create").description("Open a support ticket").requiredOption("--subject <s>").requiredOption("--description <s>").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--category <c>","TECHNICAL_SUPPORT|BILLING|FEATURE_REQUEST|OTHER","TECHNICAL_SUPPORT").option("-f, --format <format>").action(async e=>{try{let n={subject:e.subject,description:e.description,priority:(e.priority??"NORMAL").toUpperCase(),category:(e.category??"TECHNICAL_SUPPORT").toUpperCase()},r=await u(I,{input:n});f(`Ticket created: ${r.createSupportTicket.ticketNumber??r.createSupportTicket.id}`),g(e,r.createSupportTicket);}catch(n){p(n);}}),s.command("comment").description("Add a comment to a ticket").argument("<ticketId>").requiredOption("--message <s>").option("--internal","Internal staff-only comment",false).action(async(e,n)=>{try{let r={ticketId:e,message:n.message,isInternal:!!n.internal};await u(S,{input:r}),f("Comment added");}catch(r){p(r);}}),s.command("resolve").description("Mark a ticket as resolved (precursor to close)").argument("<id>").option("--resolution <s>","Optional resolution note").action(async(e,n)=>{try{await u(A,{id:e,resolution:n.resolution}),f("Ticket resolved");}catch(r){p(r);}}),s.command("close").description("Close a support ticket").argument("<id>").action(async e=>{try{await u(v,{id:e}),f("Ticket closed");}catch(n){p(n);}}),o.command("kb").description("Knowledge base search").command("search").description("Search knowledge base articles").argument("<query>").option("--limit <n>","Page size",e=>parseInt(e,10),20).option("-f, --format <format>").action(async(e,n)=>{try{let r=await u(O,{query:e,limit:n.limit,offset:0});g(n,r.searchKnowledgeBase,{headers:["Slug","Title","Score"],rows:r.searchKnowledgeBase.map(a=>[a.slug,m(a.title,60),String(a.helpfulnessScore)])});}catch(r){p(r);}});}var W={id:"support",version:"1.0.0",displayName:"Support",dependsOn:["auth"],register(t,o){y(o),R(t);}},et=W;module.exports=et;
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const supportModule: CliModule;
6
+
7
+ export { supportModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const supportModule: CliModule;
6
+
7
+ export { supportModule as default };
@@ -0,0 +1,45 @@
1
+ import {a,c,g,o,m,n,f,h}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var k=`
2
+ query ListSupportTickets($filter: SupportTicketFilterInput, $limit: Int, $offset: Int) {
3
+ supportTickets(filter: $filter, limit: $limit, offset: $offset) {
4
+ nodes { id ticketNumber subject status priority category createdAt }
5
+ totalCount
6
+ }
7
+ }
8
+ `,C=`
9
+ query GetSupportTicket($id: ID!) {
10
+ supportTicket(id: $id) {
11
+ id ticketNumber subject description status priority category createdAt
12
+ messages { id message createdAt isInternal }
13
+ }
14
+ }
15
+ `,y=`
16
+ mutation CreateSupportTicket($input: CreateSupportTicketInput!) {
17
+ createSupportTicket(input: $input) {
18
+ id ticketNumber status priority
19
+ }
20
+ }
21
+ `,E=`
22
+ mutation CreateSupportMessage($input: CreateSupportMessageInput!) {
23
+ createSupportMessage(input: $input) {
24
+ id message createdAt isInternal
25
+ }
26
+ }
27
+ `,R=`
28
+ mutation CloseSupportTicket($id: ID!) {
29
+ closeSupportTicket(id: $id) {
30
+ id status closedAt
31
+ }
32
+ }
33
+ `,I=`
34
+ mutation ResolveSupportTicket($id: ID!, $resolution: String) {
35
+ resolveSupportTicket(id: $id, resolution: $resolution) {
36
+ id status resolvedAt
37
+ }
38
+ }
39
+ `,O=`
40
+ query SearchKnowledgeBase($query: String!, $limit: Int, $offset: Int) {
41
+ searchKnowledgeBase(query: $query, limit: $limit, offset: $offset) {
42
+ id title slug helpfulnessScore
43
+ }
44
+ }
45
+ `;function P(m$1){let p=m$1.command("support").description("Support tickets & knowledge base"),n$1=p.command("tickets").description("Manage support tickets");n$1.command("list").description("List support tickets").option("--status <s>").option("--priority <p>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.status&&(e.status=t.status.toUpperCase()),t.priority&&(e.priority=t.priority.toUpperCase());let r=await c(k,{filter:Object.keys(e).length?e:void 0,limit:t.limit,offset:0});g(t,r.supportTickets.nodes,{headers:["#","Subject","Status","Priority","Category","Created"],rows:r.supportTickets.nodes.map(i=>[i.ticketNumber??o(i.id,8),o(i.subject??"-",40),m(i.status),i.priority??"-",i.category??"-",n(i.createdAt)])});}catch(e){f(e);}}),n$1.command("get").description("Get a support ticket").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let r=await c(C,{id:t});if(!r.supportTicket)throw new o$1(`Ticket ${t} not found`);g(e,r.supportTicket);}catch(r){f(r);}}),n$1.command("create").description("Open a support ticket").requiredOption("--subject <s>").requiredOption("--description <s>").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--category <c>","TECHNICAL_SUPPORT|BILLING|FEATURE_REQUEST|OTHER","TECHNICAL_SUPPORT").option("-f, --format <format>").action(async t=>{try{let e={subject:t.subject,description:t.description,priority:(t.priority??"NORMAL").toUpperCase(),category:(t.category??"TECHNICAL_SUPPORT").toUpperCase()},r=await c(y,{input:e});h(`Ticket created: ${r.createSupportTicket.ticketNumber??r.createSupportTicket.id}`),g(t,r.createSupportTicket);}catch(e){f(e);}}),n$1.command("comment").description("Add a comment to a ticket").argument("<ticketId>").requiredOption("--message <s>").option("--internal","Internal staff-only comment",false).action(async(t,e)=>{try{let r={ticketId:t,message:e.message,isInternal:!!e.internal};await c(E,{input:r}),h("Comment added");}catch(r){f(r);}}),n$1.command("resolve").description("Mark a ticket as resolved (precursor to close)").argument("<id>").option("--resolution <s>","Optional resolution note").action(async(t,e)=>{try{await c(I,{id:t,resolution:e.resolution}),h("Ticket resolved");}catch(r){f(r);}}),n$1.command("close").description("Close a support ticket").argument("<id>").action(async t=>{try{await c(R,{id:t}),h("Ticket closed");}catch(e){f(e);}}),p.command("kb").description("Knowledge base search").command("search").description("Search knowledge base articles").argument("<query>").option("--limit <n>","Page size",t=>parseInt(t,10),20).option("-f, --format <format>").action(async(t,e)=>{try{let r=await c(O,{query:t,limit:e.limit,offset:0});g(e,r.searchKnowledgeBase,{headers:["Slug","Title","Score"],rows:r.searchKnowledgeBase.map(i=>[i.slug,o(i.title,60),String(i.helpfulnessScore)])});}catch(r){f(r);}});}var b={id:"support",version:"1.0.0",displayName:"Support",dependsOn:["auth"],register(m,p){a(p),P(m);}},N=b;export{N as default};
@@ -0,0 +1,54 @@
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var a=class extends Error{exitCode;hint;constructor(o,s){super(o),this.name="CliUserError",this.exitCode=s?.exitCode??1,this.hint=s?.hint;}},g=class extends a{constructor(o,s){super(o,{exitCode:2,hint:s?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},d=class extends Error{cause;constructor(o,s){super(o),this.name="CliInternalError",this.cause=s;}};var h=null;function k(r){h=r;}function f(){if(!h)throw new d("vibecontrols module helpers used before setHelpersContext was called");return h}function V(){let r=f();if(!r.auth.isAuthenticated())throw new g(`Authentication required. Run \`${r.productName} auth login\`.`)}async function c(r,o){return V(),f().gql.workspace.request(r,o)}function u(r){let o=r instanceof Error?r.message:String(r);throw new a(o)}function p(r,o,s){f().output.formatAndOutput(r,o,s);}function m(r){f().output.printSuccess(r);}function C(r,o){return f().output.truncate(r,o)}function x(){return f()}var b=`
2
+ query TagsList($filter: TagFilterInput, $pagination: TagsPaginationInput) {
3
+ getTags(filter: $filter, pagination: $pagination) {
4
+ items { id key label description scope displayOrder }
5
+ total hasMore
6
+ }
7
+ }
8
+ `,I=`
9
+ query GetTag($id: ID!) {
10
+ getTag(id: $id) {
11
+ id key label description color icon scope vocabularyId parentId
12
+ displayOrder assignmentCount usageCount hierarchyLevel hierarchyPath
13
+ }
14
+ }
15
+ `,E=`
16
+ mutation CreateTag($input: CreateTagInput!) {
17
+ createTag(input: $input) {
18
+ id key label description scope displayOrder createdAt
19
+ }
20
+ }
21
+ `,A=`
22
+ mutation UpdateTag($id: ID!, $input: UpdateTagInput!) {
23
+ updateTag(id: $id, input: $input) {
24
+ id label description color icon parentId displayOrder updatedAt
25
+ }
26
+ }
27
+ `,v=`
28
+ mutation DeleteTag($id: ID!) {
29
+ deleteTag(id: $id)
30
+ }
31
+ `,O=`
32
+ query TagAnalytics($tagId: ID!, $startDate: DateTime!, $endDate: DateTime!) {
33
+ getTagAnalytics(tagId: $tagId, startDate: $startDate, endDate: $endDate) {
34
+ assignmentCount date entityTypeBreakdown uniqueUsers uniqueEntities
35
+ }
36
+ }
37
+ `,S=`
38
+ query GetRelatedTags($tagId: ID!) {
39
+ getRelatedTags(tagId: $tagId) {
40
+ tag { id label }
41
+ relationType
42
+ }
43
+ }
44
+ `,R=`
45
+ mutation CreateTagRelation($input: CreateTagRelationInput!) {
46
+ createTagRelation(input: $input) {
47
+ id fromTagId toTagId relationType bidirectional
48
+ }
49
+ }
50
+ `,D=`
51
+ mutation DeleteTagRelation($id: ID!) {
52
+ deleteTagRelation(id: $id)
53
+ }
54
+ `;function w(){let r=x().auth.read();if(!r?.workspaceId)throw new a("No workspace set. Run: vibecontrols workspace set <id>");return {workspaceId:r.workspaceId}}function $(r){let o=r.command("tags").description("Tag management");o.command("list").description("List tags in current workspace").option("--scope <s>","WORKSPACE|GLOBAL|VIBE").option("--search <q>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={workspaceId:w().workspaceId};e.scope&&(t.scope=e.scope.toUpperCase()),e.search&&(t.search=e.search);let n=await c(b,{filter:t,pagination:{limit:e.limit,offset:0}});p(e,n.getTags.items,{headers:["ID","Key","Label","Scope","Order"],rows:n.getTags.items.map(l=>[C(l.id,12),l.key,l.label,l.scope??"-",String(l.displayOrder??"-")])});}catch(t){u(t);}}),o.command("get").description("Get a tag by id").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await c(I,{id:e});if(!n.getTag)throw new a(`Tag ${e} not found`);p(t,n.getTag);}catch(n){u(n);}}),o.command("create").description("Create a tag in the current workspace").requiredOption("--key <key>").requiredOption("--label <label>").requiredOption("--vocabulary <id>","Vocabulary id (required by schema)").option("--description <s>").option("--color <hex>").option("--icon <s>").option("--scope <s>","WORKSPACE|GLOBAL|VIBE","WORKSPACE").option("--parent <id>").option("-f, --format <format>").action(async e=>{try{let t={context:w(),key:e.key,label:e.label,vocabularyId:e.vocabulary,description:e.description,color:e.color,icon:e.icon,scope:(e.scope??"WORKSPACE").toUpperCase(),parentId:e.parent},n=await c(E,{input:t});m(`Tag created: ${n.createTag.label}`),p(e,n.createTag);}catch(t){u(t);}}),o.command("update").description("Update a tag").argument("<id>").option("--label <s>").option("--description <s>").option("--color <hex>").option("--icon <s>").option("--parent <id>").option("--display-order <n>","",e=>parseInt(e,10)).option("-f, --format <format>").action(async(e,t)=>{try{let n={context:w()};if(t.label&&(n.label=t.label),t.description!==void 0&&(n.description=t.description),t.color&&(n.color=t.color),t.icon&&(n.icon=t.icon),t.parent&&(n.parentId=t.parent),t.displayOrder!==void 0&&(n.displayOrder=t.displayOrder),Object.keys(n).length===1)throw new a("No updates specified");let l=await c(A,{id:e,input:n});m("Tag updated"),p(t,l.updateTag);}catch(n){u(n);}}),o.command("delete").description("Delete a tag").argument("<id>").action(async e=>{try{await c(v,{id:e}),m("Tag deleted");}catch(t){u(t);}}),o.command("analytics").description("Tag usage analytics").argument("<tagId>").requiredOption("--from <iso>","Start date").requiredOption("--to <iso>","End date").option("-f, --format <format>").action(async(e,t)=>{try{let n=await c(O,{tagId:e,startDate:t.from,endDate:t.to});p(t,n.getTagAnalytics);}catch(n){u(n);}});let s=o.command("permissions").description("Tag relations / permissions");s.command("list").description("List related tags").argument("<tagId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await c(S,{tagId:e});p(t,n.getRelatedTags);}catch(n){u(n);}}),s.command("grant").description("Create a tag relation").requiredOption("--from <tagId>").requiredOption("--to <tagId>").requiredOption("--type <relation>","SYNONYM|ANTONYM|BROADER|NARROWER|RELATED|IMPLIES|EXCLUDES").option("--bidirectional","Mirror in both directions",false).option("-f, --format <format>").action(async e=>{try{let t={context:w(),fromTagId:e.from,toTagId:e.to,relationType:e.type.toUpperCase(),bidirectional:!!e.bidirectional},n=await c(R,{input:t});m("Tag relation created"),p(e,n.createTagRelation);}catch(t){u(t);}}),s.command("revoke").description("Delete a tag relation").argument("<relationId>").action(async e=>{try{await c(D,{id:e}),m("Tag relation deleted");}catch(t){u(t);}});}var z={id:"tags",version:"1.0.0",displayName:"Tags",dependsOn:["auth","workspaces"],register(r,o){k(o),$(r);}},nt=z;module.exports=nt;
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const tagsModule: CliModule;
6
+
7
+ export { tagsModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const tagsModule: CliModule;
6
+
7
+ export { tagsModule as default };
@@ -0,0 +1,54 @@
1
+ import {a,b as b$1,g as g$1,o,f,h as h$1,r}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var I=`
2
+ query TagsList($filter: TagFilterInput, $pagination: TagsPaginationInput) {
3
+ getTags(filter: $filter, pagination: $pagination) {
4
+ items { id key label description scope displayOrder }
5
+ total hasMore
6
+ }
7
+ }
8
+ `,A=`
9
+ query GetTag($id: ID!) {
10
+ getTag(id: $id) {
11
+ id key label description color icon scope vocabularyId parentId
12
+ displayOrder assignmentCount usageCount hierarchyLevel hierarchyPath
13
+ }
14
+ }
15
+ `,E=`
16
+ mutation CreateTag($input: CreateTagInput!) {
17
+ createTag(input: $input) {
18
+ id key label description scope displayOrder createdAt
19
+ }
20
+ }
21
+ `,R=`
22
+ mutation UpdateTag($id: ID!, $input: UpdateTagInput!) {
23
+ updateTag(id: $id, input: $input) {
24
+ id label description color icon parentId displayOrder updatedAt
25
+ }
26
+ }
27
+ `,b=`
28
+ mutation DeleteTag($id: ID!) {
29
+ deleteTag(id: $id)
30
+ }
31
+ `,w=`
32
+ query TagAnalytics($tagId: ID!, $startDate: DateTime!, $endDate: DateTime!) {
33
+ getTagAnalytics(tagId: $tagId, startDate: $startDate, endDate: $endDate) {
34
+ assignmentCount date entityTypeBreakdown uniqueUsers uniqueEntities
35
+ }
36
+ }
37
+ `,C=`
38
+ query GetRelatedTags($tagId: ID!) {
39
+ getRelatedTags(tagId: $tagId) {
40
+ tag { id label }
41
+ relationType
42
+ }
43
+ }
44
+ `,O=`
45
+ mutation CreateTagRelation($input: CreateTagRelationInput!) {
46
+ createTagRelation(input: $input) {
47
+ id fromTagId toTagId relationType bidirectional
48
+ }
49
+ }
50
+ `,h=`
51
+ mutation DeleteTagRelation($id: ID!) {
52
+ deleteTagRelation(id: $id)
53
+ }
54
+ `;function g(){let c=r().auth.read();if(!c?.workspaceId)throw new o$1("No workspace set. Run: vibecontrols workspace set <id>");return {workspaceId:c.workspaceId}}function k(c){let o$2=c.command("tags").description("Tag management");o$2.command("list").description("List tags in current workspace").option("--scope <s>","WORKSPACE|GLOBAL|VIBE").option("--search <q>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let e={workspaceId:g().workspaceId};t.scope&&(e.scope=t.scope.toUpperCase()),t.search&&(e.search=t.search);let a=await b$1(I,{filter:e,pagination:{limit:t.limit,offset:0}});g$1(t,a.getTags.items,{headers:["ID","Key","Label","Scope","Order"],rows:a.getTags.items.map(s=>[o(s.id,12),s.key,s.label,s.scope??"-",String(s.displayOrder??"-")])});}catch(e){f(e);}}),o$2.command("get").description("Get a tag by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let a=await b$1(A,{id:t});if(!a.getTag)throw new o$1(`Tag ${t} not found`);g$1(e,a.getTag);}catch(a){f(a);}}),o$2.command("create").description("Create a tag in the current workspace").requiredOption("--key <key>").requiredOption("--label <label>").requiredOption("--vocabulary <id>","Vocabulary id (required by schema)").option("--description <s>").option("--color <hex>").option("--icon <s>").option("--scope <s>","WORKSPACE|GLOBAL|VIBE","WORKSPACE").option("--parent <id>").option("-f, --format <format>").action(async t=>{try{let e={context:g(),key:t.key,label:t.label,vocabularyId:t.vocabulary,description:t.description,color:t.color,icon:t.icon,scope:(t.scope??"WORKSPACE").toUpperCase(),parentId:t.parent},a=await b$1(E,{input:e});h$1(`Tag created: ${a.createTag.label}`),g$1(t,a.createTag);}catch(e){f(e);}}),o$2.command("update").description("Update a tag").argument("<id>").option("--label <s>").option("--description <s>").option("--color <hex>").option("--icon <s>").option("--parent <id>").option("--display-order <n>","",t=>parseInt(t,10)).option("-f, --format <format>").action(async(t,e)=>{try{let a={context:g()};if(e.label&&(a.label=e.label),e.description!==void 0&&(a.description=e.description),e.color&&(a.color=e.color),e.icon&&(a.icon=e.icon),e.parent&&(a.parentId=e.parent),e.displayOrder!==void 0&&(a.displayOrder=e.displayOrder),Object.keys(a).length===1)throw new o$1("No updates specified");let s=await b$1(R,{id:t,input:a});h$1("Tag updated"),g$1(e,s.updateTag);}catch(a){f(a);}}),o$2.command("delete").description("Delete a tag").argument("<id>").action(async t=>{try{await b$1(b,{id:t}),h$1("Tag deleted");}catch(e){f(e);}}),o$2.command("analytics").description("Tag usage analytics").argument("<tagId>").requiredOption("--from <iso>","Start date").requiredOption("--to <iso>","End date").option("-f, --format <format>").action(async(t,e)=>{try{let a=await b$1(w,{tagId:t,startDate:e.from,endDate:e.to});g$1(e,a.getTagAnalytics);}catch(a){f(a);}});let l=o$2.command("permissions").description("Tag relations / permissions");l.command("list").description("List related tags").argument("<tagId>").option("-f, --format <format>").action(async(t,e)=>{try{let a=await b$1(C,{tagId:t});g$1(e,a.getRelatedTags);}catch(a){f(a);}}),l.command("grant").description("Create a tag relation").requiredOption("--from <tagId>").requiredOption("--to <tagId>").requiredOption("--type <relation>","SYNONYM|ANTONYM|BROADER|NARROWER|RELATED|IMPLIES|EXCLUDES").option("--bidirectional","Mirror in both directions",false).option("-f, --format <format>").action(async t=>{try{let e={context:g(),fromTagId:t.from,toTagId:t.to,relationType:t.type.toUpperCase(),bidirectional:!!t.bidirectional},a=await b$1(O,{input:e});h$1("Tag relation created"),g$1(t,a.createTagRelation);}catch(e){f(e);}}),l.command("revoke").description("Delete a tag relation").argument("<relationId>").action(async t=>{try{await b$1(h,{id:t}),h$1("Tag relation deleted");}catch(e){f(e);}});}var L={id:"tags",version:"1.0.0",displayName:"Tags",dependsOn:["auth","workspaces"],register(c,o){a(o),k(c);}},N=L;export{N as default};
@@ -0,0 +1,48 @@
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var a=class extends Error{exitCode;hint;constructor(r,i){super(r),this.name="CliUserError",this.exitCode=i?.exitCode??1,this.hint=i?.hint;}};var u=class extends Error{cause;constructor(r,i){super(r),this.name="CliInternalError",this.cause=i;}};var g=null;function y(e){g=e;}function c(){if(!g)throw new u("vibecontrols module helpers used before setHelpersContext was called");return g}async function l(e,r){return c().gql.global.request(e,r)}function d(e){let r=e instanceof Error?e.message:String(e);throw new a(r)}function f(e,r,i){c().output.formatAndOutput(e,r,i);}function T(e){c().output.printSuccess(e);}function m(e){return c().output.formatStatus(e)}function w(e){return c().output.formatDate(e)}function h(e,r){return c().output.truncate(e,r)}function b(){return c()}var I=`
2
+ query ListTours($filters: TourFilters, $pagination: TourPagination) {
3
+ tours(filters: $filters, pagination: $pagination) {
4
+ tours {
5
+ id
6
+ name
7
+ slug
8
+ description
9
+ status
10
+ isActive
11
+ productId
12
+ moduleId
13
+ priority
14
+ displayOrder
15
+ createdAt
16
+ updatedAt
17
+ }
18
+ total
19
+ hasMore
20
+ }
21
+ }
22
+ `,v=`
23
+ query GetUserTourProgress($userId: ID, $pagination: TourPagination) {
24
+ userTourProgresses(userId: $userId, pagination: $pagination) {
25
+ id
26
+ tourId
27
+ userId
28
+ status
29
+ currentStepId
30
+ currentStepOrder
31
+ completedSteps
32
+ skippedSteps
33
+ startedAt
34
+ completedAt
35
+ lastViewedAt
36
+ }
37
+ }
38
+ `,E=`
39
+ mutation ResetTourProgress($tourId: ID!, $userId: ID!) {
40
+ resetTourProgress(tourId: $tourId, userId: $userId) {
41
+ id
42
+ tourId
43
+ status
44
+ currentStepId
45
+ currentStepOrder
46
+ }
47
+ }
48
+ `;function A(e){let r=e.command("tours").description("Product tours");r.command("list").description("List available tours").option("--product <id>","Filter by productId").option("--module <id>","Filter by moduleId").option("--status <s>","Filter by status").option("--active","Only active tours").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>","Output format").action(async t=>{try{let n={};t.product&&(n.productId=t.product),t.module&&(n.moduleId=t.module),t.status&&(n.status=t.status.toUpperCase()),t.active!==void 0&&(n.isActive=t.active);let o=await l(I,{filters:Object.keys(n).length?n:void 0,pagination:{limit:t.limit,offset:0}});f(t,o.tours.tours,{headers:["ID","Name","Slug","Status","Active","Created"],rows:o.tours.tours.map(p=>[h(p.id,12),p.name,p.slug,m(p.status),String(!!p.isActive),w(p.createdAt)])});}catch(n){d(n);}});let i=r.command("progress").description("Tour progress for the current user");i.command("get").description("Get current user's tour progress").option("--user <id>","User ID (defaults to current actor)").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>","Output format").action(async t=>{try{let n=await l(v,{userId:t.user,pagination:{limit:t.limit,offset:0}});f(t,n.userTourProgresses,{headers:["Tour","Status","Step","Completed","Skipped","LastViewed"],rows:n.userTourProgresses.map(o=>[h(o.tourId,12),m(o.status),String(o.currentStepOrder??"-"),String(o.completedSteps??0),String(o.skippedSteps??0),w(o.lastViewedAt)])});}catch(n){d(n);}}),i.command("reset").description("Reset tour progress for a user").argument("<tourId>").option("--user <id>","User ID (defaults to current actor)").action(async(t,n)=>{try{let o=n.user??b().auth.read()?.workspaceId;if(!o)throw new a("Unable to resolve user; pass --user <id> or run `auth login` first.");await l(E,{tourId:t,userId:o}),T("Tour progress reset");}catch(o){d(o);}});}var j={id:"tours",version:"1.0.0",displayName:"Tours",dependsOn:["auth"],register(e,r){y(r),A(e);}},Ke=j;module.exports=Ke;
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.cjs';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const toursModule: CliModule;
6
+
7
+ export { toursModule as default };
@@ -0,0 +1,7 @@
1
+ import { C as CliModule } from '../../module-Bv5zhYt2.js';
2
+ import 'commander';
3
+ import 'graphql-request';
4
+
5
+ declare const toursModule: CliModule;
6
+
7
+ export { toursModule as default };
@@ -0,0 +1,48 @@
1
+ import {a,c,g,o,m,n,f,r,h}from'../../chunk-KTKHJORN.js';import {o as o$1}from'../../chunk-RNWXATAC.js';var R=`
2
+ query ListTours($filters: TourFilters, $pagination: TourPagination) {
3
+ tours(filters: $filters, pagination: $pagination) {
4
+ tours {
5
+ id
6
+ name
7
+ slug
8
+ description
9
+ status
10
+ isActive
11
+ productId
12
+ moduleId
13
+ priority
14
+ displayOrder
15
+ createdAt
16
+ updatedAt
17
+ }
18
+ total
19
+ hasMore
20
+ }
21
+ }
22
+ `,O=`
23
+ query GetUserTourProgress($userId: ID, $pagination: TourPagination) {
24
+ userTourProgresses(userId: $userId, pagination: $pagination) {
25
+ id
26
+ tourId
27
+ userId
28
+ status
29
+ currentStepId
30
+ currentStepOrder
31
+ completedSteps
32
+ skippedSteps
33
+ startedAt
34
+ completedAt
35
+ lastViewedAt
36
+ }
37
+ }
38
+ `,y=`
39
+ mutation ResetTourProgress($tourId: ID!, $userId: ID!) {
40
+ resetTourProgress(tourId: $tourId, userId: $userId) {
41
+ id
42
+ tourId
43
+ status
44
+ currentStepId
45
+ currentStepOrder
46
+ }
47
+ }
48
+ `;function C(n$1){let o$2=n$1.command("tours").description("Product tours");o$2.command("list").description("List available tours").option("--product <id>","Filter by productId").option("--module <id>","Filter by moduleId").option("--status <s>","Filter by status").option("--active","Only active tours").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>","Output format").action(async t=>{try{let r={};t.product&&(r.productId=t.product),t.module&&(r.moduleId=t.module),t.status&&(r.status=t.status.toUpperCase()),t.active!==void 0&&(r.isActive=t.active);let e=await c(R,{filters:Object.keys(r).length?r:void 0,pagination:{limit:t.limit,offset:0}});g(t,e.tours.tours,{headers:["ID","Name","Slug","Status","Active","Created"],rows:e.tours.tours.map(s=>[o(s.id,12),s.name,s.slug,m(s.status),String(!!s.isActive),n(s.createdAt)])});}catch(r){f(r);}});let c$1=o$2.command("progress").description("Tour progress for the current user");c$1.command("get").description("Get current user's tour progress").option("--user <id>","User ID (defaults to current actor)").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>","Output format").action(async t=>{try{let r=await c(O,{userId:t.user,pagination:{limit:t.limit,offset:0}});g(t,r.userTourProgresses,{headers:["Tour","Status","Step","Completed","Skipped","LastViewed"],rows:r.userTourProgresses.map(e=>[o(e.tourId,12),m(e.status),String(e.currentStepOrder??"-"),String(e.completedSteps??0),String(e.skippedSteps??0),n(e.lastViewedAt)])});}catch(r){f(r);}}),c$1.command("reset").description("Reset tour progress for a user").argument("<tourId>").option("--user <id>","User ID (defaults to current actor)").action(async(t,r$1)=>{try{let e=r$1.user??r().auth.read()?.workspaceId;if(!e)throw new o$1("Unable to resolve user; pass --user <id> or run `auth login` first.");await c(y,{tourId:t,userId:e}),h("Tour progress reset");}catch(e){f(e);}});}var b={id:"tours",version:"1.0.0",displayName:"Tours",dependsOn:["auth"],register(n,o){a(o),C(n);}},x=b;export{x as default};