@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
- import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var C=`
1
+ import {a,b,i,r,h,k as k$1,d as d$1}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var C=`
2
2
  query BrainyrichGetHousehold($id: ID!) {
3
3
  braHousehold(id: $id) {
4
4
  id name advisorId aum currency riskProfile status notes
@@ -36,10 +36,16 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
36
36
  `,D=`
37
37
  query BrainyrichGetAccount($id: ID!) {
38
38
  braAccount(id: $id) {
39
- id ownerId householdId name type status currency cashBalance
40
- institution accountMask isManual createdAt updatedAt workspaceId
41
- holdings { id symbol name assetClass quantity lastPrice marketValue currency }
42
- transactions { id type amount currency tradeDate symbol }
39
+ id ownerId householdId name type status currency cashBalance institution accountMask
40
+ isManual createdAt updatedAt workspaceId
41
+ holdings {
42
+ items { id symbol name assetClass quantity lastPrice marketValue currency }
43
+ pageInfo { cursor hasMore }
44
+ }
45
+ transactions {
46
+ items { id type amount currency tradeDate symbol }
47
+ pageInfo { cursor hasMore }
48
+ }
43
49
  }
44
50
  }
45
51
  `,R=`
@@ -77,8 +83,11 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
77
83
  `,N=`
78
84
  query BrainyrichListHoldings($accountId: ID, $portfolioId: ID) {
79
85
  braListHoldings(accountId: $accountId, portfolioId: $portfolioId) {
80
- id accountId portfolioId symbol name assetClass quantity costBasis
81
- lastPrice marketValue currency asOf createdAt updatedAt workspaceId
86
+ items {
87
+ id accountId portfolioId symbol name assetClass quantity costBasis lastPrice
88
+ marketValue currency asOf createdAt updatedAt workspaceId
89
+ }
90
+ pageInfo { cursor hasMore }
82
91
  }
83
92
  }
84
93
  `,H=`
@@ -102,10 +111,12 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
102
111
  `,k=`
103
112
  query BrainyrichGetPortfolio($id: ID!) {
104
113
  braPortfolio(id: $id) {
105
- id ownerId householdId name description status baseCurrency
106
- driftThresholdPct modelPortfolioId targetAllocation tags
107
- createdAt updatedAt workspaceId
108
- holdings { id symbol name assetClass quantity lastPrice marketValue }
114
+ id ownerId householdId name description status baseCurrency driftThresholdPct
115
+ modelPortfolioId targetAllocation tags createdAt updatedAt workspaceId
116
+ holdings {
117
+ items { id symbol name assetClass quantity lastPrice marketValue }
118
+ pageInfo { cursor hasMore }
119
+ }
109
120
  }
110
121
  }
111
122
  `,B=`
@@ -136,30 +147,32 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
136
147
  modelPortfolioId targetAllocation tags updatedAt
137
148
  }
138
149
  }
139
- `,v=`
150
+ `,M=`
140
151
  mutation BrainyrichArchivePortfolio($id: ID!) {
141
152
  braArchivePortfolio(id: $id)
142
153
  }
143
- `,M=`
154
+ `,v=`
144
155
  query BrainyrichGetModelPortfolio($id: ID!) {
145
156
  braModelPortfolio(id: $id) {
146
- id name description baseCurrency riskProfile isActive
147
- createdAt updatedAt workspaceId
148
- allocations { id assetClass targetPct }
157
+ id name description baseCurrency riskProfile isActive createdAt updatedAt workspaceId
158
+ allocations { items { id assetClass targetPct } pageInfo { cursor hasMore } }
149
159
  }
150
160
  }
151
161
  `,x=`
152
162
  query BrainyrichListModelPortfolios {
153
163
  braListModelPortfolios {
154
- id name description baseCurrency riskProfile isActive createdAt
155
- allocations { id assetClass targetPct }
164
+ items {
165
+ id name description baseCurrency riskProfile isActive createdAt
166
+ allocations { items { id assetClass targetPct } pageInfo { cursor hasMore } }
167
+ }
168
+ pageInfo { cursor hasMore }
156
169
  }
157
170
  }
158
171
  `,F=`
159
172
  mutation BrainyrichCreateModelPortfolio($input: BraCreateModelPortfolioInput!) {
160
173
  braCreateModelPortfolio(input: $input) {
161
174
  id name description baseCurrency riskProfile isActive createdAt
162
- allocations { id assetClass targetPct }
175
+ allocations { items { id assetClass targetPct } pageInfo { cursor hasMore } }
163
176
  }
164
177
  }
165
178
  `,q=`
@@ -167,7 +180,10 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
167
180
  braGoal(id: $id) {
168
181
  id ownerId householdId name type status currency targetAmount targetDate
169
182
  monthlyContribution priority projection notes tags createdAt updatedAt workspaceId
170
- fundings { id accountId allocationPct fixedAmount }
183
+ fundings {
184
+ items { id accountId allocationPct fixedAmount }
185
+ pageInfo { cursor hasMore }
186
+ }
171
187
  }
172
188
  }
173
189
  `,j=`
@@ -187,7 +203,8 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
187
203
  `,V=`
188
204
  query BrainyrichListGoalFundings($goalId: ID!) {
189
205
  braListGoalFundings(goalId: $goalId) {
190
- id goalId accountId allocationPct fixedAmount createdAt updatedAt workspaceId
206
+ items { id goalId accountId allocationPct fixedAmount createdAt updatedAt workspaceId }
207
+ pageInfo { cursor hasMore }
191
208
  }
192
209
  }
193
210
  `,W=`
@@ -280,13 +297,13 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
280
297
  metrics createdAt
281
298
  }
282
299
  }
283
- `,it=`
300
+ `,rt=`
284
301
  mutation BrainyrichAcknowledgeInsight($id: ID!) {
285
302
  braAcknowledgeInsight(id: $id) {
286
303
  id type severity status title acknowledgedById updatedAt
287
304
  }
288
305
  }
