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