@burdenoff/cli-sdk 2026.627.1 → 2026.627.3
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.
- package/dist/modules/artistrybase/index.cjs +334 -0
- package/dist/modules/artistrybase/index.d.cts +7 -0
- package/dist/modules/artistrybase/index.d.ts +7 -0
- package/dist/modules/artistrybase/index.js +334 -0
- package/dist/modules/assethandler/index.cjs +255 -0
- package/dist/modules/assethandler/index.d.cts +7 -0
- package/dist/modules/assethandler/index.d.ts +7 -0
- package/dist/modules/assethandler/index.js +255 -0
- package/dist/modules/brainyrich/index.cjs +340 -0
- package/dist/modules/brainyrich/index.d.cts +7 -0
- package/dist/modules/brainyrich/index.d.ts +7 -0
- package/dist/modules/brainyrich/index.js +340 -0
- package/dist/modules/buildmyiq/index.cjs +231 -0
- package/dist/modules/buildmyiq/index.d.cts +7 -0
- package/dist/modules/buildmyiq/index.d.ts +7 -0
- package/dist/modules/buildmyiq/index.js +231 -0
- package/dist/modules/collabkin/index.cjs +208 -0
- package/dist/modules/collabkin/index.d.cts +7 -0
- package/dist/modules/collabkin/index.d.ts +7 -0
- package/dist/modules/collabkin/index.js +208 -0
- package/dist/modules/comradecircle/index.cjs +281 -0
- package/dist/modules/comradecircle/index.d.cts +7 -0
- package/dist/modules/comradecircle/index.d.ts +7 -0
- package/dist/modules/comradecircle/index.js +281 -0
- package/dist/modules/eventfullymanaged/index.cjs +247 -0
- package/dist/modules/eventfullymanaged/index.d.cts +7 -0
- package/dist/modules/eventfullymanaged/index.d.ts +7 -0
- package/dist/modules/eventfullymanaged/index.js +247 -0
- package/dist/modules/headshotmarketing/index.cjs +1083 -0
- package/dist/modules/headshotmarketing/index.d.cts +7 -0
- package/dist/modules/headshotmarketing/index.d.ts +7 -0
- package/dist/modules/headshotmarketing/index.js +1083 -0
- package/dist/modules/movethewheels/index.cjs +565 -0
- package/dist/modules/movethewheels/index.d.cts +7 -0
- package/dist/modules/movethewheels/index.d.ts +7 -0
- package/dist/modules/movethewheels/index.js +565 -0
- package/dist/modules/planmagnet/index.cjs +795 -0
- package/dist/modules/planmagnet/index.d.cts +7 -0
- package/dist/modules/planmagnet/index.d.ts +7 -0
- package/dist/modules/planmagnet/index.js +795 -0
- package/dist/modules/proserviceworld/index.cjs +193 -0
- package/dist/modules/proserviceworld/index.d.cts +7 -0
- package/dist/modules/proserviceworld/index.d.ts +7 -0
- package/dist/modules/proserviceworld/index.js +193 -0
- package/dist/modules/timecampus/index.cjs +444 -0
- package/dist/modules/timecampus/index.d.cts +7 -0
- package/dist/modules/timecampus/index.d.ts +7 -0
- package/dist/modules/timecampus/index.js +444 -0
- package/package.json +1 -1
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var u=class extends Error{exitCode;hint;constructor(n,t){super(n),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},C=class extends u{constructor(n,t){super(n,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(n,t){super(n),this.name="CliInternalError",this.cause=t;}};var A=null;function O(a){A=a;}function b(){if(!A)throw new I("vibecontrols module helpers used before setHelpersContext was called");return A}function Ht(){let a=b();if(!a.auth.isAuthenticated())throw new C(`Authentication required. Run \`${a.productName} auth login\`.`)}async function s(a,n){return Ht(),b().gql.workspace.request(a,n)}async function w(a,n){return b().gql.workspaceAuthOnly.request(a,n)}function r(a){let n=a instanceof Error?a.message:String(a);throw new u(n)}function i(a,n,t){b().output.formatAndOutput(a,n,t);}function c(a){b().output.printSuccess(a);}function p(a,n){return b().output.truncate(a,n)}var k=`
|
|
2
|
+
query BrainyrichGetHousehold($id: ID!) {
|
|
3
|
+
braHousehold(id: $id) {
|
|
4
|
+
id name advisorId aum currency riskProfile status notes
|
|
5
|
+
primaryContactName primaryContactEmail tags createdAt updatedAt workspaceId
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
`,D=`
|
|
9
|
+
query BrainyrichListHouseholds($status: BraHouseholdStatus, $pagination: PaginationInput) {
|
|
10
|
+
braListHouseholds(status: $status, pagination: $pagination) {
|
|
11
|
+
items {
|
|
12
|
+
id name advisorId aum currency riskProfile status
|
|
13
|
+
primaryContactName tags createdAt
|
|
14
|
+
}
|
|
15
|
+
pageInfo { cursor hasMore }
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
`,P=`
|
|
19
|
+
mutation BrainyrichCreateHousehold($input: BraCreateHouseholdInput!) {
|
|
20
|
+
braCreateHousehold(input: $input) {
|
|
21
|
+
id name advisorId aum currency riskProfile status notes
|
|
22
|
+
primaryContactName primaryContactEmail tags createdAt
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
`,R=`
|
|
26
|
+
mutation BrainyrichUpdateHousehold($id: ID!, $input: BraUpdateHouseholdInput!) {
|
|
27
|
+
braUpdateHousehold(id: $id, input: $input) {
|
|
28
|
+
id name aum currency riskProfile status notes
|
|
29
|
+
primaryContactName primaryContactEmail tags updatedAt
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
`,x=`
|
|
33
|
+
mutation BrainyrichArchiveHousehold($id: ID!) {
|
|
34
|
+
braArchiveHousehold(id: $id)
|
|
35
|
+
}
|
|
36
|
+
`,S=`
|
|
37
|
+
query BrainyrichGetAccount($id: ID!) {
|
|
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 }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
`,L=`
|
|
46
|
+
query BrainyrichListAccounts(
|
|
47
|
+
$householdId: ID
|
|
48
|
+
$status: BraAccountStatus
|
|
49
|
+
$pagination: PaginationInput
|
|
50
|
+
) {
|
|
51
|
+
braListAccounts(householdId: $householdId, status: $status, pagination: $pagination) {
|
|
52
|
+
items {
|
|
53
|
+
id name type status currency cashBalance institution
|
|
54
|
+
ownerId householdId isManual createdAt
|
|
55
|
+
}
|
|
56
|
+
pageInfo { cursor hasMore }
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`,v=`
|
|
60
|
+
mutation BrainyrichCreateAccount($input: BraCreateAccountInput!) {
|
|
61
|
+
braCreateAccount(input: $input) {
|
|
62
|
+
id ownerId householdId name type status currency cashBalance
|
|
63
|
+
institution accountMask isManual createdAt
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
`,$=`
|
|
67
|
+
mutation BrainyrichUpdateAccount($id: ID!, $input: BraUpdateAccountInput!) {
|
|
68
|
+
braUpdateAccount(id: $id, input: $input) {
|
|
69
|
+
id name type status currency cashBalance institution
|
|
70
|
+
accountMask householdId updatedAt
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
`,N=`
|
|
74
|
+
mutation BrainyrichArchiveAccount($id: ID!) {
|
|
75
|
+
braArchiveAccount(id: $id)
|
|
76
|
+
}
|
|
77
|
+
`,G=`
|
|
78
|
+
query BrainyrichListHoldings($accountId: ID, $portfolioId: ID) {
|
|
79
|
+
braListHoldings(accountId: $accountId, portfolioId: $portfolioId) {
|
|
80
|
+
id accountId portfolioId symbol name assetClass quantity costBasis
|
|
81
|
+
lastPrice marketValue currency asOf createdAt updatedAt workspaceId
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
`,H=`
|
|
85
|
+
mutation BrainyrichCreateHolding($input: BraCreateHoldingInput!) {
|
|
86
|
+
braCreateHolding(input: $input) {
|
|
87
|
+
id accountId portfolioId symbol name assetClass quantity costBasis
|
|
88
|
+
lastPrice marketValue currency asOf createdAt
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
`,_=`
|
|
92
|
+
mutation BrainyrichUpdateHolding($id: ID!, $input: BraUpdateHoldingInput!) {
|
|
93
|
+
braUpdateHolding(id: $id, input: $input) {
|
|
94
|
+
id accountId portfolioId symbol name assetClass quantity costBasis
|
|
95
|
+
lastPrice marketValue currency asOf updatedAt
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
`,U=`
|
|
99
|
+
mutation BrainyrichDeleteHolding($id: ID!) {
|
|
100
|
+
braDeleteHolding(id: $id)
|
|
101
|
+
}
|
|
102
|
+
`,B=`
|
|
103
|
+
query BrainyrichGetPortfolio($id: ID!) {
|
|
104
|
+
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 }
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
`,q=`
|
|
112
|
+
query BrainyrichListPortfolios(
|
|
113
|
+
$householdId: ID
|
|
114
|
+
$status: BraPortfolioStatus
|
|
115
|
+
$pagination: PaginationInput
|
|
116
|
+
) {
|
|
117
|
+
braListPortfolios(householdId: $householdId, status: $status, pagination: $pagination) {
|
|
118
|
+
items {
|
|
119
|
+
id name status baseCurrency driftThresholdPct ownerId householdId
|
|
120
|
+
modelPortfolioId tags createdAt
|
|
121
|
+
}
|
|
122
|
+
pageInfo { cursor hasMore }
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
`,M=`
|
|
126
|
+
mutation BrainyrichCreatePortfolio($input: BraCreatePortfolioInput!) {
|
|
127
|
+
braCreatePortfolio(input: $input) {
|
|
128
|
+
id ownerId householdId name description status baseCurrency
|
|
129
|
+
driftThresholdPct modelPortfolioId targetAllocation tags createdAt
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
`,F=`
|
|
133
|
+
mutation BrainyrichUpdatePortfolio($id: ID!, $input: BraUpdatePortfolioInput!) {
|
|
134
|
+
braUpdatePortfolio(id: $id, input: $input) {
|
|
135
|
+
id name description status baseCurrency driftThresholdPct
|
|
136
|
+
modelPortfolioId targetAllocation tags updatedAt
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
`,j=`
|
|
140
|
+
mutation BrainyrichArchivePortfolio($id: ID!) {
|
|
141
|
+
braArchivePortfolio(id: $id)
|
|
142
|
+
}
|
|
143
|
+
`,V=`
|
|
144
|
+
query BrainyrichGetModelPortfolio($id: ID!) {
|
|
145
|
+
braModelPortfolio(id: $id) {
|
|
146
|
+
id name description baseCurrency riskProfile isActive
|
|
147
|
+
createdAt updatedAt workspaceId
|
|
148
|
+
allocations { id assetClass targetPct }
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
`,W=`
|
|
152
|
+
query BrainyrichListModelPortfolios {
|
|
153
|
+
braListModelPortfolios {
|
|
154
|
+
id name description baseCurrency riskProfile isActive createdAt
|
|
155
|
+
allocations { id assetClass targetPct }
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
`,J=`
|
|
159
|
+
mutation BrainyrichCreateModelPortfolio($input: BraCreateModelPortfolioInput!) {
|
|
160
|
+
braCreateModelPortfolio(input: $input) {
|
|
161
|
+
id name description baseCurrency riskProfile isActive createdAt
|
|
162
|
+
allocations { id assetClass targetPct }
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
`,Y=`
|
|
166
|
+
query BrainyrichGetGoal($id: ID!) {
|
|
167
|
+
braGoal(id: $id) {
|
|
168
|
+
id ownerId householdId name type status currency targetAmount targetDate
|
|
169
|
+
monthlyContribution priority projection notes tags createdAt updatedAt workspaceId
|
|
170
|
+
fundings { id accountId allocationPct fixedAmount }
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
`,K=`
|
|
174
|
+
query BrainyrichListGoals(
|
|
175
|
+
$householdId: ID
|
|
176
|
+
$status: BraGoalStatus
|
|
177
|
+
$pagination: PaginationInput
|
|
178
|
+
) {
|
|
179
|
+
braListGoals(householdId: $householdId, status: $status, pagination: $pagination) {
|
|
180
|
+
items {
|
|
181
|
+
id name type status currency targetAmount targetDate
|
|
182
|
+
monthlyContribution priority projection ownerId householdId createdAt
|
|
183
|
+
}
|
|
184
|
+
pageInfo { cursor hasMore }
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
`,z=`
|
|
188
|
+
query BrainyrichListGoalFundings($goalId: ID!) {
|
|
189
|
+
braListGoalFundings(goalId: $goalId) {
|
|
190
|
+
id goalId accountId allocationPct fixedAmount createdAt updatedAt workspaceId
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
`,Q=`
|
|
194
|
+
mutation BrainyrichCreateGoal($input: BraCreateGoalInput!) {
|
|
195
|
+
braCreateGoal(input: $input) {
|
|
196
|
+
id ownerId householdId name type status currency targetAmount targetDate
|
|
197
|
+
monthlyContribution priority projection notes tags createdAt
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
`,X=`
|
|
201
|
+
mutation BrainyrichUpdateGoal($id: ID!, $input: BraUpdateGoalInput!) {
|
|
202
|
+
braUpdateGoal(id: $id, input: $input) {
|
|
203
|
+
id name type status currency targetAmount targetDate
|
|
204
|
+
monthlyContribution priority notes tags updatedAt
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
`,Z=`
|
|
208
|
+
mutation BrainyrichArchiveGoal($id: ID!) {
|
|
209
|
+
braArchiveGoal(id: $id)
|
|
210
|
+
}
|
|
211
|
+
`,tt=`
|
|
212
|
+
mutation BrainyrichRecalcGoalProjection($id: ID!, $fundedAmount: Float!) {
|
|
213
|
+
braRecalcGoalProjection(id: $id, fundedAmount: $fundedAmount) {
|
|
214
|
+
id name status projection targetAmount targetDate updatedAt
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
`,et=`
|
|
218
|
+
mutation BrainyrichLinkGoalFunding($input: BraLinkGoalFundingInput!) {
|
|
219
|
+
braLinkGoalFunding(input: $input) {
|
|
220
|
+
id goalId accountId allocationPct fixedAmount createdAt
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
`,ot=`
|
|
224
|
+
mutation BrainyrichUnlinkGoalFunding($id: ID!) {
|
|
225
|
+
braUnlinkGoalFunding(id: $id)
|
|
226
|
+
}
|
|
227
|
+
`,nt=`
|
|
228
|
+
query BrainyrichListTransactions(
|
|
229
|
+
$accountId: ID
|
|
230
|
+
$type: BraTransactionType
|
|
231
|
+
$pagination: PaginationInput
|
|
232
|
+
) {
|
|
233
|
+
braListTransactions(accountId: $accountId, type: $type, pagination: $pagination) {
|
|
234
|
+
items {
|
|
235
|
+
id accountId holdingId type symbol quantity price amount fee
|
|
236
|
+
currency tradeDate settleDate notes createdAt
|
|
237
|
+
}
|
|
238
|
+
pageInfo { cursor hasMore }
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
`,rt=`
|
|
242
|
+
mutation BrainyrichRecordTransaction($input: BraCreateTransactionInput!) {
|
|
243
|
+
braRecordTransaction(input: $input) {
|
|
244
|
+
id accountId holdingId type symbol quantity price amount fee
|
|
245
|
+
currency tradeDate settleDate notes createdAt
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
`,it=`
|
|
249
|
+
query BrainyrichGetInsight($id: ID!) {
|
|
250
|
+
braInsight(id: $id) {
|
|
251
|
+
id ownerId type severity status title detail subjectId subjectType
|
|
252
|
+
metrics acknowledgedById resolvedAt createdAt updatedAt workspaceId
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
`,at=`
|
|
256
|
+
query BrainyrichListInsights(
|
|
257
|
+
$status: BraInsightStatus
|
|
258
|
+
$severity: BraInsightSeverity
|
|
259
|
+
$subjectId: ID
|
|
260
|
+
$subjectType: String
|
|
261
|
+
$pagination: PaginationInput
|
|
262
|
+
) {
|
|
263
|
+
braListInsights(
|
|
264
|
+
status: $status
|
|
265
|
+
severity: $severity
|
|
266
|
+
subjectId: $subjectId
|
|
267
|
+
subjectType: $subjectType
|
|
268
|
+
pagination: $pagination
|
|
269
|
+
) {
|
|
270
|
+
items {
|
|
271
|
+
id type severity status title subjectId subjectType ownerId createdAt
|
|
272
|
+
}
|
|
273
|
+
pageInfo { cursor hasMore }
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
`,st=`
|
|
277
|
+
mutation BrainyrichCreateInsight($input: BraCreateInsightInput!) {
|
|
278
|
+
braCreateInsight(input: $input) {
|
|
279
|
+
id ownerId type severity status title detail subjectId subjectType
|
|
280
|
+
metrics createdAt
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
`,ct=`
|
|
284
|
+
mutation BrainyrichAcknowledgeInsight($id: ID!) {
|
|
285
|
+
braAcknowledgeInsight(id: $id) {
|
|
286
|
+
id type severity status title acknowledgedById updatedAt
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
`,ut=`
|
|
290
|
+
mutation BrainyrichDismissInsight($id: ID!) {
|
|
291
|
+
braDismissInsight(id: $id) {
|
|
292
|
+
id type severity status title updatedAt
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
`,dt=`
|
|
296
|
+
mutation BrainyrichResolveInsight($id: ID!) {
|
|
297
|
+
braResolveInsight(id: $id) {
|
|
298
|
+
id type severity status title resolvedAt updatedAt
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
`,lt=`
|
|
302
|
+
query BrainyrichListRebalanceProposals(
|
|
303
|
+
$portfolioId: ID
|
|
304
|
+
$householdId: ID
|
|
305
|
+
$status: BraRebalanceStatus
|
|
306
|
+
) {
|
|
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
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
`,pt=`
|
|
317
|
+
mutation BrainyrichCreateRebalanceProposal($input: BraCreateRebalanceProposalInput!) {
|
|
318
|
+
braCreateRebalanceProposal(input: $input) {
|
|
319
|
+
id portfolioId householdId status driftPct rationale trades createdAt
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
`,mt=`
|
|
323
|
+
mutation BrainyrichTransitionRebalanceProposal($id: ID!, $status: BraRebalanceStatus!) {
|
|
324
|
+
braTransitionRebalanceProposal(id: $id, status: $status) {
|
|
325
|
+
id portfolioId status driftPct approvedById executedAt updatedAt
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
`,ft=`
|
|
329
|
+
query BrainyrichNetWorthSummary($ownerId: ID) {
|
|
330
|
+
braNetWorthSummary(ownerId: $ownerId) {
|
|
331
|
+
ownerId currency totalNetWorth totalMarketValue totalCash accountCount
|
|
332
|
+
byAssetClass { assetClass marketValue }
|
|
333
|
+
workspaceId
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
`,gt=`
|
|
337
|
+
query BrainyrichHealth {
|
|
338
|
+
braHealth
|
|
339
|
+
}
|
|
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(D,{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(P,{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 Tt(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 Ot(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){O(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),Tt(t),Ot(t);}},Go=_t;module.exports=Go;
|