289
- `,rt=`
306
+ `,it=`
290
307
  mutation BrainyrichDismissInsight($id: ID!) {
291
308
  braDismissInsight(id: $id) {
292
309
  id type severity status title updatedAt
@@ -304,13 +321,12 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
304
321
  $householdId: ID
305
322
  $status: BraRebalanceStatus
306
323
  ) {
307
- braListRebalanceProposals(
308
- portfolioId: $portfolioId
309
- householdId: $householdId
310
- status: $status
311
- ) {
312
- id portfolioId householdId status driftPct rationale trades
313
- proposedById approvedById executedAt createdAt updatedAt workspaceId
324
+ braListRebalanceProposals(portfolioId: $portfolioId, householdId: $householdId, status: $status) {
325
+ items {
326
+ id portfolioId householdId status driftPct rationale trades proposedById approvedById
327
+ executedAt createdAt updatedAt workspaceId
328
+ }
329
+ pageInfo { cursor hasMore }
314
330
  }
315
331
  }
316
332
  `,st=`
@@ -337,4 +353,4 @@ import {a,b,h as h$1,p as p$1,g,i,d as d$1}from'../../chunk-W4JZR7RJ.js';import
337
353
  query BrainyrichHealth {
338
354
  braHealth
339
355
  }
340
- `;function h(c,i){try{return JSON.parse(i)}catch{throw new o(`--${c} must be valid JSON`)}}function p(c){let i=Number.parseInt(c,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${c}"`);return i}function d(c){let i=Number.parseFloat(c);if(Number.isNaN(i))throw new o(`Expected a number but got "${c}"`);return i}function I(c){return c.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function lt(c){let i$1=c.command("households").description("Brainyrich advisory households");i$1.command("list").description("List households").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(O,{status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});h$1(o,t.braListHouseholds.items,{headers:["ID","Name","Status","Risk","AUM","Currency"],rows:t.braListHouseholds.items.map(n=>[p$1(n.id,12),n.name,n.status??"-",n.riskProfile??"-",n.aum!=null?String(n.aum):"-",n.currency??"-"])});}catch(t){g(t);}}),i$1.command("get").description("Get a household by id").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(C,{id:o$1});if(!n.braHousehold)throw new o(`Household ${o$1} not found`);h$1(t,n.braHousehold);}catch(n){g(n);}}),i$1.command("create").description("Create a household").requiredOption("--name <name>","Household name").option("--advisor <id>","Advisor user ID").option("--currency <c>","Currency code").option("--risk-profile <r>","CONSERVATIVE|MODERATE|BALANCED|GROWTH|AGGRESSIVE").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--primary-contact-name <s>","Primary contact name").option("--primary-contact-email <s>","Primary contact email").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name};o.advisor&&(t.advisorId=o.advisor),o.currency&&(t.currency=o.currency),o.riskProfile&&(t.riskProfile=o.riskProfile.toUpperCase()),o.status&&(t.status=o.status.toUpperCase()),o.primaryContactName&&(t.primaryContactName=o.primaryContactName),o.primaryContactEmail&&(t.primaryContactEmail=o.primaryContactEmail),o.notes&&(t.notes=o.notes),o.tags&&(t.tags=I(o.tags));let n=await b(E,{input:t});i(`Household created: ${n.braCreateHousehold.name}`),h$1(o,n.braCreateHousehold);}catch(t){g(t);}}),i$1.command("update").description("Update a household").argument("<id>","Household ID").option("--name <name>","Household name").option("--aum <n>","Assets under management",d).option("--currency <c>","Currency code").option("--risk-profile <r>","CONSERVATIVE|MODERATE|BALANCED|GROWTH|AGGRESSIVE").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--primary-contact-name <s>","Primary contact name").option("--primary-contact-email <s>","Primary contact email").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.aum!==void 0&&(n.aum=t.aum),t.currency&&(n.currency=t.currency),t.riskProfile&&(n.riskProfile=t.riskProfile.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),t.primaryContactName!==void 0&&(n.primaryContactName=t.primaryContactName),t.primaryContactEmail!==void 0&&(n.primaryContactEmail=t.primaryContactEmail),t.notes!==void 0&&(n.notes=t.notes),t.tags&&(n.tags=I(t.tags)),!Object.keys(n).length)throw new o("No updates specified");let m=await b(T,{id:o$1,input:n});i("Household updated"),h$1(t,m.braUpdateHousehold);}catch(n){g(n);}}),i$1.command("archive").description("Archive a household").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(P,{id:o});i(`Household archived: ${n.braArchiveHousehold}`),h$1(t,{archived:n.braArchiveHousehold});}catch(n){g(n);}});}function pt(c){let i$1=c.command("accounts").description("Brainyrich financial accounts");i$1.command("list").description("List accounts").option("--household <id>","Filter by household ID").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(R,{householdId:o.household,status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});h$1(o,t.braListAccounts.items,{headers:["ID","Name","Type","Status","Cash","Currency"],rows:t.braListAccounts.items.map(n=>[p$1(n.id,12),n.name,n.type??"-",n.status??"-",n.cashBalance!=null?String(n.cashBalance):"-",n.currency??"-"])});}catch(t){g(t);}}),i$1.command("get").description("Get an account by id").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(D,{id:o$1});if(!n.braAccount)throw new o(`Account ${o$1} not found`);h$1(t,n.braAccount);}catch(n){g(n);}}),i$1.command("create").description("Create an account").requiredOption("--name <name>","Account name").option("--owner <id>","Owner user ID").option("--household <id>","Household ID").option("--type <t>","BANK|BROKERAGE|RETIREMENT|CRYPTO|REAL_ESTATE|LIABILITY|CASH|ALTERNATIVE").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--currency <c>","Currency code").option("--cash-balance <n>","Cash balance",d).option("--institution <s>","Institution name").option("--account-mask <s>","Account mask").option("--manual","Mark as manually-tracked").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name};o.owner&&(t.ownerId=o.owner),o.household&&(t.householdId=o.household),o.type&&(t.type=o.type.toUpperCase()),o.status&&(t.status=o.status.toUpperCase()),o.currency&&(t.currency=o.currency),o.cashBalance!==void 0&&(t.cashBalance=o.cashBalance),o.institution&&(t.institution=o.institution),o.accountMask&&(t.accountMask=o.accountMask),o.manual&&(t.isManual=!0);let n=await b(w,{input:t});i(`Account created: ${n.braCreateAccount.name}`),h$1(o,n.braCreateAccount);}catch(t){g(t);}}),i$1.command("update").description("Update an account").argument("<id>","Account ID").option("--name <name>","Account name").option("--household <id>","Household ID").option("--type <t>","BANK|BROKERAGE|RETIREMENT|CRYPTO|REAL_ESTATE|LIABILITY|CASH|ALTERNATIVE").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--currency <c>","Currency code").option("--cash-balance <n>","Cash balance",d).option("--institution <s>","Institution name").option("--account-mask <s>","Account mask").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.household&&(n.householdId=t.household),t.type&&(n.type=t.type.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),t.currency&&(n.currency=t.currency),t.cashBalance!==void 0&&(n.cashBalance=t.cashBalance),t.institution!==void 0&&(n.institution=t.institution),t.accountMask!==void 0&&(n.accountMask=t.accountMask),!Object.keys(n).length)throw new o("No updates specified");let m=await b(L,{id:o$1,input:n});i("Account updated"),h$1(t,m.braUpdateAccount);}catch(n){g(n);}}),i$1.command("archive").description("Archive an account").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(S,{id:o});i(`Account archived: ${n.braArchiveAccount}`),h$1(t,{archived:n.braArchiveAccount});}catch(n){g(n);}});}function mt(c){let i$1=c.command("holdings").description("Brainyrich account holdings");i$1.command("list").description("List holdings for an account or portfolio").option("--account <id>","Filter by account ID").option("--portfolio <id>","Filter by portfolio ID").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(N,{accountId:o.account,portfolioId:o.portfolio});h$1(o,t.braListHoldings,{headers:["ID","Symbol","Class","Qty","Last","Market Value"],rows:t.braListHoldings.map(n=>[p$1(n.id,12),n.symbol,n.assetClass??"-",n.quantity!=null?String(n.quantity):"-",n.lastPrice!=null?String(n.lastPrice):"-",n.marketValue!=null?String(n.marketValue):"-"])});}catch(t){g(t);}}),i$1.command("create").description("Create a holding").requiredOption("--account <id>","Account ID").requiredOption("--symbol <s>","Ticker symbol").option("--portfolio <id>","Portfolio ID").option("--name <s>","Display name").option("--asset-class <c>","EQUITY|FIXED_INCOME|CASH|REAL_ESTATE|COMMODITY|CRYPTO|ALTERNATIVE").option("--quantity <n>","Quantity",d).option("--cost-basis <n>","Cost basis",d).option("--last-price <n>","Last price",d).option("--currency <c>","Currency code").option("--as-of <iso>","As-of date (ISO)").option("-f, --format <format>","Output format").action(async o=>{try{let t={accountId:o.account,symbol:o.symbol};o.portfolio&&(t.portfolioId=o.portfolio),o.name&&(t.name=o.name),o.assetClass&&(t.assetClass=o.assetClass.toUpperCase()),o.quantity!==void 0&&(t.quantity=o.quantity),o.costBasis!==void 0&&(t.costBasis=o.costBasis),o.lastPrice!==void 0&&(t.lastPrice=o.lastPrice),o.currency&&(t.currency=o.currency),o.asOf&&(t.asOf=o.asOf);let n=await b(H,{input:t});i(`Holding created: ${n.braCreateHolding.symbol}`),h$1(o,n.braCreateHolding);}catch(t){g(t);}}),i$1.command("update").description("Update a holding").argument("<id>","Holding ID").option("--name <s>","Display name").option("--asset-class <c>","EQUITY|FIXED_INCOME|CASH|REAL_ESTATE|COMMODITY|CRYPTO|ALTERNATIVE").option("--quantity <n>","Quantity",d).option("--cost-basis <n>","Cost basis",d).option("--last-price <n>","Last price",d).option("--portfolio <id>","Portfolio ID").option("--as-of <iso>","As-of date (ISO)").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name!==void 0&&(n.name=t.name),t.assetClass&&(n.assetClass=t.assetClass.toUpperCase()),t.quantity!==void 0&&(n.quantity=t.quantity),t.costBasis!==void 0&&(n.costBasis=t.costBasis),t.lastPrice!==void 0&&(n.lastPrice=t.lastPrice),t.portfolio&&(n.portfolioId=t.portfolio),t.asOf&&(n.asOf=t.asOf),!Object.keys(n).length)throw new o("No updates specified");let m=await b(G,{id:o$1,input:n});i("Holding updated"),h$1(t,m.braUpdateHolding);}catch(n){g(n);}}),i$1.command("delete").description("Delete a holding").argument("<id>","Holding ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b($,{id:o});i(`Holding deleted: ${n.braDeleteHolding}`),h$1(t,{deleted:n.braDeleteHolding});}catch(n){g(n);}});}function ft(c){let i$1=c.command("portfolios").description("Brainyrich portfolios");i$1.command("list").description("List portfolios").option("--household <id>","Filter by household ID").option("--status <s>","DRAFT|ACTIVE|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(B,{householdId:o.household,status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});h$1(o,t.braListPortfolios.items,{headers:["ID","Name","Status","Currency","Drift %"],rows:t.braListPortfolios.items.map(n=>[p$1(n.id,12),n.name,n.status??"-",n.baseCurrency??"-",n.driftThresholdPct!=null?String(n.driftThresholdPct):"-"])});}catch(t){g(t);}}),i$1.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(k,{id:o$1});if(!n.braPortfolio)throw new o(`Portfolio ${o$1} not found`);h$1(t,n.braPortfolio);}catch(n){g(n);}}),i$1.command("create").description("Create a portfolio").requiredOption("--name <name>","Portfolio name").option("--owner <id>","Owner user ID").option("--household <id>","Household ID").option("--description <s>","Description").option("--base-currency <c>","Base currency code").option("--drift-threshold-pct <n>","Drift threshold %",d).option("--model-portfolio <id>","Model portfolio ID").option("--target-allocation <json>","Target allocation JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name};o.owner&&(t.ownerId=o.owner),o.household&&(t.householdId=o.household),o.description&&(t.description=o.description),o.baseCurrency&&(t.baseCurrency=o.baseCurrency),o.driftThresholdPct!==void 0&&(t.driftThresholdPct=o.driftThresholdPct),o.modelPortfolio&&(t.modelPortfolioId=o.modelPortfolio),o.targetAllocation&&(t.targetAllocation=h("target-allocation",o.targetAllocation)),o.tags&&(t.tags=I(o.tags));let n=await b(U,{input:t});i(`Portfolio created: ${n.braCreatePortfolio.name}`),h$1(o,n.braCreatePortfolio);}catch(t){g(t);}}),i$1.command("update").description("Update a portfolio").argument("<id>","Portfolio ID").option("--name <name>","Portfolio name").option("--description <s>","Description").option("--status <s>","DRAFT|ACTIVE|ARCHIVED").option("--base-currency <c>","Base currency code").option("--drift-threshold-pct <n>","Drift threshold %",d).option("--model-portfolio <id>","Model portfolio ID").option("--target-allocation <json>","Target allocation JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.status&&(n.status=t.status.toUpperCase()),t.baseCurrency&&(n.baseCurrency=t.baseCurrency),t.driftThresholdPct!==void 0&&(n.driftThresholdPct=t.driftThresholdPct),t.modelPortfolio&&(n.modelPortfolioId=t.modelPortfolio),t.targetAllocation&&(n.targetAllocation=h("target-allocation",t.targetAllocation)),t.tags&&(n.tags=I(t.tags)),!Object.keys(n).length)throw new o("No updates specified");let m=await b(_,{id:o$1,input:n});i("Portfolio updated"),h$1(t,m.braUpdatePortfolio);}catch(n){g(n);}}),i$1.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(v,{id:o});i(`Portfolio archived: ${n.braArchivePortfolio}`),h$1(t,{archived:n.braArchivePortfolio});}catch(n){g(n);}});}function gt(c){let i$1=c.command("model-portfolios").description("Brainyrich model portfolios");i$1.command("list").description("List model portfolios").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(x);h$1(o,t.braListModelPortfolios,{headers:["ID","Name","Risk","Currency","Active"],rows:t.braListModelPortfolios.map(n=>[p$1(n.id,12),n.name,n.riskProfile??"-",n.baseCurrency??"-",n.isActive?"yes":"no"])});}catch(t){g(t);}}),i$1.command("get").description("Get a model portfolio by id").argument("<id>","Model portfolio ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(M,{id:o$1});if(!n.braModelPortfolio)throw new o(`Model portfolio ${o$1} not found`);h$1(t,n.braModelPortfolio);}catch(n){g(n);}}),i$1.command("create").description("Create a model portfolio").requiredOption("--name <name>","Model portfolio name").option("--description <s>","Description").option("--base-currency <c>","Base currency code").option("--risk-profile <r>","CONSERVATIVE|MODERATE|BALANCED|GROWTH|AGGRESSIVE").option("--allocations <json>","Allocations JSON array: [{ assetClass, targetPct }]").option("-f, --format <format>","Output format").action(async o$1=>{try{let t={name:o$1.name};if(o$1.description&&(t.description=o$1.description),o$1.baseCurrency&&(t.baseCurrency=o$1.baseCurrency),o$1.riskProfile&&(t.riskProfile=o$1.riskProfile.toUpperCase()),o$1.allocations){let m=h("allocations",o$1.allocations);if(!Array.isArray(m))throw new o("--allocations must be a JSON array");t.allocations=m;}let n=await b(F,{input:t});i(`Model portfolio created: ${n.braCreateModelPortfolio.name}`),h$1(o$1,n.braCreateModelPortfolio);}catch(t){g(t);}});}function yt(c){let i$1=c.command("goals").description("Brainyrich financial goals");i$1.command("list").description("List goals").option("--household <id>","Filter by household ID").option("--status <s>","ACTIVE|ON_HOLD|ACHIEVED|ABANDONED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(j,{householdId:o.household,status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});h$1(o,t.braListGoals.items,{headers:["ID","Name","Type","Status","Target","Projection"],rows:t.braListGoals.items.map(n=>[p$1(n.id,12),n.name,n.type??"-",n.status??"-",n.targetAmount!=null?String(n.targetAmount):"-",n.projection??"-"])});}catch(t){g(t);}}),i$1.command("get").description("Get a goal by id").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(q,{id:o$1});if(!n.braGoal)throw new o(`Goal ${o$1} not found`);h$1(t,n.braGoal);}catch(n){g(n);}}),i$1.command("create").description("Create a goal").requiredOption("--name <name>","Goal name").requiredOption("--target-amount <n>","Target amount",d).requiredOption("--target-date <iso>","Target date (ISO)").option("--owner <id>","Owner user ID").option("--household <id>","Household ID").option("--type <t>","RETIREMENT|EDUCATION|HOME|EMERGENCY_FUND|MAJOR_PURCHASE|WEALTH_GROWTH|CUSTOM").option("--currency <c>","Currency code").option("--monthly-contribution <n>","Monthly contribution",d).option("--priority <n>","Priority",p).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name,targetAmount:o.targetAmount,targetDate:o.targetDate};o.owner&&(t.ownerId=o.owner),o.household&&(t.householdId=o.household),o.type&&(t.type=o.type.toUpperCase()),o.currency&&(t.currency=o.currency),o.monthlyContribution!==void 0&&(t.monthlyContribution=o.monthlyContribution),o.priority!==void 0&&(t.priority=o.priority),o.notes&&(t.notes=o.notes),o.tags&&(t.tags=I(o.tags));let n=await b(W,{input:t});i(`Goal created: ${n.braCreateGoal.name}`),h$1(o,n.braCreateGoal);}catch(t){g(t);}}),i$1.command("update").description("Update a goal").argument("<id>","Goal ID").option("--name <name>","Goal name").option("--type <t>","RETIREMENT|EDUCATION|HOME|EMERGENCY_FUND|MAJOR_PURCHASE|WEALTH_GROWTH|CUSTOM").option("--status <s>","ACTIVE|ON_HOLD|ACHIEVED|ABANDONED").option("--currency <c>","Currency code").option("--target-amount <n>","Target amount",d).option("--target-date <iso>","Target date (ISO)").option("--monthly-contribution <n>","Monthly contribution",d).option("--priority <n>","Priority",p).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.type&&(n.type=t.type.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),t.currency&&(n.currency=t.currency),t.targetAmount!==void 0&&(n.targetAmount=t.targetAmount),t.targetDate&&(n.targetDate=t.targetDate),t.monthlyContribution!==void 0&&(n.monthlyContribution=t.monthlyContribution),t.priority!==void 0&&(n.priority=t.priority),t.notes!==void 0&&(n.notes=t.notes),t.tags&&(n.tags=I(t.tags)),!Object.keys(n).length)throw new o("No updates specified");let m=await b(J,{id:o$1,input:n});i("Goal updated"),h$1(t,m.braUpdateGoal);}catch(n){g(n);}}),i$1.command("archive").description("Archive a goal").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(Y,{id:o});i(`Goal archived: ${n.braArchiveGoal}`),h$1(t,{archived:n.braArchiveGoal});}catch(n){g(n);}}),i$1.command("recalc-projection").description("Recompute a goal's projection from a funded amount").argument("<id>","Goal ID").requiredOption("--funded-amount <n>","Funded amount",d).option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(K,{id:o,fundedAmount:t.fundedAmount});i(`Projection: ${n.braRecalcGoalProjection.projection??"-"}`),h$1(t,n.braRecalcGoalProjection);}catch(n){g(n);}}),i$1.command("list-fundings").description("List fundings linked to a goal").requiredOption("--goal <id>","Goal ID").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(V,{goalId:o.goal});h$1(o,t.braListGoalFundings,{headers:["ID","Account","Allocation %","Fixed"],rows:t.braListGoalFundings.map(n=>[p$1(n.id,12),p$1(n.accountId,12),n.allocationPct!=null?String(n.allocationPct):"-",n.fixedAmount!=null?String(n.fixedAmount):"-"])});}catch(t){g(t);}}),i$1.command("link-funding").description("Link an account funding to a goal").requiredOption("--goal <id>","Goal ID").requiredOption("--account <id>","Account ID").option("--allocation-pct <n>","Allocation percentage",d).option("--fixed-amount <n>","Fixed amount",d).option("-f, --format <format>","Output format").action(async o=>{try{let t={goalId:o.goal,accountId:o.account};o.allocationPct!==void 0&&(t.allocationPct=o.allocationPct),o.fixedAmount!==void 0&&(t.fixedAmount=o.fixedAmount);let n=await b(Q,{input:t});i("Funding linked"),h$1(o,n.braLinkGoalFunding);}catch(t){g(t);}}),i$1.command("unlink-funding").description("Unlink a funding from a goal").argument("<id>","Funding ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(z,{id:o});i(`Funding unlinked: ${n.braUnlinkGoalFunding}`),h$1(t,{unlinked:n.braUnlinkGoalFunding});}catch(n){g(n);}});}function ht(c){let i$1=c.command("transactions").description("Brainyrich account transactions");i$1.command("list").description("List transactions").option("--account <id>","Filter by account ID").option("--type <t>","BUY|SELL|DIVIDEND|INTEREST|DEPOSIT|WITHDRAWAL|FEE|TRANSFER").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(X,{accountId:o.account,type:o.type?o.type.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});h$1(o,t.braListTransactions.items,{headers:["ID","Type","Symbol","Qty","Amount","Trade Date"],rows:t.braListTransactions.items.map(n=>[p$1(n.id,12),n.type,n.symbol??"-",n.quantity!=null?String(n.quantity):"-",n.amount!=null?String(n.amount):"-",n.tradeDate??"-"])});}catch(t){g(t);}}),i$1.command("record").description("Record a transaction").requiredOption("--account <id>","Account ID").requiredOption("--type <t>","BUY|SELL|DIVIDEND|INTEREST|DEPOSIT|WITHDRAWAL|FEE|TRANSFER").requiredOption("--trade-date <iso>","Trade date (ISO)").option("--holding <id>","Holding ID").option("--symbol <s>","Ticker symbol").option("--quantity <n>","Quantity",d).option("--price <n>","Price",d).option("--amount <n>","Amount",d).option("--fee <n>","Fee",d).option("--currency <c>","Currency code").option("--settle-date <iso>","Settlement date (ISO)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async o=>{try{let t={accountId:o.account,type:o.type.toUpperCase(),tradeDate:o.tradeDate};o.holding&&(t.holdingId=o.holding),o.symbol&&(t.symbol=o.symbol),o.quantity!==void 0&&(t.quantity=o.quantity),o.price!==void 0&&(t.price=o.price),o.amount!==void 0&&(t.amount=o.amount),o.fee!==void 0&&(t.fee=o.fee),o.currency&&(t.currency=o.currency),o.settleDate&&(t.settleDate=o.settleDate),o.notes&&(t.notes=o.notes);let n=await b(Z,{input:t});i(`Transaction recorded: ${n.braRecordTransaction.type}`),h$1(o,n.braRecordTransaction);}catch(t){g(t);}});}function It(c){let i$1=c.command("insights").description("Brainyrich advisory insights");i$1.command("list").description("List insights").option("--status <s>","OPEN|ACKNOWLEDGED|RESOLVED|DISMISSED").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--subject-id <id>","Filter by subject ID").option("--subject-type <t>","Filter by subject type").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(ot,{status:o.status?o.status.toUpperCase():void 0,severity:o.severity?o.severity.toUpperCase():void 0,subjectId:o.subjectId,subjectType:o.subjectType,pagination:{limit:o.limit,offset:o.offset}});h$1(o,t.braListInsights.items,{headers:["ID","Title","Type","Severity","Status"],rows:t.braListInsights.items.map(n=>[p$1(n.id,12),n.title,n.type,n.severity??"-",n.status??"-"])});}catch(t){g(t);}}),i$1.command("get").description("Get an insight by id").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(tt,{id:o$1});if(!n.braInsight)throw new o(`Insight ${o$1} not found`);h$1(t,n.braInsight);}catch(n){g(n);}}),i$1.command("create").description("Create an insight").requiredOption("--title <t>","Title").requiredOption("--type <t>","DRIFT|CASH_DRAG|CONCENTRATION_RISK|FEE_ANOMALY|TAX_OPPORTUNITY|GOAL_AT_RISK|REBALANCE_DUE").requiredOption("--subject-id <id>","Subject ID").requiredOption("--subject-type <t>","Subject type").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--detail <s>","Detail").option("--owner <id>","Owner user ID").option("--metrics <json>","Metrics JSON").option("-f, --format <format>","Output format").action(async o=>{try{let t={title:o.title,type:o.type.toUpperCase(),subjectId:o.subjectId,subjectType:o.subjectType};o.severity&&(t.severity=o.severity.toUpperCase()),o.detail&&(t.detail=o.detail),o.owner&&(t.ownerId=o.owner),o.metrics&&(t.metrics=h("metrics",o.metrics));let n=await b(nt,{input:t});i(`Insight created: ${n.braCreateInsight.title}`),h$1(o,n.braCreateInsight);}catch(t){g(t);}}),i$1.command("acknowledge").description("Acknowledge an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(it,{id:o});i(`Insight acknowledged: ${n.braAcknowledgeInsight.status??"-"}`),h$1(t,n.braAcknowledgeInsight);}catch(n){g(n);}}),i$1.command("dismiss").description("Dismiss an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(rt,{id:o});i(`Insight dismissed: ${n.braDismissInsight.status??"-"}`),h$1(t,n.braDismissInsight);}catch(n){g(n);}}),i$1.command("resolve").description("Resolve an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(at,{id:o});i(`Insight resolved: ${n.braResolveInsight.status??"-"}`),h$1(t,n.braResolveInsight);}catch(n){g(n);}});}function bt(c){let i$1=c.command("rebalances").description("Brainyrich rebalance proposals");i$1.command("list").description("List rebalance proposals").option("--portfolio <id>","Filter by portfolio ID").option("--household <id>","Filter by household ID").option("--status <s>","DRAFT|PROPOSED|APPROVED|REJECTED|EXECUTED|CANCELLED").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(et,{portfolioId:o.portfolio,householdId:o.household,status:o.status?o.status.toUpperCase():void 0});h$1(o,t.braListRebalanceProposals,{headers:["ID","Portfolio","Status","Drift %","Rationale"],rows:t.braListRebalanceProposals.map(n=>[p$1(n.id,12),p$1(n.portfolioId,12),n.status,n.driftPct!=null?String(n.driftPct):"-",p$1(n.rationale??"-",30)])});}catch(t){g(t);}}),i$1.command("create").description("Create a rebalance proposal").requiredOption("--portfolio <id>","Portfolio ID").option("--household <id>","Household ID").option("--drift-pct <n>","Drift percentage",d).option("--rationale <s>","Rationale").option("--trades <json>","Trades JSON").option("-f, --format <format>","Output format").action(async o=>{try{let t={portfolioId:o.portfolio};o.household&&(t.householdId=o.household),o.driftPct!==void 0&&(t.driftPct=o.driftPct),o.rationale&&(t.rationale=o.rationale),o.trades&&(t.trades=h("trades",o.trades));let n=await b(st,{input:t});i(`Rebalance proposal created: ${n.braCreateRebalanceProposal.id}`),h$1(o,n.braCreateRebalanceProposal);}catch(t){g(t);}}),i$1.command("transition").description("Advance a rebalance proposal through its review lifecycle").argument("<id>","Proposal ID").requiredOption("--status <s>","DRAFT|PROPOSED|APPROVED|REJECTED|EXECUTED|CANCELLED").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(ct,{id:o,status:t.status.toUpperCase()});i(`Proposal status set to ${n.braTransitionRebalanceProposal.status}`),h$1(t,n.braTransitionRebalanceProposal);}catch(n){g(n);}});}function At(c){c.command("analytics").description("Brainyrich net-worth analytics & health").command("net-worth").description("Net-worth summary (totals + breakdown by asset class)").option("--owner <id>","Owner user ID (defaults to the calling actor)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(dt,{ownerId:o.owner});h$1(o,t.braNetWorthSummary);}catch(t){g(t);}}),c.command("health").description("Brainyrich service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await d$1(ut);i(t.braHealth),h$1(o,{health:t.braHealth});}catch(t){g(t);}});}var Ct={id:"brainyrich",version:"1.0.0",displayName:"Brainyrich",dependsOn:["auth","workspaces"],register(c,i){a(i);let o=c.command("brainyrich").description("Brainyrich wealth-management platform");lt(o),pt(o),mt(o),ft(o),gt(o),yt(o),ht(o),It(o),bt(o),At(o);}},yo=Ct;export{yo as default};
356
+ `;function y(c,r){try{return JSON.parse(r)}catch{throw new o(`--${c} must be valid JSON`)}}function p(c){let r=Number.parseInt(c,10);if(Number.isNaN(r))throw new o(`Expected an integer but got "${c}"`);return r}function d(c){let r=Number.parseFloat(c);if(Number.isNaN(r))throw new o(`Expected a number but got "${c}"`);return r}function I(c){return c.split(",").map(r=>r.trim()).filter(r=>r.length>0)}function lt(c){let r$1=c.command("households").description("Brainyrich advisory households");r$1.command("list").description("List households").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(O,{status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});i(o,t.braListHouseholds.items,{headers:["ID","Name","Status","Risk","AUM","Currency"],rows:t.braListHouseholds.items.map(n=>[r(n.id,12),n.name,n.status??"-",n.riskProfile??"-",n.aum!=null?String(n.aum):"-",n.currency??"-"])});}catch(t){h(t);}}),r$1.command("get").description("Get a household by id").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(C,{id:o$1});if(!n.braHousehold)throw new o(`Household ${o$1} not found`);i(t,n.braHousehold);}catch(n){h(n);}}),r$1.command("create").description("Create a household").requiredOption("--name <name>","Household name").option("--advisor <id>","Advisor user ID").option("--currency <c>","Currency code").option("--risk-profile <r>","CONSERVATIVE|MODERATE|BALANCED|GROWTH|AGGRESSIVE").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--primary-contact-name <s>","Primary contact name").option("--primary-contact-email <s>","Primary contact email").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name};o.advisor&&(t.advisorId=o.advisor),o.currency&&(t.currency=o.currency),o.riskProfile&&(t.riskProfile=o.riskProfile.toUpperCase()),o.status&&(t.status=o.status.toUpperCase()),o.primaryContactName&&(t.primaryContactName=o.primaryContactName),o.primaryContactEmail&&(t.primaryContactEmail=o.primaryContactEmail),o.notes&&(t.notes=o.notes),o.tags&&(t.tags=I(o.tags));let n=await b(E,{input:t});k$1(`Household created: ${n.braCreateHousehold.name}`),i(o,n.braCreateHousehold);}catch(t){h(t);}}),r$1.command("update").description("Update a household").argument("<id>","Household ID").option("--name <name>","Household name").option("--aum <n>","Assets under management",d).option("--currency <c>","Currency code").option("--risk-profile <r>","CONSERVATIVE|MODERATE|BALANCED|GROWTH|AGGRESSIVE").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--primary-contact-name <s>","Primary contact name").option("--primary-contact-email <s>","Primary contact email").option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.aum!==void 0&&(n.aum=t.aum),t.currency&&(n.currency=t.currency),t.riskProfile&&(n.riskProfile=t.riskProfile.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),t.primaryContactName!==void 0&&(n.primaryContactName=t.primaryContactName),t.primaryContactEmail!==void 0&&(n.primaryContactEmail=t.primaryContactEmail),t.notes!==void 0&&(n.notes=t.notes),t.tags&&(n.tags=I(t.tags)),!Object.keys(n).length)throw new o("No updates specified");let m=await b(T,{id:o$1,input:n});k$1("Household updated"),i(t,m.braUpdateHousehold);}catch(n){h(n);}}),r$1.command("archive").description("Archive a household").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(P,{id:o});k$1(`Household archived: ${n.braArchiveHousehold}`),i(t,{archived:n.braArchiveHousehold});}catch(n){h(n);}});}function pt(c){let r$1=c.command("accounts").description("Brainyrich financial accounts");r$1.command("list").description("List accounts").option("--household <id>","Filter by household ID").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(R,{householdId:o.household,status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});i(o,t.braListAccounts.items,{headers:["ID","Name","Type","Status","Cash","Currency"],rows:t.braListAccounts.items.map(n=>[r(n.id,12),n.name,n.type??"-",n.status??"-",n.cashBalance!=null?String(n.cashBalance):"-",n.currency??"-"])});}catch(t){h(t);}}),r$1.command("get").description("Get an account by id").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(D,{id:o$1});if(!n.braAccount)throw new o(`Account ${o$1} not found`);i(t,n.braAccount);}catch(n){h(n);}}),r$1.command("create").description("Create an account").requiredOption("--name <name>","Account name").option("--owner <id>","Owner user ID").option("--household <id>","Household ID").option("--type <t>","BANK|BROKERAGE|RETIREMENT|CRYPTO|REAL_ESTATE|LIABILITY|CASH|ALTERNATIVE").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--currency <c>","Currency code").option("--cash-balance <n>","Cash balance",d).option("--institution <s>","Institution name").option("--account-mask <s>","Account mask").option("--manual","Mark as manually-tracked").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name};o.owner&&(t.ownerId=o.owner),o.household&&(t.householdId=o.household),o.type&&(t.type=o.type.toUpperCase()),o.status&&(t.status=o.status.toUpperCase()),o.currency&&(t.currency=o.currency),o.cashBalance!==void 0&&(t.cashBalance=o.cashBalance),o.institution&&(t.institution=o.institution),o.accountMask&&(t.accountMask=o.accountMask),o.manual&&(t.isManual=!0);let n=await b(w,{input:t});k$1(`Account created: ${n.braCreateAccount.name}`),i(o,n.braCreateAccount);}catch(t){h(t);}}),r$1.command("update").description("Update an account").argument("<id>","Account ID").option("--name <name>","Account name").option("--household <id>","Household ID").option("--type <t>","BANK|BROKERAGE|RETIREMENT|CRYPTO|REAL_ESTATE|LIABILITY|CASH|ALTERNATIVE").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--currency <c>","Currency code").option("--cash-balance <n>","Cash balance",d).option("--institution <s>","Institution name").option("--account-mask <s>","Account mask").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.household&&(n.householdId=t.household),t.type&&(n.type=t.type.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),t.currency&&(n.currency=t.currency),t.cashBalance!==void 0&&(n.cashBalance=t.cashBalance),t.institution!==void 0&&(n.institution=t.institution),t.accountMask!==void 0&&(n.accountMask=t.accountMask),!Object.keys(n).length)throw new o("No updates specified");let m=await b(L,{id:o$1,input:n});k$1("Account updated"),i(t,m.braUpdateAccount);}catch(n){h(n);}}),r$1.command("archive").description("Archive an account").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(S,{id:o});k$1(`Account archived: ${n.braArchiveAccount}`),i(t,{archived:n.braArchiveAccount});}catch(n){h(n);}});}function mt(c){let r$1=c.command("holdings").description("Brainyrich account holdings");r$1.command("list").description("List holdings for an account or portfolio").option("--account <id>","Filter by account ID").option("--portfolio <id>","Filter by portfolio ID").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(N,{accountId:o.account,portfolioId:o.portfolio});i(o,t.braListHoldings.items,{headers:["ID","Symbol","Class","Qty","Last","Market Value"],rows:t.braListHoldings.items.map(n=>[r(n.id,12),n.symbol,n.assetClass??"-",n.quantity!=null?String(n.quantity):"-",n.lastPrice!=null?String(n.lastPrice):"-",n.marketValue!=null?String(n.marketValue):"-"])});}catch(t){h(t);}}),r$1.command("create").description("Create a holding").requiredOption("--account <id>","Account ID").requiredOption("--symbol <s>","Ticker symbol").option("--portfolio <id>","Portfolio ID").option("--name <s>","Display name").option("--asset-class <c>","EQUITY|FIXED_INCOME|CASH|REAL_ESTATE|COMMODITY|CRYPTO|ALTERNATIVE").option("--quantity <n>","Quantity",d).option("--cost-basis <n>","Cost basis",d).option("--last-price <n>","Last price",d).option("--currency <c>","Currency code").option("--as-of <iso>","As-of date (ISO)").option("-f, --format <format>","Output format").action(async o=>{try{let t={accountId:o.account,symbol:o.symbol};o.portfolio&&(t.portfolioId=o.portfolio),o.name&&(t.name=o.name),o.assetClass&&(t.assetClass=o.assetClass.toUpperCase()),o.quantity!==void 0&&(t.quantity=o.quantity),o.costBasis!==void 0&&(t.costBasis=o.costBasis),o.lastPrice!==void 0&&(t.lastPrice=o.lastPrice),o.currency&&(t.currency=o.currency),o.asOf&&(t.asOf=o.asOf);let n=await b(H,{input:t});k$1(`Holding created: ${n.braCreateHolding.symbol}`),i(o,n.braCreateHolding);}catch(t){h(t);}}),r$1.command("update").description("Update a holding").argument("<id>","Holding ID").option("--name <s>","Display name").option("--asset-class <c>","EQUITY|FIXED_INCOME|CASH|REAL_ESTATE|COMMODITY|CRYPTO|ALTERNATIVE").option("--quantity <n>","Quantity",d).option("--cost-basis <n>","Cost basis",d).option("--last-price <n>","Last price",d).option("--portfolio <id>","Portfolio ID").option("--as-of <iso>","As-of date (ISO)").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name!==void 0&&(n.name=t.name),t.assetClass&&(n.assetClass=t.assetClass.toUpperCase()),t.quantity!==void 0&&(n.quantity=t.quantity),t.costBasis!==void 0&&(n.costBasis=t.costBasis),t.lastPrice!==void 0&&(n.lastPrice=t.lastPrice),t.portfolio&&(n.portfolioId=t.portfolio),t.asOf&&(n.asOf=t.asOf),!Object.keys(n).length)throw new o("No updates specified");let m=await b(G,{id:o$1,input:n});k$1("Holding updated"),i(t,m.braUpdateHolding);}catch(n){h(n);}}),r$1.command("delete").description("Delete a holding").argument("<id>","Holding ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b($,{id:o});k$1(`Holding deleted: ${n.braDeleteHolding}`),i(t,{deleted:n.braDeleteHolding});}catch(n){h(n);}});}function ft(c){let r$1=c.command("portfolios").description("Brainyrich portfolios");r$1.command("list").description("List portfolios").option("--household <id>","Filter by household ID").option("--status <s>","DRAFT|ACTIVE|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(B,{householdId:o.household,status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});i(o,t.braListPortfolios.items,{headers:["ID","Name","Status","Currency","Drift %"],rows:t.braListPortfolios.items.map(n=>[r(n.id,12),n.name,n.status??"-",n.baseCurrency??"-",n.driftThresholdPct!=null?String(n.driftThresholdPct):"-"])});}catch(t){h(t);}}),r$1.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(k,{id:o$1});if(!n.braPortfolio)throw new o(`Portfolio ${o$1} not found`);i(t,n.braPortfolio);}catch(n){h(n);}}),r$1.command("create").description("Create a portfolio").requiredOption("--name <name>","Portfolio name").option("--owner <id>","Owner user ID").option("--household <id>","Household ID").option("--description <s>","Description").option("--base-currency <c>","Base currency code").option("--drift-threshold-pct <n>","Drift threshold %",d).option("--model-portfolio <id>","Model portfolio ID").option("--target-allocation <json>","Target allocation JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name};o.owner&&(t.ownerId=o.owner),o.household&&(t.householdId=o.household),o.description&&(t.description=o.description),o.baseCurrency&&(t.baseCurrency=o.baseCurrency),o.driftThresholdPct!==void 0&&(t.driftThresholdPct=o.driftThresholdPct),o.modelPortfolio&&(t.modelPortfolioId=o.modelPortfolio),o.targetAllocation&&(t.targetAllocation=y("target-allocation",o.targetAllocation)),o.tags&&(t.tags=I(o.tags));let n=await b(U,{input:t});k$1(`Portfolio created: ${n.braCreatePortfolio.name}`),i(o,n.braCreatePortfolio);}catch(t){h(t);}}),r$1.command("update").description("Update a portfolio").argument("<id>","Portfolio ID").option("--name <name>","Portfolio name").option("--description <s>","Description").option("--status <s>","DRAFT|ACTIVE|ARCHIVED").option("--base-currency <c>","Base currency code").option("--drift-threshold-pct <n>","Drift threshold %",d).option("--model-portfolio <id>","Model portfolio ID").option("--target-allocation <json>","Target allocation JSON").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.status&&(n.status=t.status.toUpperCase()),t.baseCurrency&&(n.baseCurrency=t.baseCurrency),t.driftThresholdPct!==void 0&&(n.driftThresholdPct=t.driftThresholdPct),t.modelPortfolio&&(n.modelPortfolioId=t.modelPortfolio),t.targetAllocation&&(n.targetAllocation=y("target-allocation",t.targetAllocation)),t.tags&&(n.tags=I(t.tags)),!Object.keys(n).length)throw new o("No updates specified");let m=await b(_,{id:o$1,input:n});k$1("Portfolio updated"),i(t,m.braUpdatePortfolio);}catch(n){h(n);}}),r$1.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(M,{id:o});k$1(`Portfolio archived: ${n.braArchivePortfolio}`),i(t,{archived:n.braArchivePortfolio});}catch(n){h(n);}});}function gt(c){let r$1=c.command("model-portfolios").description("Brainyrich model portfolios");r$1.command("list").description("List model portfolios").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(x);i(o,t.braListModelPortfolios.items,{headers:["ID","Name","Risk","Currency","Active"],rows:t.braListModelPortfolios.items.map(n=>[r(n.id,12),n.name,n.riskProfile??"-",n.baseCurrency??"-",n.isActive?"yes":"no"])});}catch(t){h(t);}}),r$1.command("get").description("Get a model portfolio by id").argument("<id>","Model portfolio ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(v,{id:o$1});if(!n.braModelPortfolio)throw new o(`Model portfolio ${o$1} not found`);i(t,n.braModelPortfolio);}catch(n){h(n);}}),r$1.command("create").description("Create a model portfolio").requiredOption("--name <name>","Model portfolio name").option("--description <s>","Description").option("--base-currency <c>","Base currency code").option("--risk-profile <r>","CONSERVATIVE|MODERATE|BALANCED|GROWTH|AGGRESSIVE").option("--allocations <json>","Allocations JSON array: [{ assetClass, targetPct }]").option("-f, --format <format>","Output format").action(async o$1=>{try{let t={name:o$1.name};if(o$1.description&&(t.description=o$1.description),o$1.baseCurrency&&(t.baseCurrency=o$1.baseCurrency),o$1.riskProfile&&(t.riskProfile=o$1.riskProfile.toUpperCase()),o$1.allocations){let m=y("allocations",o$1.allocations);if(!Array.isArray(m))throw new o("--allocations must be a JSON array");t.allocations=m;}let n=await b(F,{input:t});k$1(`Model portfolio created: ${n.braCreateModelPortfolio.name}`),i(o$1,n.braCreateModelPortfolio);}catch(t){h(t);}});}function ht(c){let r$1=c.command("goals").description("Brainyrich financial goals");r$1.command("list").description("List goals").option("--household <id>","Filter by household ID").option("--status <s>","ACTIVE|ON_HOLD|ACHIEVED|ABANDONED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(j,{householdId:o.household,status:o.status?o.status.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});i(o,t.braListGoals.items,{headers:["ID","Name","Type","Status","Target","Projection"],rows:t.braListGoals.items.map(n=>[r(n.id,12),n.name,n.type??"-",n.status??"-",n.targetAmount!=null?String(n.targetAmount):"-",n.projection??"-"])});}catch(t){h(t);}}),r$1.command("get").description("Get a goal by id").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(q,{id:o$1});if(!n.braGoal)throw new o(`Goal ${o$1} not found`);i(t,n.braGoal);}catch(n){h(n);}}),r$1.command("create").description("Create a goal").requiredOption("--name <name>","Goal name").requiredOption("--target-amount <n>","Target amount",d).requiredOption("--target-date <iso>","Target date (ISO)").option("--owner <id>","Owner user ID").option("--household <id>","Household ID").option("--type <t>","RETIREMENT|EDUCATION|HOME|EMERGENCY_FUND|MAJOR_PURCHASE|WEALTH_GROWTH|CUSTOM").option("--currency <c>","Currency code").option("--monthly-contribution <n>","Monthly contribution",d).option("--priority <n>","Priority",p).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async o=>{try{let t={name:o.name,targetAmount:o.targetAmount,targetDate:o.targetDate};o.owner&&(t.ownerId=o.owner),o.household&&(t.householdId=o.household),o.type&&(t.type=o.type.toUpperCase()),o.currency&&(t.currency=o.currency),o.monthlyContribution!==void 0&&(t.monthlyContribution=o.monthlyContribution),o.priority!==void 0&&(t.priority=o.priority),o.notes&&(t.notes=o.notes),o.tags&&(t.tags=I(o.tags));let n=await b(W,{input:t});k$1(`Goal created: ${n.braCreateGoal.name}`),i(o,n.braCreateGoal);}catch(t){h(t);}}),r$1.command("update").description("Update a goal").argument("<id>","Goal ID").option("--name <name>","Goal name").option("--type <t>","RETIREMENT|EDUCATION|HOME|EMERGENCY_FUND|MAJOR_PURCHASE|WEALTH_GROWTH|CUSTOM").option("--status <s>","ACTIVE|ON_HOLD|ACHIEVED|ABANDONED").option("--currency <c>","Currency code").option("--target-amount <n>","Target amount",d).option("--target-date <iso>","Target date (ISO)").option("--monthly-contribution <n>","Monthly contribution",d).option("--priority <n>","Priority",p).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n={};if(t.name&&(n.name=t.name),t.type&&(n.type=t.type.toUpperCase()),t.status&&(n.status=t.status.toUpperCase()),t.currency&&(n.currency=t.currency),t.targetAmount!==void 0&&(n.targetAmount=t.targetAmount),t.targetDate&&(n.targetDate=t.targetDate),t.monthlyContribution!==void 0&&(n.monthlyContribution=t.monthlyContribution),t.priority!==void 0&&(n.priority=t.priority),t.notes!==void 0&&(n.notes=t.notes),t.tags&&(n.tags=I(t.tags)),!Object.keys(n).length)throw new o("No updates specified");let m=await b(J,{id:o$1,input:n});k$1("Goal updated"),i(t,m.braUpdateGoal);}catch(n){h(n);}}),r$1.command("archive").description("Archive a goal").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(Y,{id:o});k$1(`Goal archived: ${n.braArchiveGoal}`),i(t,{archived:n.braArchiveGoal});}catch(n){h(n);}}),r$1.command("recalc-projection").description("Recompute a goal's projection from a funded amount").argument("<id>","Goal ID").requiredOption("--funded-amount <n>","Funded amount",d).option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(K,{id:o,fundedAmount:t.fundedAmount});k$1(`Projection: ${n.braRecalcGoalProjection.projection??"-"}`),i(t,n.braRecalcGoalProjection);}catch(n){h(n);}}),r$1.command("list-fundings").description("List fundings linked to a goal").requiredOption("--goal <id>","Goal ID").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(V,{goalId:o.goal});i(o,t.braListGoalFundings.items,{headers:["ID","Account","Allocation %","Fixed"],rows:t.braListGoalFundings.items.map(n=>[r(n.id,12),r(n.accountId,12),n.allocationPct!=null?String(n.allocationPct):"-",n.fixedAmount!=null?String(n.fixedAmount):"-"])});}catch(t){h(t);}}),r$1.command("link-funding").description("Link an account funding to a goal").requiredOption("--goal <id>","Goal ID").requiredOption("--account <id>","Account ID").option("--allocation-pct <n>","Allocation percentage",d).option("--fixed-amount <n>","Fixed amount",d).option("-f, --format <format>","Output format").action(async o=>{try{let t={goalId:o.goal,accountId:o.account};o.allocationPct!==void 0&&(t.allocationPct=o.allocationPct),o.fixedAmount!==void 0&&(t.fixedAmount=o.fixedAmount);let n=await b(Q,{input:t});k$1("Funding linked"),i(o,n.braLinkGoalFunding);}catch(t){h(t);}}),r$1.command("unlink-funding").description("Unlink a funding from a goal").argument("<id>","Funding ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(z,{id:o});k$1(`Funding unlinked: ${n.braUnlinkGoalFunding}`),i(t,{unlinked:n.braUnlinkGoalFunding});}catch(n){h(n);}});}function yt(c){let r$1=c.command("transactions").description("Brainyrich account transactions");r$1.command("list").description("List transactions").option("--account <id>","Filter by account ID").option("--type <t>","BUY|SELL|DIVIDEND|INTEREST|DEPOSIT|WITHDRAWAL|FEE|TRANSFER").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(X,{accountId:o.account,type:o.type?o.type.toUpperCase():void 0,pagination:{limit:o.limit,offset:o.offset}});i(o,t.braListTransactions.items,{headers:["ID","Type","Symbol","Qty","Amount","Trade Date"],rows:t.braListTransactions.items.map(n=>[r(n.id,12),n.type,n.symbol??"-",n.quantity!=null?String(n.quantity):"-",n.amount!=null?String(n.amount):"-",n.tradeDate??"-"])});}catch(t){h(t);}}),r$1.command("record").description("Record a transaction").requiredOption("--account <id>","Account ID").requiredOption("--type <t>","BUY|SELL|DIVIDEND|INTEREST|DEPOSIT|WITHDRAWAL|FEE|TRANSFER").requiredOption("--trade-date <iso>","Trade date (ISO)").option("--holding <id>","Holding ID").option("--symbol <s>","Ticker symbol").option("--quantity <n>","Quantity",d).option("--price <n>","Price",d).option("--amount <n>","Amount",d).option("--fee <n>","Fee",d).option("--currency <c>","Currency code").option("--settle-date <iso>","Settlement date (ISO)").option("--notes <s>","Notes").option("-f, --format <format>","Output format").action(async o=>{try{let t={accountId:o.account,type:o.type.toUpperCase(),tradeDate:o.tradeDate};o.holding&&(t.holdingId=o.holding),o.symbol&&(t.symbol=o.symbol),o.quantity!==void 0&&(t.quantity=o.quantity),o.price!==void 0&&(t.price=o.price),o.amount!==void 0&&(t.amount=o.amount),o.fee!==void 0&&(t.fee=o.fee),o.currency&&(t.currency=o.currency),o.settleDate&&(t.settleDate=o.settleDate),o.notes&&(t.notes=o.notes);let n=await b(Z,{input:t});k$1(`Transaction recorded: ${n.braRecordTransaction.type}`),i(o,n.braRecordTransaction);}catch(t){h(t);}});}function It(c){let r$1=c.command("insights").description("Brainyrich advisory insights");r$1.command("list").description("List insights").option("--status <s>","OPEN|ACKNOWLEDGED|RESOLVED|DISMISSED").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--subject-id <id>","Filter by subject ID").option("--subject-type <t>","Filter by subject type").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(ot,{status:o.status?o.status.toUpperCase():void 0,severity:o.severity?o.severity.toUpperCase():void 0,subjectId:o.subjectId,subjectType:o.subjectType,pagination:{limit:o.limit,offset:o.offset}});i(o,t.braListInsights.items,{headers:["ID","Title","Type","Severity","Status"],rows:t.braListInsights.items.map(n=>[r(n.id,12),n.title,n.type,n.severity??"-",n.status??"-"])});}catch(t){h(t);}}),r$1.command("get").description("Get an insight by id").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o$1,t)=>{try{let n=await b(tt,{id:o$1});if(!n.braInsight)throw new o(`Insight ${o$1} not found`);i(t,n.braInsight);}catch(n){h(n);}}),r$1.command("create").description("Create an insight").requiredOption("--title <t>","Title").requiredOption("--type <t>","DRIFT|CASH_DRAG|CONCENTRATION_RISK|FEE_ANOMALY|TAX_OPPORTUNITY|GOAL_AT_RISK|REBALANCE_DUE").requiredOption("--subject-id <id>","Subject ID").requiredOption("--subject-type <t>","Subject type").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--detail <s>","Detail").option("--owner <id>","Owner user ID").option("--metrics <json>","Metrics JSON").option("-f, --format <format>","Output format").action(async o=>{try{let t={title:o.title,type:o.type.toUpperCase(),subjectId:o.subjectId,subjectType:o.subjectType};o.severity&&(t.severity=o.severity.toUpperCase()),o.detail&&(t.detail=o.detail),o.owner&&(t.ownerId=o.owner),o.metrics&&(t.metrics=y("metrics",o.metrics));let n=await b(nt,{input:t});k$1(`Insight created: ${n.braCreateInsight.title}`),i(o,n.braCreateInsight);}catch(t){h(t);}}),r$1.command("acknowledge").description("Acknowledge an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(rt,{id:o});k$1(`Insight acknowledged: ${n.braAcknowledgeInsight.status??"-"}`),i(t,n.braAcknowledgeInsight);}catch(n){h(n);}}),r$1.command("dismiss").description("Dismiss an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(it,{id:o});k$1(`Insight dismissed: ${n.braDismissInsight.status??"-"}`),i(t,n.braDismissInsight);}catch(n){h(n);}}),r$1.command("resolve").description("Resolve an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(at,{id:o});k$1(`Insight resolved: ${n.braResolveInsight.status??"-"}`),i(t,n.braResolveInsight);}catch(n){h(n);}});}function bt(c){let r$1=c.command("rebalances").description("Brainyrich rebalance proposals");r$1.command("list").description("List rebalance proposals").option("--portfolio <id>","Filter by portfolio ID").option("--household <id>","Filter by household ID").option("--status <s>","DRAFT|PROPOSED|APPROVED|REJECTED|EXECUTED|CANCELLED").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(et,{portfolioId:o.portfolio,householdId:o.household,status:o.status?o.status.toUpperCase():void 0});i(o,t.braListRebalanceProposals.items,{headers:["ID","Portfolio","Status","Drift %","Rationale"],rows:t.braListRebalanceProposals.items.map(n=>[r(n.id,12),r(n.portfolioId,12),n.status,n.driftPct!=null?String(n.driftPct):"-",r(n.rationale??"-",30)])});}catch(t){h(t);}}),r$1.command("create").description("Create a rebalance proposal").requiredOption("--portfolio <id>","Portfolio ID").option("--household <id>","Household ID").option("--drift-pct <n>","Drift percentage",d).option("--rationale <s>","Rationale").option("--trades <json>","Trades JSON").option("-f, --format <format>","Output format").action(async o=>{try{let t={portfolioId:o.portfolio};o.household&&(t.householdId=o.household),o.driftPct!==void 0&&(t.driftPct=o.driftPct),o.rationale&&(t.rationale=o.rationale),o.trades&&(t.trades=y("trades",o.trades));let n=await b(st,{input:t});k$1(`Rebalance proposal created: ${n.braCreateRebalanceProposal.id}`),i(o,n.braCreateRebalanceProposal);}catch(t){h(t);}}),r$1.command("transition").description("Advance a rebalance proposal through its review lifecycle").argument("<id>","Proposal ID").requiredOption("--status <s>","DRAFT|PROPOSED|APPROVED|REJECTED|EXECUTED|CANCELLED").option("-f, --format <format>","Output format").action(async(o,t)=>{try{let n=await b(ct,{id:o,status:t.status.toUpperCase()});k$1(`Proposal status set to ${n.braTransitionRebalanceProposal.status}`),i(t,n.braTransitionRebalanceProposal);}catch(n){h(n);}});}function At(c){c.command("analytics").description("Brainyrich net-worth analytics & health").command("net-worth").description("Net-worth summary (totals + breakdown by asset class)").option("--owner <id>","Owner user ID (defaults to the calling actor)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await b(dt,{ownerId:o.owner});i(o,t.braNetWorthSummary);}catch(t){h(t);}}),c.command("health").description("Brainyrich service health check (public)").option("-f, --format <format>","Output format").action(async o=>{try{let t=await d$1(ut);k$1(t.braHealth),i(o,{health:t.braHealth});}catch(t){h(t);}});}var Ct={id:"brainyrich",version:"1.0.0",displayName:"Brainyrich",dependsOn:["auth","workspaces"],register(c,r){a(r);let o=c.command("brainyrich").description("Brainyrich wealth-management platform");lt(o),pt(o),mt(o),ft(o),gt(o),ht(o),yt(o),It(o),bt(o),At(o);}},ho=Ct;export{ho as default};
@@ -1,4 +1,4 @@
1
- import {a,b,h as h$1,p,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var L=`
1
+ import {a,b,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 L=`
2
2
  query BuiGetCourse($id: ID!) {
3
3
  buiCourse(id: $id) {
4
4
  id workspaceId slug title summary description level status language
@@ -228,4 +228,4 @@ import {a,b,h as h$1,p,g,i,o as o$1,d}from'../../chunk-W4JZR7RJ.js';import {o}fr
228
228
  query BuiHealth {
229
229
  buiHealth
230
230
  }
231
- `;function S(a,i){try{return JSON.parse(i)}catch{throw new o(`--${a} must be valid JSON`)}}function c(a){let i=Number.parseInt(a,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${a}"`);return i}function I(a){let i=Number.parseFloat(a);if(Number.isNaN(i))throw new o(`Expected a number but got "${a}"`);return i}function E(a){return a==="true"}function A(a){return a.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function tt(a){let i$1=a.command("courses").description("Buildmyiq courses");i$1.command("list").description("List courses").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(R,{status:t.status?t.status.toUpperCase():void 0,level:t.level?t.level.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});h$1(t,s.buiListCourses.items,{headers:["ID","Title","Level","Status","Language","Hours"],rows:s.buiListCourses.items.map(d=>[p(d.id,12),d.title,d.level,d.status,d.language??"-",d.estimatedHours!=null?String(d.estimatedHours):"-"])});}catch(e){g(e);}}),i$1.command("get").description("Get a course by id").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(L,{id:t});if(!s.buiCourse)throw new o(`Course ${t} not found`);h$1(e,s.buiCourse);}catch(s){g(s);}}),i$1.command("create").description("Create a course").requiredOption("--slug <slug>","URL slug").requiredOption("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT","BEGINNER").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public","Make the course public").option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={slug:t.slug,title:t.title,level:(t.level??"BEGINNER").toUpperCase()};t.summary&&(e.summary=t.summary),t.description&&(e.description=t.description),t.language&&(e.language=t.language),t.estimatedHours!==void 0&&(e.estimatedHours=t.estimatedHours),t.public&&(e.isPublic=!0),t.instructor&&(e.instructorId=t.instructor),t.skill&&(e.skillId=t.skill),t.coverFile&&(e.coverFileId=t.coverFile),t.tags&&(e.tags=A(t.tags));let s=await b(O,{input:e});i(`Course created: ${s.buiCreateCourse.title}`),h$1(t,s.buiCreateCourse);}catch(e){g(e);}}),i$1.command("update").description("Update a course").argument("<id>","Course ID").option("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public <bool>","true|false",E).option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.title&&(s.title=e.title),e.summary!==void 0&&(s.summary=e.summary),e.description!==void 0&&(s.description=e.description),e.level&&(s.level=e.level.toUpperCase()),e.language&&(s.language=e.language),e.estimatedHours!==void 0&&(s.estimatedHours=e.estimatedHours),e.public!==void 0&&(s.isPublic=e.public),e.instructor&&(s.instructorId=e.instructor),e.skill&&(s.skillId=e.skill),e.coverFile&&(s.coverFileId=e.coverFile),e.tags&&(s.tags=A(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let d=await b(h,{id:t,input:s});i("Course updated"),h$1(e,d.buiUpdateCourse);}catch(s){g(s);}}),i$1.command("publish").description("Publish a course through its authoring lifecycle").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(w,{id:t});i(`Course published: ${s.buiPublishCourse.title}`),h$1(e,s.buiPublishCourse);}catch(s){g(s);}}),i$1.command("archive").description("Archive a course").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(D,{id:t});i(s.buiArchiveCourse?"Course archived":"Course not archived"),h$1(e,{archived:s.buiArchiveCourse});}catch(s){g(s);}});}function et(a){let i$1=a.command("modules").description("Buildmyiq course modules");i$1.command("list").description("List modules for a course").requiredOption("--course <id>","Course ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(T,{courseId:t.course});h$1(t,e.buiListModules,{headers:["ID","Title","Position","Description"],rows:e.buiListModules.map(s=>[p(s.id,12),s.title,String(s.position),p(s.description??"-",40)])});}catch(e){g(e);}}),i$1.command("create").description("Create a module").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Module title").option("--description <s>","Description").option("--position <n>","Ordering position",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let s=await b(k,{input:e});i(`Module created: ${s.buiCreateModule.title}`),h$1(t,s.buiCreateModule);}catch(e){g(e);}});}function st(a){let i$1=a.command("lessons").description("Buildmyiq course lessons");i$1.command("list").description("List lessons for a course").requiredOption("--course <id>","Course ID").option("--module <id>","Filter by module ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b($,{courseId:t.course,moduleId:t.module});h$1(t,e.buiListLessons,{headers:["ID","Title","Type","Position","Duration","Preview"],rows:e.buiListLessons.map(s=>[p(s.id,12),s.title,s.type,String(s.position),s.durationMin!=null?String(s.durationMin):"-",s.isPreview?"yes":"no"])});}catch(e){g(e);}}),i$1.command("create").description("Create a lesson").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Lesson title").option("--module <id>","Module ID").option("--type <t>","ARTICLE|VIDEO|QUIZ|ASSIGNMENT|LIVE_SESSION|INTERACTIVE","ARTICLE").option("--content <s>","Lesson content").option("--duration-min <n>","Duration (minutes)",c).option("--position <n>","Ordering position",c).option("--preview","Mark as a preview lesson").option("--media-file <id>","Media File ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"ARTICLE").toUpperCase()};t.module&&(e.moduleId=t.module),t.content&&(e.content=t.content),t.durationMin!==void 0&&(e.durationMin=t.durationMin),t.position!==void 0&&(e.position=t.position),t.preview&&(e.isPreview=!0),t.mediaFile&&(e.mediaFileId=t.mediaFile);let s=await b(N,{input:e});i(`Lesson created: ${s.buiCreateLesson.title}`),h$1(t,s.buiCreateLesson);}catch(e){g(e);}});}function it(a){let i$1=a.command("skills").description("Buildmyiq skills taxonomy");i$1.command("list").description("List skills").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(x,{category:t.category?t.category.toUpperCase():void 0});h$1(t,e.buiListSkills,{headers:["ID","Name","Category","Active","Description"],rows:e.buiListSkills.map(s=>[p(s.id,12),s.name,s.category,s.isActive?"yes":"no",p(s.description??"-",40)])});}catch(e){g(e);}}),i$1.command("create").description("Create a skill").requiredOption("--name <name>","Skill name").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE","TECHNICAL").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,category:(t.category??"TECHNICAL").toUpperCase()};t.description&&(e.description=t.description);let s=await b(P,{input:e});i(`Skill created: ${s.buiCreateSkill.name}`),h$1(t,s.buiCreateSkill);}catch(e){g(e);}});}function rt(a){let i$1=a.command("enrollments").description("Buildmyiq enrollments & lesson progress");i$1.command("list").description("List enrollments").option("--course <id>","Filter by course ID").option("--learner <id>","Filter by learner ID").option("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(B,{courseId:t.course,learnerId:t.learner,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});h$1(t,s.buiListEnrollments.items,{headers:["ID","Course","Learner","Status","Progress %"],rows:s.buiListEnrollments.items.map(d=>[p(d.id,12),p(d.courseId,12),p(d.learnerId,12),d.status,String(d.progressPct)])});}catch(e){g(e);}}),i$1.command("get").description("Get an enrollment by id").argument("<id>","Enrollment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(v,{id:t});if(!s.buiEnrollment)throw new o(`Enrollment ${t} not found`);h$1(e,s.buiEnrollment);}catch(s){g(s);}}),i$1.command("enroll").description("Enroll a learner in a course").requiredOption("--course <id>","Course ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--cohort <id>","Cohort ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course};t.learner&&(e.learnerId=t.learner),t.cohort&&(e.cohortId=t.cohort),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b(M,{input:e});i(`Enrolled: ${s.buiEnroll.id}`),h$1(t,s.buiEnroll);}catch(e){g(e);}}),i$1.command("transition").description("Advance an enrollment through its lifecycle").argument("<id>","Enrollment ID").requiredOption("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(U,{id:t,status:e.status.toUpperCase()});i(`Enrollment status set to ${s.buiTransitionEnrollment.status}`),h$1(e,s.buiTransitionEnrollment);}catch(s){g(s);}}),i$1.command("record-progress").description("Record lesson progress for an enrollment").requiredOption("--enrollment <id>","Enrollment ID").requiredOption("--lesson <id>","Lesson ID").option("--status <s>","NOT_STARTED|IN_PROGRESS|COMPLETED","IN_PROGRESS").option("--seconds-spent <n>","Seconds spent",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={enrollmentId:t.enrollment,lessonId:t.lesson,status:(t.status??"IN_PROGRESS").toUpperCase()};t.secondsSpent!==void 0&&(e.secondsSpent=t.secondsSpent);let s=await b(_,{input:e});i(`Progress recorded: ${s.buiRecordLessonProgress.status}`),h$1(t,s.buiRecordLessonProgress);}catch(e){g(e);}});}function nt(a){let i$1=a.command("cohorts").description("Buildmyiq cohorts");i$1.command("list").description("List cohorts").option("--course <id>","Filter by course ID").option("--status <s>","SCHEDULED|ENROLLING|ACTIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(q,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.buiListCohorts,{headers:["ID","Name","Status","Capacity","Start","End"],rows:e.buiListCohorts.map(s=>[p(s.id,12),s.name,s.status,String(s.capacity),o$1(s.startDate),o$1(s.endDate)])});}catch(e){g(e);}}),i$1.command("create").description("Create a cohort").requiredOption("--course <id>","Course ID").requiredOption("--name <name>","Cohort name").option("--capacity <n>","Capacity",c).option("--facilitator <id>","Facilitator user ID").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,name:t.name};t.capacity!==void 0&&(e.capacity=t.capacity),t.facilitator&&(e.facilitatorId=t.facilitator),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let s=await b(G,{input:e});i(`Cohort created: ${s.buiCreateCohort.name}`),h$1(t,s.buiCreateCohort);}catch(e){g(e);}});}function ot(a){let i$1=a.command("certificates").description("Buildmyiq certificates");i$1.command("list").description("List certificates").option("--course <id>","Filter by course ID").option("--learner <id>","Filter by learner ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(H,{courseId:t.course,learnerId:t.learner});h$1(t,e.buiListCertificates,{headers:["ID","Serial","Learner","Status","Score","Issued"],rows:e.buiListCertificates.map(s=>[p(s.id,12),s.serial,p(s.learnerId,12),s.status,s.finalScore!=null?String(s.finalScore):"-",o$1(s.issuedAt)])});}catch(e){g(e);}}),i$1.command("issue").description("Issue a certificate").requiredOption("--course <id>","Course ID").requiredOption("--learner <id>","Learner ID").requiredOption("--serial <s>","Certificate serial").option("--enrollment <id>","Enrollment ID").option("--final-score <n>","Final score",I).option("--file <id>","Rendered certificate PDF File ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,learnerId:t.learner,serial:t.serial};t.enrollment&&(e.enrollmentId=t.enrollment),t.finalScore!==void 0&&(e.finalScore=t.finalScore),t.file&&(e.fileId=t.file),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b(F,{input:e});i(`Certificate issued: ${s.buiIssueCertificate.serial}`),h$1(t,s.buiIssueCertificate);}catch(e){g(e);}}),i$1.command("revoke").description("Revoke a certificate").argument("<id>","Certificate ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(V,{id:t});i(`Certificate revoked: ${s.buiRevokeCertificate.serial}`),h$1(e,s.buiRevokeCertificate);}catch(s){g(s);}});}function at(a){let i$1=a.command("assessments").description("Buildmyiq assessments & questions");i$1.command("list").description("List assessments for a course").requiredOption("--course <id>","Course ID").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(W,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});h$1(t,e.buiListAssessments,{headers:["ID","Title","Type","Status","Pass","Attempts","Graded"],rows:e.buiListAssessments.map(s=>[p(s.id,12),s.title,s.type,s.status,s.passingScore!=null?String(s.passingScore):"-",s.maxAttempts!=null?String(s.maxAttempts):"-",s.isGraded?"yes":"no"])});}catch(e){g(e);}}),i$1.command("get").description("Get an assessment by id").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(Q,{id:t});if(!s.buiAssessment)throw new o(`Assessment ${t} not found`);h$1(e,s.buiAssessment);}catch(s){g(s);}}),i$1.command("create").description("Create an assessment").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Assessment title").option("--type <t>","QUIZ|EXAM|ASSIGNMENT|SURVEY|PRACTICAL","QUIZ").option("--description <s>","Description").option("--passing-score <n>","Passing score",I).option("--max-attempts <n>","Max attempts",c).option("--time-limit-min <n>","Time limit (minutes)",c).option("--graded","Mark assessment as graded").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"QUIZ").toUpperCase()};t.description&&(e.description=t.description),t.passingScore!==void 0&&(e.passingScore=t.passingScore),t.maxAttempts!==void 0&&(e.maxAttempts=t.maxAttempts),t.timeLimitMin!==void 0&&(e.timeLimitMin=t.timeLimitMin),t.graded&&(e.isGraded=!0);let s=await b(K,{input:e});i(`Assessment created: ${s.buiCreateAssessment.title}`),h$1(t,s.buiCreateAssessment);}catch(e){g(e);}}),i$1.command("publish").description("Publish an assessment").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(j,{id:t});i(`Assessment published: ${s.buiPublishAssessment.title}`),h$1(e,s.buiPublishAssessment);}catch(s){g(s);}}),i$1.command("add-question").description("Add a question to an assessment").requiredOption("--assessment <id>","Assessment ID").requiredOption("--prompt <p>","Question prompt").option("--type <t>","SINGLE_CHOICE|MULTIPLE_CHOICE|TRUE_FALSE|SHORT_ANSWER|ESSAY|CODE","SINGLE_CHOICE").option("--points <n>","Points",I).option("--position <n>","Ordering position",c).option("--explanation <s>","Explanation").option("--options <json>","Options JSON").option("--answer-key <json>","Answer key JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment,prompt:t.prompt,type:(t.type??"SINGLE_CHOICE").toUpperCase()};t.points!==void 0&&(e.points=t.points),t.position!==void 0&&(e.position=t.position),t.explanation&&(e.explanation=t.explanation),t.options&&(e.options=S("options",t.options)),t.answerKey&&(e.answerKey=S("answer-key",t.answerKey));let s=await b(J,{input:e});i(`Question added: ${p(s.buiCreateQuestion.prompt,40)}`),h$1(t,s.buiCreateQuestion);}catch(e){g(e);}});}function ut(a){let i$1=a.command("submissions").description("Buildmyiq assessment submissions");i$1.command("list").description("List submissions").option("--assessment <id>","Filter by assessment ID").option("--learner <id>","Filter by learner ID").option("--status <s>","IN_PROGRESS|SUBMITTED|GRADING|GRADED|RETURNED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(X,{assessmentId:t.assessment,learnerId:t.learner,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});h$1(t,s.buiListSubmissions.items,{headers:["ID","Assessment","Learner","Attempt","Status","Score","Passed"],rows:s.buiListSubmissions.items.map(d=>[p(d.id,12),p(d.assessmentId,12),p(d.learnerId,12),String(d.attempt),d.status,d.score!=null?String(d.score):"-",d.passed==null?"-":d.passed?"yes":"no"])});}catch(e){g(e);}}),i$1.command("submit").description("Submit an assessment attempt").requiredOption("--assessment <id>","Assessment ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--enrollment <id>","Enrollment ID").option("--attempt <n>","Attempt number",c).option("--answers <json>","Answers JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment};t.learner&&(e.learnerId=t.learner),t.enrollment&&(e.enrollmentId=t.enrollment),t.attempt!==void 0&&(e.attempt=t.attempt),t.answers&&(e.answers=S("answers",t.answers));let s=await b(Z,{input:e});i(`Submission created: ${s.buiSubmitAssessment.id}`),h$1(t,s.buiSubmitAssessment);}catch(e){g(e);}}),i$1.command("grade").description("Grade a submission").argument("<id>","Submission ID").requiredOption("--score <n>","Score",I).option("--passed <bool>","true|false",E).option("--feedback <s>","Feedback").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={score:e.score};e.passed!==void 0&&(s.passed=e.passed),e.feedback&&(s.feedback=e.feedback);let d=await b(z,{id:t,input:s});i(`Submission graded: ${d.buiGradeSubmission.status}`),h$1(e,d.buiGradeSubmission);}catch(s){g(s);}});}function dt(a){a.command("health").description("Buildmyiq subgraph liveness/identity probe (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(Y);i(t.buiHealth),h$1(i$1,{health:t.buiHealth});}catch(t){g(t);}});}var mt={id:"buildmyiq",version:"1.0.0",displayName:"Buildmyiq",dependsOn:["auth","workspaces"],register(a$1,i){a(i);let t=a$1.command("buildmyiq").description("Buildmyiq education, learning & development platform");tt(t),et(t),st(t),it(t),rt(t),nt(t),ot(t),at(t),ut(t),dt(t);}},ie=mt;export{ie as default};
231
+ `;function S(a,i){try{return JSON.parse(i)}catch{throw new o(`--${a} must be valid JSON`)}}function c(a){let i=Number.parseInt(a,10);if(Number.isNaN(i))throw new o(`Expected an integer but got "${a}"`);return i}function I(a){let i=Number.parseFloat(a);if(Number.isNaN(i))throw new o(`Expected a number but got "${a}"`);return i}function E(a){return a==="true"}function A(a){return a.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function tt(a){let i$1=a.command("courses").description("Buildmyiq courses");i$1.command("list").description("List courses").option("--status <s>","DRAFT|IN_REVIEW|PUBLISHED|ARCHIVED").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(R,{status:t.status?t.status.toUpperCase():void 0,level:t.level?t.level.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListCourses.items,{headers:["ID","Title","Level","Status","Language","Hours"],rows:s.buiListCourses.items.map(d=>[r(d.id,12),d.title,d.level,d.status,d.language??"-",d.estimatedHours!=null?String(d.estimatedHours):"-"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get a course by id").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(L,{id:t});if(!s.buiCourse)throw new o(`Course ${t} not found`);i(e,s.buiCourse);}catch(s){h$1(s);}}),i$1.command("create").description("Create a course").requiredOption("--slug <slug>","URL slug").requiredOption("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT","BEGINNER").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public","Make the course public").option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={slug:t.slug,title:t.title,level:(t.level??"BEGINNER").toUpperCase()};t.summary&&(e.summary=t.summary),t.description&&(e.description=t.description),t.language&&(e.language=t.language),t.estimatedHours!==void 0&&(e.estimatedHours=t.estimatedHours),t.public&&(e.isPublic=!0),t.instructor&&(e.instructorId=t.instructor),t.skill&&(e.skillId=t.skill),t.coverFile&&(e.coverFileId=t.coverFile),t.tags&&(e.tags=A(t.tags));let s=await b(O,{input:e});k$1(`Course created: ${s.buiCreateCourse.title}`),i(t,s.buiCreateCourse);}catch(e){h$1(e);}}),i$1.command("update").description("Update a course").argument("<id>","Course ID").option("--title <title>","Course title").option("--summary <s>","Short summary").option("--description <s>","Description").option("--level <l>","BEGINNER|INTERMEDIATE|ADVANCED|EXPERT").option("--language <l>","Language code").option("--estimated-hours <n>","Estimated hours",c).option("--public <bool>","true|false",E).option("--instructor <id>","Instructor user ID").option("--skill <id>","Skill ID").option("--cover-file <id>","Cover image File ID").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={};if(e.title&&(s.title=e.title),e.summary!==void 0&&(s.summary=e.summary),e.description!==void 0&&(s.description=e.description),e.level&&(s.level=e.level.toUpperCase()),e.language&&(s.language=e.language),e.estimatedHours!==void 0&&(s.estimatedHours=e.estimatedHours),e.public!==void 0&&(s.isPublic=e.public),e.instructor&&(s.instructorId=e.instructor),e.skill&&(s.skillId=e.skill),e.coverFile&&(s.coverFileId=e.coverFile),e.tags&&(s.tags=A(e.tags)),!Object.keys(s).length)throw new o("No updates specified");let d=await b(h,{id:t,input:s});k$1("Course updated"),i(e,d.buiUpdateCourse);}catch(s){h$1(s);}}),i$1.command("publish").description("Publish a course through its authoring lifecycle").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(w,{id:t});k$1(`Course published: ${s.buiPublishCourse.title}`),i(e,s.buiPublishCourse);}catch(s){h$1(s);}}),i$1.command("archive").description("Archive a course").argument("<id>","Course ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(D,{id:t});k$1(s.buiArchiveCourse?"Course archived":"Course not archived"),i(e,{archived:s.buiArchiveCourse});}catch(s){h$1(s);}});}function et(a){let i$1=a.command("modules").description("Buildmyiq course modules");i$1.command("list").description("List modules for a course").requiredOption("--course <id>","Course ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(T,{courseId:t.course});i(t,e.buiListModules,{headers:["ID","Title","Position","Description"],rows:e.buiListModules.map(s=>[r(s.id,12),s.title,String(s.position),r(s.description??"-",40)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a module").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Module title").option("--description <s>","Description").option("--position <n>","Ordering position",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title};t.description&&(e.description=t.description),t.position!==void 0&&(e.position=t.position);let s=await b(k,{input:e});k$1(`Module created: ${s.buiCreateModule.title}`),i(t,s.buiCreateModule);}catch(e){h$1(e);}});}function st(a){let i$1=a.command("lessons").description("Buildmyiq course lessons");i$1.command("list").description("List lessons for a course").requiredOption("--course <id>","Course ID").option("--module <id>","Filter by module ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b($,{courseId:t.course,moduleId:t.module});i(t,e.buiListLessons,{headers:["ID","Title","Type","Position","Duration","Preview"],rows:e.buiListLessons.map(s=>[r(s.id,12),s.title,s.type,String(s.position),s.durationMin!=null?String(s.durationMin):"-",s.isPreview?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a lesson").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Lesson title").option("--module <id>","Module ID").option("--type <t>","ARTICLE|VIDEO|QUIZ|ASSIGNMENT|LIVE_SESSION|INTERACTIVE","ARTICLE").option("--content <s>","Lesson content").option("--duration-min <n>","Duration (minutes)",c).option("--position <n>","Ordering position",c).option("--preview","Mark as a preview lesson").option("--media-file <id>","Media File ID").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"ARTICLE").toUpperCase()};t.module&&(e.moduleId=t.module),t.content&&(e.content=t.content),t.durationMin!==void 0&&(e.durationMin=t.durationMin),t.position!==void 0&&(e.position=t.position),t.preview&&(e.isPreview=!0),t.mediaFile&&(e.mediaFileId=t.mediaFile);let s=await b(N,{input:e});k$1(`Lesson created: ${s.buiCreateLesson.title}`),i(t,s.buiCreateLesson);}catch(e){h$1(e);}});}function it(a){let i$1=a.command("skills").description("Buildmyiq skills taxonomy");i$1.command("list").description("List skills").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(x,{category:t.category?t.category.toUpperCase():void 0});i(t,e.buiListSkills,{headers:["ID","Name","Category","Active","Description"],rows:e.buiListSkills.map(s=>[r(s.id,12),s.name,s.category,s.isActive?"yes":"no",r(s.description??"-",40)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a skill").requiredOption("--name <name>","Skill name").option("--category <c>","TECHNICAL|COGNITIVE|CREATIVE|SOCIAL|BUSINESS|LANGUAGE","TECHNICAL").option("--description <s>","Description").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,category:(t.category??"TECHNICAL").toUpperCase()};t.description&&(e.description=t.description);let s=await b(P,{input:e});k$1(`Skill created: ${s.buiCreateSkill.name}`),i(t,s.buiCreateSkill);}catch(e){h$1(e);}});}function rt(a){let i$1=a.command("enrollments").description("Buildmyiq enrollments & lesson progress");i$1.command("list").description("List enrollments").option("--course <id>","Filter by course ID").option("--learner <id>","Filter by learner ID").option("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(B,{courseId:t.course,learnerId:t.learner,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListEnrollments.items,{headers:["ID","Course","Learner","Status","Progress %"],rows:s.buiListEnrollments.items.map(d=>[r(d.id,12),r(d.courseId,12),r(d.learnerId,12),d.status,String(d.progressPct)])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an enrollment by id").argument("<id>","Enrollment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(v,{id:t});if(!s.buiEnrollment)throw new o(`Enrollment ${t} not found`);i(e,s.buiEnrollment);}catch(s){h$1(s);}}),i$1.command("enroll").description("Enroll a learner in a course").requiredOption("--course <id>","Course ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--cohort <id>","Cohort ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course};t.learner&&(e.learnerId=t.learner),t.cohort&&(e.cohortId=t.cohort),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b(M,{input:e});k$1(`Enrolled: ${s.buiEnroll.id}`),i(t,s.buiEnroll);}catch(e){h$1(e);}}),i$1.command("transition").description("Advance an enrollment through its lifecycle").argument("<id>","Enrollment ID").requiredOption("--status <s>","ENROLLED|IN_PROGRESS|COMPLETED|DROPPED|EXPIRED").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(U,{id:t,status:e.status.toUpperCase()});k$1(`Enrollment status set to ${s.buiTransitionEnrollment.status}`),i(e,s.buiTransitionEnrollment);}catch(s){h$1(s);}}),i$1.command("record-progress").description("Record lesson progress for an enrollment").requiredOption("--enrollment <id>","Enrollment ID").requiredOption("--lesson <id>","Lesson ID").option("--status <s>","NOT_STARTED|IN_PROGRESS|COMPLETED","IN_PROGRESS").option("--seconds-spent <n>","Seconds spent",c).option("-f, --format <format>","Output format").action(async t=>{try{let e={enrollmentId:t.enrollment,lessonId:t.lesson,status:(t.status??"IN_PROGRESS").toUpperCase()};t.secondsSpent!==void 0&&(e.secondsSpent=t.secondsSpent);let s=await b(_,{input:e});k$1(`Progress recorded: ${s.buiRecordLessonProgress.status}`),i(t,s.buiRecordLessonProgress);}catch(e){h$1(e);}});}function nt(a){let i$1=a.command("cohorts").description("Buildmyiq cohorts");i$1.command("list").description("List cohorts").option("--course <id>","Filter by course ID").option("--status <s>","SCHEDULED|ENROLLING|ACTIVE|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(q,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});i(t,e.buiListCohorts,{headers:["ID","Name","Status","Capacity","Start","End"],rows:e.buiListCohorts.map(s=>[r(s.id,12),s.name,s.status,String(s.capacity),q$1(s.startDate),q$1(s.endDate)])});}catch(e){h$1(e);}}),i$1.command("create").description("Create a cohort").requiredOption("--course <id>","Course ID").requiredOption("--name <name>","Cohort name").option("--capacity <n>","Capacity",c).option("--facilitator <id>","Facilitator user ID").option("--start-date <iso>","Start date (ISO)").option("--end-date <iso>","End date (ISO)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,name:t.name};t.capacity!==void 0&&(e.capacity=t.capacity),t.facilitator&&(e.facilitatorId=t.facilitator),t.startDate&&(e.startDate=t.startDate),t.endDate&&(e.endDate=t.endDate);let s=await b(G,{input:e});k$1(`Cohort created: ${s.buiCreateCohort.name}`),i(t,s.buiCreateCohort);}catch(e){h$1(e);}});}function ot(a){let i$1=a.command("certificates").description("Buildmyiq certificates");i$1.command("list").description("List certificates").option("--course <id>","Filter by course ID").option("--learner <id>","Filter by learner ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(H,{courseId:t.course,learnerId:t.learner});i(t,e.buiListCertificates,{headers:["ID","Serial","Learner","Status","Score","Issued"],rows:e.buiListCertificates.map(s=>[r(s.id,12),s.serial,r(s.learnerId,12),s.status,s.finalScore!=null?String(s.finalScore):"-",q$1(s.issuedAt)])});}catch(e){h$1(e);}}),i$1.command("issue").description("Issue a certificate").requiredOption("--course <id>","Course ID").requiredOption("--learner <id>","Learner ID").requiredOption("--serial <s>","Certificate serial").option("--enrollment <id>","Enrollment ID").option("--final-score <n>","Final score",I).option("--file <id>","Rendered certificate PDF File ID").option("--expires-at <iso>","Expiry (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,learnerId:t.learner,serial:t.serial};t.enrollment&&(e.enrollmentId=t.enrollment),t.finalScore!==void 0&&(e.finalScore=t.finalScore),t.file&&(e.fileId=t.file),t.expiresAt&&(e.expiresAt=t.expiresAt);let s=await b(F,{input:e});k$1(`Certificate issued: ${s.buiIssueCertificate.serial}`),i(t,s.buiIssueCertificate);}catch(e){h$1(e);}}),i$1.command("revoke").description("Revoke a certificate").argument("<id>","Certificate ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(V,{id:t});k$1(`Certificate revoked: ${s.buiRevokeCertificate.serial}`),i(e,s.buiRevokeCertificate);}catch(s){h$1(s);}});}function at(a){let i$1=a.command("assessments").description("Buildmyiq assessments & questions");i$1.command("list").description("List assessments for a course").requiredOption("--course <id>","Course ID").option("--status <s>","DRAFT|PUBLISHED|ARCHIVED").option("-f, --format <format>","Output format").action(async t=>{try{let e=await b(W,{courseId:t.course,status:t.status?t.status.toUpperCase():void 0});i(t,e.buiListAssessments,{headers:["ID","Title","Type","Status","Pass","Attempts","Graded"],rows:e.buiListAssessments.map(s=>[r(s.id,12),s.title,s.type,s.status,s.passingScore!=null?String(s.passingScore):"-",s.maxAttempts!=null?String(s.maxAttempts):"-",s.isGraded?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("get").description("Get an assessment by id").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(Q,{id:t});if(!s.buiAssessment)throw new o(`Assessment ${t} not found`);i(e,s.buiAssessment);}catch(s){h$1(s);}}),i$1.command("create").description("Create an assessment").requiredOption("--course <id>","Course ID").requiredOption("--title <title>","Assessment title").option("--type <t>","QUIZ|EXAM|ASSIGNMENT|SURVEY|PRACTICAL","QUIZ").option("--description <s>","Description").option("--passing-score <n>","Passing score",I).option("--max-attempts <n>","Max attempts",c).option("--time-limit-min <n>","Time limit (minutes)",c).option("--graded","Mark assessment as graded").option("-f, --format <format>","Output format").action(async t=>{try{let e={courseId:t.course,title:t.title,type:(t.type??"QUIZ").toUpperCase()};t.description&&(e.description=t.description),t.passingScore!==void 0&&(e.passingScore=t.passingScore),t.maxAttempts!==void 0&&(e.maxAttempts=t.maxAttempts),t.timeLimitMin!==void 0&&(e.timeLimitMin=t.timeLimitMin),t.graded&&(e.isGraded=!0);let s=await b(K,{input:e});k$1(`Assessment created: ${s.buiCreateAssessment.title}`),i(t,s.buiCreateAssessment);}catch(e){h$1(e);}}),i$1.command("publish").description("Publish an assessment").argument("<id>","Assessment ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s=await b(j,{id:t});k$1(`Assessment published: ${s.buiPublishAssessment.title}`),i(e,s.buiPublishAssessment);}catch(s){h$1(s);}}),i$1.command("add-question").description("Add a question to an assessment").requiredOption("--assessment <id>","Assessment ID").requiredOption("--prompt <p>","Question prompt").option("--type <t>","SINGLE_CHOICE|MULTIPLE_CHOICE|TRUE_FALSE|SHORT_ANSWER|ESSAY|CODE","SINGLE_CHOICE").option("--points <n>","Points",I).option("--position <n>","Ordering position",c).option("--explanation <s>","Explanation").option("--options <json>","Options JSON").option("--answer-key <json>","Answer key JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment,prompt:t.prompt,type:(t.type??"SINGLE_CHOICE").toUpperCase()};t.points!==void 0&&(e.points=t.points),t.position!==void 0&&(e.position=t.position),t.explanation&&(e.explanation=t.explanation),t.options&&(e.options=S("options",t.options)),t.answerKey&&(e.answerKey=S("answer-key",t.answerKey));let s=await b(J,{input:e});k$1(`Question added: ${r(s.buiCreateQuestion.prompt,40)}`),i(t,s.buiCreateQuestion);}catch(e){h$1(e);}});}function ut(a){let i$1=a.command("submissions").description("Buildmyiq assessment submissions");i$1.command("list").description("List submissions").option("--assessment <id>","Filter by assessment ID").option("--learner <id>","Filter by learner ID").option("--status <s>","IN_PROGRESS|SUBMITTED|GRADING|GRADED|RETURNED").option("--limit <n>","Page size",c,50).option("--offset <n>","Offset",c,0).option("--cursor <c>","Pagination cursor").option("-f, --format <format>","Output format").action(async t=>{try{let e={};t.limit!==void 0&&(e.limit=t.limit),t.offset!==void 0&&(e.offset=t.offset),t.cursor&&(e.cursor=t.cursor);let s=await b(X,{assessmentId:t.assessment,learnerId:t.learner,status:t.status?t.status.toUpperCase():void 0,pagination:Object.keys(e).length?e:void 0});i(t,s.buiListSubmissions.items,{headers:["ID","Assessment","Learner","Attempt","Status","Score","Passed"],rows:s.buiListSubmissions.items.map(d=>[r(d.id,12),r(d.assessmentId,12),r(d.learnerId,12),String(d.attempt),d.status,d.score!=null?String(d.score):"-",d.passed==null?"-":d.passed?"yes":"no"])});}catch(e){h$1(e);}}),i$1.command("submit").description("Submit an assessment attempt").requiredOption("--assessment <id>","Assessment ID").option("--learner <id>","Learner ID (defaults to the calling actor)").option("--enrollment <id>","Enrollment ID").option("--attempt <n>","Attempt number",c).option("--answers <json>","Answers JSON").option("-f, --format <format>","Output format").action(async t=>{try{let e={assessmentId:t.assessment};t.learner&&(e.learnerId=t.learner),t.enrollment&&(e.enrollmentId=t.enrollment),t.attempt!==void 0&&(e.attempt=t.attempt),t.answers&&(e.answers=S("answers",t.answers));let s=await b(Z,{input:e});k$1(`Submission created: ${s.buiSubmitAssessment.id}`),i(t,s.buiSubmitAssessment);}catch(e){h$1(e);}}),i$1.command("grade").description("Grade a submission").argument("<id>","Submission ID").requiredOption("--score <n>","Score",I).option("--passed <bool>","true|false",E).option("--feedback <s>","Feedback").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let s={score:e.score};e.passed!==void 0&&(s.passed=e.passed),e.feedback&&(s.feedback=e.feedback);let d=await b(z,{id:t,input:s});k$1(`Submission graded: ${d.buiGradeSubmission.status}`),i(e,d.buiGradeSubmission);}catch(s){h$1(s);}});}function dt(a){a.command("health").description("Buildmyiq subgraph liveness/identity probe (public)").option("-f, --format <format>","Output format").action(async i$1=>{try{let t=await d(Y);k$1(t.buiHealth),i(i$1,{health:t.buiHealth});}catch(t){h$1(t);}});}var mt={id:"buildmyiq",version:"1.0.0",displayName:"Buildmyiq",dependsOn:["auth","workspaces"],register(a$1,i){a(i);let t=a$1.command("buildmyiq").description("Buildmyiq education, learning & development platform");tt(t),et(t),st(t),it(t),rt(t),nt(t),ot(t),at(t),ut(t),dt(t);}},ie=mt;export{ie as default};
@@ -12,13 +12,13 @@
12
12
  connection { id authType isActive isHealthy }
13
13
  }
14
14
  }
15
- `,O=`
15
+ `,S=`
16
16
  mutation CreateChannel($input: CreateChannelInput!) {
17
17
  createChannel(input: $input) {
18
18
  id name platform adapterType status
19
19
  }
20
20
  }
21
- `,S=`
21
+ `,O=`
22
22
  mutation DeleteChannel($id: ID!) {
23
23
  deleteChannel(id: $id)
24
24
  }
@@ -66,4 +66,4 @@
66
66
  mutation DeleteChannelConnection($id: ID!) {
67
67
  deleteConnection(id: $id)
68
68
  }
69
- `;function q(r){let o=r.command("channels").description("Multi-platform message channels (email/SMS/Slack/etc.)");o.command("list").description("List channels").option("--platform <p>").option("--status <s>").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.platform&&(t.platform=e.platform.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let n=await a(v,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});u(e,n.getChannels.items,{headers:["ID","Name","Platform","Status","Priority"],rows:n.getChannels.items.map(i=>[y(i.id,12),i.name,i.platform,w(i.status),String(i.priority??"-")])});}catch(t){c(t);}}),o.command("get").description("Get a channel").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(A,{id:e});if(!n.getChannel)throw new l(`Channel ${e} not found`);u(t,n.getChannel);}catch(n){c(n);}}),o.command("create").description("Create a channel").requiredOption("--name <s>").requiredOption("--platform <p>","EMAIL|SMS|SLACK|TEAMS|DISCORD|WHATSAPP|WEBHOOK").option("--organization <id>","Organization id (defaults to current actor org)").option("--adapter <t>").option("-f, --format <format>").action(async e=>{try{let t=e.organization??b().auth.read()?.organizationId;if(!t)throw new l("No organization context. Pass --organization <id> or set auth.organizationId.");let n={name:e.name,platform:e.platform.toUpperCase(),organizationId:t,adapterType:e.adapter?e.adapter.toUpperCase():void 0},i=await a(O,{input:n});f("Channel created"),u(e,i.createChannel);}catch(t){c(t);}}),o.command("delete").description("Delete a channel").argument("<id>").action(async e=>{try{await a(S,{id:e}),f("Channel deleted");}catch(t){c(t);}}),o.command("send").description("Send a message via a channel").argument("<channelId>").requiredOption("--content <s>").option("--recipient <id>","External recipient id (e.g. email)").option("--subject <s>").option("-f, --format <format>").action(async(e,t)=>{try{let n={channelId:e,content:t.content,recipientId:t.recipient,subject:t.subject},i=await a(N,{input:n});i.sendMessage.success?f(`Sent: ${i.sendMessage.messageId??"(no id)"}`):i.sendMessage.willRetry?C(`Delivery failed, will retry: ${i.sendMessage.error??"unknown error"}`):C(`Delivery failed: ${i.sendMessage.error??"unknown error"}`),u(t,i.sendMessage);}catch(n){c(n);}}),o.command("deliveries").description("Recent delivery attempts for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a($,{channelId:e,limit:t.limit});u(t,n.getChannelDeliveryAttempts.items);}catch(n){c(n);}}),o.command("users").description("Users connected to this channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(D,{channelId:e,pagination:{limit:t.limit,offset:0}});u(t,n.listUserPlatformConnectionsByChannel.items);}catch(n){c(n);}}),o.command("webhooks").description("Channel webhook events").command("list").description("List webhook events for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(L,{channelId:e,limit:t.limit});u(t,n.getChannelWebhookEvents.items,{headers:["ID","Event","Status","When"],rows:n.getChannelWebhookEvents.items.map(i=>[y(i.id,12),i.eventType,w(i.status),T(i.createdAt)])});}catch(n){c(n);}});let m=o.command("connections").description("Channel connections (OAuth/API keys)");m.command("list").description("List connections for an organization").requiredOption("--organization <id>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t=await a(R,{organizationId:e.organization,pagination:{limit:e.limit,offset:0}});u(e,t.getConnectionsByOrganization.items);}catch(t){c(t);}}),m.command("create").description("Create a channel connection").requiredOption("--channel <id>").requiredOption("--auth-type <t>","OAUTH|API_KEY|WEBHOOK").option("-f, --format <format>").action(async e=>{try{let t={channelId:e.channel,authType:e.authType.toUpperCase()},n=await a(_,{input:t});f("Connection created"),u(e,n.createConnection);}catch(t){c(t);}}),m.command("delete").description("Delete a connection").argument("<id>").action(async e=>{try{await a(P,{id:e}),f("Connection deleted");}catch(t){c(t);}});}var J={id:"channels",version:"1.0.0",displayName:"Channels",dependsOn:["auth"],register(r,o){I(o),q(r);}},st=J;module.exports=st;
69
+ `;function q(r){let o=r.command("channels").description("Multi-platform message channels (email/SMS/Slack/etc.)");o.command("list").description("List channels").option("--platform <p>").option("--status <s>").option("--limit <n>","Page size",e=>parseInt(e,10),50).option("-f, --format <format>").action(async e=>{try{let t={};e.platform&&(t.platform=e.platform.toUpperCase()),e.status&&(t.status=e.status.toUpperCase());let n=await a(v,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});u(e,n.getChannels.items,{headers:["ID","Name","Platform","Status","Priority"],rows:n.getChannels.items.map(i=>[y(i.id,12),i.name,i.platform,w(i.status),String(i.priority??"-")])});}catch(t){c(t);}}),o.command("get").description("Get a channel").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(A,{id:e});if(!n.getChannel)throw new l(`Channel ${e} not found`);u(t,n.getChannel);}catch(n){c(n);}}),o.command("create").description("Create a channel").requiredOption("--name <s>").requiredOption("--platform <p>","EMAIL|SMS|SLACK|TEAMS|DISCORD|WHATSAPP|WEBHOOK").option("--organization <id>","Organization id (defaults to current actor org)").option("--adapter <t>").option("-f, --format <format>").action(async e=>{try{let t=e.organization??b().auth.read()?.organizationId;if(!t)throw new l("No organization context. Pass --organization <id> or set auth.organizationId.");let n={name:e.name,platform:e.platform.toUpperCase(),organizationId:t,adapterType:e.adapter?e.adapter.toUpperCase():void 0},i=await a(S,{input:n});f("Channel created"),u(e,i.createChannel);}catch(t){c(t);}}),o.command("delete").description("Delete a channel").argument("<id>").action(async e=>{try{await a(O,{id:e}),f("Channel deleted");}catch(t){c(t);}}),o.command("send").description("Send a message via a channel").argument("<channelId>").requiredOption("--content <s>").option("--recipient <id>","External recipient id (e.g. email)").option("--subject <s>").option("-f, --format <format>").action(async(e,t)=>{try{let n={channelId:e,content:t.content,recipientId:t.recipient,subject:t.subject},i=await a(N,{input:n});i.sendMessage.success?f(`Sent: ${i.sendMessage.messageId??"(no id)"}`):i.sendMessage.willRetry?C(`Delivery failed, will retry: ${i.sendMessage.error??"unknown error"}`):C(`Delivery failed: ${i.sendMessage.error??"unknown error"}`),u(t,i.sendMessage);}catch(n){c(n);}}),o.command("deliveries").description("Recent delivery attempts for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a($,{channelId:e,limit:t.limit});u(t,n.getChannelDeliveryAttempts.items);}catch(n){c(n);}}),o.command("users").description("Users connected to this channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(D,{channelId:e,pagination:{limit:t.limit,offset:0}});u(t,n.listUserPlatformConnectionsByChannel.items);}catch(n){c(n);}}),o.command("webhooks").description("Channel webhook events").command("list").description("List webhook events for a channel").argument("<channelId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await a(L,{channelId:e,limit:t.limit});u(t,n.getChannelWebhookEvents.items,{headers:["ID","Event","Status","When"],rows:n.getChannelWebhookEvents.items.map(i=>[y(i.id,12),i.eventType,w(i.status),T(i.createdAt)])});}catch(n){c(n);}});let m=o.command("connections").description("Channel connections (OAuth/API keys)");m.command("list").description("List connections for an organization").requiredOption("--organization <id>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t=await a(R,{organizationId:e.organization,pagination:{limit:e.limit,offset:0}});u(e,t.getConnectionsByOrganization.items);}catch(t){c(t);}}),m.command("create").description("Create a channel connection").requiredOption("--channel <id>").requiredOption("--auth-type <t>","OAUTH|API_KEY|WEBHOOK").option("-f, --format <format>").action(async e=>{try{let t={channelId:e.channel,authType:e.authType.toUpperCase()},n=await a(_,{input:t});f("Connection created"),u(e,n.createConnection);}catch(t){c(t);}}),m.command("delete").description("Delete a connection").argument("<id>").action(async e=>{try{await a(P,{id:e}),f("Connection deleted");}catch(t){c(t);}});}var J={id:"channels",version:"1.0.0",displayName:"Channels",dependsOn:["auth"],register(r,o){I(o),q(r);}},st=J;module.exports=st;
@@ -1,4 +1,4 @@
1
- import {a,c,h,p,n,g,s,i,l,o as o$1}from'../../chunk-W4JZR7RJ.js';import {o}from'../../chunk-YIY5IDXQ.js';var I=`
1
+ import {a,c,i,r,p,h,u,k,n,q}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var I=`
2
2
  query GetChannels($filter: ChannelFilterInput, $pagination: ChannelPaginationInput) {
3
3
  getChannels(filter: $filter, pagination: $pagination) {
4
4
  items { id name platform adapterType status connectionHealth priority createdAt }
@@ -66,4 +66,4 @@ import {a,c,h,p,n,g,s,i,l,o as o$1}from'../../chunk-W4JZR7RJ.js';import {o}from'
66
66
  mutation DeleteChannelConnection($id: ID!) {
67
67
  deleteConnection(id: $id)
68
68
  }
69
- `;function H(l$1){let r=l$1.command("channels").description("Multi-platform message channels (email/SMS/Slack/etc.)");r.command("list").description("List channels").option("--platform <p>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n$1={};t.platform&&(n$1.platform=t.platform.toUpperCase()),t.status&&(n$1.status=t.status.toUpperCase());let e=await c(I,{filter:Object.keys(n$1).length?n$1:void 0,pagination:{limit:t.limit,offset:0}});h(t,e.getChannels.items,{headers:["ID","Name","Platform","Status","Priority"],rows:e.getChannels.items.map(a=>[p(a.id,12),a.name,a.platform,n(a.status),String(a.priority??"-")])});}catch(n){g(n);}}),r.command("get").description("Get a channel").argument("<id>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await c(N,{id:t});if(!e.getChannel)throw new o(`Channel ${t} not found`);h(n,e.getChannel);}catch(e){g(e);}}),r.command("create").description("Create a channel").requiredOption("--name <s>").requiredOption("--platform <p>","EMAIL|SMS|SLACK|TEAMS|DISCORD|WHATSAPP|WEBHOOK").option("--organization <id>","Organization id (defaults to current actor org)").option("--adapter <t>").option("-f, --format <format>").action(async t=>{try{let n=t.organization??s().auth.read()?.organizationId;if(!n)throw new o("No organization context. Pass --organization <id> or set auth.organizationId.");let e={name:t.name,platform:t.platform.toUpperCase(),organizationId:n,adapterType:t.adapter?t.adapter.toUpperCase():void 0},a=await c(A,{input:e});i("Channel created"),h(t,a.createChannel);}catch(n){g(n);}}),r.command("delete").description("Delete a channel").argument("<id>").action(async t=>{try{await c(T,{id:t}),i("Channel deleted");}catch(n){g(n);}}),r.command("send").description("Send a message via a channel").argument("<channelId>").requiredOption("--content <s>").option("--recipient <id>","External recipient id (e.g. email)").option("--subject <s>").option("-f, --format <format>").action(async(t,n)=>{try{let e={channelId:t,content:n.content,recipientId:n.recipient,subject:n.subject},a=await c(_,{input:e});a.sendMessage.success?i(`Sent: ${a.sendMessage.messageId??"(no id)"}`):a.sendMessage.willRetry?l(`Delivery failed, will retry: ${a.sendMessage.error??"unknown error"}`):l(`Delivery failed: ${a.sendMessage.error??"unknown error"}`),h(n,a.sendMessage);}catch(e){g(e);}}),r.command("deliveries").description("Recent delivery attempts for a channel").argument("<channelId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n)=>{try{let e=await c(S,{channelId:t,limit:n.limit});h(n,e.getChannelDeliveryAttempts.items);}catch(e){g(e);}}),r.command("users").description("Users connected to this channel").argument("<channelId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n)=>{try{let e=await c($,{channelId:t,pagination:{limit:n.limit,offset:0}});h(n,e.listUserPlatformConnectionsByChannel.items);}catch(e){g(e);}}),r.command("webhooks").description("Channel webhook events").command("list").description("List webhook events for a channel").argument("<channelId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n$1)=>{try{let e=await c(O,{channelId:t,limit:n$1.limit});h(n$1,e.getChannelWebhookEvents.items,{headers:["ID","Event","Status","When"],rows:e.getChannelWebhookEvents.items.map(a=>[p(a.id,12),a.eventType,n(a.status),o$1(a.createdAt)])});}catch(e){g(e);}});let m=r.command("connections").description("Channel connections (OAuth/API keys)");m.command("list").description("List connections for an organization").requiredOption("--organization <id>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n=await c(w,{organizationId:t.organization,pagination:{limit:t.limit,offset:0}});h(t,n.getConnectionsByOrganization.items);}catch(n){g(n);}}),m.command("create").description("Create a channel connection").requiredOption("--channel <id>").requiredOption("--auth-type <t>","OAUTH|API_KEY|WEBHOOK").option("-f, --format <format>").action(async t=>{try{let n={channelId:t.channel,authType:t.authType.toUpperCase()},e=await c(L,{input:n});i("Connection created"),h(t,e.createConnection);}catch(n){g(n);}}),m.command("delete").description("Delete a connection").argument("<id>").action(async t=>{try{await c(D,{id:t}),i("Connection deleted");}catch(n){g(n);}});}var M={id:"channels",version:"1.0.0",displayName:"Channels",dependsOn:["auth"],register(l,r){a(r),H(l);}},U=M;export{U as default};
69
+ `;function H(l){let r$1=l.command("channels").description("Multi-platform message channels (email/SMS/Slack/etc.)");r$1.command("list").description("List channels").option("--platform <p>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),50).option("-f, --format <format>").action(async t=>{try{let n={};t.platform&&(n.platform=t.platform.toUpperCase()),t.status&&(n.status=t.status.toUpperCase());let e=await c(I,{filter:Object.keys(n).length?n:void 0,pagination:{limit:t.limit,offset:0}});i(t,e.getChannels.items,{headers:["ID","Name","Platform","Status","Priority"],rows:e.getChannels.items.map(a=>[r(a.id,12),a.name,a.platform,p(a.status),String(a.priority??"-")])});}catch(n){h(n);}}),r$1.command("get").description("Get a channel").argument("<id>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await c(N,{id:t});if(!e.getChannel)throw new o(`Channel ${t} not found`);i(n,e.getChannel);}catch(e){h(e);}}),r$1.command("create").description("Create a channel").requiredOption("--name <s>").requiredOption("--platform <p>","EMAIL|SMS|SLACK|TEAMS|DISCORD|WHATSAPP|WEBHOOK").option("--organization <id>","Organization id (defaults to current actor org)").option("--adapter <t>").option("-f, --format <format>").action(async t=>{try{let n=t.organization??u().auth.read()?.organizationId;if(!n)throw new o("No organization context. Pass --organization <id> or set auth.organizationId.");let e={name:t.name,platform:t.platform.toUpperCase(),organizationId:n,adapterType:t.adapter?t.adapter.toUpperCase():void 0},a=await c(A,{input:e});k("Channel created"),i(t,a.createChannel);}catch(n){h(n);}}),r$1.command("delete").description("Delete a channel").argument("<id>").action(async t=>{try{await c(T,{id:t}),k("Channel deleted");}catch(n){h(n);}}),r$1.command("send").description("Send a message via a channel").argument("<channelId>").requiredOption("--content <s>").option("--recipient <id>","External recipient id (e.g. email)").option("--subject <s>").option("-f, --format <format>").action(async(t,n$1)=>{try{let e={channelId:t,content:n$1.content,recipientId:n$1.recipient,subject:n$1.subject},a=await c(_,{input:e});a.sendMessage.success?k(`Sent: ${a.sendMessage.messageId??"(no id)"}`):a.sendMessage.willRetry?n(`Delivery failed, will retry: ${a.sendMessage.error??"unknown error"}`):n(`Delivery failed: ${a.sendMessage.error??"unknown error"}`),i(n$1,a.sendMessage);}catch(e){h(e);}}),r$1.command("deliveries").description("Recent delivery attempts for a channel").argument("<channelId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n)=>{try{let e=await c(S,{channelId:t,limit:n.limit});i(n,e.getChannelDeliveryAttempts.items);}catch(e){h(e);}}),r$1.command("users").description("Users connected to this channel").argument("<channelId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n)=>{try{let e=await c($,{channelId:t,pagination:{limit:n.limit,offset:0}});i(n,e.listUserPlatformConnectionsByChannel.items);}catch(e){h(e);}}),r$1.command("webhooks").description("Channel webhook events").command("list").description("List webhook events for a channel").argument("<channelId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n)=>{try{let e=await c(O,{channelId:t,limit:n.limit});i(n,e.getChannelWebhookEvents.items,{headers:["ID","Event","Status","When"],rows:e.getChannelWebhookEvents.items.map(a=>[r(a.id,12),a.eventType,p(a.status),q(a.createdAt)])});}catch(e){h(e);}});let m=r$1.command("connections").description("Channel connections (OAuth/API keys)");m.command("list").description("List connections for an organization").requiredOption("--organization <id>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n=await c(w,{organizationId:t.organization,pagination:{limit:t.limit,offset:0}});i(t,n.getConnectionsByOrganization.items);}catch(n){h(n);}}),m.command("create").description("Create a channel connection").requiredOption("--channel <id>").requiredOption("--auth-type <t>","OAUTH|API_KEY|WEBHOOK").option("-f, --format <format>").action(async t=>{try{let n={channelId:t.channel,authType:t.authType.toUpperCase()},e=await c(L,{input:n});k("Connection created"),i(t,e.createConnection);}catch(n){h(n);}}),m.command("delete").description("Delete a connection").argument("<id>").action(async t=>{try{await c(D,{id:t}),k("Connection deleted");}catch(n){h(n);}});}var M={id:"channels",version:"1.0.0",displayName:"Channels",dependsOn:["auth"],register(l,r){a(r),H(l);}},U=M;export{U as default};