@quantbrasil/cli 0.1.0-beta.2 → 0.1.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +14 -11
  2. package/dist/cli/index.d.ts +2 -3
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +2 -10
  5. package/dist/commands/portfolios.d.ts +133 -8
  6. package/dist/commands/portfolios.d.ts.map +1 -1
  7. package/dist/commands/portfolios.js +434 -55
  8. package/dist/index.d.ts +0 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +0 -1
  11. package/dist/vendor/core/capabilities/index.d.ts +0 -1
  12. package/dist/vendor/core/capabilities/index.d.ts.map +1 -1
  13. package/dist/vendor/core/capabilities/index.js +0 -1
  14. package/dist/vendor/core/capabilities/portfolios.d.ts +401 -56
  15. package/dist/vendor/core/capabilities/portfolios.d.ts.map +1 -1
  16. package/dist/vendor/core/capabilities/portfolios.js +383 -115
  17. package/dist/vendor/core/capabilities/registry.d.ts +586 -266
  18. package/dist/vendor/core/capabilities/registry.d.ts.map +1 -1
  19. package/dist/vendor/core/capabilities/registry.js +0 -2
  20. package/dist/vendor/core/capabilities/types.d.ts +1 -1
  21. package/dist/vendor/core/capabilities/types.d.ts.map +1 -1
  22. package/package.json +1 -1
  23. package/skills/quantbrasil/SKILL.md +13 -5
  24. package/skills/quantbrasil/references/cli.md +22 -25
  25. package/skills/quantbrasil/references/costs.md +4 -4
  26. package/skills/quantbrasil/references/errors.md +16 -5
  27. package/skills/quantbrasil/references/portfolios.md +92 -0
  28. package/skills/quantbrasil/references/unsupported.md +2 -2
  29. package/skills/quantbrasil/references/workflows.md +41 -22
  30. package/dist/commands/analytics.d.ts +0 -131
  31. package/dist/commands/analytics.d.ts.map +0 -1
  32. package/dist/commands/analytics.js +0 -291
  33. package/dist/vendor/core/capabilities/analytics.d.ts +0 -187
  34. package/dist/vendor/core/capabilities/analytics.d.ts.map +0 -1
  35. package/dist/vendor/core/capabilities/analytics.js +0 -214
package/dist/index.js CHANGED
@@ -2,7 +2,6 @@ export * from "./cli/auth.js";
2
2
  export * from "./cli/client.js";
3
3
  export * from "./cli/errors.js";
4
4
  export * from "./cli/index.js";
5
- export * from "./commands/analytics.js";
6
5
  export * from "./commands/assets.js";
7
6
  export * from "./commands/auth.js";
8
7
  export * from "./commands/capabilities.js";
@@ -3,6 +3,5 @@ export * from "./shared.js";
3
3
  export * from "./market.js";
4
4
  export * from "./assets.js";
5
5
  export * from "./portfolios.js";
6
- export * from "./analytics.js";
7
6
  export * from "./registry.js";
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capabilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
@@ -3,5 +3,4 @@ export * from "./shared.js";
3
3
  export * from "./market.js";
4
4
  export * from "./assets.js";
5
5
  export * from "./portfolios.js";
6
- export * from "./analytics.js";
7
6
  export * from "./registry.js";
