@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
@@ -36,10 +36,16 @@
36
36
  `,S=`
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
  `,L=`
@@ -77,8 +83,11 @@
77
83
  `,G=`
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,13 +111,15 @@
102
111
  `,B=`
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
- `,q=`
122
+ `,M=`
112
123
  query BrainyrichListPortfolios(
113
124
  $householdId: ID
114
125
  $status: BraPortfolioStatus
@@ -122,7 +133,7 @@
122
133
  pageInfo { cursor hasMore }
123
134
  }
124
135
  }
125
- `,M=`
136
+ `,q=`
126
137
  mutation BrainyrichCreatePortfolio($input: BraCreatePortfolioInput!) {
127
138
  braCreatePortfolio(input: $input) {
128
139
  id ownerId householdId name description status baseCurrency
@@ -143,23 +154,25 @@
143
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
  `,W=`
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
  `,J=`
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
  `,Y=`
@@ -167,7 +180,10 @@
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
  `,K=`
@@ -187,7 +203,8 @@
187
203
  `,z=`
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
  `,Q=`
@@ -304,13 +321,12 @@
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
  `,pt=`
@@ -337,4 +353,4 @@
337
353
  query BrainyrichHealth {
338
354
  braHealth
339
355
  }
340
- `;function h(a,n){try{return JSON.parse(n)}catch{throw new u(`--${a} must be valid JSON`)}}function m(a){let n=Number.parseInt(a,10);if(Number.isNaN(n))throw new u(`Expected an integer but got "${a}"`);return n}function d(a){let n=Number.parseFloat(a);if(Number.isNaN(n))throw new u(`Expected a number but got "${a}"`);return n}function y(a){return a.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function ht(a){let n=a.command("households").description("Brainyrich advisory households");n.command("list").description("List households").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(P,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListHouseholds.items,{headers:["ID","Name","Status","Risk","AUM","Currency"],rows:e.braListHouseholds.items.map(o=>[p(o.id,12),o.name,o.status??"-",o.riskProfile??"-",o.aum!=null?String(o.aum):"-",o.currency??"-"])});}catch(e){r(e);}}),n.command("get").description("Get a household by id").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(k,{id:t});if(!o.braHousehold)throw new u(`Household ${t} not found`);i(e,o.braHousehold);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};t.advisor&&(e.advisorId=t.advisor),t.currency&&(e.currency=t.currency),t.riskProfile&&(e.riskProfile=t.riskProfile.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.primaryContactName&&(e.primaryContactName=t.primaryContactName),t.primaryContactEmail&&(e.primaryContactEmail=t.primaryContactEmail),t.notes&&(e.notes=t.notes),t.tags&&(e.tags=y(t.tags));let o=await s(D,{input:e});c(`Household created: ${o.braCreateHousehold.name}`),i(t,o.braCreateHousehold);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.aum!==void 0&&(o.aum=e.aum),e.currency&&(o.currency=e.currency),e.riskProfile&&(o.riskProfile=e.riskProfile.toUpperCase()),e.status&&(o.status=e.status.toUpperCase()),e.primaryContactName!==void 0&&(o.primaryContactName=e.primaryContactName),e.primaryContactEmail!==void 0&&(o.primaryContactEmail=e.primaryContactEmail),e.notes!==void 0&&(o.notes=e.notes),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new u("No updates specified");let f=await s(R,{id:t,input:o});c("Household updated"),i(e,f.braUpdateHousehold);}catch(o){r(o);}}),n.command("archive").description("Archive a household").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(x,{id:t});c(`Household archived: ${o.braArchiveHousehold}`),i(e,{archived:o.braArchiveHousehold});}catch(o){r(o);}});}function yt(a){let n=a.command("accounts").description("Brainyrich financial accounts");n.command("list").description("List accounts").option("--household <id>","Filter by household ID").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(L,{householdId:t.household,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListAccounts.items,{headers:["ID","Name","Type","Status","Cash","Currency"],rows:e.braListAccounts.items.map(o=>[p(o.id,12),o.name,o.type??"-",o.status??"-",o.cashBalance!=null?String(o.cashBalance):"-",o.currency??"-"])});}catch(e){r(e);}}),n.command("get").description("Get an account by id").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(S,{id:t});if(!o.braAccount)throw new u(`Account ${t} not found`);i(e,o.braAccount);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};t.owner&&(e.ownerId=t.owner),t.household&&(e.householdId=t.household),t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.currency&&(e.currency=t.currency),t.cashBalance!==void 0&&(e.cashBalance=t.cashBalance),t.institution&&(e.institution=t.institution),t.accountMask&&(e.accountMask=t.accountMask),t.manual&&(e.isManual=!0);let o=await s(v,{input:e});c(`Account created: ${o.braCreateAccount.name}`),i(t,o.braCreateAccount);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.household&&(o.householdId=e.household),e.type&&(o.type=e.type.toUpperCase()),e.status&&(o.status=e.status.toUpperCase()),e.currency&&(o.currency=e.currency),e.cashBalance!==void 0&&(o.cashBalance=e.cashBalance),e.institution!==void 0&&(o.institution=e.institution),e.accountMask!==void 0&&(o.accountMask=e.accountMask),!Object.keys(o).length)throw new u("No updates specified");let f=await s($,{id:t,input:o});c("Account updated"),i(e,f.braUpdateAccount);}catch(o){r(o);}}),n.command("archive").description("Archive an account").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(N,{id:t});c(`Account archived: ${o.braArchiveAccount}`),i(e,{archived:o.braArchiveAccount});}catch(o){r(o);}});}function It(a){let n=a.command("holdings").description("Brainyrich account holdings");n.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 t=>{try{let e=await s(G,{accountId:t.account,portfolioId:t.portfolio});i(t,e.braListHoldings,{headers:["ID","Symbol","Class","Qty","Last","Market Value"],rows:e.braListHoldings.map(o=>[p(o.id,12),o.symbol,o.assetClass??"-",o.quantity!=null?String(o.quantity):"-",o.lastPrice!=null?String(o.lastPrice):"-",o.marketValue!=null?String(o.marketValue):"-"])});}catch(e){r(e);}}),n.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 t=>{try{let e={accountId:t.account,symbol:t.symbol};t.portfolio&&(e.portfolioId=t.portfolio),t.name&&(e.name=t.name),t.assetClass&&(e.assetClass=t.assetClass.toUpperCase()),t.quantity!==void 0&&(e.quantity=t.quantity),t.costBasis!==void 0&&(e.costBasis=t.costBasis),t.lastPrice!==void 0&&(e.lastPrice=t.lastPrice),t.currency&&(e.currency=t.currency),t.asOf&&(e.asOf=t.asOf);let o=await s(H,{input:e});c(`Holding created: ${o.braCreateHolding.symbol}`),i(t,o.braCreateHolding);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name!==void 0&&(o.name=e.name),e.assetClass&&(o.assetClass=e.assetClass.toUpperCase()),e.quantity!==void 0&&(o.quantity=e.quantity),e.costBasis!==void 0&&(o.costBasis=e.costBasis),e.lastPrice!==void 0&&(o.lastPrice=e.lastPrice),e.portfolio&&(o.portfolioId=e.portfolio),e.asOf&&(o.asOf=e.asOf),!Object.keys(o).length)throw new u("No updates specified");let f=await s(_,{id:t,input:o});c("Holding updated"),i(e,f.braUpdateHolding);}catch(o){r(o);}}),n.command("delete").description("Delete a holding").argument("<id>","Holding ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(U,{id:t});c(`Holding deleted: ${o.braDeleteHolding}`),i(e,{deleted:o.braDeleteHolding});}catch(o){r(o);}});}function Ct(a){let n=a.command("portfolios").description("Brainyrich portfolios");n.command("list").description("List portfolios").option("--household <id>","Filter by household ID").option("--status <s>","DRAFT|ACTIVE|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(q,{householdId:t.household,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListPortfolios.items,{headers:["ID","Name","Status","Currency","Drift %"],rows:e.braListPortfolios.items.map(o=>[p(o.id,12),o.name,o.status??"-",o.baseCurrency??"-",o.driftThresholdPct!=null?String(o.driftThresholdPct):"-"])});}catch(e){r(e);}}),n.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(B,{id:t});if(!o.braPortfolio)throw new u(`Portfolio ${t} not found`);i(e,o.braPortfolio);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};t.owner&&(e.ownerId=t.owner),t.household&&(e.householdId=t.household),t.description&&(e.description=t.description),t.baseCurrency&&(e.baseCurrency=t.baseCurrency),t.driftThresholdPct!==void 0&&(e.driftThresholdPct=t.driftThresholdPct),t.modelPortfolio&&(e.modelPortfolioId=t.modelPortfolio),t.targetAllocation&&(e.targetAllocation=h("target-allocation",t.targetAllocation)),t.tags&&(e.tags=y(t.tags));let o=await s(M,{input:e});c(`Portfolio created: ${o.braCreatePortfolio.name}`),i(t,o.braCreatePortfolio);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.status&&(o.status=e.status.toUpperCase()),e.baseCurrency&&(o.baseCurrency=e.baseCurrency),e.driftThresholdPct!==void 0&&(o.driftThresholdPct=e.driftThresholdPct),e.modelPortfolio&&(o.modelPortfolioId=e.modelPortfolio),e.targetAllocation&&(o.targetAllocation=h("target-allocation",e.targetAllocation)),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new u("No updates specified");let f=await s(F,{id:t,input:o});c("Portfolio updated"),i(e,f.braUpdatePortfolio);}catch(o){r(o);}}),n.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(j,{id:t});c(`Portfolio archived: ${o.braArchivePortfolio}`),i(e,{archived:o.braArchivePortfolio});}catch(o){r(o);}});}function bt(a){let n=a.command("model-portfolios").description("Brainyrich model portfolios");n.command("list").description("List model portfolios").option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(W);i(t,e.braListModelPortfolios,{headers:["ID","Name","Risk","Currency","Active"],rows:e.braListModelPortfolios.map(o=>[p(o.id,12),o.name,o.riskProfile??"-",o.baseCurrency??"-",o.isActive?"yes":"no"])});}catch(e){r(e);}}),n.command("get").description("Get a model portfolio by id").argument("<id>","Model portfolio ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(V,{id:t});if(!o.braModelPortfolio)throw new u(`Model portfolio ${t} not found`);i(e,o.braModelPortfolio);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};if(t.description&&(e.description=t.description),t.baseCurrency&&(e.baseCurrency=t.baseCurrency),t.riskProfile&&(e.riskProfile=t.riskProfile.toUpperCase()),t.allocations){let f=h("allocations",t.allocations);if(!Array.isArray(f))throw new u("--allocations must be a JSON array");e.allocations=f;}let o=await s(J,{input:e});c(`Model portfolio created: ${o.braCreateModelPortfolio.name}`),i(t,o.braCreateModelPortfolio);}catch(e){r(e);}});}function At(a){let n=a.command("goals").description("Brainyrich financial goals");n.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",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(K,{householdId:t.household,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListGoals.items,{headers:["ID","Name","Type","Status","Target","Projection"],rows:e.braListGoals.items.map(o=>[p(o.id,12),o.name,o.type??"-",o.status??"-",o.targetAmount!=null?String(o.targetAmount):"-",o.projection??"-"])});}catch(e){r(e);}}),n.command("get").description("Get a goal by id").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(Y,{id:t});if(!o.braGoal)throw new u(`Goal ${t} not found`);i(e,o.braGoal);}catch(o){r(o);}}),n.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",m).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,targetAmount:t.targetAmount,targetDate:t.targetDate};t.owner&&(e.ownerId=t.owner),t.household&&(e.householdId=t.household),t.type&&(e.type=t.type.toUpperCase()),t.currency&&(e.currency=t.currency),t.monthlyContribution!==void 0&&(e.monthlyContribution=t.monthlyContribution),t.priority!==void 0&&(e.priority=t.priority),t.notes&&(e.notes=t.notes),t.tags&&(e.tags=y(t.tags));let o=await s(Q,{input:e});c(`Goal created: ${o.braCreateGoal.name}`),i(t,o.braCreateGoal);}catch(e){r(e);}}),n.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",m).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.type&&(o.type=e.type.toUpperCase()),e.status&&(o.status=e.status.toUpperCase()),e.currency&&(o.currency=e.currency),e.targetAmount!==void 0&&(o.targetAmount=e.targetAmount),e.targetDate&&(o.targetDate=e.targetDate),e.monthlyContribution!==void 0&&(o.monthlyContribution=e.monthlyContribution),e.priority!==void 0&&(o.priority=e.priority),e.notes!==void 0&&(o.notes=e.notes),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new u("No updates specified");let f=await s(X,{id:t,input:o});c("Goal updated"),i(e,f.braUpdateGoal);}catch(o){r(o);}}),n.command("archive").description("Archive a goal").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(Z,{id:t});c(`Goal archived: ${o.braArchiveGoal}`),i(e,{archived:o.braArchiveGoal});}catch(o){r(o);}}),n.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(t,e)=>{try{let o=await s(tt,{id:t,fundedAmount:e.fundedAmount});c(`Projection: ${o.braRecalcGoalProjection.projection??"-"}`),i(e,o.braRecalcGoalProjection);}catch(o){r(o);}}),n.command("list-fundings").description("List fundings linked to a goal").requiredOption("--goal <id>","Goal ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(z,{goalId:t.goal});i(t,e.braListGoalFundings,{headers:["ID","Account","Allocation %","Fixed"],rows:e.braListGoalFundings.map(o=>[p(o.id,12),p(o.accountId,12),o.allocationPct!=null?String(o.allocationPct):"-",o.fixedAmount!=null?String(o.fixedAmount):"-"])});}catch(e){r(e);}}),n.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 t=>{try{let e={goalId:t.goal,accountId:t.account};t.allocationPct!==void 0&&(e.allocationPct=t.allocationPct),t.fixedAmount!==void 0&&(e.fixedAmount=t.fixedAmount);let o=await s(et,{input:e});c("Funding linked"),i(t,o.braLinkGoalFunding);}catch(e){r(e);}}),n.command("unlink-funding").description("Unlink a funding from a goal").argument("<id>","Funding ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(ot,{id:t});c(`Funding unlinked: ${o.braUnlinkGoalFunding}`),i(e,{unlinked:o.braUnlinkGoalFunding});}catch(o){r(o);}});}function wt(a){let n=a.command("transactions").description("Brainyrich account transactions");n.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",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(nt,{accountId:t.account,type:t.type?t.type.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListTransactions.items,{headers:["ID","Type","Symbol","Qty","Amount","Trade Date"],rows:e.braListTransactions.items.map(o=>[p(o.id,12),o.type,o.symbol??"-",o.quantity!=null?String(o.quantity):"-",o.amount!=null?String(o.amount):"-",o.tradeDate??"-"])});}catch(e){r(e);}}),n.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 t=>{try{let e={accountId:t.account,type:t.type.toUpperCase(),tradeDate:t.tradeDate};t.holding&&(e.holdingId=t.holding),t.symbol&&(e.symbol=t.symbol),t.quantity!==void 0&&(e.quantity=t.quantity),t.price!==void 0&&(e.price=t.price),t.amount!==void 0&&(e.amount=t.amount),t.fee!==void 0&&(e.fee=t.fee),t.currency&&(e.currency=t.currency),t.settleDate&&(e.settleDate=t.settleDate),t.notes&&(e.notes=t.notes);let o=await s(rt,{input:e});c(`Transaction recorded: ${o.braRecordTransaction.type}`),i(t,o.braRecordTransaction);}catch(e){r(e);}});}function Et(a){let n=a.command("insights").description("Brainyrich advisory insights");n.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",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(at,{status:t.status?t.status.toUpperCase():void 0,severity:t.severity?t.severity.toUpperCase():void 0,subjectId:t.subjectId,subjectType:t.subjectType,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListInsights.items,{headers:["ID","Title","Type","Severity","Status"],rows:e.braListInsights.items.map(o=>[p(o.id,12),o.title,o.type,o.severity??"-",o.status??"-"])});}catch(e){r(e);}}),n.command("get").description("Get an insight by id").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(it,{id:t});if(!o.braInsight)throw new u(`Insight ${t} not found`);i(e,o.braInsight);}catch(o){r(o);}}),n.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 t=>{try{let e={title:t.title,type:t.type.toUpperCase(),subjectId:t.subjectId,subjectType:t.subjectType};t.severity&&(e.severity=t.severity.toUpperCase()),t.detail&&(e.detail=t.detail),t.owner&&(e.ownerId=t.owner),t.metrics&&(e.metrics=h("metrics",t.metrics));let o=await s(st,{input:e});c(`Insight created: ${o.braCreateInsight.title}`),i(t,o.braCreateInsight);}catch(e){r(e);}}),n.command("acknowledge").description("Acknowledge an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(ct,{id:t});c(`Insight acknowledged: ${o.braAcknowledgeInsight.status??"-"}`),i(e,o.braAcknowledgeInsight);}catch(o){r(o);}}),n.command("dismiss").description("Dismiss an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(ut,{id:t});c(`Insight dismissed: ${o.braDismissInsight.status??"-"}`),i(e,o.braDismissInsight);}catch(o){r(o);}}),n.command("resolve").description("Resolve an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(dt,{id:t});c(`Insight resolved: ${o.braResolveInsight.status??"-"}`),i(e,o.braResolveInsight);}catch(o){r(o);}});}function Ot(a){let n=a.command("rebalances").description("Brainyrich rebalance proposals");n.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 t=>{try{let e=await s(lt,{portfolioId:t.portfolio,householdId:t.household,status:t.status?t.status.toUpperCase():void 0});i(t,e.braListRebalanceProposals,{headers:["ID","Portfolio","Status","Drift %","Rationale"],rows:e.braListRebalanceProposals.map(o=>[p(o.id,12),p(o.portfolioId,12),o.status,o.driftPct!=null?String(o.driftPct):"-",p(o.rationale??"-",30)])});}catch(e){r(e);}}),n.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 t=>{try{let e={portfolioId:t.portfolio};t.household&&(e.householdId=t.household),t.driftPct!==void 0&&(e.driftPct=t.driftPct),t.rationale&&(e.rationale=t.rationale),t.trades&&(e.trades=h("trades",t.trades));let o=await s(pt,{input:e});c(`Rebalance proposal created: ${o.braCreateRebalanceProposal.id}`),i(t,o.braCreateRebalanceProposal);}catch(e){r(e);}}),n.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(t,e)=>{try{let o=await s(mt,{id:t,status:e.status.toUpperCase()});c(`Proposal status set to ${o.braTransitionRebalanceProposal.status}`),i(e,o.braTransitionRebalanceProposal);}catch(o){r(o);}});}function Tt(a){a.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 t=>{try{let e=await s(ft,{ownerId:t.owner});i(t,e.braNetWorthSummary);}catch(e){r(e);}}),a.command("health").description("Brainyrich service health check (public)").option("-f, --format <format>","Output format").action(async t=>{try{let e=await w(gt);c(e.braHealth),i(t,{health:e.braHealth});}catch(e){r(e);}});}var _t={id:"brainyrich",version:"1.0.0",displayName:"Brainyrich",dependsOn:["auth","workspaces"],register(a,n){T(n);let t=a.command("brainyrich").description("Brainyrich wealth-management platform");ht(t),yt(t),It(t),Ct(t),bt(t),At(t),wt(t),Et(t),Ot(t),Tt(t);}},Go=_t;module.exports=Go;
356
+ `;function h(a,n){try{return JSON.parse(n)}catch{throw new u(`--${a} must be valid JSON`)}}function m(a){let n=Number.parseInt(a,10);if(Number.isNaN(n))throw new u(`Expected an integer but got "${a}"`);return n}function d(a){let n=Number.parseFloat(a);if(Number.isNaN(n))throw new u(`Expected a number but got "${a}"`);return n}function y(a){return a.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function ht(a){let n=a.command("households").description("Brainyrich advisory households");n.command("list").description("List households").option("--status <s>","PROSPECT|ONBOARDING|ACTIVE|INACTIVE").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(P,{status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListHouseholds.items,{headers:["ID","Name","Status","Risk","AUM","Currency"],rows:e.braListHouseholds.items.map(o=>[p(o.id,12),o.name,o.status??"-",o.riskProfile??"-",o.aum!=null?String(o.aum):"-",o.currency??"-"])});}catch(e){r(e);}}),n.command("get").description("Get a household by id").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(k,{id:t});if(!o.braHousehold)throw new u(`Household ${t} not found`);i(e,o.braHousehold);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};t.advisor&&(e.advisorId=t.advisor),t.currency&&(e.currency=t.currency),t.riskProfile&&(e.riskProfile=t.riskProfile.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.primaryContactName&&(e.primaryContactName=t.primaryContactName),t.primaryContactEmail&&(e.primaryContactEmail=t.primaryContactEmail),t.notes&&(e.notes=t.notes),t.tags&&(e.tags=y(t.tags));let o=await s(D,{input:e});c(`Household created: ${o.braCreateHousehold.name}`),i(t,o.braCreateHousehold);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.aum!==void 0&&(o.aum=e.aum),e.currency&&(o.currency=e.currency),e.riskProfile&&(o.riskProfile=e.riskProfile.toUpperCase()),e.status&&(o.status=e.status.toUpperCase()),e.primaryContactName!==void 0&&(o.primaryContactName=e.primaryContactName),e.primaryContactEmail!==void 0&&(o.primaryContactEmail=e.primaryContactEmail),e.notes!==void 0&&(o.notes=e.notes),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new u("No updates specified");let f=await s(R,{id:t,input:o});c("Household updated"),i(e,f.braUpdateHousehold);}catch(o){r(o);}}),n.command("archive").description("Archive a household").argument("<id>","Household ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(x,{id:t});c(`Household archived: ${o.braArchiveHousehold}`),i(e,{archived:o.braArchiveHousehold});}catch(o){r(o);}});}function yt(a){let n=a.command("accounts").description("Brainyrich financial accounts");n.command("list").description("List accounts").option("--household <id>","Filter by household ID").option("--status <s>","ACTIVE|ARCHIVED|CLOSED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(L,{householdId:t.household,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListAccounts.items,{headers:["ID","Name","Type","Status","Cash","Currency"],rows:e.braListAccounts.items.map(o=>[p(o.id,12),o.name,o.type??"-",o.status??"-",o.cashBalance!=null?String(o.cashBalance):"-",o.currency??"-"])});}catch(e){r(e);}}),n.command("get").description("Get an account by id").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(S,{id:t});if(!o.braAccount)throw new u(`Account ${t} not found`);i(e,o.braAccount);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};t.owner&&(e.ownerId=t.owner),t.household&&(e.householdId=t.household),t.type&&(e.type=t.type.toUpperCase()),t.status&&(e.status=t.status.toUpperCase()),t.currency&&(e.currency=t.currency),t.cashBalance!==void 0&&(e.cashBalance=t.cashBalance),t.institution&&(e.institution=t.institution),t.accountMask&&(e.accountMask=t.accountMask),t.manual&&(e.isManual=!0);let o=await s(v,{input:e});c(`Account created: ${o.braCreateAccount.name}`),i(t,o.braCreateAccount);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.household&&(o.householdId=e.household),e.type&&(o.type=e.type.toUpperCase()),e.status&&(o.status=e.status.toUpperCase()),e.currency&&(o.currency=e.currency),e.cashBalance!==void 0&&(o.cashBalance=e.cashBalance),e.institution!==void 0&&(o.institution=e.institution),e.accountMask!==void 0&&(o.accountMask=e.accountMask),!Object.keys(o).length)throw new u("No updates specified");let f=await s($,{id:t,input:o});c("Account updated"),i(e,f.braUpdateAccount);}catch(o){r(o);}}),n.command("archive").description("Archive an account").argument("<id>","Account ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(N,{id:t});c(`Account archived: ${o.braArchiveAccount}`),i(e,{archived:o.braArchiveAccount});}catch(o){r(o);}});}function It(a){let n=a.command("holdings").description("Brainyrich account holdings");n.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 t=>{try{let e=await s(G,{accountId:t.account,portfolioId:t.portfolio});i(t,e.braListHoldings.items,{headers:["ID","Symbol","Class","Qty","Last","Market Value"],rows:e.braListHoldings.items.map(o=>[p(o.id,12),o.symbol,o.assetClass??"-",o.quantity!=null?String(o.quantity):"-",o.lastPrice!=null?String(o.lastPrice):"-",o.marketValue!=null?String(o.marketValue):"-"])});}catch(e){r(e);}}),n.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 t=>{try{let e={accountId:t.account,symbol:t.symbol};t.portfolio&&(e.portfolioId=t.portfolio),t.name&&(e.name=t.name),t.assetClass&&(e.assetClass=t.assetClass.toUpperCase()),t.quantity!==void 0&&(e.quantity=t.quantity),t.costBasis!==void 0&&(e.costBasis=t.costBasis),t.lastPrice!==void 0&&(e.lastPrice=t.lastPrice),t.currency&&(e.currency=t.currency),t.asOf&&(e.asOf=t.asOf);let o=await s(H,{input:e});c(`Holding created: ${o.braCreateHolding.symbol}`),i(t,o.braCreateHolding);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name!==void 0&&(o.name=e.name),e.assetClass&&(o.assetClass=e.assetClass.toUpperCase()),e.quantity!==void 0&&(o.quantity=e.quantity),e.costBasis!==void 0&&(o.costBasis=e.costBasis),e.lastPrice!==void 0&&(o.lastPrice=e.lastPrice),e.portfolio&&(o.portfolioId=e.portfolio),e.asOf&&(o.asOf=e.asOf),!Object.keys(o).length)throw new u("No updates specified");let f=await s(_,{id:t,input:o});c("Holding updated"),i(e,f.braUpdateHolding);}catch(o){r(o);}}),n.command("delete").description("Delete a holding").argument("<id>","Holding ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(U,{id:t});c(`Holding deleted: ${o.braDeleteHolding}`),i(e,{deleted:o.braDeleteHolding});}catch(o){r(o);}});}function Ct(a){let n=a.command("portfolios").description("Brainyrich portfolios");n.command("list").description("List portfolios").option("--household <id>","Filter by household ID").option("--status <s>","DRAFT|ACTIVE|ARCHIVED").option("--limit <n>","Page size",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(M,{householdId:t.household,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListPortfolios.items,{headers:["ID","Name","Status","Currency","Drift %"],rows:e.braListPortfolios.items.map(o=>[p(o.id,12),o.name,o.status??"-",o.baseCurrency??"-",o.driftThresholdPct!=null?String(o.driftThresholdPct):"-"])});}catch(e){r(e);}}),n.command("get").description("Get a portfolio by id").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(B,{id:t});if(!o.braPortfolio)throw new u(`Portfolio ${t} not found`);i(e,o.braPortfolio);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};t.owner&&(e.ownerId=t.owner),t.household&&(e.householdId=t.household),t.description&&(e.description=t.description),t.baseCurrency&&(e.baseCurrency=t.baseCurrency),t.driftThresholdPct!==void 0&&(e.driftThresholdPct=t.driftThresholdPct),t.modelPortfolio&&(e.modelPortfolioId=t.modelPortfolio),t.targetAllocation&&(e.targetAllocation=h("target-allocation",t.targetAllocation)),t.tags&&(e.tags=y(t.tags));let o=await s(q,{input:e});c(`Portfolio created: ${o.braCreatePortfolio.name}`),i(t,o.braCreatePortfolio);}catch(e){r(e);}}),n.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(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.description!==void 0&&(o.description=e.description),e.status&&(o.status=e.status.toUpperCase()),e.baseCurrency&&(o.baseCurrency=e.baseCurrency),e.driftThresholdPct!==void 0&&(o.driftThresholdPct=e.driftThresholdPct),e.modelPortfolio&&(o.modelPortfolioId=e.modelPortfolio),e.targetAllocation&&(o.targetAllocation=h("target-allocation",e.targetAllocation)),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new u("No updates specified");let f=await s(F,{id:t,input:o});c("Portfolio updated"),i(e,f.braUpdatePortfolio);}catch(o){r(o);}}),n.command("archive").description("Archive a portfolio").argument("<id>","Portfolio ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(j,{id:t});c(`Portfolio archived: ${o.braArchivePortfolio}`),i(e,{archived:o.braArchivePortfolio});}catch(o){r(o);}});}function bt(a){let n=a.command("model-portfolios").description("Brainyrich model portfolios");n.command("list").description("List model portfolios").option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(W);i(t,e.braListModelPortfolios.items,{headers:["ID","Name","Risk","Currency","Active"],rows:e.braListModelPortfolios.items.map(o=>[p(o.id,12),o.name,o.riskProfile??"-",o.baseCurrency??"-",o.isActive?"yes":"no"])});}catch(e){r(e);}}),n.command("get").description("Get a model portfolio by id").argument("<id>","Model portfolio ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(V,{id:t});if(!o.braModelPortfolio)throw new u(`Model portfolio ${t} not found`);i(e,o.braModelPortfolio);}catch(o){r(o);}}),n.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 t=>{try{let e={name:t.name};if(t.description&&(e.description=t.description),t.baseCurrency&&(e.baseCurrency=t.baseCurrency),t.riskProfile&&(e.riskProfile=t.riskProfile.toUpperCase()),t.allocations){let f=h("allocations",t.allocations);if(!Array.isArray(f))throw new u("--allocations must be a JSON array");e.allocations=f;}let o=await s(J,{input:e});c(`Model portfolio created: ${o.braCreateModelPortfolio.name}`),i(t,o.braCreateModelPortfolio);}catch(e){r(e);}});}function At(a){let n=a.command("goals").description("Brainyrich financial goals");n.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",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(K,{householdId:t.household,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListGoals.items,{headers:["ID","Name","Type","Status","Target","Projection"],rows:e.braListGoals.items.map(o=>[p(o.id,12),o.name,o.type??"-",o.status??"-",o.targetAmount!=null?String(o.targetAmount):"-",o.projection??"-"])});}catch(e){r(e);}}),n.command("get").description("Get a goal by id").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(Y,{id:t});if(!o.braGoal)throw new u(`Goal ${t} not found`);i(e,o.braGoal);}catch(o){r(o);}}),n.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",m).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let e={name:t.name,targetAmount:t.targetAmount,targetDate:t.targetDate};t.owner&&(e.ownerId=t.owner),t.household&&(e.householdId=t.household),t.type&&(e.type=t.type.toUpperCase()),t.currency&&(e.currency=t.currency),t.monthlyContribution!==void 0&&(e.monthlyContribution=t.monthlyContribution),t.priority!==void 0&&(e.priority=t.priority),t.notes&&(e.notes=t.notes),t.tags&&(e.tags=y(t.tags));let o=await s(Q,{input:e});c(`Goal created: ${o.braCreateGoal.name}`),i(t,o.braCreateGoal);}catch(e){r(e);}}),n.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",m).option("--notes <s>","Notes").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o={};if(e.name&&(o.name=e.name),e.type&&(o.type=e.type.toUpperCase()),e.status&&(o.status=e.status.toUpperCase()),e.currency&&(o.currency=e.currency),e.targetAmount!==void 0&&(o.targetAmount=e.targetAmount),e.targetDate&&(o.targetDate=e.targetDate),e.monthlyContribution!==void 0&&(o.monthlyContribution=e.monthlyContribution),e.priority!==void 0&&(o.priority=e.priority),e.notes!==void 0&&(o.notes=e.notes),e.tags&&(o.tags=y(e.tags)),!Object.keys(o).length)throw new u("No updates specified");let f=await s(X,{id:t,input:o});c("Goal updated"),i(e,f.braUpdateGoal);}catch(o){r(o);}}),n.command("archive").description("Archive a goal").argument("<id>","Goal ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(Z,{id:t});c(`Goal archived: ${o.braArchiveGoal}`),i(e,{archived:o.braArchiveGoal});}catch(o){r(o);}}),n.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(t,e)=>{try{let o=await s(tt,{id:t,fundedAmount:e.fundedAmount});c(`Projection: ${o.braRecalcGoalProjection.projection??"-"}`),i(e,o.braRecalcGoalProjection);}catch(o){r(o);}}),n.command("list-fundings").description("List fundings linked to a goal").requiredOption("--goal <id>","Goal ID").option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(z,{goalId:t.goal});i(t,e.braListGoalFundings.items,{headers:["ID","Account","Allocation %","Fixed"],rows:e.braListGoalFundings.items.map(o=>[p(o.id,12),p(o.accountId,12),o.allocationPct!=null?String(o.allocationPct):"-",o.fixedAmount!=null?String(o.fixedAmount):"-"])});}catch(e){r(e);}}),n.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 t=>{try{let e={goalId:t.goal,accountId:t.account};t.allocationPct!==void 0&&(e.allocationPct=t.allocationPct),t.fixedAmount!==void 0&&(e.fixedAmount=t.fixedAmount);let o=await s(et,{input:e});c("Funding linked"),i(t,o.braLinkGoalFunding);}catch(e){r(e);}}),n.command("unlink-funding").description("Unlink a funding from a goal").argument("<id>","Funding ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(ot,{id:t});c(`Funding unlinked: ${o.braUnlinkGoalFunding}`),i(e,{unlinked:o.braUnlinkGoalFunding});}catch(o){r(o);}});}function wt(a){let n=a.command("transactions").description("Brainyrich account transactions");n.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",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(nt,{accountId:t.account,type:t.type?t.type.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListTransactions.items,{headers:["ID","Type","Symbol","Qty","Amount","Trade Date"],rows:e.braListTransactions.items.map(o=>[p(o.id,12),o.type,o.symbol??"-",o.quantity!=null?String(o.quantity):"-",o.amount!=null?String(o.amount):"-",o.tradeDate??"-"])});}catch(e){r(e);}}),n.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 t=>{try{let e={accountId:t.account,type:t.type.toUpperCase(),tradeDate:t.tradeDate};t.holding&&(e.holdingId=t.holding),t.symbol&&(e.symbol=t.symbol),t.quantity!==void 0&&(e.quantity=t.quantity),t.price!==void 0&&(e.price=t.price),t.amount!==void 0&&(e.amount=t.amount),t.fee!==void 0&&(e.fee=t.fee),t.currency&&(e.currency=t.currency),t.settleDate&&(e.settleDate=t.settleDate),t.notes&&(e.notes=t.notes);let o=await s(rt,{input:e});c(`Transaction recorded: ${o.braRecordTransaction.type}`),i(t,o.braRecordTransaction);}catch(e){r(e);}});}function Et(a){let n=a.command("insights").description("Brainyrich advisory insights");n.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",m,50).option("--offset <n>","Offset",m,0).option("-f, --format <format>","Output format").action(async t=>{try{let e=await s(at,{status:t.status?t.status.toUpperCase():void 0,severity:t.severity?t.severity.toUpperCase():void 0,subjectId:t.subjectId,subjectType:t.subjectType,pagination:{limit:t.limit,offset:t.offset}});i(t,e.braListInsights.items,{headers:["ID","Title","Type","Severity","Status"],rows:e.braListInsights.items.map(o=>[p(o.id,12),o.title,o.type,o.severity??"-",o.status??"-"])});}catch(e){r(e);}}),n.command("get").description("Get an insight by id").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(it,{id:t});if(!o.braInsight)throw new u(`Insight ${t} not found`);i(e,o.braInsight);}catch(o){r(o);}}),n.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 t=>{try{let e={title:t.title,type:t.type.toUpperCase(),subjectId:t.subjectId,subjectType:t.subjectType};t.severity&&(e.severity=t.severity.toUpperCase()),t.detail&&(e.detail=t.detail),t.owner&&(e.ownerId=t.owner),t.metrics&&(e.metrics=h("metrics",t.metrics));let o=await s(st,{input:e});c(`Insight created: ${o.braCreateInsight.title}`),i(t,o.braCreateInsight);}catch(e){r(e);}}),n.command("acknowledge").description("Acknowledge an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(ct,{id:t});c(`Insight acknowledged: ${o.braAcknowledgeInsight.status??"-"}`),i(e,o.braAcknowledgeInsight);}catch(o){r(o);}}),n.command("dismiss").description("Dismiss an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(ut,{id:t});c(`Insight dismissed: ${o.braDismissInsight.status??"-"}`),i(e,o.braDismissInsight);}catch(o){r(o);}}),n.command("resolve").description("Resolve an insight").argument("<id>","Insight ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let o=await s(dt,{id:t});c(`Insight resolved: ${o.braResolveInsight.status??"-"}`),i(e,o.braResolveInsight);}catch(o){r(o);}});}function Ot(a){let n=a.command("rebalances").description("Brainyrich rebalance proposals");n.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 t=>{try{let e=await s(lt,{portfolioId:t.portfolio,householdId:t.household,status:t.status?t.status.toUpperCase():void 0});i(t,e.braListRebalanceProposals.items,{headers:["ID","Portfolio","Status","Drift %","Rationale"],rows:e.braListRebalanceProposals.items.map(o=>[p(o.id,12),p(o.portfolioId,12),o.status,o.driftPct!=null?String(o.driftPct):"-",p(o.rationale??"-",30)])});}catch(e){r(e);}}),n.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 t=>{try{let e={portfolioId:t.portfolio};t.household&&(e.householdId=t.household),t.driftPct!==void 0&&(e.driftPct=t.driftPct),t.rationale&&(e.rationale=t.rationale),t.trades&&(e.trades=h("trades",t.trades));let o=await s(pt,{input:e});c(`Rebalance proposal created: ${o.braCreateRebalanceProposal.id}`),i(t,o.braCreateRebalanceProposal);}catch(e){r(e);}}),n.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(t,e)=>{try{let o=await s(mt,{id:t,status:e.status.toUpperCase()});c(`Proposal status set to ${o.braTransitionRebalanceProposal.status}`),i(e,o.braTransitionRebalanceProposal);}catch(o){r(o);}});}function Tt(a){a.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 t=>{try{let e=await s(ft,{ownerId:t.owner});i(t,e.braNetWorthSummary);}catch(e){r(e);}}),a.command("health").description("Brainyrich service health check (public)").option("-f, --format <format>","Output format").action(async t=>{try{let e=await w(gt);c(e.braHealth),i(t,{health:e.braHealth});}catch(e){r(e);}});}var _t={id:"brainyrich",version:"1.0.0",displayName:"Brainyrich",dependsOn:["auth","workspaces"],register(a,n){T(n);let t=a.command("brainyrich").description("Brainyrich wealth-management platform");ht(t),yt(t),It(t),Ct(t),bt(t),At(t),wt(t),Et(t),Ot(t),Tt(t);}},Go=_t;module.exports=Go;