@burdenoff/cli-sdk 2026.1101.1 → 2026.1102.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/chunk-O6UCQ5IT.js +1 -0
  2. package/dist/{chunk-REBBLQFS.js → chunk-ZGT7IIOP.js} +494 -522
  3. package/dist/modules/adaptercloud/index.cjs +4 -4
  4. package/dist/modules/adaptercloud/index.js +2 -2
  5. package/dist/modules/artistrybase/index.js +2 -2
  6. package/dist/modules/assethandler/index.cjs +2 -2
  7. package/dist/modules/assethandler/index.js +2 -2
  8. package/dist/modules/atheletebridge/index.cjs +8 -8
  9. package/dist/modules/atheletebridge/index.js +2 -2
  10. package/dist/modules/auth/index.cjs +37 -37
  11. package/dist/modules/auth/index.js +33 -29
  12. package/dist/modules/billing/index.cjs +18 -18
  13. package/dist/modules/billing/index.js +22 -22
  14. package/dist/modules/brainyrich/index.cjs +44 -28
  15. package/dist/modules/brainyrich/index.js +47 -31
  16. package/dist/modules/buildmyiq/index.js +2 -2
  17. package/dist/modules/channels/index.cjs +3 -3
  18. package/dist/modules/channels/index.js +2 -2
  19. package/dist/modules/collabkin/index.cjs +4 -4
  20. package/dist/modules/collabkin/index.js +2 -2
  21. package/dist/modules/comradecircle/index.cjs +6 -6
  22. package/dist/modules/comradecircle/index.js +2 -2
  23. package/dist/modules/conversations/index.cjs +7 -7
  24. package/dist/modules/conversations/index.js +2 -2
  25. package/dist/modules/coolandlovely/index.cjs +2 -2
  26. package/dist/modules/coolandlovely/index.js +2 -2
  27. package/dist/modules/cosmicintersection/index.cjs +6 -6
  28. package/dist/modules/cosmicintersection/index.js +2 -2
  29. package/dist/modules/crewfoundry/index.js +2 -2
  30. package/dist/modules/devportal/index.cjs +40 -34
  31. package/dist/modules/devportal/index.js +49 -43
  32. package/dist/modules/ecoimpacthub/index.cjs +5 -5
  33. package/dist/modules/ecoimpacthub/index.js +2 -2
  34. package/dist/modules/eventfullymanaged/index.cjs +12 -12
  35. package/dist/modules/eventfullymanaged/index.js +2 -2
  36. package/dist/modules/export/index.cjs +4 -4
  37. package/dist/modules/export/index.js +2 -2
  38. package/dist/modules/files/index.cjs +3 -3
  39. package/dist/modules/files/index.js +4 -4
  40. package/dist/modules/fluidgrids/index.cjs +16 -16
  41. package/dist/modules/fluidgrids/index.js +3 -3
  42. package/dist/modules/ggnomad/index.cjs +4 -4
  43. package/dist/modules/ggnomad/index.js +2 -2
  44. package/dist/modules/govcitizenhub/index.cjs +4 -4
  45. package/dist/modules/govcitizenhub/index.js +2 -2
  46. package/dist/modules/groups/index.cjs +4 -4
  47. package/dist/modules/groups/index.js +2 -2
  48. package/dist/modules/headshotmarketing/index.js +2 -2
  49. package/dist/modules/hookmovies/index.cjs +6 -6
  50. package/dist/modules/hookmovies/index.js +2 -2
  51. package/dist/modules/housingvista/index.cjs +3 -3
  52. package/dist/modules/housingvista/index.js +2 -2
  53. package/dist/modules/integrations/index.cjs +5 -5
  54. package/dist/modules/integrations/index.js +2 -2
  55. package/dist/modules/intelwatchtower/index.cjs +5 -5
  56. package/dist/modules/intelwatchtower/index.js +2 -2
  57. package/dist/modules/kadaikodi/index.cjs +2 -2
  58. package/dist/modules/kadaikodi/index.js +2 -2
  59. package/dist/modules/labsofscience/index.cjs +3 -3
  60. package/dist/modules/labsofscience/index.js +2 -2
  61. package/dist/modules/manufacturedops/index.cjs +2 -2
  62. package/dist/modules/manufacturedops/index.js +2 -2
  63. package/dist/modules/movethewheels/index.js +2 -2
  64. package/dist/modules/notifications/index.cjs +2 -2
  65. package/dist/modules/notifications/index.js +2 -2
  66. package/dist/modules/organizations/index.js +2 -2
  67. package/dist/modules/planmagnet/index.js +2 -2
  68. package/dist/modules/products/index.cjs +4 -4
  69. package/dist/modules/products/index.js +2 -2
  70. package/dist/modules/proserviceworld/index.cjs +2 -2
  71. package/dist/modules/proserviceworld/index.js +2 -2
  72. package/dist/modules/rbac/index.js +2 -2
  73. package/dist/modules/sandbox/index.cjs +32 -51
  74. package/dist/modules/sandbox/index.js +1 -1
  75. package/dist/modules/scheduler/index.cjs +2 -2
  76. package/dist/modules/scheduler/index.js +2 -2
  77. package/dist/modules/security/index.cjs +3 -3
  78. package/dist/modules/security/index.js +2 -2
  79. package/dist/modules/semanticfed/index.cjs +3 -3
  80. package/dist/modules/semanticfed/index.js +2 -2
  81. package/dist/modules/store/index.cjs +46 -40
  82. package/dist/modules/store/index.js +45 -39
  83. package/dist/modules/subscriberbot/index.cjs +1 -1
  84. package/dist/modules/subscriberbot/index.js +2 -2
  85. package/dist/modules/support/index.cjs +2 -2
  86. package/dist/modules/support/index.js +2 -2
  87. package/dist/modules/tags/index.js +2 -2
  88. package/dist/modules/technospam/index.cjs +2 -2
  89. package/dist/modules/technospam/index.js +2 -2
  90. package/dist/modules/theculturepost/index.js +2 -2
  91. package/dist/modules/theglobalfuel/index.cjs +2 -2
  92. package/dist/modules/theglobalfuel/index.js +2 -2
  93. package/dist/modules/timecampus/index.js +2 -2
  94. package/dist/modules/tours/index.cjs +2 -2
  95. package/dist/modules/tours/index.js +2 -2
  96. package/dist/modules/vibecontrols/index.cjs +573 -577
  97. package/dist/modules/vibecontrols/index.js +5 -4
  98. package/dist/modules/workspaces/index.cjs +4 -4
  99. package/dist/modules/workspaces/index.js +2 -2
  100. package/package.json +1 -1
  101. package/dist/chunk-W4JZR7RJ.js +0 -1
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch');var commander=require('commander');var p=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},l=class extends p{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var k=null;function I(o){k=o;}function y(){if(!k)throw new f("vibecontrols module helpers used before setHelpersContext was called");return k}function dt(){let o=y();if(!o.auth.isAuthenticated())throw new l("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function i(o,r){return dt(),y().gql.workspace.request(o,r)}function s(o){let r=o instanceof Error?o.message:String(o);throw new p(r)}function a(o,r,t){y().output.formatAndOutput(o,r,t);}function m(o){y().output.printSuccess(o);}function h(o){return y().output.formatDate(o)}function d(o,r){return y().output.truncate(o,r)}var x=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch');var commander=require('commander');var p=class extends Error{exitCode;hint;constructor(r,t){super(r),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},f=class extends p{constructor(r,t){super(r,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},l=class extends Error{cause;constructor(r,t){super(r),this.name="CliInternalError",this.cause=t;}};var k=null;function x(o){k=o;}function y(){if(!k)throw new l("vibecontrols module helpers used before setHelpersContext was called");return k}function dt(){let o=y();if(!o.auth.isAuthenticated())throw new f("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function i(o,r){return dt(),y().gql.workspace.request(o,r)}function s(o){let r=o instanceof Error?o.message:String(o);throw new p(r)}function a(o,r,t){y().output.formatAndOutput(o,r,t);}function m(o){y().output.printSuccess(o);}function h(o){return y().output.formatDate(o)}function d(o,r){return y().output.truncate(o,r)}var I=`
2
2
  query GgnomadGetProvider($id: ID!) {
3
3
  ggnomadProvider(id: $id) {
4
4
  id name type description status website contactEmail contactPhone
@@ -120,11 +120,11 @@
120
120
  query GgnomadListFavorites($pagination: PaginationInput) {
121
121
  ggnomadFavorites(pagination: $pagination)
122
122
  }
123
- `,V=`
123
+ `,B=`
124
124
  mutation GgnomadToggleFavorite($input: ToggleGgnomadFavoriteInput!) {
125
125
  toggleGgnomadFavorite(input: $input)
126
126
  }
127
- `,B=`
127
+ `,V=`
128
128
  query GgnomadAnalytics {
129
129
  ggnomadAnalytics {
130
130
  totalUsers totalBookings totalRevenue conversionRate
@@ -137,4 +137,4 @@
137
137
  users listings bookings monthlyRevenue
138
138
  }
139
139
  }
140
- `;function M(o,r){try{return JSON.parse(r)}catch{throw new p(`--${o} must be valid JSON`)}}function c(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${o}"`);return r}function w(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new p(`Expected a number but got "${o}"`);return r}function j(o){let r=o.command("providers").description("GGNomad providers");r.command("list").description("List providers").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(b,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:n.ggnomadProviders.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(n){s(n);}}),r.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(x,{id:t});if(!e.ggnomadProvider)throw new p(`Provider ${t} not found`);a(n,e.ggnomadProvider);}catch(e){s(e);}}),r.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").addOption(new commander.Option("--type <t>","Provider type").choices(["HOTEL_OPERATOR","TOUR_OPERATOR","ACTIVITY_PROVIDER","TRANSPORT_PROVIDER","EVENT_ORGANIZER"]).makeOptionMandatory()).option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type};t.description&&(n.description=t.description),t.website&&(n.website=t.website),t.contactEmail&&(n.contactEmail=t.contactEmail),t.contactPhone&&(n.contactPhone=t.contactPhone);let e=await i(E,{input:n});m(`Provider created: ${e.createGgnomadProvider.name}`),a(t,e.createGgnomadProvider);}catch(n){s(n);}});}function z(o){let r=o.command("properties").description("GGNomad stay properties");r.command("list").description("List properties").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(A,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:n.ggnomadProperties.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(n){s(n);}}),r.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(O,{id:t});if(!e.ggnomadProperty)throw new p(`Property ${t} not found`);a(n,e.ggnomadProperty);}catch(e){s(e);}}),r.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",c).requiredOption("--price-per-night <n>","Price per night",w).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",c).option("--bathrooms <n>","Bathrooms",c).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,address:M("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(C=>C.trim()),images:t.images.split(",").map(C=>C.trim())};t.provider&&(n.providerId=t.provider),t.description&&(n.description=t.description),t.bedrooms!==void 0&&(n.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(n.bathrooms=t.bathrooms),t.checkInTime&&(n.checkInTime=t.checkInTime),t.checkOutTime&&(n.checkOutTime=t.checkOutTime),t.currency&&(n.currency=t.currency);let e=await i(P,{input:n});m(`Property created: ${e.createGgnomadProperty.name}`),a(t,e.createGgnomadProperty);}catch(n){s(n);}});}function Y(o){let r=o.command("activities").description("GGNomad activities");r.command("list").description("List activities").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(S,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:n.ggnomadActivities.map(e=>[d(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(R,{id:t});if(!e.ggnomadActivity)throw new p(`Activity ${t} not found`);a(n,e.ggnomadActivity);}catch(e){s(e);}});}function H(o){let r=o.command("events").description("GGNomad events");r.command("list").description("List events").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i($,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:n.ggnomadEvents.map(e=>[d(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),h(e.startsAt),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(G,{id:t});if(!e.ggnomadEvent)throw new p(`Event ${t} not found`);a(n,e.ggnomadEvent);}catch(e){s(e);}});}function K(o){let r=o.command("tours").description("GGNomad tours");r.command("list").description("List tours").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(D,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:n.ggnomadTours.map(e=>[d(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(N,{id:t});if(!e.ggnomadTour)throw new p(`Tour ${t} not found`);a(n,e.ggnomadTour);}catch(e){s(e);}});}function J(o){o.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(L,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:n.ggnomadTrips.map(e=>[d(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),h(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(n){s(n);}});}function Q(o){let r=o.command("bookings").description("GGNomad bookings");r.command("list").description("List bookings").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(q,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:n.ggnomadBookings.map(e=>[d(e.id,12),e.referenceCode,e.bookingType,d(e.itemName,20),d(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(n){s(n);}}),r.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",c).requiredOption("--total-price <n>","Total price",w).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let n={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(n.guestEmail=t.guestEmail),t.guestPhone&&(n.guestPhone=t.guestPhone),t.currency&&(n.currency=t.currency),t.checkIn&&(n.checkIn=t.checkIn),t.checkOut&&(n.checkOut=t.checkOut),t.eventDate&&(n.eventDate=t.eventDate),t.paymentMethod&&(n.paymentMethod=t.paymentMethod),t.specialRequests&&(n.specialRequests=t.specialRequests);let e=await i(_,{input:n});m(`Booking created: ${e.createGgnomadBooking.referenceCode}`),a(t,e.createGgnomadBooking);}catch(n){s(n);}}),r.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(F,{id:t,reason:n.reason});m(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),a(n,e.cancelGgnomadBooking);}catch(e){s(e);}});}function X(o){let r=o.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(W,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadFavorites);}catch(n){s(n);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let n={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await i(V,{input:n});m(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),a(t,{favorited:e.toggleGgnomadFavorite});}catch(n){s(n);}});}function Z(o){let r=o.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(B);a(t,n.ggnomadAnalytics);}catch(n){s(n);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(U);a(t,n.ggnomadOverviewStats);}catch(n){s(n);}});}var gt={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(o,r){I(r);let t=o.command("ggnomad").description("GGNomad travel & experiences marketplace");j(t),z(t),Y(t),H(t),K(t),J(t),Q(t),X(t),Z(t);}},cn=gt;module.exports=cn;
140
+ `;function M(o,r){try{return JSON.parse(r)}catch{throw new p(`--${o} must be valid JSON`)}}function c(o){let r=Number.parseInt(o,10);if(Number.isNaN(r))throw new p(`Expected an integer but got "${o}"`);return r}function w(o){let r=Number.parseFloat(o);if(Number.isNaN(r))throw new p(`Expected a number but got "${o}"`);return r}function j(o){let r=o.command("providers").description("GGNomad providers");r.command("list").description("List providers").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(b,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:n.ggnomadProviders.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(n){s(n);}}),r.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(I,{id:t});if(!e.ggnomadProvider)throw new p(`Provider ${t} not found`);a(n,e.ggnomadProvider);}catch(e){s(e);}}),r.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").addOption(new commander.Option("--type <t>","Provider type").choices(["HOTEL_OPERATOR","TOUR_OPERATOR","ACTIVITY_PROVIDER","TRANSPORT_PROVIDER","EVENT_ORGANIZER"]).makeOptionMandatory()).option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type};t.description&&(n.description=t.description),t.website&&(n.website=t.website),t.contactEmail&&(n.contactEmail=t.contactEmail),t.contactPhone&&(n.contactPhone=t.contactPhone);let e=await i(E,{input:n});m(`Provider created: ${e.createGgnomadProvider.name}`),a(t,e.createGgnomadProvider);}catch(n){s(n);}});}function z(o){let r=o.command("properties").description("GGNomad stay properties");r.command("list").description("List properties").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(A,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:n.ggnomadProperties.map(e=>[d(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(n){s(n);}}),r.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(O,{id:t});if(!e.ggnomadProperty)throw new p(`Property ${t} not found`);a(n,e.ggnomadProperty);}catch(e){s(e);}}),r.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",c).requiredOption("--price-per-night <n>","Price per night",w).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",c).option("--bathrooms <n>","Bathrooms",c).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let n={name:t.name,type:t.type,address:M("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(C=>C.trim()),images:t.images.split(",").map(C=>C.trim())};t.provider&&(n.providerId=t.provider),t.description&&(n.description=t.description),t.bedrooms!==void 0&&(n.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(n.bathrooms=t.bathrooms),t.checkInTime&&(n.checkInTime=t.checkInTime),t.checkOutTime&&(n.checkOutTime=t.checkOutTime),t.currency&&(n.currency=t.currency);let e=await i(P,{input:n});m(`Property created: ${e.createGgnomadProperty.name}`),a(t,e.createGgnomadProperty);}catch(n){s(n);}});}function Y(o){let r=o.command("activities").description("GGNomad activities");r.command("list").description("List activities").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(S,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:n.ggnomadActivities.map(e=>[d(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(R,{id:t});if(!e.ggnomadActivity)throw new p(`Activity ${t} not found`);a(n,e.ggnomadActivity);}catch(e){s(e);}});}function H(o){let r=o.command("events").description("GGNomad events");r.command("list").description("List events").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i($,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:n.ggnomadEvents.map(e=>[d(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),h(e.startsAt),e.status])});}catch(n){s(n);}}),r.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(G,{id:t});if(!e.ggnomadEvent)throw new p(`Event ${t} not found`);a(n,e.ggnomadEvent);}catch(e){s(e);}});}function K(o){let r=o.command("tours").description("GGNomad tours");r.command("list").description("List tours").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(D,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:n.ggnomadTours.map(e=>[d(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(n){s(n);}}),r.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(N,{id:t});if(!e.ggnomadTour)throw new p(`Tour ${t} not found`);a(n,e.ggnomadTour);}catch(e){s(e);}});}function J(o){o.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(L,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:n.ggnomadTrips.map(e=>[d(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),h(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(n){s(n);}});}function Q(o){let r=o.command("bookings").description("GGNomad bookings");r.command("list").description("List bookings").option("--limit <n>","Page size",c,20).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(q,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:n.ggnomadBookings.map(e=>[d(e.id,12),e.referenceCode,e.bookingType,d(e.itemName,20),d(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(n){s(n);}}),r.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",c).requiredOption("--total-price <n>","Total price",w).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let n={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(n.guestEmail=t.guestEmail),t.guestPhone&&(n.guestPhone=t.guestPhone),t.currency&&(n.currency=t.currency),t.checkIn&&(n.checkIn=t.checkIn),t.checkOut&&(n.checkOut=t.checkOut),t.eventDate&&(n.eventDate=t.eventDate),t.paymentMethod&&(n.paymentMethod=t.paymentMethod),t.specialRequests&&(n.specialRequests=t.specialRequests);let e=await i(_,{input:n});m(`Booking created: ${e.createGgnomadBooking.referenceCode}`),a(t,e.createGgnomadBooking);}catch(n){s(n);}}),r.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,n)=>{try{let e=await i(F,{id:t,reason:n.reason});m(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),a(n,e.cancelGgnomadBooking);}catch(e){s(e);}});}function X(o){let r=o.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(W,{pagination:{limit:t.limit,offset:t.offset}});a(t,n.ggnomadFavorites);}catch(n){s(n);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let n={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await i(B,{input:n});m(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),a(t,{favorited:e.toggleGgnomadFavorite});}catch(n){s(n);}});}function Z(o){let r=o.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(V);a(t,n.ggnomadAnalytics);}catch(n){s(n);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let n=await i(U);a(t,n.ggnomadOverviewStats);}catch(n){s(n);}});}var gt={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(o,r){x(r);let t=o.command("ggnomad").description("GGNomad travel & experiences marketplace");j(t),z(t),Y(t),H(t),K(t),J(t),Q(t),X(t),Z(t);}},cn=gt;module.exports=cn;
@@ -1,4 +1,4 @@
1
- import {a,b as b$1,h as h$1,p,g,i,o as o$1}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';import {Option}from'commander';var T=`
1
+ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';import {Option}from'commander';var T=`
2
2
  query GgnomadGetProvider($id: ID!) {
3
3
  ggnomadProvider(id: $id) {
4
4
  id name type description status website contactEmail contactPhone
@@ -137,4 +137,4 @@ import {a,b as b$1,h as h$1,p,g,i,o as o$1}from'../../chunk-W4JZR7RJ.js';import
137
137
  users listings bookings monthlyRevenue
138
138
  }
139
139
  }
140
- `;function B(m,r){try{return JSON.parse(r)}catch{throw new o(`--${m} must be valid JSON`)}}function s(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function l(m){let r=Number.parseFloat(m);if(Number.isNaN(r))throw new o(`Expected a number but got "${m}"`);return r}function V(m){let r=m.command("providers").description("GGNomad providers");r.command("list").description("List providers").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(P,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:o.ggnomadProviders.map(e=>[p(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(o){g(o);}}),r.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(T,{id:t});if(!e.ggnomadProvider)throw new o(`Provider ${t} not found`);h$1(o$1,e.ggnomadProvider);}catch(e){g(e);}}),r.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").addOption(new Option("--type <t>","Provider type").choices(["HOTEL_OPERATOR","TOUR_OPERATOR","ACTIVITY_PROVIDER","TRANSPORT_PROVIDER","EVENT_ORGANIZER"]).makeOptionMandatory()).option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,type:t.type};t.description&&(o.description=t.description),t.website&&(o.website=t.website),t.contactEmail&&(o.contactEmail=t.contactEmail),t.contactPhone&&(o.contactPhone=t.contactPhone);let e=await b$1(C,{input:o});i(`Provider created: ${e.createGgnomadProvider.name}`),h$1(t,e.createGgnomadProvider);}catch(o){g(o);}});}function F(m){let r=m.command("properties").description("GGNomad stay properties");r.command("list").description("List properties").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(h,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:o.ggnomadProperties.map(e=>[p(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(o){g(o);}}),r.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(O,{id:t});if(!e.ggnomadProperty)throw new o(`Property ${t} not found`);h$1(o$1,e.ggnomadProperty);}catch(e){g(e);}}),r.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",s).requiredOption("--price-per-night <n>","Price per night",l).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",s).option("--bathrooms <n>","Bathrooms",s).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,type:t.type,address:B("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(v=>v.trim()),images:t.images.split(",").map(v=>v.trim())};t.provider&&(o.providerId=t.provider),t.description&&(o.description=t.description),t.bedrooms!==void 0&&(o.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(o.bathrooms=t.bathrooms),t.checkInTime&&(o.checkInTime=t.checkInTime),t.checkOutTime&&(o.checkOutTime=t.checkOutTime),t.currency&&(o.currency=t.currency);let e=await b$1(w,{input:o});i(`Property created: ${e.createGgnomadProperty.name}`),h$1(t,e.createGgnomadProperty);}catch(o){g(o);}});}function U(m){let r=m.command("activities").description("GGNomad activities");r.command("list").description("List activities").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(k,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:o.ggnomadActivities.map(e=>[p(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(o){g(o);}}),r.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(E,{id:t});if(!e.ggnomadActivity)throw new o(`Activity ${t} not found`);h$1(o$1,e.ggnomadActivity);}catch(e){g(e);}});}function M(m){let r=m.command("events").description("GGNomad events");r.command("list").description("List events").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(R,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:o.ggnomadEvents.map(e=>[p(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),o$1(e.startsAt),e.status])});}catch(o){g(o);}}),r.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(G,{id:t});if(!e.ggnomadEvent)throw new o(`Event ${t} not found`);h$1(o$1,e.ggnomadEvent);}catch(e){g(e);}});}function W(m){let r=m.command("tours").description("GGNomad tours");r.command("list").description("List tours").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(b,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:o.ggnomadTours.map(e=>[p(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(o){g(o);}}),r.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(A,{id:t});if(!e.ggnomadTour)throw new o(`Tour ${t} not found`);h$1(o$1,e.ggnomadTour);}catch(e){g(e);}});}function Y(m){m.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(S,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:o.ggnomadTrips.map(e=>[p(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),o$1(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(o){g(o);}});}function z(m){let r=m.command("bookings").description("GGNomad bookings");r.command("list").description("List bookings").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(N,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:o.ggnomadBookings.map(e=>[p(e.id,12),e.referenceCode,e.bookingType,p(e.itemName,20),p(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(o){g(o);}}),r.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",s).requiredOption("--total-price <n>","Total price",l).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let o={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(o.guestEmail=t.guestEmail),t.guestPhone&&(o.guestPhone=t.guestPhone),t.currency&&(o.currency=t.currency),t.checkIn&&(o.checkIn=t.checkIn),t.checkOut&&(o.checkOut=t.checkOut),t.eventDate&&(o.eventDate=t.eventDate),t.paymentMethod&&(o.paymentMethod=t.paymentMethod),t.specialRequests&&(o.specialRequests=t.specialRequests);let e=await b$1(x,{input:o});i(`Booking created: ${e.createGgnomadBooking.referenceCode}`),h$1(t,e.createGgnomadBooking);}catch(o){g(o);}}),r.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1($,{id:t,reason:o.reason});i(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),h$1(o,e.cancelGgnomadBooking);}catch(e){g(e);}});}function K(m){let r=m.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",s,50).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(D,{pagination:{limit:t.limit,offset:t.offset}});h$1(t,o.ggnomadFavorites);}catch(o){g(o);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let o={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await b$1(L,{input:o});i(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),h$1(t,{favorited:e.toggleGgnomadFavorite});}catch(o){g(o);}});}function J(m){let r=m.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(_);h$1(t,o.ggnomadAnalytics);}catch(o){g(o);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(q);h$1(t,o.ggnomadOverviewStats);}catch(o){g(o);}});}var H={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(m,r){a(r);let t=m.command("ggnomad").description("GGNomad travel & experiences marketplace");V(t),F(t),U(t),M(t),W(t),Y(t),z(t),K(t),J(t);}},Ft=H;export{Ft as default};
140
+ `;function B(m,r){try{return JSON.parse(r)}catch{throw new o(`--${m} must be valid JSON`)}}function s(m){let r=Number.parseInt(m,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${m}"`);return r}function l(m){let r=Number.parseFloat(m);if(Number.isNaN(r))throw new o(`Expected a number but got "${m}"`);return r}function V(m){let r$1=m.command("providers").description("GGNomad providers");r$1.command("list").description("List providers").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(P,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadProviders,{headers:["ID","Name","Type","Status","Rating","Listings"],rows:o.ggnomadProviders.map(e=>[r(e.id,12),e.name,e.type,e.status,`${e.rating??0} (${e.reviewCount??0})`,String(e.listingCount??0)])});}catch(o){h$1(o);}}),r$1.command("get").description("Get a provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(T,{id:t});if(!e.ggnomadProvider)throw new o(`Provider ${t} not found`);i(o$1,e.ggnomadProvider);}catch(e){h$1(e);}}),r$1.command("create").description("Create a provider").requiredOption("--name <name>","Provider name").addOption(new Option("--type <t>","Provider type").choices(["HOTEL_OPERATOR","TOUR_OPERATOR","ACTIVITY_PROVIDER","TRANSPORT_PROVIDER","EVENT_ORGANIZER"]).makeOptionMandatory()).option("--description <s>","Description").option("--website <url>","Website URL").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,type:t.type};t.description&&(o.description=t.description),t.website&&(o.website=t.website),t.contactEmail&&(o.contactEmail=t.contactEmail),t.contactPhone&&(o.contactPhone=t.contactPhone);let e=await b$1(C,{input:o});k$1(`Provider created: ${e.createGgnomadProvider.name}`),i(t,e.createGgnomadProvider);}catch(o){h$1(o);}});}function F(m){let r$1=m.command("properties").description("GGNomad stay properties");r$1.command("list").description("List properties").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(h,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadProperties,{headers:["ID","Name","Type","Status","Price/Night","Guests","Rating"],rows:o.ggnomadProperties.map(e=>[r(e.id,12),e.name,e.type,e.status,`${e.pricePerNight??0} ${e.currency??""}`.trim(),String(e.maxGuests??0),`${e.rating??0} (${e.reviewCount??0})`])});}catch(o){h$1(o);}}),r$1.command("get").description("Get a property by id").argument("<id>","Property ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(O,{id:t});if(!e.ggnomadProperty)throw new o(`Property ${t} not found`);i(o$1,e.ggnomadProperty);}catch(e){h$1(e);}}),r$1.command("create").description("Create a property").requiredOption("--name <name>","Property name").requiredOption("--type <t>","Property type").requiredOption("--address <json>","Address JSON").requiredOption("--max-guests <n>","Maximum guests",s).requiredOption("--price-per-night <n>","Price per night",l).requiredOption("--amenities <csv>","Comma-separated amenities").requiredOption("--images <csv>","Comma-separated image URLs").option("--provider <id>","Provider ID").option("--description <s>","Description").option("--bedrooms <n>","Bedrooms",s).option("--bathrooms <n>","Bathrooms",s).option("--check-in-time <s>","Check-in time").option("--check-out-time <s>","Check-out time").option("--currency <c>","Currency code").option("-f, --format <format>","Output format").action(async t=>{try{let o={name:t.name,type:t.type,address:B("address",t.address),maxGuests:t.maxGuests,pricePerNight:t.pricePerNight,amenities:t.amenities.split(",").map(v=>v.trim()),images:t.images.split(",").map(v=>v.trim())};t.provider&&(o.providerId=t.provider),t.description&&(o.description=t.description),t.bedrooms!==void 0&&(o.bedrooms=t.bedrooms),t.bathrooms!==void 0&&(o.bathrooms=t.bathrooms),t.checkInTime&&(o.checkInTime=t.checkInTime),t.checkOutTime&&(o.checkOutTime=t.checkOutTime),t.currency&&(o.currency=t.currency);let e=await b$1(w,{input:o});k$1(`Property created: ${e.createGgnomadProperty.name}`),i(t,e.createGgnomadProperty);}catch(o){h$1(o);}});}function U(m){let r$1=m.command("activities").description("GGNomad activities");r$1.command("list").description("List activities").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(k,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadActivities,{headers:["ID","Name","Category","Difficulty","Duration","Price","Status"],rows:o.ggnomadActivities.map(e=>[r(e.id,12),e.name,e.category,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(o){h$1(o);}}),r$1.command("get").description("Get an activity by id").argument("<id>","Activity ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(E,{id:t});if(!e.ggnomadActivity)throw new o(`Activity ${t} not found`);i(o$1,e.ggnomadActivity);}catch(e){h$1(e);}});}function M(m){let r$1=m.command("events").description("GGNomad events");r$1.command("list").description("List events").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(R,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadEvents,{headers:["ID","Name","Category","Price","Starts","Status"],rows:o.ggnomadEvents.map(e=>[r(e.id,12),e.name,e.category,`${e.price??0} ${e.currency??""}`.trim(),q$1(e.startsAt),e.status])});}catch(o){h$1(o);}}),r$1.command("get").description("Get an event by id").argument("<id>","Event ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(G,{id:t});if(!e.ggnomadEvent)throw new o(`Event ${t} not found`);i(o$1,e.ggnomadEvent);}catch(e){h$1(e);}});}function W(m){let r$1=m.command("tours").description("GGNomad tours");r$1.command("list").description("List tours").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(b,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadTours,{headers:["ID","Name","Type","Difficulty","Duration","Price","Status"],rows:o.ggnomadTours.map(e=>[r(e.id,12),e.name,e.type,e.difficulty??"-",e.duration??"-",`${e.price??0} ${e.currency??""}`.trim(),e.status])});}catch(o){h$1(o);}}),r$1.command("get").description("Get a tour by id").argument("<id>","Tour ID").option("-f, --format <format>","Output format").action(async(t,o$1)=>{try{let e=await b$1(A,{id:t});if(!e.ggnomadTour)throw new o(`Tour ${t} not found`);i(o$1,e.ggnomadTour);}catch(e){h$1(e);}});}function Y(m){m.command("trips").description("GGNomad transport trips").command("list").description("List trips").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(S,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadTrips,{headers:["ID","Name","Mode","Price","Departs","Eco","Status"],rows:o.ggnomadTrips.map(e=>[r(e.id,12),e.name,e.transportMode,`${e.price??0} ${e.currency??""}`.trim(),q$1(e.departureAt),e.ecoFriendly?"yes":"no",e.status])});}catch(o){h$1(o);}});}function z(m){let r$1=m.command("bookings").description("GGNomad bookings");r$1.command("list").description("List bookings").option("--limit <n>","Page size",s,20).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(N,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadBookings,{headers:["ID","Ref","Type","Item","Guest","Total","Status","Payment"],rows:o.ggnomadBookings.map(e=>[r(e.id,12),e.referenceCode,e.bookingType,r(e.itemName,20),r(e.guestName,16),`${e.totalPrice} ${e.currency??""}`.trim(),e.status,e.paymentStatus])});}catch(o){h$1(o);}}),r$1.command("create").description("Create a booking").requiredOption("--type <t>","Booking type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").requiredOption("--item-id <id>","Item ID being booked").requiredOption("--item-name <name>","Item name").requiredOption("--guest-name <name>","Guest name").requiredOption("--guests <n>","Number of guests",s).requiredOption("--total-price <n>","Total price",l).option("--guest-email <email>","Guest email").option("--guest-phone <phone>","Guest phone").option("--currency <c>","Currency code").option("--check-in <iso>","Check-in (ISO date)").option("--check-out <iso>","Check-out (ISO date)").option("--event-date <iso>","Event date (ISO date)").option("--payment-method <m>","Payment method").option("--special-requests <s>","Special requests").option("-f, --format <format>","Output format").action(async t=>{try{let o={bookingType:t.type.toUpperCase(),itemId:t.itemId,itemName:t.itemName,guestName:t.guestName,guests:t.guests,totalPrice:t.totalPrice};t.guestEmail&&(o.guestEmail=t.guestEmail),t.guestPhone&&(o.guestPhone=t.guestPhone),t.currency&&(o.currency=t.currency),t.checkIn&&(o.checkIn=t.checkIn),t.checkOut&&(o.checkOut=t.checkOut),t.eventDate&&(o.eventDate=t.eventDate),t.paymentMethod&&(o.paymentMethod=t.paymentMethod),t.specialRequests&&(o.specialRequests=t.specialRequests);let e=await b$1(x,{input:o});k$1(`Booking created: ${e.createGgnomadBooking.referenceCode}`),i(t,e.createGgnomadBooking);}catch(o){h$1(o);}}),r$1.command("cancel").description("Cancel a booking").argument("<id>","Booking ID").option("--reason <s>","Cancellation reason").option("-f, --format <format>","Output format").action(async(t,o)=>{try{let e=await b$1($,{id:t,reason:o.reason});k$1(`Booking cancelled: ${e.cancelGgnomadBooking.referenceCode}`),i(o,e.cancelGgnomadBooking);}catch(e){h$1(e);}});}function K(m){let r=m.command("favorites").description("GGNomad favorites");r.command("list").description("List favorites").option("--limit <n>","Page size",s,50).option("--offset <n>","Offset",s,0).option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(D,{pagination:{limit:t.limit,offset:t.offset}});i(t,o.ggnomadFavorites);}catch(o){h$1(o);}}),r.command("toggle").description("Toggle a favorite on a target").requiredOption("--target-id <id>","Target ID").requiredOption("--target-type <t>","Target type: ACTIVITY|EVENT|PROPERTY|TOUR|TRIP").option("-f, --format <format>","Output format").action(async t=>{try{let o={targetId:t.targetId,targetType:t.targetType.toUpperCase()},e=await b$1(L,{input:o});k$1(e.toggleGgnomadFavorite?"Added to favorites":"Removed from favorites"),i(t,{favorited:e.toggleGgnomadFavorite});}catch(o){h$1(o);}});}function J(m){let r=m.command("analytics").description("GGNomad analytics & overview");r.command("summary").description("Platform analytics (users, bookings, revenue, conversion, trends)").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(_);i(t,o.ggnomadAnalytics);}catch(o){h$1(o);}}),r.command("overview").description("Overview stats (users, listings, bookings, monthly revenue)").option("-f, --format <format>","Output format").action(async t=>{try{let o=await b$1(q);i(t,o.ggnomadOverviewStats);}catch(o){h$1(o);}});}var H={id:"ggnomad",version:"1.0.0",displayName:"GGNomad",dependsOn:["auth","workspaces"],register(m,r){a(r);let t=m.command("ggnomad").description("GGNomad travel & experiences marketplace");V(t),F(t),U(t),M(t),W(t),Y(t),z(t),K(t),J(t);}},Ft=H;export{Ft as default};
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(i,t){super(i),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},C=class extends p{constructor(i,t){super(i,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(i,t){super(i),this.name="CliInternalError",this.cause=t;}};var E=null;function x(o){E=o;}function A(){if(!E)throw new I("vibecontrols module helpers used before setHelpersContext was called");return E}function xt(){let o=A();if(!o.auth.isAuthenticated())throw new C("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function a(o,i){return xt(),A().gql.workspace.request(o,i)}async function h(o,i){return A().gql.workspaceAuthOnly.request(o,i)}function r(o){let i=o instanceof Error?o.message:String(o);throw new p(i)}function s(o,i,t){A().output.formatAndOutput(o,i,t);}function c(o){A().output.printSuccess(o);}function w(o){return A().output.formatDate(o)}function d(o,i){return A().output.truncate(o,i)}var b=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var p=class extends Error{exitCode;hint;constructor(i,t){super(i),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},C=class extends p{constructor(i,t){super(i,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(i,t){super(i),this.name="CliInternalError",this.cause=t;}};var E=null;function k(o){E=o;}function A(){if(!E)throw new I("vibecontrols module helpers used before setHelpersContext was called");return E}function kt(){let o=A();if(!o.auth.isAuthenticated())throw new C("Authentication required.",{hint:`Run \`${o.productName} auth login\` to authenticate.`})}async function a(o,i){return kt(),A().gql.workspace.request(o,i)}async function h(o,i){return A().gql.workspaceAuthOnly.request(o,i)}function r(o){let i=o instanceof Error?o.message:String(o);throw new p(i)}function s(o,i,t){A().output.formatAndOutput(o,i,t);}function c(o){A().output.printSuccess(o);}function w(o){return A().output.formatDate(o)}function d(o,i){return A().output.truncate(o,i)}var b=`
2
2
  query GovGetAgency($id: ID!) {
3
3
  govAgency(id: $id) {
4
4
  id name code description jurisdiction contactEmail contactPhone
@@ -6,13 +6,13 @@
6
6
  services { id name slug category status }
7
7
  }
8
8
  }
9
- `,R=`
9
+ `,S=`
10
10
  query GovListAgencies($isActive: Boolean, $pagination: PaginationInput) {
11
11
  govListAgencies(isActive: $isActive, pagination: $pagination) {
12
12
  id name code jurisdiction contactEmail isActive tags createdAt
13
13
  }
14
14
  }
15
- `,S=`
15
+ `,R=`
16
16
  mutation GovCreateAgency($input: GovCreateAgencyInput!) {
17
17
  govCreateAgency(input: $input) {
18
18
  id name code description jurisdiction contactEmail contactPhone
@@ -276,4 +276,4 @@
276
276
  query GovHealth {
277
277
  govHealth
278
278
  }
279
- `;function f(o,i){try{return JSON.parse(i)}catch{throw new p(`--${o} must be valid JSON`)}}function g(o){let i=Number.parseInt(o,10);if(Number.isNaN(i))throw new p(`Expected an integer but got "${o}"`);return i}function y(o){let i=Number.parseFloat(o);if(Number.isNaN(i))throw new p(`Expected a number but got "${o}"`);return i}function m(o){return o.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function at(o){let i=o.command("agencies").description("GovCitizenHub agencies");i.command("list").description("List agencies").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(R,{isActive:t.active,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListAgencies,{headers:["ID","Name","Code","Jurisdiction","Active"],rows:e.govListAgencies.map(n=>[d(n.id,12),n.name,n.code??"-",n.jurisdiction??"-",n.isActive?"yes":"no"])});}catch(e){r(e);}}),i.command("get").description("Get an agency by id").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(b,{id:t});if(!n.govAgency)throw new p(`Agency ${t} not found`);s(e,n.govAgency);}catch(n){r(n);}}),i.command("create").description("Create an agency").requiredOption("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.jurisdiction&&(e.jurisdiction=t.jurisdiction),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.tags&&(e.tags=m(t.tags));let n=await a(S,{input:e});c(`Agency created: ${n.govCreateAgency.name}`),s(t,n.govCreateAgency);}catch(e){r(e);}}),i.command("update").description("Update an agency").argument("<id>","Agency ID").option("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--active <bool>","Active state (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.code&&(n.code=e.code),e.description!==void 0&&(n.description=e.description),e.jurisdiction&&(n.jurisdiction=e.jurisdiction),e.contactEmail&&(n.contactEmail=e.contactEmail),e.contactPhone&&(n.contactPhone=e.contactPhone),e.active!==void 0&&(n.isActive=e.active),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(D,{id:t,input:n});c("Agency updated"),s(e,v.govUpdateAgency);}catch(n){r(n);}}),i.command("archive").description("Archive (soft-delete) an agency").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(P,{id:t});c(n.govArchiveAgency?"Agency archived":"Agency not archived"),s(e,{archived:n.govArchiveAgency});}catch(n){r(n);}});}function ct(o){let i=o.command("services").description("GovCitizenHub services");i.command("list").description("List services").option("--agency <id>","Filter by agency ID").option("--category <c>","Filter by service category").option("--status <s>","Filter by service status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{agencyId:t.agency,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListServices.items,{headers:["ID","Name","Category","Status","Fee","SLA"],rows:e.govListServices.items.map(n=>[d(n.id,12),n.name,n.category,n.status,`${n.feeType} ${n.feeAmount}`,n.slaDays!=null?String(n.slaDays):"-"])});}catch(e){r(e);}}),i.command("get").description("Get a service by id").argument("<id>","Service ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(O,{id:t});if(!n.govService)throw new p(`Service ${t} not found`);s(e,n.govService);}catch(n){r(n);}}),i.command("create").description("Create a service").requiredOption("--agency <id>","Agency ID").requiredOption("--name <name>","Service name").requiredOption("--slug <slug>","URL slug").option("--category <c>","Service category","OTHER").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE","FREE").option("--fee-amount <n>","Fee amount",y).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={agencyId:t.agency,name:t.name,slug:t.slug,category:(t.category??"OTHER").toUpperCase(),feeType:(t.feeType??"FREE").toUpperCase()};t.summary&&(e.summary=t.summary),t.eligibility&&(e.eligibility=t.eligibility),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.requiredDocuments&&(e.requiredDocuments=m(t.requiredDocuments)),t.formSchema&&(e.formSchema=f("form-schema",t.formSchema)),t.slaDays!==void 0&&(e.slaDays=t.slaDays),t.tags&&(e.tags=m(t.tags));let n=await a(G,{input:e});c(`Service created: ${n.govCreateService.name}`),s(t,n.govCreateService);}catch(e){r(e);}}),i.command("update").description("Update a service").argument("<id>","Service ID").option("--name <name>","Service name").option("--category <c>","Service category").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE").option("--fee-amount <n>","Fee amount",y).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.category&&(n.category=e.category.toUpperCase()),e.summary!==void 0&&(n.summary=e.summary),e.eligibility!==void 0&&(n.eligibility=e.eligibility),e.feeType&&(n.feeType=e.feeType.toUpperCase()),e.feeAmount!==void 0&&(n.feeAmount=e.feeAmount),e.currency&&(n.currency=e.currency),e.requiredDocuments&&(n.requiredDocuments=m(e.requiredDocuments)),e.formSchema&&(n.formSchema=f("form-schema",e.formSchema)),e.slaDays!==void 0&&(n.slaDays=e.slaDays),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(N,{id:t,input:n});c("Service updated"),s(e,v.govUpdateService);}catch(n){r(n);}}),i.command("transition").description("Advance a service through its publication lifecycle").argument("<id>","Service ID").requiredOption("--status <s>","DRAFT|PUBLISHED|SUSPENDED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t,status:e.status.toUpperCase()});c(`Service status set to ${n.govTransitionService.status}`),s(e,n.govTransitionService);}catch(n){r(n);}});}function pt(o){let i=o.command("applications").description("GovCitizenHub applications");i.command("list").description("List applications").option("--citizen <id>","Filter by citizen ID").option("--service <id>","Filter by service ID").option("--assigned-to <id>","Filter by assignee ID").option("--status <s>","Filter by application status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{citizenId:t.citizen,serviceId:t.service,assignedToId:t.assignedTo,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListApplications.items,{headers:["ID","Reference","Citizen","Status","Priority","Submitted"],rows:e.govListApplications.items.map(n=>[d(n.id,12),n.reference,d(n.citizenId,12),n.status,n.priority,w(n.submittedAt)])});}catch(e){r(e);}}),i.command("get").description("Get an application by id").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(q,{id:t});if(!n.govApplication)throw new p(`Application ${t} not found`);s(e,n.govApplication);}catch(n){r(n);}}),i.command("create").description("Create an application").requiredOption("--service <id>","Service ID").option("--reference <ref>","Application reference").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={serviceId:t.service,priority:(t.priority??"NORMAL").toUpperCase()};t.reference&&(e.reference=t.reference),t.formData&&(e.formData=f("form-data",t.formData)),t.tags&&(e.tags=m(t.tags));let n=await a(U,{input:e});c(`Application created: ${n.govCreateApplication.reference}`),s(t,n.govCreateApplication);}catch(e){r(e);}}),i.command("update").description("Update an application").argument("<id>","Application ID").option("--assigned-to <id>","Assignee ID").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.assignedTo&&(n.assignedToId=e.assignedTo),e.priority&&(n.priority=e.priority.toUpperCase()),e.formData&&(n.formData=f("form-data",e.formData)),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(F,{id:t,input:n});c("Application updated"),s(e,v.govUpdateApplication);}catch(n){r(n);}}),i.command("submit").description("Submit a draft application").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t});c(`Application submitted: ${n.govSubmitApplication.reference}`),s(e,n.govSubmitApplication);}catch(n){r(n);}}),i.command("transition").description("Advance an application through its review lifecycle").argument("<id>","Application ID").requiredOption("--status <s>","DRAFT|SUBMITTED|IN_REVIEW|INFO_REQUESTED|APPROVED|REJECTED|WITHDRAWN").option("--reason <s>","Transition reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(j,{id:t,status:e.status.toUpperCase(),reason:e.reason});c(`Application status set to ${n.govTransitionApplication.status}`),s(e,n.govTransitionApplication);}catch(n){r(n);}}),i.command("add-note").description("Add a case note to an application").requiredOption("--application <id>","Application ID").requiredOption("--body <text>","Note body").option("--type <t>","INTERNAL|CITIZEN_MESSAGE|INFO_REQUEST|DECISION","INTERNAL").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,body:t.body,type:(t.type??"INTERNAL").toUpperCase()},n=await a(V,{input:e});c("Case note added"),s(t,n.govAddCaseNote);}catch(e){r(e);}}),i.command("add-document").description("Attach a document to an application").requiredOption("--application <id>","Application ID").requiredOption("--name <name>","Document name").option("--file <id>","File ID (wspace-files-svc)").option("--requirement <s>","Requirement this document satisfies").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,name:t.name};t.file&&(e.fileId=t.file),t.requirement&&(e.requirement=t.requirement);let n=await a(W,{input:e});c(`Document added: ${n.govAddDocument.name}`),s(t,n.govAddDocument);}catch(e){r(e);}});}function ut(o){o.command("documents").description("GovCitizenHub application documents").command("review").description("Review (accept/reject) an application document").argument("<id>","Document ID").requiredOption("--status <s>","PENDING|ACCEPTED|REJECTED").option("--rejection-reason <s>","Reason when rejecting").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(H,{id:t,status:e.status.toUpperCase(),rejectionReason:e.rejectionReason});c(`Document ${n.govReviewDocument.status.toLowerCase()}`),s(e,n.govReviewDocument);}catch(n){r(n);}});}function dt(o){let i=o.command("grievances").description("GovCitizenHub grievances");i.command("list").description("List grievances").option("--agency <id>","Filter by agency ID").option("--reporter <id>","Filter by reporter ID").option("--status <s>","Filter by grievance status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Y,{agencyId:t.agency,reporterId:t.reporter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListGrievances.items,{headers:["ID","Title","Category","Status","Priority","Location"],rows:e.govListGrievances.items.map(n=>[d(n.id,12),n.title,n.category,n.status,n.priority,d(n.location??"-",24)])});}catch(e){r(e);}}),i.command("get").description("Get a grievance by id").argument("<id>","Grievance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t});if(!n.govGrievance)throw new p(`Grievance ${t} not found`);s(e,n.govGrievance);}catch(n){r(n);}}),i.command("report").description("Report a new grievance").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").option("--category <c>","Service category","GRIEVANCES").option("--agency <id>","Agency ID").option("--location <s>","Location description").option("--latitude <n>","Latitude",y).option("--longitude <n>","Longitude",y).option("--photo-file-ids <csv>","Comma-separated photo file IDs").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:(t.category??"GRIEVANCES").toUpperCase(),priority:(t.priority??"NORMAL").toUpperCase()};t.agency&&(e.agencyId=t.agency),t.location&&(e.location=t.location),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.photoFileIds&&(e.photoFileIds=m(t.photoFileIds)),t.tags&&(e.tags=m(t.tags));let n=await a(J,{input:e});c(`Grievance reported: ${n.govReportGrievance.title}`),s(t,n.govReportGrievance);}catch(e){r(e);}}),i.command("update").description("Update a grievance").argument("<id>","Grievance ID").option("--agency <id>","Agency ID").option("--assigned-to <id>","Assignee ID").option("--location <s>","Location description").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.agency&&(n.agencyId=e.agency),e.assignedTo&&(n.assignedToId=e.assignedTo),e.location!==void 0&&(n.location=e.location),e.priority&&(n.priority=e.priority.toUpperCase()),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(B,{id:t,input:n});c("Grievance updated"),s(e,v.govUpdateGrievance);}catch(n){r(n);}}),i.command("transition").description("Advance a grievance through its resolution lifecycle").argument("<id>","Grievance ID").requiredOption("--status <s>","OPEN|ACKNOWLEDGED|IN_PROGRESS|RESOLVED|REJECTED|CLOSED").option("--resolution <s>","Resolution note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(K,{id:t,status:e.status.toUpperCase(),resolution:e.resolution});c(`Grievance status set to ${n.govTransitionGrievance.status}`),s(e,n.govTransitionGrievance);}catch(n){r(n);}});}function gt(o){let i=o.command("permits").description("GovCitizenHub permits");i.command("list").description("List permits").option("--holder <id>","Filter by holder ID").option("--service <id>","Filter by service ID").option("--status <s>","Filter by permit status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Q,{holderId:t.holder,serviceId:t.service,status:t.status?t.status.toUpperCase():void 0});s(t,e.govListPermits,{headers:["ID","Title","Holder","Status","Code","Expires"],rows:e.govListPermits.map(n=>[d(n.id,12),n.title,d(n.holderId,12),n.status,n.verificationCode,w(n.expiresAt)])});}catch(e){r(e);}}),i.command("issue").description("Issue a permit").requiredOption("--holder <id>","Holder user ID").requiredOption("--service <id>","Service ID").requiredOption("--title <t>","Permit title").requiredOption("--verification-code <code>","Printed verification code").option("--application <id>","Originating application ID").option("--expires-at <iso>","Expiry (ISO date)").option("--file <id>","File ID for the generated permit PDF").option("-f, --format <format>","Output format").action(async t=>{try{let e={holderId:t.holder,serviceId:t.service,title:t.title,verificationCode:t.verificationCode};t.application&&(e.applicationId=t.application),t.expiresAt&&(e.expiresAt=t.expiresAt),t.file&&(e.fileId=t.file);let n=await a(X,{input:e});c(`Permit issued: ${n.govIssuePermit.title}`),s(t,n.govIssuePermit);}catch(e){r(e);}}),i.command("revoke").description("Revoke a permit").argument("<id>","Permit ID").option("--reason <s>","Revocation reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t,reason:e.reason});c("Permit revoked"),s(e,n.govRevokePermit);}catch(n){r(n);}}),i.command("verify").description("Verify a permit by its printed code (public)").argument("<code>","Verification code").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await h(tt,{verificationCode:t});if(!n.govVerifyPermit)throw new p(`No permit found for code ${t}`);c(`Valid permit: ${n.govVerifyPermit.title} (${n.govVerifyPermit.status})`),s(e,n.govVerifyPermit);}catch(n){r(n);}});}function mt(o){let i=o.command("payments").description("GovCitizenHub payments");i.command("list").description("List payments").option("--application <id>","Filter by application ID").option("--payer <id>","Filter by payer ID").option("--status <s>","Filter by payment status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{applicationId:t.application,payerId:t.payer,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListPayments.items,{headers:["ID","Payer","Amount","Currency","Status","Receipt"],rows:e.govListPayments.items.map(n=>[d(n.id,12),d(n.payerId,12),String(n.amount),n.currency,n.status,n.receiptNumber??"-"])});}catch(e){r(e);}}),i.command("get").description("Get a payment by id").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(et,{id:t});if(!n.govPayment)throw new p(`Payment ${t} not found`);s(e,n.govPayment);}catch(n){r(n);}}),i.command("create").description("Create a payment").requiredOption("--amount <n>","Amount",y).option("--application <id>","Application ID").option("--currency <c>","Currency code").option("--provider-ref <ref>","Payment provider reference").option("--line-items <json>","Line items JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={amount:t.amount};t.application&&(e.applicationId=t.application),t.currency&&(e.currency=t.currency),t.providerRef&&(e.providerRef=t.providerRef),t.lineItems&&(e.lineItems=f("line-items",t.lineItems));let n=await a(it,{input:e});c(`Payment created: ${n.govCreatePayment.amount} ${n.govCreatePayment.currency}`),s(t,n.govCreatePayment);}catch(e){r(e);}}),i.command("mark-paid").description("Mark a payment as paid").argument("<id>","Payment ID").option("--provider-ref <ref>","Payment provider reference").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(ot,{id:t,providerRef:e.providerRef});c(`Payment marked paid (${n.govMarkPaymentPaid.status})`),s(e,n.govMarkPaymentPaid);}catch(n){r(n);}}),i.command("refund").description("Refund a payment").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(rt,{id:t});c(`Payment refunded (${n.govRefundPayment.status})`),s(e,n.govRefundPayment);}catch(n){r(n);}});}function lt(o){o.command("health").description("GovCitizenHub service health check (public)").option("-f, --format <format>","Output format").action(async i=>{try{let t=await h(st);c(t.govHealth),s(i,{health:t.govHealth});}catch(t){r(t);}});}var bt={id:"govcitizenhub",version:"1.0.0",displayName:"GovCitizenHub",dependsOn:["auth","workspaces"],register(o,i){x(i);let t=o.command("govcitizenhub").description("GovCitizenHub citizen-government services");at(t),ct(t),pt(t),ut(t),dt(t),gt(t),mt(t),lt(t);}},yn=bt;module.exports=yn;
279
+ `;function f(o,i){try{return JSON.parse(i)}catch{throw new p(`--${o} must be valid JSON`)}}function g(o){let i=Number.parseInt(o,10);if(Number.isNaN(i))throw new p(`Expected an integer but got "${o}"`);return i}function y(o){let i=Number.parseFloat(o);if(Number.isNaN(i))throw new p(`Expected a number but got "${o}"`);return i}function m(o){return o.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function at(o){let i=o.command("agencies").description("GovCitizenHub agencies");i.command("list").description("List agencies").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(S,{isActive:t.active,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListAgencies,{headers:["ID","Name","Code","Jurisdiction","Active"],rows:e.govListAgencies.map(n=>[d(n.id,12),n.name,n.code??"-",n.jurisdiction??"-",n.isActive?"yes":"no"])});}catch(e){r(e);}}),i.command("get").description("Get an agency by id").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(b,{id:t});if(!n.govAgency)throw new p(`Agency ${t} not found`);s(e,n.govAgency);}catch(n){r(n);}}),i.command("create").description("Create an agency").requiredOption("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.jurisdiction&&(e.jurisdiction=t.jurisdiction),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.tags&&(e.tags=m(t.tags));let n=await a(R,{input:e});c(`Agency created: ${n.govCreateAgency.name}`),s(t,n.govCreateAgency);}catch(e){r(e);}}),i.command("update").description("Update an agency").argument("<id>","Agency ID").option("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--active <bool>","Active state (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.code&&(n.code=e.code),e.description!==void 0&&(n.description=e.description),e.jurisdiction&&(n.jurisdiction=e.jurisdiction),e.contactEmail&&(n.contactEmail=e.contactEmail),e.contactPhone&&(n.contactPhone=e.contactPhone),e.active!==void 0&&(n.isActive=e.active),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(D,{id:t,input:n});c("Agency updated"),s(e,v.govUpdateAgency);}catch(n){r(n);}}),i.command("archive").description("Archive (soft-delete) an agency").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(P,{id:t});c(n.govArchiveAgency?"Agency archived":"Agency not archived"),s(e,{archived:n.govArchiveAgency});}catch(n){r(n);}});}function ct(o){let i=o.command("services").description("GovCitizenHub services");i.command("list").description("List services").option("--agency <id>","Filter by agency ID").option("--category <c>","Filter by service category").option("--status <s>","Filter by service status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a($,{agencyId:t.agency,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListServices.items,{headers:["ID","Name","Category","Status","Fee","SLA"],rows:e.govListServices.items.map(n=>[d(n.id,12),n.name,n.category,n.status,`${n.feeType} ${n.feeAmount}`,n.slaDays!=null?String(n.slaDays):"-"])});}catch(e){r(e);}}),i.command("get").description("Get a service by id").argument("<id>","Service ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(O,{id:t});if(!n.govService)throw new p(`Service ${t} not found`);s(e,n.govService);}catch(n){r(n);}}),i.command("create").description("Create a service").requiredOption("--agency <id>","Agency ID").requiredOption("--name <name>","Service name").requiredOption("--slug <slug>","URL slug").option("--category <c>","Service category","OTHER").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE","FREE").option("--fee-amount <n>","Fee amount",y).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={agencyId:t.agency,name:t.name,slug:t.slug,category:(t.category??"OTHER").toUpperCase(),feeType:(t.feeType??"FREE").toUpperCase()};t.summary&&(e.summary=t.summary),t.eligibility&&(e.eligibility=t.eligibility),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.requiredDocuments&&(e.requiredDocuments=m(t.requiredDocuments)),t.formSchema&&(e.formSchema=f("form-schema",t.formSchema)),t.slaDays!==void 0&&(e.slaDays=t.slaDays),t.tags&&(e.tags=m(t.tags));let n=await a(G,{input:e});c(`Service created: ${n.govCreateService.name}`),s(t,n.govCreateService);}catch(e){r(e);}}),i.command("update").description("Update a service").argument("<id>","Service ID").option("--name <name>","Service name").option("--category <c>","Service category").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE").option("--fee-amount <n>","Fee amount",y).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",g).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.category&&(n.category=e.category.toUpperCase()),e.summary!==void 0&&(n.summary=e.summary),e.eligibility!==void 0&&(n.eligibility=e.eligibility),e.feeType&&(n.feeType=e.feeType.toUpperCase()),e.feeAmount!==void 0&&(n.feeAmount=e.feeAmount),e.currency&&(n.currency=e.currency),e.requiredDocuments&&(n.requiredDocuments=m(e.requiredDocuments)),e.formSchema&&(n.formSchema=f("form-schema",e.formSchema)),e.slaDays!==void 0&&(n.slaDays=e.slaDays),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(N,{id:t,input:n});c("Service updated"),s(e,v.govUpdateService);}catch(n){r(n);}}),i.command("transition").description("Advance a service through its publication lifecycle").argument("<id>","Service ID").requiredOption("--status <s>","DRAFT|PUBLISHED|SUSPENDED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(L,{id:t,status:e.status.toUpperCase()});c(`Service status set to ${n.govTransitionService.status}`),s(e,n.govTransitionService);}catch(n){r(n);}});}function pt(o){let i=o.command("applications").description("GovCitizenHub applications");i.command("list").description("List applications").option("--citizen <id>","Filter by citizen ID").option("--service <id>","Filter by service ID").option("--assigned-to <id>","Filter by assignee ID").option("--status <s>","Filter by application status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(_,{citizenId:t.citizen,serviceId:t.service,assignedToId:t.assignedTo,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListApplications.items,{headers:["ID","Reference","Citizen","Status","Priority","Submitted"],rows:e.govListApplications.items.map(n=>[d(n.id,12),n.reference,d(n.citizenId,12),n.status,n.priority,w(n.submittedAt)])});}catch(e){r(e);}}),i.command("get").description("Get an application by id").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(q,{id:t});if(!n.govApplication)throw new p(`Application ${t} not found`);s(e,n.govApplication);}catch(n){r(n);}}),i.command("create").description("Create an application").requiredOption("--service <id>","Service ID").option("--reference <ref>","Application reference").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={serviceId:t.service,priority:(t.priority??"NORMAL").toUpperCase()};t.reference&&(e.reference=t.reference),t.formData&&(e.formData=f("form-data",t.formData)),t.tags&&(e.tags=m(t.tags));let n=await a(U,{input:e});c(`Application created: ${n.govCreateApplication.reference}`),s(t,n.govCreateApplication);}catch(e){r(e);}}),i.command("update").description("Update an application").argument("<id>","Application ID").option("--assigned-to <id>","Assignee ID").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.assignedTo&&(n.assignedToId=e.assignedTo),e.priority&&(n.priority=e.priority.toUpperCase()),e.formData&&(n.formData=f("form-data",e.formData)),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(F,{id:t,input:n});c("Application updated"),s(e,v.govUpdateApplication);}catch(n){r(n);}}),i.command("submit").description("Submit a draft application").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t});c(`Application submitted: ${n.govSubmitApplication.reference}`),s(e,n.govSubmitApplication);}catch(n){r(n);}}),i.command("transition").description("Advance an application through its review lifecycle").argument("<id>","Application ID").requiredOption("--status <s>","DRAFT|SUBMITTED|IN_REVIEW|INFO_REQUESTED|APPROVED|REJECTED|WITHDRAWN").option("--reason <s>","Transition reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(j,{id:t,status:e.status.toUpperCase(),reason:e.reason});c(`Application status set to ${n.govTransitionApplication.status}`),s(e,n.govTransitionApplication);}catch(n){r(n);}}),i.command("add-note").description("Add a case note to an application").requiredOption("--application <id>","Application ID").requiredOption("--body <text>","Note body").option("--type <t>","INTERNAL|CITIZEN_MESSAGE|INFO_REQUEST|DECISION","INTERNAL").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,body:t.body,type:(t.type??"INTERNAL").toUpperCase()},n=await a(V,{input:e});c("Case note added"),s(t,n.govAddCaseNote);}catch(e){r(e);}}),i.command("add-document").description("Attach a document to an application").requiredOption("--application <id>","Application ID").requiredOption("--name <name>","Document name").option("--file <id>","File ID (wspace-files-svc)").option("--requirement <s>","Requirement this document satisfies").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,name:t.name};t.file&&(e.fileId=t.file),t.requirement&&(e.requirement=t.requirement);let n=await a(W,{input:e});c(`Document added: ${n.govAddDocument.name}`),s(t,n.govAddDocument);}catch(e){r(e);}});}function ut(o){o.command("documents").description("GovCitizenHub application documents").command("review").description("Review (accept/reject) an application document").argument("<id>","Document ID").requiredOption("--status <s>","PENDING|ACCEPTED|REJECTED").option("--rejection-reason <s>","Reason when rejecting").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(H,{id:t,status:e.status.toUpperCase(),rejectionReason:e.rejectionReason});c(`Document ${n.govReviewDocument.status.toLowerCase()}`),s(e,n.govReviewDocument);}catch(n){r(n);}});}function dt(o){let i=o.command("grievances").description("GovCitizenHub grievances");i.command("list").description("List grievances").option("--agency <id>","Filter by agency ID").option("--reporter <id>","Filter by reporter ID").option("--status <s>","Filter by grievance status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Y,{agencyId:t.agency,reporterId:t.reporter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListGrievances.items,{headers:["ID","Title","Category","Status","Priority","Location"],rows:e.govListGrievances.items.map(n=>[d(n.id,12),n.title,n.category,n.status,n.priority,d(n.location??"-",24)])});}catch(e){r(e);}}),i.command("get").description("Get a grievance by id").argument("<id>","Grievance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(z,{id:t});if(!n.govGrievance)throw new p(`Grievance ${t} not found`);s(e,n.govGrievance);}catch(n){r(n);}}),i.command("report").description("Report a new grievance").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").option("--category <c>","Service category","GRIEVANCES").option("--agency <id>","Agency ID").option("--location <s>","Location description").option("--latitude <n>","Latitude",y).option("--longitude <n>","Longitude",y).option("--photo-file-ids <csv>","Comma-separated photo file IDs").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:(t.category??"GRIEVANCES").toUpperCase(),priority:(t.priority??"NORMAL").toUpperCase()};t.agency&&(e.agencyId=t.agency),t.location&&(e.location=t.location),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.photoFileIds&&(e.photoFileIds=m(t.photoFileIds)),t.tags&&(e.tags=m(t.tags));let n=await a(J,{input:e});c(`Grievance reported: ${n.govReportGrievance.title}`),s(t,n.govReportGrievance);}catch(e){r(e);}}),i.command("update").description("Update a grievance").argument("<id>","Grievance ID").option("--agency <id>","Agency ID").option("--assigned-to <id>","Assignee ID").option("--location <s>","Location description").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n={};if(e.agency&&(n.agencyId=e.agency),e.assignedTo&&(n.assignedToId=e.assignedTo),e.location!==void 0&&(n.location=e.location),e.priority&&(n.priority=e.priority.toUpperCase()),e.tags&&(n.tags=m(e.tags)),!Object.keys(n).length)throw new p("No updates specified");let v=await a(B,{id:t,input:n});c("Grievance updated"),s(e,v.govUpdateGrievance);}catch(n){r(n);}}),i.command("transition").description("Advance a grievance through its resolution lifecycle").argument("<id>","Grievance ID").requiredOption("--status <s>","OPEN|ACKNOWLEDGED|IN_PROGRESS|RESOLVED|REJECTED|CLOSED").option("--resolution <s>","Resolution note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(K,{id:t,status:e.status.toUpperCase(),resolution:e.resolution});c(`Grievance status set to ${n.govTransitionGrievance.status}`),s(e,n.govTransitionGrievance);}catch(n){r(n);}});}function gt(o){let i=o.command("permits").description("GovCitizenHub permits");i.command("list").description("List permits").option("--holder <id>","Filter by holder ID").option("--service <id>","Filter by service ID").option("--status <s>","Filter by permit status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(Q,{holderId:t.holder,serviceId:t.service,status:t.status?t.status.toUpperCase():void 0});s(t,e.govListPermits,{headers:["ID","Title","Holder","Status","Code","Expires"],rows:e.govListPermits.map(n=>[d(n.id,12),n.title,d(n.holderId,12),n.status,n.verificationCode,w(n.expiresAt)])});}catch(e){r(e);}}),i.command("issue").description("Issue a permit").requiredOption("--holder <id>","Holder user ID").requiredOption("--service <id>","Service ID").requiredOption("--title <t>","Permit title").requiredOption("--verification-code <code>","Printed verification code").option("--application <id>","Originating application ID").option("--expires-at <iso>","Expiry (ISO date)").option("--file <id>","File ID for the generated permit PDF").option("-f, --format <format>","Output format").action(async t=>{try{let e={holderId:t.holder,serviceId:t.service,title:t.title,verificationCode:t.verificationCode};t.application&&(e.applicationId=t.application),t.expiresAt&&(e.expiresAt=t.expiresAt),t.file&&(e.fileId=t.file);let n=await a(X,{input:e});c(`Permit issued: ${n.govIssuePermit.title}`),s(t,n.govIssuePermit);}catch(e){r(e);}}),i.command("revoke").description("Revoke a permit").argument("<id>","Permit ID").option("--reason <s>","Revocation reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(Z,{id:t,reason:e.reason});c("Permit revoked"),s(e,n.govRevokePermit);}catch(n){r(n);}}),i.command("verify").description("Verify a permit by its printed code (public)").argument("<code>","Verification code").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await h(tt,{verificationCode:t});if(!n.govVerifyPermit)throw new p(`No permit found for code ${t}`);c(`Valid permit: ${n.govVerifyPermit.title} (${n.govVerifyPermit.status})`),s(e,n.govVerifyPermit);}catch(n){r(n);}});}function mt(o){let i=o.command("payments").description("GovCitizenHub payments");i.command("list").description("List payments").option("--application <id>","Filter by application ID").option("--payer <id>","Filter by payer ID").option("--status <s>","Filter by payment status").option("--limit <n>","Page size",g,50).option("--offset <n>","Offset",g,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await a(nt,{applicationId:t.application,payerId:t.payer,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.govListPayments.items,{headers:["ID","Payer","Amount","Currency","Status","Receipt"],rows:e.govListPayments.items.map(n=>[d(n.id,12),d(n.payerId,12),String(n.amount),n.currency,n.status,n.receiptNumber??"-"])});}catch(e){r(e);}}),i.command("get").description("Get a payment by id").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(et,{id:t});if(!n.govPayment)throw new p(`Payment ${t} not found`);s(e,n.govPayment);}catch(n){r(n);}}),i.command("create").description("Create a payment").requiredOption("--amount <n>","Amount",y).option("--application <id>","Application ID").option("--currency <c>","Currency code").option("--provider-ref <ref>","Payment provider reference").option("--line-items <json>","Line items JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={amount:t.amount};t.application&&(e.applicationId=t.application),t.currency&&(e.currency=t.currency),t.providerRef&&(e.providerRef=t.providerRef),t.lineItems&&(e.lineItems=f("line-items",t.lineItems));let n=await a(it,{input:e});c(`Payment created: ${n.govCreatePayment.amount} ${n.govCreatePayment.currency}`),s(t,n.govCreatePayment);}catch(e){r(e);}}),i.command("mark-paid").description("Mark a payment as paid").argument("<id>","Payment ID").option("--provider-ref <ref>","Payment provider reference").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(ot,{id:t,providerRef:e.providerRef});c(`Payment marked paid (${n.govMarkPaymentPaid.status})`),s(e,n.govMarkPaymentPaid);}catch(n){r(n);}}),i.command("refund").description("Refund a payment").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(rt,{id:t});c(`Payment refunded (${n.govRefundPayment.status})`),s(e,n.govRefundPayment);}catch(n){r(n);}});}function lt(o){o.command("health").description("GovCitizenHub service health check (public)").option("-f, --format <format>","Output format").action(async i=>{try{let t=await h(st);c(t.govHealth),s(i,{health:t.govHealth});}catch(t){r(t);}});}var bt={id:"govcitizenhub",version:"1.0.0",displayName:"GovCitizenHub",dependsOn:["auth","workspaces"],register(o,i){k(i);let t=o.command("govcitizenhub").description("GovCitizenHub citizen-government services");at(t),ct(t),pt(t),ut(t),dt(t),gt(t),mt(t),lt(t);}},yn=bt;module.exports=yn;
@@ -1,4 +1,4 @@
1
- import {a,b as b$1,h as h$1,p,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var R=`
1
+ import {a,b as b$1,i,r,h as h$1,k as k$1,q as q$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var R=`
2
2
  query GovGetAgency($id: ID!) {
3
3
  govAgency(id: $id) {
4
4
  id name code description jurisdiction contactEmail contactPhone
@@ -276,4 +276,4 @@ import {a,b as b$1,h as h$1,p,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js';impor
276
276
  query GovHealth {
277
277
  govHealth
278
278
  }
279
- `;function l(c,n){try{return JSON.parse(n)}catch{throw new o(`--${c} must be valid JSON`)}}function m(c){let n=Number.parseInt(c,10);if(Number.isNaN(n))throw new o(`Expected an integer but got "${c}"`);return n}function v(c){let n=Number.parseFloat(c);if(Number.isNaN(n))throw new o(`Expected a number but got "${c}"`);return n}function u(c){return c.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function it(c){let n=c.command("agencies").description("GovCitizenHub agencies");n.command("list").description("List agencies").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(D,{isActive:t.active,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.govListAgencies,{headers:["ID","Name","Code","Jurisdiction","Active"],rows:e.govListAgencies.map(i=>[p(i.id,12),i.name,i.code??"-",i.jurisdiction??"-",i.isActive?"yes":"no"])});}catch(e){g(e);}}),n.command("get").description("Get an agency by id").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(R,{id:t});if(!i.govAgency)throw new o(`Agency ${t} not found`);h$1(e,i.govAgency);}catch(i){g(i);}}),n.command("create").description("Create an agency").requiredOption("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.jurisdiction&&(e.jurisdiction=t.jurisdiction),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(h,{input:e});i(`Agency created: ${i$1.govCreateAgency.name}`),h$1(t,i$1.govCreateAgency);}catch(e){g(e);}}),n.command("update").description("Update an agency").argument("<id>","Agency ID").option("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--active <bool>","Active state (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.code&&(i$1.code=e.code),e.description!==void 0&&(i$1.description=e.description),e.jurisdiction&&(i$1.jurisdiction=e.jurisdiction),e.contactEmail&&(i$1.contactEmail=e.contactEmail),e.contactPhone&&(i$1.contactPhone=e.contactPhone),e.active!==void 0&&(i$1.isActive=e.active),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(S,{id:t,input:i$1});i("Agency updated"),h$1(e,I.govUpdateAgency);}catch(i){g(i);}}),n.command("archive").description("Archive (soft-delete) an agency").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(P,{id:t});i(i$1.govArchiveAgency?"Agency archived":"Agency not archived"),h$1(e,{archived:i$1.govArchiveAgency});}catch(i){g(i);}});}function nt(c){let n=c.command("services").description("GovCitizenHub services");n.command("list").description("List services").option("--agency <id>","Filter by agency ID").option("--category <c>","Filter by service category").option("--status <s>","Filter by service status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{agencyId:t.agency,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.govListServices.items,{headers:["ID","Name","Category","Status","Fee","SLA"],rows:e.govListServices.items.map(i=>[p(i.id,12),i.name,i.category,i.status,`${i.feeType} ${i.feeAmount}`,i.slaDays!=null?String(i.slaDays):"-"])});}catch(e){g(e);}}),n.command("get").description("Get a service by id").argument("<id>","Service ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(T,{id:t});if(!i.govService)throw new o(`Service ${t} not found`);h$1(e,i.govService);}catch(i){g(i);}}),n.command("create").description("Create a service").requiredOption("--agency <id>","Agency ID").requiredOption("--name <name>","Service name").requiredOption("--slug <slug>","URL slug").option("--category <c>","Service category","OTHER").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE","FREE").option("--fee-amount <n>","Fee amount",v).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",m).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={agencyId:t.agency,name:t.name,slug:t.slug,category:(t.category??"OTHER").toUpperCase(),feeType:(t.feeType??"FREE").toUpperCase()};t.summary&&(e.summary=t.summary),t.eligibility&&(e.eligibility=t.eligibility),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.requiredDocuments&&(e.requiredDocuments=u(t.requiredDocuments)),t.formSchema&&(e.formSchema=l("form-schema",t.formSchema)),t.slaDays!==void 0&&(e.slaDays=t.slaDays),t.tags&&(e.tags=u(t.tags));let i$1=await b$1($,{input:e});i(`Service created: ${i$1.govCreateService.name}`),h$1(t,i$1.govCreateService);}catch(e){g(e);}}),n.command("update").description("Update a service").argument("<id>","Service ID").option("--name <name>","Service name").option("--category <c>","Service category").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE").option("--fee-amount <n>","Fee amount",v).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",m).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.category&&(i$1.category=e.category.toUpperCase()),e.summary!==void 0&&(i$1.summary=e.summary),e.eligibility!==void 0&&(i$1.eligibility=e.eligibility),e.feeType&&(i$1.feeType=e.feeType.toUpperCase()),e.feeAmount!==void 0&&(i$1.feeAmount=e.feeAmount),e.currency&&(i$1.currency=e.currency),e.requiredDocuments&&(i$1.requiredDocuments=u(e.requiredDocuments)),e.formSchema&&(i$1.formSchema=l("form-schema",e.formSchema)),e.slaDays!==void 0&&(i$1.slaDays=e.slaDays),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(w,{id:t,input:i$1});i("Service updated"),h$1(e,I.govUpdateService);}catch(i){g(i);}}),n.command("transition").description("Advance a service through its publication lifecycle").argument("<id>","Service ID").requiredOption("--status <s>","DRAFT|PUBLISHED|SUSPENDED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(O,{id:t,status:e.status.toUpperCase()});i(`Service status set to ${i$1.govTransitionService.status}`),h$1(e,i$1.govTransitionService);}catch(i){g(i);}});}function ot(c){let n=c.command("applications").description("GovCitizenHub applications");n.command("list").description("List applications").option("--citizen <id>","Filter by citizen ID").option("--service <id>","Filter by service ID").option("--assigned-to <id>","Filter by assignee ID").option("--status <s>","Filter by application status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(b,{citizenId:t.citizen,serviceId:t.service,assignedToId:t.assignedTo,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.govListApplications.items,{headers:["ID","Reference","Citizen","Status","Priority","Submitted"],rows:e.govListApplications.items.map(i=>[p(i.id,12),i.reference,p(i.citizenId,12),i.status,i.priority,o$1(i.submittedAt)])});}catch(e){g(e);}}),n.command("get").description("Get an application by id").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(N,{id:t});if(!i.govApplication)throw new o(`Application ${t} not found`);h$1(e,i.govApplication);}catch(i){g(i);}}),n.command("create").description("Create an application").requiredOption("--service <id>","Service ID").option("--reference <ref>","Application reference").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={serviceId:t.service,priority:(t.priority??"NORMAL").toUpperCase()};t.reference&&(e.reference=t.reference),t.formData&&(e.formData=l("form-data",t.formData)),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(L,{input:e});i(`Application created: ${i$1.govCreateApplication.reference}`),h$1(t,i$1.govCreateApplication);}catch(e){g(e);}}),n.command("update").description("Update an application").argument("<id>","Application ID").option("--assigned-to <id>","Assignee ID").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.assignedTo&&(i$1.assignedToId=e.assignedTo),e.priority&&(i$1.priority=e.priority.toUpperCase()),e.formData&&(i$1.formData=l("form-data",e.formData)),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(U,{id:t,input:i$1});i("Application updated"),h$1(e,I.govUpdateApplication);}catch(i){g(i);}}),n.command("submit").description("Submit a draft application").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(x,{id:t});i(`Application submitted: ${i$1.govSubmitApplication.reference}`),h$1(e,i$1.govSubmitApplication);}catch(i){g(i);}}),n.command("transition").description("Advance an application through its review lifecycle").argument("<id>","Application ID").requiredOption("--status <s>","DRAFT|SUBMITTED|IN_REVIEW|INFO_REQUESTED|APPROVED|REJECTED|WITHDRAWN").option("--reason <s>","Transition reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(_,{id:t,status:e.status.toUpperCase(),reason:e.reason});i(`Application status set to ${i$1.govTransitionApplication.status}`),h$1(e,i$1.govTransitionApplication);}catch(i){g(i);}}),n.command("add-note").description("Add a case note to an application").requiredOption("--application <id>","Application ID").requiredOption("--body <text>","Note body").option("--type <t>","INTERNAL|CITIZEN_MESSAGE|INFO_REQUEST|DECISION","INTERNAL").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,body:t.body,type:(t.type??"INTERNAL").toUpperCase()},i$1=await b$1(k,{input:e});i("Case note added"),h$1(t,i$1.govAddCaseNote);}catch(e){g(e);}}),n.command("add-document").description("Attach a document to an application").requiredOption("--application <id>","Application ID").requiredOption("--name <name>","Document name").option("--file <id>","File ID (wspace-files-svc)").option("--requirement <s>","Requirement this document satisfies").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,name:t.name};t.file&&(e.fileId=t.file),t.requirement&&(e.requirement=t.requirement);let i$1=await b$1(q,{input:e});i(`Document added: ${i$1.govAddDocument.name}`),h$1(t,i$1.govAddDocument);}catch(e){g(e);}});}function rt(c){c.command("documents").description("GovCitizenHub application documents").command("review").description("Review (accept/reject) an application document").argument("<id>","Document ID").requiredOption("--status <s>","PENDING|ACCEPTED|REJECTED").option("--rejection-reason <s>","Reason when rejecting").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(M,{id:t,status:e.status.toUpperCase(),rejectionReason:e.rejectionReason});i(`Document ${i$1.govReviewDocument.status.toLowerCase()}`),h$1(e,i$1.govReviewDocument);}catch(i){g(i);}});}function at(c){let n=c.command("grievances").description("GovCitizenHub grievances");n.command("list").description("List grievances").option("--agency <id>","Filter by agency ID").option("--reporter <id>","Filter by reporter ID").option("--status <s>","Filter by grievance status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{agencyId:t.agency,reporterId:t.reporter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.govListGrievances.items,{headers:["ID","Title","Category","Status","Priority","Location"],rows:e.govListGrievances.items.map(i=>[p(i.id,12),i.title,i.category,i.status,i.priority,p(i.location??"-",24)])});}catch(e){g(e);}}),n.command("get").description("Get a grievance by id").argument("<id>","Grievance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(F,{id:t});if(!i.govGrievance)throw new o(`Grievance ${t} not found`);h$1(e,i.govGrievance);}catch(i){g(i);}}),n.command("report").description("Report a new grievance").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").option("--category <c>","Service category","GRIEVANCES").option("--agency <id>","Agency ID").option("--location <s>","Location description").option("--latitude <n>","Latitude",v).option("--longitude <n>","Longitude",v).option("--photo-file-ids <csv>","Comma-separated photo file IDs").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:(t.category??"GRIEVANCES").toUpperCase(),priority:(t.priority??"NORMAL").toUpperCase()};t.agency&&(e.agencyId=t.agency),t.location&&(e.location=t.location),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.photoFileIds&&(e.photoFileIds=u(t.photoFileIds)),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(j,{input:e});i(`Grievance reported: ${i$1.govReportGrievance.title}`),h$1(t,i$1.govReportGrievance);}catch(e){g(e);}}),n.command("update").description("Update a grievance").argument("<id>","Grievance ID").option("--agency <id>","Agency ID").option("--assigned-to <id>","Assignee ID").option("--location <s>","Location description").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.agency&&(i$1.agencyId=e.agency),e.assignedTo&&(i$1.assignedToId=e.assignedTo),e.location!==void 0&&(i$1.location=e.location),e.priority&&(i$1.priority=e.priority.toUpperCase()),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(H,{id:t,input:i$1});i("Grievance updated"),h$1(e,I.govUpdateGrievance);}catch(i){g(i);}}),n.command("transition").description("Advance a grievance through its resolution lifecycle").argument("<id>","Grievance ID").requiredOption("--status <s>","OPEN|ACKNOWLEDGED|IN_PROGRESS|RESOLVED|REJECTED|CLOSED").option("--resolution <s>","Resolution note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(z,{id:t,status:e.status.toUpperCase(),resolution:e.resolution});i(`Grievance status set to ${i$1.govTransitionGrievance.status}`),h$1(e,i$1.govTransitionGrievance);}catch(i){g(i);}});}function st(c){let n=c.command("permits").description("GovCitizenHub permits");n.command("list").description("List permits").option("--holder <id>","Filter by holder ID").option("--service <id>","Filter by service ID").option("--status <s>","Filter by permit status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{holderId:t.holder,serviceId:t.service,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.govListPermits,{headers:["ID","Title","Holder","Status","Code","Expires"],rows:e.govListPermits.map(i=>[p(i.id,12),i.title,p(i.holderId,12),i.status,i.verificationCode,o$1(i.expiresAt)])});}catch(e){g(e);}}),n.command("issue").description("Issue a permit").requiredOption("--holder <id>","Holder user ID").requiredOption("--service <id>","Service ID").requiredOption("--title <t>","Permit title").requiredOption("--verification-code <code>","Printed verification code").option("--application <id>","Originating application ID").option("--expires-at <iso>","Expiry (ISO date)").option("--file <id>","File ID for the generated permit PDF").option("-f, --format <format>","Output format").action(async t=>{try{let e={holderId:t.holder,serviceId:t.service,title:t.title,verificationCode:t.verificationCode};t.application&&(e.applicationId=t.application),t.expiresAt&&(e.expiresAt=t.expiresAt),t.file&&(e.fileId=t.file);let i$1=await b$1(Y,{input:e});i(`Permit issued: ${i$1.govIssuePermit.title}`),h$1(t,i$1.govIssuePermit);}catch(e){g(e);}}),n.command("revoke").description("Revoke a permit").argument("<id>","Permit ID").option("--reason <s>","Revocation reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(J,{id:t,reason:e.reason});i("Permit revoked"),h$1(e,i$1.govRevokePermit);}catch(i){g(i);}}),n.command("verify").description("Verify a permit by its printed code (public)").argument("<code>","Verification code").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await d(B,{verificationCode:t});if(!i$1.govVerifyPermit)throw new o(`No permit found for code ${t}`);i(`Valid permit: ${i$1.govVerifyPermit.title} (${i$1.govVerifyPermit.status})`),h$1(e,i$1.govVerifyPermit);}catch(i){g(i);}});}function ct(c){let n=c.command("payments").description("GovCitizenHub payments");n.command("list").description("List payments").option("--application <id>","Filter by application ID").option("--payer <id>","Filter by payer ID").option("--status <s>","Filter by payment status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q,{applicationId:t.application,payerId:t.payer,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,e.govListPayments.items,{headers:["ID","Payer","Amount","Currency","Status","Receipt"],rows:e.govListPayments.items.map(i=>[p(i.id,12),p(i.payerId,12),String(i.amount),i.currency,i.status,i.receiptNumber??"-"])});}catch(e){g(e);}}),n.command("get").description("Get a payment by id").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i=await b$1(K,{id:t});if(!i.govPayment)throw new o(`Payment ${t} not found`);h$1(e,i.govPayment);}catch(i){g(i);}}),n.command("create").description("Create a payment").requiredOption("--amount <n>","Amount",v).option("--application <id>","Application ID").option("--currency <c>","Currency code").option("--provider-ref <ref>","Payment provider reference").option("--line-items <json>","Line items JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={amount:t.amount};t.application&&(e.applicationId=t.application),t.currency&&(e.currency=t.currency),t.providerRef&&(e.providerRef=t.providerRef),t.lineItems&&(e.lineItems=l("line-items",t.lineItems));let i$1=await b$1(X,{input:e});i(`Payment created: ${i$1.govCreatePayment.amount} ${i$1.govCreatePayment.currency}`),h$1(t,i$1.govCreatePayment);}catch(e){g(e);}}),n.command("mark-paid").description("Mark a payment as paid").argument("<id>","Payment ID").option("--provider-ref <ref>","Payment provider reference").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(Z,{id:t,providerRef:e.providerRef});i(`Payment marked paid (${i$1.govMarkPaymentPaid.status})`),h$1(e,i$1.govMarkPaymentPaid);}catch(i){g(i);}}),n.command("refund").description("Refund a payment").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(tt,{id:t});i(`Payment refunded (${i$1.govRefundPayment.status})`),h$1(e,i$1.govRefundPayment);}catch(i){g(i);}});}function pt(c){c.command("health").description("GovCitizenHub service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await d(et);i(t.govHealth),h$1(n,{health:t.govHealth});}catch(t){g(t);}});}var dt={id:"govcitizenhub",version:"1.0.0",displayName:"GovCitizenHub",dependsOn:["auth","workspaces"],register(c,n){a(n);let t=c.command("govcitizenhub").description("GovCitizenHub citizen-government services");it(t),nt(t),ot(t),rt(t),at(t),st(t),ct(t),pt(t);}},Bt=dt;export{Bt as default};
279
+ `;function l(c,n){try{return JSON.parse(n)}catch{throw new o(`--${c} must be valid JSON`)}}function m(c){let n=Number.parseInt(c,10);if(Number.isNaN(n))throw new o(`Expected an integer but got "${c}"`);return n}function v(c){let n=Number.parseFloat(c);if(Number.isNaN(n))throw new o(`Expected a number but got "${c}"`);return n}function u(c){return c.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function it(c){let n=c.command("agencies").description("GovCitizenHub agencies");n.command("list").description("List agencies").option("--active <bool>","Filter by active state (true|false)",t=>t==="true").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(D,{isActive:t.active,pagination:{limit:t.limit,offset:t.offset}});i(t,e.govListAgencies,{headers:["ID","Name","Code","Jurisdiction","Active"],rows:e.govListAgencies.map(i=>[r(i.id,12),i.name,i.code??"-",i.jurisdiction??"-",i.isActive?"yes":"no"])});}catch(e){h$1(e);}}),n.command("get").description("Get an agency by id").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(R,{id:t});if(!i$1.govAgency)throw new o(`Agency ${t} not found`);i(e,i$1.govAgency);}catch(i){h$1(i);}}),n.command("create").description("Create an agency").requiredOption("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name};t.code&&(e.code=t.code),t.description&&(e.description=t.description),t.jurisdiction&&(e.jurisdiction=t.jurisdiction),t.contactEmail&&(e.contactEmail=t.contactEmail),t.contactPhone&&(e.contactPhone=t.contactPhone),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(h,{input:e});k$1(`Agency created: ${i$1.govCreateAgency.name}`),i(t,i$1.govCreateAgency);}catch(e){h$1(e);}}),n.command("update").description("Update an agency").argument("<id>","Agency ID").option("--name <name>","Agency name").option("--code <code>","Agency code").option("--description <s>","Description").option("--jurisdiction <s>","Jurisdiction").option("--contact-email <email>","Contact email").option("--contact-phone <phone>","Contact phone").option("--active <bool>","Active state (true|false)",t=>t==="true").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.code&&(i$1.code=e.code),e.description!==void 0&&(i$1.description=e.description),e.jurisdiction&&(i$1.jurisdiction=e.jurisdiction),e.contactEmail&&(i$1.contactEmail=e.contactEmail),e.contactPhone&&(i$1.contactPhone=e.contactPhone),e.active!==void 0&&(i$1.isActive=e.active),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(S,{id:t,input:i$1});k$1("Agency updated"),i(e,I.govUpdateAgency);}catch(i){h$1(i);}}),n.command("archive").description("Archive (soft-delete) an agency").argument("<id>","Agency ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(P,{id:t});k$1(i$1.govArchiveAgency?"Agency archived":"Agency not archived"),i(e,{archived:i$1.govArchiveAgency});}catch(i){h$1(i);}});}function nt(c){let n=c.command("services").description("GovCitizenHub services");n.command("list").description("List services").option("--agency <id>","Filter by agency ID").option("--category <c>","Filter by service category").option("--status <s>","Filter by service status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(G,{agencyId:t.agency,category:t.category?t.category.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.govListServices.items,{headers:["ID","Name","Category","Status","Fee","SLA"],rows:e.govListServices.items.map(i=>[r(i.id,12),i.name,i.category,i.status,`${i.feeType} ${i.feeAmount}`,i.slaDays!=null?String(i.slaDays):"-"])});}catch(e){h$1(e);}}),n.command("get").description("Get a service by id").argument("<id>","Service ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(T,{id:t});if(!i$1.govService)throw new o(`Service ${t} not found`);i(e,i$1.govService);}catch(i){h$1(i);}}),n.command("create").description("Create a service").requiredOption("--agency <id>","Agency ID").requiredOption("--name <name>","Service name").requiredOption("--slug <slug>","URL slug").option("--category <c>","Service category","OTHER").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE","FREE").option("--fee-amount <n>","Fee amount",v).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",m).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={agencyId:t.agency,name:t.name,slug:t.slug,category:(t.category??"OTHER").toUpperCase(),feeType:(t.feeType??"FREE").toUpperCase()};t.summary&&(e.summary=t.summary),t.eligibility&&(e.eligibility=t.eligibility),t.feeAmount!==void 0&&(e.feeAmount=t.feeAmount),t.currency&&(e.currency=t.currency),t.requiredDocuments&&(e.requiredDocuments=u(t.requiredDocuments)),t.formSchema&&(e.formSchema=l("form-schema",t.formSchema)),t.slaDays!==void 0&&(e.slaDays=t.slaDays),t.tags&&(e.tags=u(t.tags));let i$1=await b$1($,{input:e});k$1(`Service created: ${i$1.govCreateService.name}`),i(t,i$1.govCreateService);}catch(e){h$1(e);}}),n.command("update").description("Update a service").argument("<id>","Service ID").option("--name <name>","Service name").option("--category <c>","Service category").option("--summary <s>","Summary").option("--eligibility <s>","Eligibility criteria").option("--fee-type <t>","FREE|FIXED|VARIABLE").option("--fee-amount <n>","Fee amount",v).option("--currency <c>","Currency code").option("--required-documents <csv>","Comma-separated required documents").option("--form-schema <json>","Form schema JSON").option("--sla-days <n>","SLA in days",m).option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.name&&(i$1.name=e.name),e.category&&(i$1.category=e.category.toUpperCase()),e.summary!==void 0&&(i$1.summary=e.summary),e.eligibility!==void 0&&(i$1.eligibility=e.eligibility),e.feeType&&(i$1.feeType=e.feeType.toUpperCase()),e.feeAmount!==void 0&&(i$1.feeAmount=e.feeAmount),e.currency&&(i$1.currency=e.currency),e.requiredDocuments&&(i$1.requiredDocuments=u(e.requiredDocuments)),e.formSchema&&(i$1.formSchema=l("form-schema",e.formSchema)),e.slaDays!==void 0&&(i$1.slaDays=e.slaDays),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(w,{id:t,input:i$1});k$1("Service updated"),i(e,I.govUpdateService);}catch(i){h$1(i);}}),n.command("transition").description("Advance a service through its publication lifecycle").argument("<id>","Service ID").requiredOption("--status <s>","DRAFT|PUBLISHED|SUSPENDED|RETIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(O,{id:t,status:e.status.toUpperCase()});k$1(`Service status set to ${i$1.govTransitionService.status}`),i(e,i$1.govTransitionService);}catch(i){h$1(i);}});}function ot(c){let n=c.command("applications").description("GovCitizenHub applications");n.command("list").description("List applications").option("--citizen <id>","Filter by citizen ID").option("--service <id>","Filter by service ID").option("--assigned-to <id>","Filter by assignee ID").option("--status <s>","Filter by application status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(b,{citizenId:t.citizen,serviceId:t.service,assignedToId:t.assignedTo,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.govListApplications.items,{headers:["ID","Reference","Citizen","Status","Priority","Submitted"],rows:e.govListApplications.items.map(i=>[r(i.id,12),i.reference,r(i.citizenId,12),i.status,i.priority,q$1(i.submittedAt)])});}catch(e){h$1(e);}}),n.command("get").description("Get an application by id").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(N,{id:t});if(!i$1.govApplication)throw new o(`Application ${t} not found`);i(e,i$1.govApplication);}catch(i){h$1(i);}}),n.command("create").description("Create an application").requiredOption("--service <id>","Service ID").option("--reference <ref>","Application reference").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={serviceId:t.service,priority:(t.priority??"NORMAL").toUpperCase()};t.reference&&(e.reference=t.reference),t.formData&&(e.formData=l("form-data",t.formData)),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(L,{input:e});k$1(`Application created: ${i$1.govCreateApplication.reference}`),i(t,i$1.govCreateApplication);}catch(e){h$1(e);}}),n.command("update").description("Update an application").argument("<id>","Application ID").option("--assigned-to <id>","Assignee ID").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--form-data <json>","Form data JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.assignedTo&&(i$1.assignedToId=e.assignedTo),e.priority&&(i$1.priority=e.priority.toUpperCase()),e.formData&&(i$1.formData=l("form-data",e.formData)),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(U,{id:t,input:i$1});k$1("Application updated"),i(e,I.govUpdateApplication);}catch(i){h$1(i);}}),n.command("submit").description("Submit a draft application").argument("<id>","Application ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(x,{id:t});k$1(`Application submitted: ${i$1.govSubmitApplication.reference}`),i(e,i$1.govSubmitApplication);}catch(i){h$1(i);}}),n.command("transition").description("Advance an application through its review lifecycle").argument("<id>","Application ID").requiredOption("--status <s>","DRAFT|SUBMITTED|IN_REVIEW|INFO_REQUESTED|APPROVED|REJECTED|WITHDRAWN").option("--reason <s>","Transition reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(_,{id:t,status:e.status.toUpperCase(),reason:e.reason});k$1(`Application status set to ${i$1.govTransitionApplication.status}`),i(e,i$1.govTransitionApplication);}catch(i){h$1(i);}}),n.command("add-note").description("Add a case note to an application").requiredOption("--application <id>","Application ID").requiredOption("--body <text>","Note body").option("--type <t>","INTERNAL|CITIZEN_MESSAGE|INFO_REQUEST|DECISION","INTERNAL").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,body:t.body,type:(t.type??"INTERNAL").toUpperCase()},i$1=await b$1(k,{input:e});k$1("Case note added"),i(t,i$1.govAddCaseNote);}catch(e){h$1(e);}}),n.command("add-document").description("Attach a document to an application").requiredOption("--application <id>","Application ID").requiredOption("--name <name>","Document name").option("--file <id>","File ID (wspace-files-svc)").option("--requirement <s>","Requirement this document satisfies").option("-f, --format <format>","Output format").action(async t=>{try{let e={applicationId:t.application,name:t.name};t.file&&(e.fileId=t.file),t.requirement&&(e.requirement=t.requirement);let i$1=await b$1(q,{input:e});k$1(`Document added: ${i$1.govAddDocument.name}`),i(t,i$1.govAddDocument);}catch(e){h$1(e);}});}function rt(c){c.command("documents").description("GovCitizenHub application documents").command("review").description("Review (accept/reject) an application document").argument("<id>","Document ID").requiredOption("--status <s>","PENDING|ACCEPTED|REJECTED").option("--rejection-reason <s>","Reason when rejecting").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(M,{id:t,status:e.status.toUpperCase(),rejectionReason:e.rejectionReason});k$1(`Document ${i$1.govReviewDocument.status.toLowerCase()}`),i(e,i$1.govReviewDocument);}catch(i){h$1(i);}});}function at(c){let n=c.command("grievances").description("GovCitizenHub grievances");n.command("list").description("List grievances").option("--agency <id>","Filter by agency ID").option("--reporter <id>","Filter by reporter ID").option("--status <s>","Filter by grievance status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(V,{agencyId:t.agency,reporterId:t.reporter,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.govListGrievances.items,{headers:["ID","Title","Category","Status","Priority","Location"],rows:e.govListGrievances.items.map(i=>[r(i.id,12),i.title,i.category,i.status,i.priority,r(i.location??"-",24)])});}catch(e){h$1(e);}}),n.command("get").description("Get a grievance by id").argument("<id>","Grievance ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(F,{id:t});if(!i$1.govGrievance)throw new o(`Grievance ${t} not found`);i(e,i$1.govGrievance);}catch(i){h$1(i);}}),n.command("report").description("Report a new grievance").requiredOption("--title <t>","Title").requiredOption("--description <s>","Description").option("--category <c>","Service category","GRIEVANCES").option("--agency <id>","Agency ID").option("--location <s>","Location description").option("--latitude <n>","Latitude",v).option("--longitude <n>","Longitude",v).option("--photo-file-ids <csv>","Comma-separated photo file IDs").option("--priority <p>","LOW|NORMAL|HIGH|URGENT","NORMAL").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={title:t.title,description:t.description,category:(t.category??"GRIEVANCES").toUpperCase(),priority:(t.priority??"NORMAL").toUpperCase()};t.agency&&(e.agencyId=t.agency),t.location&&(e.location=t.location),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.photoFileIds&&(e.photoFileIds=u(t.photoFileIds)),t.tags&&(e.tags=u(t.tags));let i$1=await b$1(j,{input:e});k$1(`Grievance reported: ${i$1.govReportGrievance.title}`),i(t,i$1.govReportGrievance);}catch(e){h$1(e);}}),n.command("update").description("Update a grievance").argument("<id>","Grievance ID").option("--agency <id>","Agency ID").option("--assigned-to <id>","Assignee ID").option("--location <s>","Location description").option("--priority <p>","LOW|NORMAL|HIGH|URGENT").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1={};if(e.agency&&(i$1.agencyId=e.agency),e.assignedTo&&(i$1.assignedToId=e.assignedTo),e.location!==void 0&&(i$1.location=e.location),e.priority&&(i$1.priority=e.priority.toUpperCase()),e.tags&&(i$1.tags=u(e.tags)),!Object.keys(i$1).length)throw new o("No updates specified");let I=await b$1(H,{id:t,input:i$1});k$1("Grievance updated"),i(e,I.govUpdateGrievance);}catch(i){h$1(i);}}),n.command("transition").description("Advance a grievance through its resolution lifecycle").argument("<id>","Grievance ID").requiredOption("--status <s>","OPEN|ACKNOWLEDGED|IN_PROGRESS|RESOLVED|REJECTED|CLOSED").option("--resolution <s>","Resolution note").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(z,{id:t,status:e.status.toUpperCase(),resolution:e.resolution});k$1(`Grievance status set to ${i$1.govTransitionGrievance.status}`),i(e,i$1.govTransitionGrievance);}catch(i){h$1(i);}});}function st(c){let n=c.command("permits").description("GovCitizenHub permits");n.command("list").description("List permits").option("--holder <id>","Filter by holder ID").option("--service <id>","Filter by service ID").option("--status <s>","Filter by permit status").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(W,{holderId:t.holder,serviceId:t.service,status:t.status?t.status.toUpperCase():void 0});i(t,e.govListPermits,{headers:["ID","Title","Holder","Status","Code","Expires"],rows:e.govListPermits.map(i=>[r(i.id,12),i.title,r(i.holderId,12),i.status,i.verificationCode,q$1(i.expiresAt)])});}catch(e){h$1(e);}}),n.command("issue").description("Issue a permit").requiredOption("--holder <id>","Holder user ID").requiredOption("--service <id>","Service ID").requiredOption("--title <t>","Permit title").requiredOption("--verification-code <code>","Printed verification code").option("--application <id>","Originating application ID").option("--expires-at <iso>","Expiry (ISO date)").option("--file <id>","File ID for the generated permit PDF").option("-f, --format <format>","Output format").action(async t=>{try{let e={holderId:t.holder,serviceId:t.service,title:t.title,verificationCode:t.verificationCode};t.application&&(e.applicationId=t.application),t.expiresAt&&(e.expiresAt=t.expiresAt),t.file&&(e.fileId=t.file);let i$1=await b$1(Y,{input:e});k$1(`Permit issued: ${i$1.govIssuePermit.title}`),i(t,i$1.govIssuePermit);}catch(e){h$1(e);}}),n.command("revoke").description("Revoke a permit").argument("<id>","Permit ID").option("--reason <s>","Revocation reason").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(J,{id:t,reason:e.reason});k$1("Permit revoked"),i(e,i$1.govRevokePermit);}catch(i){h$1(i);}}),n.command("verify").description("Verify a permit by its printed code (public)").argument("<code>","Verification code").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await d(B,{verificationCode:t});if(!i$1.govVerifyPermit)throw new o(`No permit found for code ${t}`);k$1(`Valid permit: ${i$1.govVerifyPermit.title} (${i$1.govVerifyPermit.status})`),i(e,i$1.govVerifyPermit);}catch(i){h$1(i);}});}function ct(c){let n=c.command("payments").description("GovCitizenHub payments");n.command("list").description("List payments").option("--application <id>","Filter by application ID").option("--payer <id>","Filter by payer ID").option("--status <s>","Filter by payment status").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await b$1(Q,{applicationId:t.application,payerId:t.payer,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.govListPayments.items,{headers:["ID","Payer","Amount","Currency","Status","Receipt"],rows:e.govListPayments.items.map(i=>[r(i.id,12),r(i.payerId,12),String(i.amount),i.currency,i.status,i.receiptNumber??"-"])});}catch(e){h$1(e);}}),n.command("get").description("Get a payment by id").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(K,{id:t});if(!i$1.govPayment)throw new o(`Payment ${t} not found`);i(e,i$1.govPayment);}catch(i){h$1(i);}}),n.command("create").description("Create a payment").requiredOption("--amount <n>","Amount",v).option("--application <id>","Application ID").option("--currency <c>","Currency code").option("--provider-ref <ref>","Payment provider reference").option("--line-items <json>","Line items JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={amount:t.amount};t.application&&(e.applicationId=t.application),t.currency&&(e.currency=t.currency),t.providerRef&&(e.providerRef=t.providerRef),t.lineItems&&(e.lineItems=l("line-items",t.lineItems));let i$1=await b$1(X,{input:e});k$1(`Payment created: ${i$1.govCreatePayment.amount} ${i$1.govCreatePayment.currency}`),i(t,i$1.govCreatePayment);}catch(e){h$1(e);}}),n.command("mark-paid").description("Mark a payment as paid").argument("<id>","Payment ID").option("--provider-ref <ref>","Payment provider reference").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(Z,{id:t,providerRef:e.providerRef});k$1(`Payment marked paid (${i$1.govMarkPaymentPaid.status})`),i(e,i$1.govMarkPaymentPaid);}catch(i){h$1(i);}}),n.command("refund").description("Refund a payment").argument("<id>","Payment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let i$1=await b$1(tt,{id:t});k$1(`Payment refunded (${i$1.govRefundPayment.status})`),i(e,i$1.govRefundPayment);}catch(i){h$1(i);}});}function pt(c){c.command("health").description("GovCitizenHub service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await d(et);k$1(t.govHealth),i(n,{health:t.govHealth});}catch(t){h$1(t);}});}var dt={id:"govcitizenhub",version:"1.0.0",displayName:"GovCitizenHub",dependsOn:["auth","workspaces"],register(c,n){a(n);let t=c.command("govcitizenhub").description("GovCitizenHub citizen-government services");it(t),nt(t),ot(t),rt(t),at(t),st(t),ct(t),pt(t);}},Bt=dt;export{Bt as default};
@@ -1,4 +1,4 @@
1
- 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,u){super(o),this.name="CliUserError",this.exitCode=u?.exitCode??1,this.hint=u?.hint;}},y=class extends d{constructor(o,u){super(o,{exitCode:2,hint:u?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(o,u){super(o),this.name="CliInternalError",this.cause=u;}};var C=null;function k(n){C=n;}function g(){if(!C)throw new f("vibecontrols module helpers used before setHelpersContext was called");return C}function Y(){let n=g();if(!n.auth.isAuthenticated())throw new y("Authentication required.",{hint:`Run \`${n.productName} auth login\` to authenticate.`})}async function c(n,o){return Y(),g().gql.workspace.request(n,o)}function p(n){let o=n instanceof Error?n.message:String(n);throw new d(o)}function l(n,o,u){g().output.formatAndOutput(n,o,u);}function m(n){g().output.printSuccess(n);}function I(n){g().output.printWarning(n);}function w(n){return g().output.formatStatus(n)}function T(n){return g().output.formatDate(n)}function h(n,o){return g().output.truncate(n,o)}var E=`
1
+ 'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var d=class extends Error{exitCode;hint;constructor(o,u){super(o),this.name="CliUserError",this.exitCode=u?.exitCode??1,this.hint=u?.hint;}},y=class extends d{constructor(o,u){super(o,{exitCode:2,hint:u?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},f=class extends Error{cause;constructor(o,u){super(o),this.name="CliInternalError",this.cause=u;}};var C=null;function k(r){C=r;}function g(){if(!C)throw new f("vibecontrols module helpers used before setHelpersContext was called");return C}function Y(){let r=g();if(!r.auth.isAuthenticated())throw new y("Authentication required.",{hint:`Run \`${r.productName} auth login\` to authenticate.`})}async function c(r,o){return Y(),g().gql.workspace.request(r,o)}function p(r){let o=r instanceof Error?r.message:String(r);throw new d(o)}function l(r,o,u){g().output.formatAndOutput(r,o,u);}function m(r){g().output.printSuccess(r);}function I(r){g().output.printWarning(r);}function w(r){return g().output.formatStatus(r)}function T(r){return g().output.formatDate(r)}function h(r,o){return g().output.truncate(r,o)}var E=`
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 } }
@@ -23,11 +23,11 @@
23
23
  id name description visibility status updatedAt
24
24
  }
25
25
  }
26
- `,R=`
26
+ `,S=`
27
27
  mutation DeleteGroup($id: ID!) {
28
28
  deleteGroup(id: $id)
29
29
  }
30
- `,S=`
30
+ `,R=`
31
31
  mutation ArchiveGroup($id: ID!) {
32
32
  archiveGroup(id: $id) { id status }
33
33
  }
@@ -65,4 +65,4 @@
65
65
  edges { node { id name groupType visibility memberCount } }
66
66
  }
67
67
  }
68
- `;function _(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 a=(await c(E,{filter:Object.keys(t).length?t:void 0,first:e.limit})).groups.edges.map(i=>i.node);l(e,a,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:a.map(i=>[h(i.id,12),i.name,i.groupType??"-",i.visibility??"-",w(i.status),String(i.memberCount??0)])});}catch(t){p(t);}}),o.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let r=await c(v,{id:e});if(!r.group)throw new d(`Group ${e} not found`);l(t,r.group);}catch(r){p(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 c(A,{input:t});m(`Group created: ${r.createGroup.name}`),l(e,r.createGroup);}catch(t){p(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 d("No updates specified");let a=await c(O,{id:e,input:r});m("Group updated"),l(t,a.updateGroup);}catch(r){p(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 c(S,{id:e}),m("Group archived")):(await c(R,{id:e}),m("Group deleted"));}catch(r){p(r);}});let u=o.command("members").description("Group membership");u.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 a=(await c($,{groupId:e,first:t.limit})).groupMembers.edges.map(i=>i.node);l(t,a,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:a.map(i=>[h(i.id,12),h(i.entityId,12),i.entityType??"-",i.role??"-",w(i.invitationStatus),T(i.joinedAt)])});}catch(r){p(r);}}),u.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()},a=(await c(G,{groupId:e.group,members:[t]})).addGroupMembers;m(`Added ${a.successCount} member(s)`);for(let i of a.failed)I(`Could not add ${i.entityType} ${i.entityId}: ${i.error}`);l(e,a.added);}catch(t){p(t);}}),u.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 c(P,{groupId:e.group,membershipIds:t}),m(`Removed ${t.length} membership(s)`);}catch(t){p(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 c(L,{entityId:e,entityType:(t.type??"USER").toUpperCase(),first:t.limit});l(t,r.entityGroups.edges.map(a=>a.node));}catch(r){p(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 c(D,{groupId:e,first:t.limit});l(t,r.groupAuditLogs);}catch(r){p(r);}});}var J={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(n,o){k(o),_(n);}},st=J;module.exports=st;
68
+ `;function _(r){let o=r.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 a=(await c(E,{filter:Object.keys(t).length?t:void 0,first:e.limit})).groups.edges.map(i=>i.node);l(e,a,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:a.map(i=>[h(i.id,12),i.name,i.groupType??"-",i.visibility??"-",w(i.status),String(i.memberCount??0)])});}catch(t){p(t);}}),o.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await c(v,{id:e});if(!n.group)throw new d(`Group ${e} not found`);l(t,n.group);}catch(n){p(n);}}),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()},n=await c(A,{input:t});m(`Group created: ${n.createGroup.name}`),l(e,n.createGroup);}catch(t){p(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 n={};if(t.name&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.visibility&&(n.visibility=t.visibility.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),!Object.keys(n).length)throw new d("No updates specified");let a=await c(O,{id:e,input:n});m("Group updated"),l(t,a.updateGroup);}catch(n){p(n);}}),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 c(R,{id:e}),m("Group archived")):(await c(S,{id:e}),m("Group deleted"));}catch(n){p(n);}});let u=o.command("members").description("Group membership");u.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 a=(await c($,{groupId:e,first:t.limit})).groupMembers.edges.map(i=>i.node);l(t,a,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:a.map(i=>[h(i.id,12),h(i.entityId,12),i.entityType??"-",i.role??"-",w(i.invitationStatus),T(i.joinedAt)])});}catch(n){p(n);}}),u.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()},a=(await c(G,{groupId:e.group,members:[t]})).addGroupMembers;m(`Added ${a.successCount} member(s)`);for(let i of a.failed)I(`Could not add ${i.entityType} ${i.entityId}: ${i.error}`);l(e,a.added);}catch(t){p(t);}}),u.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 c(P,{groupId:e.group,membershipIds:t}),m(`Removed ${t.length} membership(s)`);}catch(t){p(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 n=await c(L,{entityId:e,entityType:(t.type??"USER").toUpperCase(),first:t.limit});l(t,n.entityGroups.edges.map(a=>a.node));}catch(n){p(n);}}),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 n=await c(D,{groupId:e,first:t.limit});l(t,n.groupAuditLogs);}catch(n){p(n);}});}var J={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(r,o){k(o),_(r);}},st=J;module.exports=st;
@@ -1,4 +1,4 @@
1
- import {a,b,h as h$1,p,n,g,i,o as o$1,l}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var E=`
1
+ import {a,b,i,r,p,h as h$1,k,q as q$1,n}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var E=`
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 } }
@@ -65,4 +65,4 @@ import {a,b,h as h$1,p,n,g,i,o as o$1,l}from'../../chunk-W4JZR7RJ.js';import {o}
65
65
  edges { node { id name groupType visibility memberCount } }
66
66
  }
67
67
  }
68
- `;function S(u){let p$1=u.command("groups").description("Group management");p$1.command("list").description("List groups").option("--type <t>","Filter by groupType").option("--status <s>","Filter by status").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.type&&(e.groupType=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase());let o=(await b(E,{filter:Object.keys(e).length?e:void 0,first:t.limit})).groups.edges.map(i=>i.node);h$1(t,o,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:o.map(i=>[p(i.id,12),i.name,i.groupType??"-",i.visibility??"-",n(i.status),String(i.memberCount??0)])});}catch(e){g(e);}}),p$1.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let r=await b(R,{id:t});if(!r.group)throw new o(`Group ${t} not found`);h$1(e,r.group);}catch(r){g(r);}}),p$1.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 t=>{try{let e={name:t.name,description:t.description,groupType:(t.type??"TEAM").toUpperCase(),visibility:(t.visibility??"PRIVATE").toUpperCase(),scope:(t.scope??"WORKSPACE").toUpperCase(),membershipType:(t.membership??"STATIC").toUpperCase()},r=await b(T,{input:e});i(`Group created: ${r.createGroup.name}`),h$1(t,r.createGroup);}catch(e){g(e);}}),p$1.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(t,e)=>{try{let r={};if(e.name&&(r.name=e.name),e.description!==void 0&&(r.description=e.description),e.visibility&&(r.visibility=e.visibility.toUpperCase()),e.status&&(r.status=e.status.toUpperCase()),!Object.keys(r).length)throw new o("No updates specified");let o$1=await b(C,{id:t,input:r});i("Group updated"),h$1(e,o$1.updateGroup);}catch(r){g(r);}}),p$1.command("delete").description("Delete a group (use --archive for soft delete)").argument("<id>").option("--archive","Archive instead of hard delete",false).action(async(t,e)=>{try{e.archive?(await b(U,{id:t}),i("Group archived")):(await b(A,{id:t}),i("Group deleted"));}catch(r){g(r);}});let c=p$1.command("members").description("Group membership");c.command("list").description("List members of a group").argument("<groupId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let o=(await b(h,{groupId:t,first:e.limit})).groupMembers.edges.map(i=>i.node);h$1(e,o,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:o.map(i=>[p(i.id,12),p(i.entityId,12),i.entityType??"-",i.role??"-",n(i.invitationStatus),o$1(i.joinedAt)])});}catch(r){g(r);}}),c.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 t=>{try{let e={entityId:t.entity,entityType:(t.entityType??"USER").toUpperCase(),role:(t.role??"MEMBER").toUpperCase()},o=(await b(O,{groupId:t.group,members:[e]})).addGroupMembers;i(`Added ${o.successCount} member(s)`);for(let i of o.failed)l(`Could not add ${i.entityType} ${i.entityId}: ${i.error}`);h$1(t,o.added);}catch(e){g(e);}}),c.command("remove").description("Remove members by membership id").requiredOption("--group <id>").requiredOption("--membership <ids>","Comma-separated membership ids").action(async t=>{try{let e=t.membership.split(",").filter(Boolean);await b($,{groupId:t.group,membershipIds:e}),i(`Removed ${e.length} membership(s)`);}catch(e){g(e);}}),p$1.command("hierarchy").description("Show entity-group hierarchy for a user/entity").argument("<entityId>").option("--type <t>","USER|GROUP","USER").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let r=await b(P,{entityId:t,entityType:(e.type??"USER").toUpperCase(),first:e.limit});h$1(e,r.entityGroups.edges.map(o=>o.node));}catch(r){g(r);}}),p$1.command("activity").description("Audit log for a group").argument("<groupId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let r=await b(M,{groupId:t,first:e.limit});h$1(e,r.groupAuditLogs);}catch(r){g(r);}});}var _={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(u,p){a(p),S(u);}},q=_;export{q as default};
68
+ `;function S(u){let p$1=u.command("groups").description("Group management");p$1.command("list").description("List groups").option("--type <t>","Filter by groupType").option("--status <s>","Filter by status").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let e={};t.type&&(e.groupType=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase());let o=(await b(E,{filter:Object.keys(e).length?e:void 0,first:t.limit})).groups.edges.map(i=>i.node);i(t,o,{headers:["ID","Name","Type","Visibility","Status","Members"],rows:o.map(i=>[r(i.id,12),i.name,i.groupType??"-",i.visibility??"-",p(i.status),String(i.memberCount??0)])});}catch(e){h$1(e);}}),p$1.command("get").description("Get a group by id").argument("<id>").option("-f, --format <format>").action(async(t,e)=>{try{let r=await b(R,{id:t});if(!r.group)throw new o(`Group ${t} not found`);i(e,r.group);}catch(r){h$1(r);}}),p$1.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 t=>{try{let e={name:t.name,description:t.description,groupType:(t.type??"TEAM").toUpperCase(),visibility:(t.visibility??"PRIVATE").toUpperCase(),scope:(t.scope??"WORKSPACE").toUpperCase(),membershipType:(t.membership??"STATIC").toUpperCase()},r=await b(T,{input:e});k(`Group created: ${r.createGroup.name}`),i(t,r.createGroup);}catch(e){h$1(e);}}),p$1.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(t,e)=>{try{let r={};if(e.name&&(r.name=e.name),e.description!==void 0&&(r.description=e.description),e.visibility&&(r.visibility=e.visibility.toUpperCase()),e.status&&(r.status=e.status.toUpperCase()),!Object.keys(r).length)throw new o("No updates specified");let o$1=await b(C,{id:t,input:r});k("Group updated"),i(e,o$1.updateGroup);}catch(r){h$1(r);}}),p$1.command("delete").description("Delete a group (use --archive for soft delete)").argument("<id>").option("--archive","Archive instead of hard delete",false).action(async(t,e)=>{try{e.archive?(await b(U,{id:t}),k("Group archived")):(await b(A,{id:t}),k("Group deleted"));}catch(r){h$1(r);}});let c=p$1.command("members").description("Group membership");c.command("list").description("List members of a group").argument("<groupId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let o=(await b(h,{groupId:t,first:e.limit})).groupMembers.edges.map(i=>i.node);i(e,o,{headers:["MembershipID","Entity","Type","Role","Status","Joined"],rows:o.map(i=>[r(i.id,12),r(i.entityId,12),i.entityType??"-",i.role??"-",p(i.invitationStatus),q$1(i.joinedAt)])});}catch(r){h$1(r);}}),c.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 t=>{try{let e={entityId:t.entity,entityType:(t.entityType??"USER").toUpperCase(),role:(t.role??"MEMBER").toUpperCase()},o=(await b(O,{groupId:t.group,members:[e]})).addGroupMembers;k(`Added ${o.successCount} member(s)`);for(let i of o.failed)n(`Could not add ${i.entityType} ${i.entityId}: ${i.error}`);i(t,o.added);}catch(e){h$1(e);}}),c.command("remove").description("Remove members by membership id").requiredOption("--group <id>").requiredOption("--membership <ids>","Comma-separated membership ids").action(async t=>{try{let e=t.membership.split(",").filter(Boolean);await b($,{groupId:t.group,membershipIds:e}),k(`Removed ${e.length} membership(s)`);}catch(e){h$1(e);}}),p$1.command("hierarchy").description("Show entity-group hierarchy for a user/entity").argument("<entityId>").option("--type <t>","USER|GROUP","USER").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let r=await b(P,{entityId:t,entityType:(e.type??"USER").toUpperCase(),first:e.limit});i(e,r.entityGroups.edges.map(o=>o.node));}catch(r){h$1(r);}}),p$1.command("activity").description("Audit log for a group").argument("<groupId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,e)=>{try{let r=await b(M,{groupId:t,first:e.limit});i(e,r.groupAuditLogs);}catch(r){h$1(r);}});}var _={id:"groups",version:"1.0.0",displayName:"Groups",dependsOn:["auth","workspaces"],register(u,p){a(p),S(u);}},q=_;export{q as default};