@@ -1,11 +1,11 @@
1
1
  export declare const portfolioCapabilities: readonly [{
2
- readonly id: "portfolios.list";
2
+ readonly id: "watchlists.list";
3
3
  readonly kind: "read";
4
4
  readonly visibility: readonly ["cli", "opencode"];
5
- readonly description: "List every portfolio owned by the authenticated user.";
5
+ readonly description: "List watchlists owned by the authenticated user.";
6
6
  readonly http: {
7
7
  readonly method: "GET";
8
- readonly path: "/api/desk/tools/portfolio/list";
8
+ readonly path: "/api/desk/tools/watchlist/list";
9
9
  readonly inputMode: "none";
10
10
  readonly schemas: {
11
11
  readonly request: null;
@@ -13,26 +13,26 @@ export declare const portfolioCapabilities: readonly [{
13
13
  };
14
14
  };
15
15
  readonly cli: {
16
- readonly group: "portfolios";
16
+ readonly group: "watchlists";
17
17
  readonly command: "list";
18
- readonly summary: "List the user portfolios available in QuantBrasil.";
18
+ readonly summary: "List watchlists for tracking ideas and filters.";
19
19
  readonly positional: readonly [];
20
20
  readonly options: readonly [];
21
- readonly examples: readonly ["quantbrasil portfolios list"];
21
+ readonly examples: readonly ["quantbrasil watchlists list"];
22
22
  };
23
23
  readonly tool: {
24
- readonly name: "qb_portfolio_list";
25
- readonly title: "List portfolios";
24
+ readonly name: "qb_watchlist_list";
25
+ readonly title: "List watchlists";
26
26
  };
27
27
  readonly outputModes: readonly ["json", "human"];
28
28
  }, {
29
- readonly id: "portfolios.get";
29
+ readonly id: "watchlists.get";
30
30
  readonly kind: "read";
31
31
  readonly visibility: readonly ["cli", "opencode"];
32
- readonly description: "Return one saved portfolio by id, scoped to the acting user.";
32
+ readonly description: "Return one watchlist by id, scoped to the acting user.";
33
33
  readonly http: {
34
34
  readonly method: "POST";
35
- readonly path: "/api/desk/tools/portfolio/get";
35
+ readonly path: "/api/desk/tools/watchlist/get";
36
36
  readonly inputMode: "json_body";
37
37
  readonly schemas: {
38
38
  readonly request: "PortfolioGetRequest";
@@ -40,33 +40,33 @@ export declare const portfolioCapabilities: readonly [{
40
40
  };
41
41
  };
42
42
  readonly cli: {
43
- readonly group: "portfolios";
43
+ readonly group: "watchlists";
44
44
  readonly command: "get";
45
- readonly summary: "Get a saved portfolio by id.";
45
+ readonly summary: "Get a watchlist by id.";
46
46
  readonly positional: readonly [{
47
47
  readonly kind: "positional";
48
48
  readonly name: "portfolio_id";
49
49
  readonly type: "integer";
50
50
  readonly required: true;
51
51
  readonly placeholder: "ID";
52
- readonly description: "Saved portfolio identifier.";
52
+ readonly description: "Stable saved object identifier.";
53
53
  }];
54
54
  readonly options: readonly [];
55
- readonly examples: readonly ["quantbrasil portfolios get 123"];
55
+ readonly examples: readonly ["quantbrasil watchlists get 123"];
56
56
  };
57
57
  readonly tool: {
58
- readonly name: "qb_portfolio_get";
59
- readonly title: "Get portfolio";
58
+ readonly name: "qb_watchlist_get";
59
+ readonly title: "Get watchlist";
60
60
  };
61
61
  readonly outputModes: readonly ["json", "human"];
62
62
  }, {
63
- readonly id: "portfolios.create";
63
+ readonly id: "watchlists.create";
64
64
  readonly kind: "mutation";
65
65
  readonly visibility: readonly ["cli", "opencode"];
66
- readonly description: "Create a new saved portfolio for the authenticated user.";
66
+ readonly description: "Create a new watchlist for the authenticated user.";
67
67
  readonly http: {
68
68
  readonly method: "POST";
69
- readonly path: "/api/desk/tools/portfolio/create";
69
+ readonly path: "/api/desk/tools/watchlist/create";
70
70
  readonly inputMode: "json_body";
71
71
  readonly schemas: {
72
72
  readonly request: "PortfolioCreateRequest";
@@ -74,33 +74,33 @@ export declare const portfolioCapabilities: readonly [{
74
74
  };
75
75
  };
76
76
  readonly cli: {
77
- readonly group: "portfolios";
77
+ readonly group: "watchlists";
78
78
  readonly command: "create";
79
- readonly summary: "Create a new portfolio.";
79
+ readonly summary: "Create a new watchlist.";
80
80
  readonly positional: readonly [{
81
81
  readonly kind: "positional";
82
82
  readonly name: "name";
83
83
  readonly type: "string";
84
84
  readonly required: true;
85
85
  readonly placeholder: "NOME";
86
- readonly description: "Portfolio name to create.";
86
+ readonly description: "Name to save.";
87
87
  }];
88
88
  readonly options: readonly [];
89
- readonly examples: readonly ["quantbrasil portfolios create \"Dividendos\""];
89
+ readonly examples: readonly ["quantbrasil watchlists create \"Dividendos\""];
90
90
  };
91
91
  readonly tool: {
92
- readonly name: "qb_portfolio_create";
93
- readonly title: "Create portfolio";
92
+ readonly name: "qb_watchlist_create";
93
+ readonly title: "Create watchlist";
94
94
  };
95
95
  readonly outputModes: readonly ["json", "human"];
96
96
  }, {
97
- readonly id: "portfolios.rename";
97
+ readonly id: "watchlists.rename";
98
98
  readonly kind: "mutation";
99
99
  readonly visibility: readonly ["cli", "opencode"];
100
- readonly description: "Rename a saved portfolio owned by the authenticated user.";
100
+ readonly description: "Rename a watchlist owned by the authenticated user.";
101
101
  readonly http: {
102
102
  readonly method: "POST";
103
- readonly path: "/api/desk/tools/portfolio/rename";
103
+ readonly path: "/api/desk/tools/watchlist/rename";
104
104
  readonly inputMode: "json_body";
105
105
  readonly schemas: {
106
106
  readonly request: "PortfolioRenameRequest";
@@ -108,40 +108,40 @@ export declare const portfolioCapabilities: readonly [{
108
108
  };
109
109
  };
110
110
  readonly cli: {
111
- readonly group: "portfolios";
111
+ readonly group: "watchlists";
112
112
  readonly command: "rename";
113
- readonly summary: "Rename an existing portfolio.";
113
+ readonly summary: "Rename an existing watchlist.";
114
114
  readonly positional: readonly [{
115
115
  readonly kind: "positional";
116
116
  readonly name: "portfolio_id";
117
117
  readonly type: "integer";
118
118
  readonly required: true;
119
119
  readonly placeholder: "ID";
120
- readonly description: "Saved portfolio identifier.";
120
+ readonly description: "Stable saved object identifier.";
121
121
  }, {
122
122
  readonly kind: "positional";
123
123
  readonly name: "name";
124
124
  readonly type: "string";
125
125
  readonly required: true;
126
126
  readonly placeholder: "NOME";
127
- readonly description: "New portfolio name.";
127
+ readonly description: "Name to save.";
128
128
  }];
129
129
  readonly options: readonly [];
130
- readonly examples: readonly ["quantbrasil portfolios rename 123 \"Longo Prazo\""];
130
+ readonly examples: readonly ["quantbrasil watchlists rename 123 \"Longo Prazo\""];
131
131
  };
132
132
  readonly tool: {
133
- readonly name: "qb_portfolio_rename";
134
- readonly title: "Rename portfolio";
133
+ readonly name: "qb_watchlist_rename";
134
+ readonly title: "Rename watchlist";
135
135
  };
136
136
  readonly outputModes: readonly ["json", "human"];
137
137
  }, {
138
- readonly id: "portfolios.add-assets";
138
+ readonly id: "watchlists.add-assets";
139
139
  readonly kind: "mutation";
140
140
  readonly visibility: readonly ["cli", "opencode"];
141
- readonly description: "Add one or more monitored tickers to a saved portfolio.";
141
+ readonly description: "Add one or more monitored tickers to a watchlist.";
142
142
  readonly http: {
143
143
  readonly method: "POST";
144
- readonly path: "/api/desk/tools/portfolio/add_assets";
144
+ readonly path: "/api/desk/tools/watchlist/add_assets";
145
145
  readonly inputMode: "json_body";
146
146
  readonly schemas: {
147
147
  readonly request: "PortfolioAddAssetsRequest";
@@ -149,16 +149,16 @@ export declare const portfolioCapabilities: readonly [{
149
149
  };
150
150
  };
151
151
  readonly cli: {
152
- readonly group: "portfolios";
152
+ readonly group: "watchlists";
153
153
  readonly command: "add-assets";
154
- readonly summary: "Add monitored tickers to an existing portfolio.";
154
+ readonly summary: "Add monitored tickers to an existing watchlist.";
155
155
  readonly positional: readonly [{
156
156
  readonly kind: "positional";
157
157
  readonly name: "portfolio_id";
158
158
  readonly type: "integer";
159
159
  readonly required: true;
160
160
  readonly placeholder: "ID";
161
- readonly description: "Saved portfolio identifier.";
161
+ readonly description: "Stable saved object identifier.";
162
162
  }, {
163
163
  readonly kind: "positional";
164
164
  readonly name: "symbols";
@@ -167,24 +167,24 @@ export declare const portfolioCapabilities: readonly [{
167
167
  readonly placeholder: "TICKER";
168
168
  readonly multiple: true;
169
169
  readonly collectionFormat: "space_separated";
170
- readonly description: "One or more monitored ticker symbols to add to the portfolio.";
170
+ readonly description: "One or more monitored ticker symbols.";
171
171
  }];
172
172
  readonly options: readonly [];
173
- readonly examples: readonly ["quantbrasil portfolios add-assets 123 PETR4 VALE3"];
173
+ readonly examples: readonly ["quantbrasil watchlists add-assets 123 PETR4 VALE3"];
174
174
  };
175
175
  readonly tool: {
176
- readonly name: "qb_portfolio_add_assets";
177
- readonly title: "Add portfolio assets";
176
+ readonly name: "qb_watchlist_add_assets";
177
+ readonly title: "Add watchlist assets";
178
178
  };
179
179
  readonly outputModes: readonly ["json", "human"];
180
180
  }, {
181
- readonly id: "portfolios.remove-assets";
181
+ readonly id: "watchlists.remove-assets";
182
182
  readonly kind: "mutation";
183
183
  readonly visibility: readonly ["cli", "opencode"];
184
- readonly description: "Remove one or more monitored tickers from a saved portfolio.";
184
+ readonly description: "Remove one or more monitored tickers from a watchlist.";
185
185
  readonly http: {
186
186
  readonly method: "POST";
187
- readonly path: "/api/desk/tools/portfolio/remove_assets";
187
+ readonly path: "/api/desk/tools/watchlist/remove_assets";
188
188
  readonly inputMode: "json_body";
189
189
  readonly schemas: {
190
190
  readonly request: "PortfolioRemoveAssetsRequest";
@@ -192,16 +192,16 @@ export declare const portfolioCapabilities: readonly [{
192
192
  };
193
193
  };
194
194
  readonly cli: {
195
- readonly group: "portfolios";
195
+ readonly group: "watchlists";
196
196
  readonly command: "remove-assets";
197
- readonly summary: "Remove monitored tickers from an existing portfolio.";
197
+ readonly summary: "Remove monitored tickers from an existing watchlist.";
198
198
  readonly positional: readonly [{
199
199
  readonly kind: "positional";
200
200
  readonly name: "portfolio_id";
201
201
  readonly type: "integer";
202
202
  readonly required: true;
203
203
  readonly placeholder: "ID";
204
- readonly description: "Saved portfolio identifier.";
204
+ readonly description: "Stable saved object identifier.";
205
205
  }, {
206
206
  readonly kind: "positional";
207
207
  readonly name: "symbols";
@@ -210,14 +210,359 @@ export declare const portfolioCapabilities: readonly [{
210
210
  readonly placeholder: "TICKER";
211
211
  readonly multiple: true;
212
212
  readonly collectionFormat: "space_separated";
213
- readonly description: "One or more monitored ticker symbols to remove from the portfolio.";
213
+ readonly description: "One or more monitored ticker symbols.";
214
214
  }];
215
215
  readonly options: readonly [];
216
- readonly examples: readonly ["quantbrasil portfolios remove-assets 123 PETR4"];
216
+ readonly examples: readonly ["quantbrasil watchlists remove-assets 123 PETR4"];
217
217
  };
218
218
  readonly tool: {
219
- readonly name: "qb_portfolio_remove_assets";
220
- readonly title: "Remove portfolio assets";
219
+ readonly name: "qb_watchlist_remove_assets";
220
+ readonly title: "Remove watchlist assets";
221
+ };
222
+ readonly outputModes: readonly ["json", "human"];
223
+ }, {
224
+ readonly id: "holdings.list";
225
+ readonly kind: "read";
226
+ readonly visibility: readonly ["cli", "opencode"];
227
+ readonly description: "List holdings owned by the authenticated user.";
228
+ readonly http: {
229
+ readonly method: "GET";
230
+ readonly path: "/api/desk/tools/holding/list";
231
+ readonly inputMode: "none";
232
+ readonly schemas: {
233
+ readonly request: null;
234
+ readonly response: "PortfolioListResponse";
235
+ };
236
+ };
237
+ readonly cli: {
238
+ readonly group: "holdings";
239
+ readonly command: "list";
240
+ readonly summary: "List holdings for investable metrics.";
241
+ readonly positional: readonly [];
242
+ readonly options: readonly [];
243
+ readonly examples: readonly ["quantbrasil holdings list"];
244
+ };
245
+ readonly tool: {
246
+ readonly name: "qb_holding_list";
247
+ readonly title: "List holdings";
248
+ };
249
+ readonly outputModes: readonly ["json", "human"];
250
+ }, {
251
+ readonly id: "holdings.get";
252
+ readonly kind: "read";
253
+ readonly visibility: readonly ["cli", "opencode"];
254
+ readonly description: "Return one holding by id, scoped to the acting user.";
255
+ readonly http: {
256
+ readonly method: "POST";
257
+ readonly path: "/api/desk/tools/holding/get";
258
+ readonly inputMode: "json_body";
259
+ readonly schemas: {
260
+ readonly request: "PortfolioGetRequest";
261
+ readonly response: "PortfolioGetResponse";
262
+ };
263
+ };
264
+ readonly cli: {
265
+ readonly group: "holdings";
266
+ readonly command: "get";
267
+ readonly summary: "Get a holding by id.";
268
+ readonly positional: readonly [{
269
+ readonly kind: "positional";
270
+ readonly name: "portfolio_id";
271
+ readonly type: "integer";
272
+ readonly required: true;
273
+ readonly placeholder: "ID";
274
+ readonly description: "Stable saved object identifier.";
275
+ }];
276
+ readonly options: readonly [];
277
+ readonly examples: readonly ["quantbrasil holdings get 123"];
278
+ };
279
+ readonly tool: {
280
+ readonly name: "qb_holding_get";
281
+ readonly title: "Get holding";
282
+ };
283
+ readonly outputModes: readonly ["json", "human"];
284
+ }, {
285
+ readonly id: "holdings.create";
286
+ readonly kind: "mutation";
287
+ readonly visibility: readonly ["cli", "opencode"];
288
+ readonly description: "Create a new holding for the authenticated user.";
289
+ readonly http: {
290
+ readonly method: "POST";
291
+ readonly path: "/api/desk/tools/holding/create";
292
+ readonly inputMode: "json_body";
293
+ readonly schemas: {
294
+ readonly request: "DeskHoldingCreateRequest";
295
+ readonly response: "PortfolioCreateResponse";
296
+ };
297
+ };
298
+ readonly cli: {
299
+ readonly group: "holdings";
300
+ readonly command: "create";
301
+ readonly summary: "Create a new holding.";
302
+ readonly positional: readonly [{
303
+ readonly kind: "positional";
304
+ readonly name: "name";
305
+ readonly type: "string";
306
+ readonly required: true;
307
+ readonly placeholder: "NOME";
308
+ readonly description: "Name to save.";
309
+ }];
310
+ readonly options: readonly [{
311
+ readonly kind: "option";
312
+ readonly flag: "--mode";
313
+ readonly name: "default_allocation_input";
314
+ readonly type: "enum";
315
+ readonly required: false;
316
+ readonly placeholder: "target|position";
317
+ readonly defaultValue: "target";
318
+ readonly enumValues: readonly ["target", "position"];
319
+ readonly description: "How the holding is controlled initially: target weights or positions.";
320
+ }, {
321
+ readonly kind: "option";
322
+ readonly flag: "--target";
323
+ readonly name: "targets";
324
+ readonly type: "string_array";
325
+ readonly required: false;
326
+ readonly placeholder: "TICKER:PESO";
327
+ readonly multiple: true;
328
+ readonly collectionFormat: "repeatable";
329
+ readonly description: "Initial target weight in TICKER:WEIGHT_PCT form.";
330
+ }];
331
+ readonly examples: readonly ["quantbrasil holdings create \"Longo Prazo\"", "quantbrasil holdings create \"Teórica\" --target PRIO3:50 --target VALE3:50", "quantbrasil holdings create \"Real\" --mode position"];
332
+ };
333
+ readonly tool: {
334
+ readonly name: "qb_holding_create";
335
+ readonly title: "Create holding";
336
+ };
337
+ readonly outputModes: readonly ["json", "human"];
338
+ }, {
339
+ readonly id: "holdings.rename";
340
+ readonly kind: "mutation";
341
+ readonly visibility: readonly ["cli", "opencode"];
342
+ readonly description: "Rename a holding owned by the authenticated user.";
343
+ readonly http: {
344
+ readonly method: "POST";
345
+ readonly path: "/api/desk/tools/holding/rename";
346
+ readonly inputMode: "json_body";
347
+ readonly schemas: {
348
+ readonly request: "PortfolioRenameRequest";
349
+ readonly response: "PortfolioMutationResponse";
350
+ };
351
+ };
352
+ readonly cli: {
353
+ readonly group: "holdings";
354
+ readonly command: "rename";
355
+ readonly summary: "Rename an existing holding.";
356
+ readonly positional: readonly [{
357
+ readonly kind: "positional";
358
+ readonly name: "portfolio_id";
359
+ readonly type: "integer";
360
+ readonly required: true;
361
+ readonly placeholder: "ID";
362
+ readonly description: "Stable saved object identifier.";
363
+ }, {
364
+ readonly kind: "positional";
365
+ readonly name: "name";
366
+ readonly type: "string";
367
+ readonly required: true;
368
+ readonly placeholder: "NOME";
369
+ readonly description: "Name to save.";
370
+ }];
371
+ readonly options: readonly [];
372
+ readonly examples: readonly ["quantbrasil holdings rename 123 \"Longo Prazo\""];
373
+ };
374
+ readonly tool: {
375
+ readonly name: "qb_holding_rename";
376
+ readonly title: "Rename holding";
377
+ };
378
+ readonly outputModes: readonly ["json", "human"];
379
+ }, {
380
+ readonly id: "holdings.set-targets";
381
+ readonly kind: "mutation";
382
+ readonly visibility: readonly ["cli", "opencode"];
383
+ readonly description: "Set target weights for a holding owned by the authenticated user.";
384
+ readonly http: {
385
+ readonly method: "POST";
386
+ readonly path: "/api/desk/tools/holding/set_targets";
387
+ readonly inputMode: "json_body";
388
+ readonly schemas: {
389
+ readonly request: "HoldingSetTargetsRequest";
390
+ readonly response: "PortfolioMutationResponse";
391
+ };
392
+ };
393
+ readonly cli: {
394
+ readonly group: "holdings";
395
+ readonly command: "set-targets";
396
+ readonly summary: "Set target weights for a holding.";
397
+ readonly positional: readonly [{
398
+ readonly kind: "positional";
399
+ readonly name: "portfolio_id";
400
+ readonly type: "integer";
401
+ readonly required: true;
402
+ readonly placeholder: "ID";
403
+ readonly description: "Stable saved object identifier.";
404
+ }, {
405
+ readonly kind: "positional";
406
+ readonly name: "targets";
407
+ readonly type: "string_array";
408
+ readonly required: true;
409
+ readonly placeholder: "TICKER:PESO";
410
+ readonly multiple: true;
411
+ readonly collectionFormat: "space_separated";
412
+ readonly description: "One or more target weights in TICKER:WEIGHT_PCT form.";
413
+ }];
414
+ readonly options: readonly [];
415
+ readonly examples: readonly ["quantbrasil holdings set-targets 123 PRIO3:50 VALE3:50"];
416
+ };
417
+ readonly tool: {
418
+ readonly name: "qb_holding_set_targets";
419
+ readonly title: "Set holding target weights";
420
+ };
421
+ readonly outputModes: readonly ["json", "human"];
422
+ }, {
423
+ readonly id: "holdings.historical-return";
424
+ readonly kind: "read";
425
+ readonly visibility: readonly ["cli", "opencode"];
426
+ readonly description: "Calculate historical return for a holding.";
427
+ readonly http: {
428
+ readonly method: "POST";
429
+ readonly path: "/api/desk/tools/holding/historical_return";
430
+ readonly inputMode: "json_body";
431
+ readonly schemas: {
432
+ readonly request: "PortfolioHistoricalReturnRequest";
433
+ readonly response: "HistoricalReturnResponse";
434
+ };
435
+ };
436
+ readonly cli: {
437
+ readonly group: "holdings";
438
+ readonly command: "historical-return";
439
+ readonly summary: "Calculate historical return for a saved holding.";
440
+ readonly positional: readonly [{
441
+ readonly kind: "positional";
442
+ readonly name: "portfolio_id";
443
+ readonly type: "integer";
444
+ readonly required: true;
445
+ readonly placeholder: "ID";
446
+ readonly description: "Stable saved object identifier.";
447
+ }];
448
+ readonly options: readonly [{
449
+ readonly kind: "option";
450
+ readonly flag: "--from";
451
+ readonly name: "start_date";
452
+ readonly type: "string";
453
+ readonly required: true;
454
+ readonly placeholder: "AAAA-MM-DD";
455
+ readonly description: "Inclusive start date in ISO format.";
456
+ }, {
457
+ readonly kind: "option";
458
+ readonly flag: "--to";
459
+ readonly name: "end_date";
460
+ readonly type: "string";
461
+ readonly required: true;
462
+ readonly placeholder: "AAAA-MM-DD";
463
+ readonly description: "Inclusive end date in ISO format.";
464
+ }];
465
+ readonly examples: readonly ["quantbrasil holdings historical-return 123 --from 2024-01-01 --to 2025-01-01"];
466
+ };
467
+ readonly tool: {
468
+ readonly name: "qb_holding_historical_return";
469
+ readonly title: "Calculate holding historical return";
470
+ };
471
+ readonly outputModes: readonly ["json", "human"];
472
+ }, {
473
+ readonly id: "holdings.beta";
474
+ readonly kind: "read";
475
+ readonly visibility: readonly ["cli", "opencode"];
476
+ readonly description: "Calculate holding beta against IBOV.";
477
+ readonly http: {
478
+ readonly method: "POST";
479
+ readonly path: "/api/desk/tools/holding/beta";
480
+ readonly inputMode: "json_body";
481
+ readonly schemas: {
482
+ readonly request: "PortfolioBetaRequest";
483
+ readonly response: "PortfolioBetaResponse";
484
+ };
485
+ };
486
+ readonly cli: {
487
+ readonly group: "holdings";
488
+ readonly command: "beta";
489
+ readonly summary: "Calculate holding beta against IBOV.";
490
+ readonly positional: readonly [{
491
+ readonly kind: "positional";
492
+ readonly name: "portfolio_id";
493
+ readonly type: "integer";
494
+ readonly required: true;
495
+ readonly placeholder: "ID";
496
+ readonly description: "Stable saved object identifier.";
497
+ }];
498
+ readonly options: readonly [{
499
+ readonly kind: "option";
500
+ readonly flag: "--years";
501
+ readonly name: "years";
502
+ readonly type: "enum";
503
+ readonly required: false;
504
+ readonly placeholder: "ANOS";
505
+ readonly defaultValue: 1;
506
+ readonly enumValues: readonly ["1", "3", "5"];
507
+ readonly description: "Historical lookback window in years. Accepted values: 1, 3, or 5.";
508
+ }];
509
+ readonly examples: readonly ["quantbrasil holdings beta 123 --years 3"];
510
+ };
511
+ readonly tool: {
512
+ readonly name: "qb_holding_beta";
513
+ readonly title: "Calculate holding beta";
514
+ };
515
+ readonly outputModes: readonly ["json", "human"];
516
+ }, {
517
+ readonly id: "holdings.var";
518
+ readonly kind: "read";
519
+ readonly visibility: readonly ["cli", "opencode"];
520
+ readonly description: "Calculate one-day Value-at-Risk for a holding.";
521
+ readonly http: {
522
+ readonly method: "POST";
523
+ readonly path: "/api/desk/tools/holding/var";
524
+ readonly inputMode: "json_body";
525
+ readonly schemas: {
526
+ readonly request: "PortfolioVaRRequest";
527
+ readonly response: "PortfolioVaRResponse";
528
+ };
529
+ };
530
+ readonly cli: {
531
+ readonly group: "holdings";
532
+ readonly command: "var";
533
+ readonly summary: "Calculate one-day Value-at-Risk for a holding.";
534
+ readonly positional: readonly [{
535
+ readonly kind: "positional";
536
+ readonly name: "portfolio_id";
537
+ readonly type: "integer";
538
+ readonly required: true;
539
+ readonly placeholder: "ID";
540
+ readonly description: "Stable saved object identifier.";
541
+ }];
542
+ readonly options: readonly [{
543
+ readonly kind: "option";
544
+ readonly flag: "--years";
545
+ readonly name: "years";
546
+ readonly type: "integer";
547
+ readonly required: false;
548
+ readonly placeholder: "ANOS";
549
+ readonly defaultValue: 1;
550
+ readonly description: "Historical lookback window in years. The VaR horizon remains one day.";
551
+ }, {
552
+ readonly kind: "option";
553
+ readonly flag: "--confidence";
554
+ readonly name: "confidence_pct";
555
+ readonly type: "number";
556
+ readonly required: false;
557
+ readonly placeholder: "PERCENTUAL";
558
+ readonly defaultValue: 95;
559
+ readonly description: "Confidence level in percent, for example 95 or 99.";
560
+ }];
561
+ readonly examples: readonly ["quantbrasil holdings var 123 --years 1 --confidence 95"];
562
+ };
563
+ readonly tool: {
564
+ readonly name: "qb_holding_var";
565
+ readonly title: "Calculate holding VaR";
221
566
  };
222
567
  readonly outputModes: readonly ["json", "human"];
223
568
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"portfolios.d.ts","sourceRoot":"","sources":["../../src/capabilities/portfolios.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoPkB,CAAC"}
1
+ {"version":3,"file":"portfolios.d.ts","sourceRoot":"","sources":["../../src/capabilities/portfolios.ts"],"names":[],"mappings":"AA2CA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8dkB,CAAC"}