@quantbrasil/cli 0.1.0-beta.13 → 0.1.0-beta.14

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 +5 -0
  2. package/dist/cli/index.d.ts +4 -0
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +16 -0
  5. package/dist/commands/backtests.d.ts +132 -0
  6. package/dist/commands/backtests.d.ts.map +1 -0
  7. package/dist/commands/backtests.js +445 -0
  8. package/dist/commands/news.d.ts +48 -0
  9. package/dist/commands/news.d.ts.map +1 -0
  10. package/dist/commands/news.js +85 -0
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +2 -0
  14. package/dist/vendor/core/capabilities/backtests.d.ts +173 -0
  15. package/dist/vendor/core/capabilities/backtests.d.ts.map +1 -0
  16. package/dist/vendor/core/capabilities/backtests.js +203 -0
  17. package/dist/vendor/core/capabilities/index.d.ts +2 -0
  18. package/dist/vendor/core/capabilities/index.d.ts.map +1 -1
  19. package/dist/vendor/core/capabilities/index.js +2 -0
  20. package/dist/vendor/core/capabilities/news.d.ts +54 -0
  21. package/dist/vendor/core/capabilities/news.d.ts.map +1 -0
  22. package/dist/vendor/core/capabilities/news.js +65 -0
  23. package/dist/vendor/core/capabilities/registry.d.ts +444 -0
  24. package/dist/vendor/core/capabilities/registry.d.ts.map +1 -1
  25. package/dist/vendor/core/capabilities/registry.js +4 -0
  26. package/dist/vendor/core/capabilities/types.d.ts +1 -1
  27. package/dist/vendor/core/capabilities/types.d.ts.map +1 -1
  28. package/package.json +3 -3
  29. package/skills/quantbrasil/SKILL.md +8 -4
  30. package/skills/quantbrasil/references/backtests.md +170 -0
  31. package/skills/quantbrasil/references/cli.md +42 -0
  32. package/skills/quantbrasil/references/costs.md +6 -1
  33. package/skills/quantbrasil/references/quality-eval-queries.json +30 -0
  34. package/skills/quantbrasil/references/unsupported.md +5 -0
  35. package/skills/quantbrasil/references/workflows.md +43 -0
@@ -93,6 +93,58 @@ export declare const capabilityRegistry: readonly [{
93
93
  readonly title: "Get market price";
94
94
  };
95
95
  readonly outputModes: readonly ["json", "human"];
96
+ }, {
97
+ readonly id: "news.asset";
98
+ readonly kind: "read";
99
+ readonly visibility: readonly ["cli", "opencode"];
100
+ readonly description: "Retorna notícias recentes de RSS que mencionam diretamente um ativo da QuantBrasil.";
101
+ readonly http: {
102
+ readonly method: "POST";
103
+ readonly path: "/api/desk/tools/news/asset";
104
+ readonly inputMode: "json_body";
105
+ readonly schemas: {
106
+ readonly request: "AssetNewsRequest";
107
+ readonly response: "AssetNewsResponse";
108
+ };
109
+ };
110
+ readonly cli: {
111
+ readonly group: "news";
112
+ readonly command: "asset";
113
+ readonly summary: "Busca notícias recentes para um ticker.";
114
+ readonly positional: readonly [{
115
+ readonly kind: "positional";
116
+ readonly name: "ticker";
117
+ readonly type: "string";
118
+ readonly required: true;
119
+ readonly placeholder: "TICKER";
120
+ readonly description: "Ticker do ativo, por exemplo PETR4 ou VALE3.";
121
+ }];
122
+ readonly options: readonly [{
123
+ readonly kind: "option";
124
+ readonly flag: "--window";
125
+ readonly name: "window_days";
126
+ readonly type: "integer";
127
+ readonly required: false;
128
+ readonly placeholder: "DIAS";
129
+ readonly defaultValue: 30;
130
+ readonly description: "Janela de busca em dias.";
131
+ }, {
132
+ readonly kind: "option";
133
+ readonly flag: "--limit";
134
+ readonly name: "limit";
135
+ readonly type: "integer";
136
+ readonly required: false;
137
+ readonly placeholder: "N";
138
+ readonly defaultValue: 20;
139
+ readonly description: "Número máximo de notícias retornadas.";
140
+ }];
141
+ readonly examples: readonly ["quantbrasil news asset PETR4", "quantbrasil news asset PETR4 --window 7 --limit 10", "quantbrasil news asset PETR4 --json"];
142
+ };
143
+ readonly tool: {
144
+ readonly name: "qb_news_asset";
145
+ readonly title: "Buscar notícias do ativo";
146
+ };
147
+ readonly outputModes: readonly ["json", "human"];
96
148
  }, {
97
149
  readonly id: "assets.overview";
98
150
  readonly kind: "read";
@@ -138,6 +190,176 @@ export declare const capabilityRegistry: readonly [{
138
190
  readonly title: "Get asset overview";
139
191
  };
140
192
  readonly outputModes: readonly ["json", "human"];
193
+ }, {
194
+ readonly id: "backtests.strategies";
195
+ readonly kind: "read";
196
+ readonly visibility: readonly ["cli", "opencode"];
197
+ readonly description: "Lista estratégias de backtest disponíveis, com orientação de seleção, parâmetros e defaults.";
198
+ readonly http: {
199
+ readonly method: "GET";
200
+ readonly path: "/api/desk/tools/backtests/strategies";
201
+ readonly inputMode: "none";
202
+ readonly schemas: {
203
+ readonly request: null;
204
+ readonly response: "BacktestStrategiesResponse";
205
+ };
206
+ };
207
+ readonly cli: {
208
+ readonly group: "backtests";
209
+ readonly command: "strategies";
210
+ readonly summary: "Lista estratégias de backtest disponíveis.";
211
+ readonly positional: readonly [];
212
+ readonly options: readonly [];
213
+ readonly examples: readonly ["quantbrasil backtests strategies"];
214
+ };
215
+ readonly tool: {
216
+ readonly name: "qb_backtests_strategies";
217
+ readonly title: "List backtest strategies";
218
+ };
219
+ readonly outputModes: readonly ["json", "human"];
220
+ }, {
221
+ readonly id: "backtests.info";
222
+ readonly kind: "read";
223
+ readonly visibility: readonly ["cli", "opencode"];
224
+ readonly description: "Mostra ajuda, orientação de seleção, parâmetros aceitos, defaults e dicas de uma estratégia de backtest.";
225
+ readonly http: {
226
+ readonly method: "POST";
227
+ readonly path: "/api/desk/tools/backtests/strategy";
228
+ readonly inputMode: "json_body";
229
+ readonly schemas: {
230
+ readonly request: "BacktestStrategyRequest";
231
+ readonly response: "BacktestStrategyResponse";
232
+ };
233
+ };
234
+ readonly cli: {
235
+ readonly group: "backtests";
236
+ readonly command: "info";
237
+ readonly summary: "Mostra detalhes de uma estratégia de backtest.";
238
+ readonly positional: readonly [{
239
+ readonly kind: "positional";
240
+ readonly name: "strategy_id";
241
+ readonly type: "string";
242
+ readonly required: true;
243
+ readonly placeholder: "ESTRATEGIA";
244
+ readonly description: "ID da estratégia retornado por `backtests strategies`.";
245
+ }];
246
+ readonly options: readonly [];
247
+ readonly examples: readonly ["quantbrasil backtests info ifr2"];
248
+ };
249
+ readonly tool: {
250
+ readonly name: "qb_backtests_info";
251
+ readonly title: "Get backtest strategy info";
252
+ };
253
+ readonly outputModes: readonly ["json", "human"];
254
+ }, {
255
+ readonly id: "backtests.run";
256
+ readonly kind: "mutation";
257
+ readonly visibility: readonly ["cli", "opencode"];
258
+ readonly description: "Executa um backtest para uma estratégia e ativo.";
259
+ readonly http: {
260
+ readonly method: "POST";
261
+ readonly path: "/api/desk/tools/backtests/run";
262
+ readonly inputMode: "json_body";
263
+ readonly schemas: {
264
+ readonly request: "BacktestRunRequest";
265
+ readonly response: "BacktestRunResponse";
266
+ };
267
+ };
268
+ readonly cli: {
269
+ readonly group: "backtests";
270
+ readonly command: "run";
271
+ readonly summary: "Executa um backtest individual.";
272
+ readonly positional: readonly [{
273
+ readonly kind: "positional";
274
+ readonly name: "strategy_id";
275
+ readonly type: "string";
276
+ readonly required: true;
277
+ readonly placeholder: "ESTRATEGIA";
278
+ readonly description: "ID da estratégia, por exemplo ifr2.";
279
+ }, {
280
+ readonly kind: "positional";
281
+ readonly name: "ticker";
282
+ readonly type: "string";
283
+ readonly required: true;
284
+ readonly placeholder: "TICKER";
285
+ readonly description: "Ticker do ativo, por exemplo PETR4.";
286
+ }];
287
+ readonly options: readonly [{
288
+ readonly kind: "option";
289
+ readonly flag: "--timeframe";
290
+ readonly name: "timeframe_id";
291
+ readonly type: "enum";
292
+ readonly required: false;
293
+ readonly placeholder: "TIMEFRAME";
294
+ readonly enumValues: readonly ["M5", "M15", "M30", "H1", "H2", "H4", "D1", "W1"];
295
+ readonly description: "Timeframe do backtest.";
296
+ }, {
297
+ readonly kind: "option";
298
+ readonly flag: "--from";
299
+ readonly name: "start_date";
300
+ readonly type: "string";
301
+ readonly required: false;
302
+ readonly placeholder: "AAAA-MM-DD";
303
+ readonly description: "Data inicial em ISO.";
304
+ }, {
305
+ readonly kind: "option";
306
+ readonly flag: "--to";
307
+ readonly name: "end_date";
308
+ readonly type: "string";
309
+ readonly required: false;
310
+ readonly placeholder: "AAAA-MM-DD";
311
+ readonly description: "Data final em ISO.";
312
+ }, {
313
+ readonly kind: "option";
314
+ readonly flag: "--capital";
315
+ readonly name: "capital";
316
+ readonly type: "number";
317
+ readonly required: false;
318
+ readonly placeholder: "VALOR";
319
+ readonly description: "Capital inicial do backtest.";
320
+ }, {
321
+ readonly kind: "option";
322
+ readonly flag: "--max-risk";
323
+ readonly name: "max_risk";
324
+ readonly type: "number";
325
+ readonly required: false;
326
+ readonly placeholder: "VALOR";
327
+ readonly description: "Risco máximo do backtest.";
328
+ }, {
329
+ readonly kind: "option";
330
+ readonly flag: "--contracts";
331
+ readonly name: "num_contracts";
332
+ readonly type: "integer";
333
+ readonly required: false;
334
+ readonly placeholder: "N";
335
+ readonly defaultValue: 5;
336
+ readonly description: "Número de contratos para ativos que usam contratos.";
337
+ }, {
338
+ readonly kind: "option";
339
+ readonly flag: "--param";
340
+ readonly name: "parameters";
341
+ readonly type: "string_array";
342
+ readonly required: false;
343
+ readonly placeholder: "CHAVE=VALOR";
344
+ readonly multiple: true;
345
+ readonly collectionFormat: "repeatable";
346
+ readonly description: "Parâmetro da estratégia. Pode ser repetido, por exemplo --param rsi=30.";
347
+ }, {
348
+ readonly kind: "option";
349
+ readonly flag: "--params-json";
350
+ readonly name: "parameters_json";
351
+ readonly type: "string";
352
+ readonly required: false;
353
+ readonly placeholder: "JSON";
354
+ readonly description: "Objeto JSON com parâmetros da estratégia.";
355
+ }];
356
+ readonly examples: readonly ["quantbrasil backtests run ifr2 PETR4 --timeframe D1 --from 2025-01-01 --to 2026-01-01", "quantbrasil backtests run ifr2 PETR4 --timeframe D1 --param rsi=30 --param window=2 --json"];
357
+ };
358
+ readonly tool: {
359
+ readonly name: "qb_backtests_run";
360
+ readonly title: "Run backtest";
361
+ };
362
+ readonly outputModes: readonly ["json", "human"];
141
363
  }, {
142
364
  readonly id: "rankings.list";
143
365
  readonly kind: "read";
@@ -1252,6 +1474,228 @@ export declare function getCapabilityById(id: CapabilityId): {
1252
1474
  readonly title: "Get asset overview";
1253
1475
  };
1254
1476
  readonly outputModes: readonly ["json", "human"];
1477
+ } | {
1478
+ readonly id: "news.asset";
1479
+ readonly kind: "read";
1480
+ readonly visibility: readonly ["cli", "opencode"];
1481
+ readonly description: "Retorna notícias recentes de RSS que mencionam diretamente um ativo da QuantBrasil.";
1482
+ readonly http: {
1483
+ readonly method: "POST";
1484
+ readonly path: "/api/desk/tools/news/asset";
1485
+ readonly inputMode: "json_body";
1486
+ readonly schemas: {
1487
+ readonly request: "AssetNewsRequest";
1488
+ readonly response: "AssetNewsResponse";
1489
+ };
1490
+ };
1491
+ readonly cli: {
1492
+ readonly group: "news";
1493
+ readonly command: "asset";
1494
+ readonly summary: "Busca notícias recentes para um ticker.";
1495
+ readonly positional: readonly [{
1496
+ readonly kind: "positional";
1497
+ readonly name: "ticker";
1498
+ readonly type: "string";
1499
+ readonly required: true;
1500
+ readonly placeholder: "TICKER";
1501
+ readonly description: "Ticker do ativo, por exemplo PETR4 ou VALE3.";
1502
+ }];
1503
+ readonly options: readonly [{
1504
+ readonly kind: "option";
1505
+ readonly flag: "--window";
1506
+ readonly name: "window_days";
1507
+ readonly type: "integer";
1508
+ readonly required: false;
1509
+ readonly placeholder: "DIAS";
1510
+ readonly defaultValue: 30;
1511
+ readonly description: "Janela de busca em dias.";
1512
+ }, {
1513
+ readonly kind: "option";
1514
+ readonly flag: "--limit";
1515
+ readonly name: "limit";
1516
+ readonly type: "integer";
1517
+ readonly required: false;
1518
+ readonly placeholder: "N";
1519
+ readonly defaultValue: 20;
1520
+ readonly description: "Número máximo de notícias retornadas.";
1521
+ }];
1522
+ readonly examples: readonly ["quantbrasil news asset PETR4", "quantbrasil news asset PETR4 --window 7 --limit 10", "quantbrasil news asset PETR4 --json"];
1523
+ };
1524
+ readonly tool: {
1525
+ readonly name: "qb_news_asset";
1526
+ readonly title: "Buscar notícias do ativo";
1527
+ };
1528
+ readonly outputModes: readonly ["json", "human"];
1529
+ } | {
1530
+ readonly id: "backtests.strategies";
1531
+ readonly kind: "read";
1532
+ readonly visibility: readonly ["cli", "opencode"];
1533
+ readonly description: "Lista estratégias de backtest disponíveis, com orientação de seleção, parâmetros e defaults.";
1534
+ readonly http: {
1535
+ readonly method: "GET";
1536
+ readonly path: "/api/desk/tools/backtests/strategies";
1537
+ readonly inputMode: "none";
1538
+ readonly schemas: {
1539
+ readonly request: null;
1540
+ readonly response: "BacktestStrategiesResponse";
1541
+ };
1542
+ };
1543
+ readonly cli: {
1544
+ readonly group: "backtests";
1545
+ readonly command: "strategies";
1546
+ readonly summary: "Lista estratégias de backtest disponíveis.";
1547
+ readonly positional: readonly [];
1548
+ readonly options: readonly [];
1549
+ readonly examples: readonly ["quantbrasil backtests strategies"];
1550
+ };
1551
+ readonly tool: {
1552
+ readonly name: "qb_backtests_strategies";
1553
+ readonly title: "List backtest strategies";
1554
+ };
1555
+ readonly outputModes: readonly ["json", "human"];
1556
+ } | {
1557
+ readonly id: "backtests.info";
1558
+ readonly kind: "read";
1559
+ readonly visibility: readonly ["cli", "opencode"];
1560
+ readonly description: "Mostra ajuda, orientação de seleção, parâmetros aceitos, defaults e dicas de uma estratégia de backtest.";
1561
+ readonly http: {
1562
+ readonly method: "POST";
1563
+ readonly path: "/api/desk/tools/backtests/strategy";
1564
+ readonly inputMode: "json_body";
1565
+ readonly schemas: {
1566
+ readonly request: "BacktestStrategyRequest";
1567
+ readonly response: "BacktestStrategyResponse";
1568
+ };
1569
+ };
1570
+ readonly cli: {
1571
+ readonly group: "backtests";
1572
+ readonly command: "info";
1573
+ readonly summary: "Mostra detalhes de uma estratégia de backtest.";
1574
+ readonly positional: readonly [{
1575
+ readonly kind: "positional";
1576
+ readonly name: "strategy_id";
1577
+ readonly type: "string";
1578
+ readonly required: true;
1579
+ readonly placeholder: "ESTRATEGIA";
1580
+ readonly description: "ID da estratégia retornado por `backtests strategies`.";
1581
+ }];
1582
+ readonly options: readonly [];
1583
+ readonly examples: readonly ["quantbrasil backtests info ifr2"];
1584
+ };
1585
+ readonly tool: {
1586
+ readonly name: "qb_backtests_info";
1587
+ readonly title: "Get backtest strategy info";
1588
+ };
1589
+ readonly outputModes: readonly ["json", "human"];
1590
+ } | {
1591
+ readonly id: "backtests.run";
1592
+ readonly kind: "mutation";
1593
+ readonly visibility: readonly ["cli", "opencode"];
1594
+ readonly description: "Executa um backtest para uma estratégia e ativo.";
1595
+ readonly http: {
1596
+ readonly method: "POST";
1597
+ readonly path: "/api/desk/tools/backtests/run";
1598
+ readonly inputMode: "json_body";
1599
+ readonly schemas: {
1600
+ readonly request: "BacktestRunRequest";
1601
+ readonly response: "BacktestRunResponse";
1602
+ };
1603
+ };
1604
+ readonly cli: {
1605
+ readonly group: "backtests";
1606
+ readonly command: "run";
1607
+ readonly summary: "Executa um backtest individual.";
1608
+ readonly positional: readonly [{
1609
+ readonly kind: "positional";
1610
+ readonly name: "strategy_id";
1611
+ readonly type: "string";
1612
+ readonly required: true;
1613
+ readonly placeholder: "ESTRATEGIA";
1614
+ readonly description: "ID da estratégia, por exemplo ifr2.";
1615
+ }, {
1616
+ readonly kind: "positional";
1617
+ readonly name: "ticker";
1618
+ readonly type: "string";
1619
+ readonly required: true;
1620
+ readonly placeholder: "TICKER";
1621
+ readonly description: "Ticker do ativo, por exemplo PETR4.";
1622
+ }];
1623
+ readonly options: readonly [{
1624
+ readonly kind: "option";
1625
+ readonly flag: "--timeframe";
1626
+ readonly name: "timeframe_id";
1627
+ readonly type: "enum";
1628
+ readonly required: false;
1629
+ readonly placeholder: "TIMEFRAME";
1630
+ readonly enumValues: readonly ["M5", "M15", "M30", "H1", "H2", "H4", "D1", "W1"];
1631
+ readonly description: "Timeframe do backtest.";
1632
+ }, {
1633
+ readonly kind: "option";
1634
+ readonly flag: "--from";
1635
+ readonly name: "start_date";
1636
+ readonly type: "string";
1637
+ readonly required: false;
1638
+ readonly placeholder: "AAAA-MM-DD";
1639
+ readonly description: "Data inicial em ISO.";
1640
+ }, {
1641
+ readonly kind: "option";
1642
+ readonly flag: "--to";
1643
+ readonly name: "end_date";
1644
+ readonly type: "string";
1645
+ readonly required: false;
1646
+ readonly placeholder: "AAAA-MM-DD";
1647
+ readonly description: "Data final em ISO.";
1648
+ }, {
1649
+ readonly kind: "option";
1650
+ readonly flag: "--capital";
1651
+ readonly name: "capital";
1652
+ readonly type: "number";
1653
+ readonly required: false;
1654
+ readonly placeholder: "VALOR";
1655
+ readonly description: "Capital inicial do backtest.";
1656
+ }, {
1657
+ readonly kind: "option";
1658
+ readonly flag: "--max-risk";
1659
+ readonly name: "max_risk";
1660
+ readonly type: "number";
1661
+ readonly required: false;
1662
+ readonly placeholder: "VALOR";
1663
+ readonly description: "Risco máximo do backtest.";
1664
+ }, {
1665
+ readonly kind: "option";
1666
+ readonly flag: "--contracts";
1667
+ readonly name: "num_contracts";
1668
+ readonly type: "integer";
1669
+ readonly required: false;
1670
+ readonly placeholder: "N";
1671
+ readonly defaultValue: 5;
1672
+ readonly description: "Número de contratos para ativos que usam contratos.";
1673
+ }, {
1674
+ readonly kind: "option";
1675
+ readonly flag: "--param";
1676
+ readonly name: "parameters";
1677
+ readonly type: "string_array";
1678
+ readonly required: false;
1679
+ readonly placeholder: "CHAVE=VALOR";
1680
+ readonly multiple: true;
1681
+ readonly collectionFormat: "repeatable";
1682
+ readonly description: "Parâmetro da estratégia. Pode ser repetido, por exemplo --param rsi=30.";
1683
+ }, {
1684
+ readonly kind: "option";
1685
+ readonly flag: "--params-json";
1686
+ readonly name: "parameters_json";
1687
+ readonly type: "string";
1688
+ readonly required: false;
1689
+ readonly placeholder: "JSON";
1690
+ readonly description: "Objeto JSON com parâmetros da estratégia.";
1691
+ }];
1692
+ readonly examples: readonly ["quantbrasil backtests run ifr2 PETR4 --timeframe D1 --from 2025-01-01 --to 2026-01-01", "quantbrasil backtests run ifr2 PETR4 --timeframe D1 --param rsi=30 --param window=2 --json"];
1693
+ };
1694
+ readonly tool: {
1695
+ readonly name: "qb_backtests_run";
1696
+ readonly title: "Run backtest";
1697
+ };
1698
+ readonly outputModes: readonly ["json", "human"];
1255
1699
  } | {
1256
1700
  readonly id: "rankings.list";
1257
1701
  readonly kind: "read";
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAErE,eAAO,MAAM,sBAAsB,EAE9B,MAAM,CAAC,YAAY,EAAE,CAAC,OAAO,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjD"}
@@ -1,12 +1,16 @@
1
1
  import { assetCapabilities } from "./assets.js";
2
+ import { backtestCapabilities } from "./backtests.js";
2
3
  import { cointegrationCapabilities } from "./cointegration.js";
3
4
  import { marketCapabilities } from "./market.js";
5
+ import { newsCapabilities } from "./news.js";
4
6
  import { portfolioCapabilities } from "./portfolios.js";
5
7
  import { rankingsCapabilities } from "./rankings.js";
6
8
  import { screeningCapabilities } from "./screening.js";
7
9
  export const capabilityRegistry = [
8
10
  ...marketCapabilities,
11
+ ...newsCapabilities,
9
12
  ...assetCapabilities,
13
+ ...backtestCapabilities,
10
14
  ...rankingsCapabilities,
11
15
  ...screeningCapabilities,
12
16
  ...portfolioCapabilities,
@@ -1,6 +1,6 @@
1
1
  export type CapabilityVisibility = "cli" | "opencode";
2
2
  export type CapabilityKind = "read" | "mutation";
3
- export type CapabilityGroup = "market" | "assets" | "rankings" | "screening" | "watchlists" | "holdings" | "cointegration";
3
+ export type CapabilityGroup = "market" | "assets" | "backtests" | "rankings" | "news" | "screening" | "watchlists" | "holdings" | "cointegration";
4
4
  export type CapabilityHttpMethod = "GET" | "POST";
5
5
  export type CapabilityInputMode = "none" | "query" | "json_body";
6
6
  export type CapabilityOutputMode = "json" | "human";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capabilities/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quantbrasil/cli",
3
- "version": "0.1.0-beta.13",
3
+ "version": "0.1.0-beta.14",
4
4
  "type": "module",
5
5
  "description": "Public QuantBrasil CLI for deterministic operations",
6
6
  "repository": {
@@ -41,8 +41,8 @@
41
41
  "typescript": "^5.3.3",
42
42
  "vitest": "^3.2.4",
43
43
  "@repo/core": "0.0.0",
44
- "@repo/eslint-config": "0.0.0",
45
- "@repo/typescript-config": "0.0.0"
44
+ "@repo/typescript-config": "0.0.0",
45
+ "@repo/eslint-config": "0.0.0"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "pnpm --filter @repo/core build && pnpm run clean && tsc && node scripts/vendor-core.mjs",
@@ -1,20 +1,21 @@
1
1
  ---
2
2
  name: quantbrasil
3
- description: Use this skill when a user asks for QuantBrasil-supported market or investing data/actions through the QuantBrasil CLI, including asset lookup, prices, asset analysis, rankings, watchlists, holdings, screening, cointegration, Long & Short, historical return, beta, and VaR, even if they do not explicitly mention QuantBrasil.
3
+ description: Use this skill when a user asks for QuantBrasil-supported market or investing data/actions through the QuantBrasil CLI, including asset lookup, prices, recent ticker news, asset analysis, rankings, watchlists, holdings, screening, backtests, cointegration, Long & Short, historical return, beta, and VaR, even if they do not explicitly mention QuantBrasil.
4
4
  ---
5
5
 
6
6
  # QuantBrasil CLI
7
7
 
8
- Use this skill when the user asks for market or investing data/actions that QuantBrasil supports, including asset lookup, prices, asset analysis, rankings, watchlists, holdings, screening, cointegration, Long & Short, and holding metrics.
8
+ Use this skill when the user asks for market or investing data/actions that QuantBrasil supports, including asset lookup, prices, recent ticker news, asset analysis, rankings, watchlists, holdings, screening, backtests, cointegration, Long & Short, and holding metrics.
9
9
 
10
10
  ## Routing
11
11
 
12
12
  - Use this skill even when the user does not say "QuantBrasil" if the request fits the supported market or investing surface.
13
- - Most end-user QuantBrasil requests are expected in pt-BR; Portuguese prompts about ativos, rankings, Magic Formula, momentum, ranking fatorial, carteiras, cotações, screening, cointegração, Long & Short, retorno, beta, VaR, watchlists, or Ibovespa should trigger this skill when they map to the supported CLI surface.
14
- - For QuantBrasil-supported market, asset, ranking, screening, cointegration, watchlist, holding, or holding metric data, use the CLI before generic web or finance search.
13
+ - Most end-user QuantBrasil requests are expected in pt-BR; Portuguese prompts about ativos, notícias recentes, manchetes, rankings, Magic Formula, momentum, ranking fatorial, carteiras, cotações, screening, backtest, estratégias, cointegração, Long & Short, retorno, beta, VaR, watchlists, or Ibovespa should trigger this skill when they map to the supported CLI surface.
14
+ - For QuantBrasil-supported market, news, asset, ranking, screening, backtest, cointegration, watchlist, holding, or holding metric data, use the CLI before generic web or finance search.
15
15
  - When the request mentions portfolios, carteiras, watchlists, holdings, target weights, positions, historical return, beta, VaR, screening universes, or saved compositions, load [`references/portfolios.md`](./references/portfolios.md) before choosing commands.
16
16
  - When the request asks for Magic Formula, momentum rankings, Low Risk, top ranked assets, ranking fatorial, rankings do usuário, or ordered asset lists, load [`references/rankings.md`](./references/rankings.md) before choosing commands.
17
17
  - When the request mentions IFR/RSI filters, sobrevendido, sobrecomprado, indicator screening, technical screening rules, or screening indicators, load [`references/screening.md`](./references/screening.md) before building the request JSON.
18
+ - When the request asks to run a backtest, inspect strategy defaults, change strategy parameters, or understand a strategy, load [`references/backtests.md`](./references/backtests.md) before choosing commands.
18
19
  - When the request mentions cointegração, cointegration, Long & Short, long and short, long-short, pair trading, z-score between two assets, p-valor de cointegração, or meia-vida between a pair, load [`references/cointegration.md`](./references/cointegration.md) before choosing commands.
19
20
  - Use `quantbrasil` when available on PATH.
20
21
  - If `quantbrasil` is not found, report that the CLI binary is not on PATH and ask the user to install it or fix PATH.
@@ -24,11 +25,13 @@ Use this skill when the user asks for market or investing data/actions that Quan
24
25
  - Use narrow command first:
25
26
  - asset discovery: `quantbrasil market assets`
26
27
  - price lookup: `quantbrasil market price <ticker>`
28
+ - recent ticker news: `quantbrasil news asset <ticker>`
27
29
  - richer asset analysis: `quantbrasil assets overview <ticker> --sections ...`
28
30
  - ranked asset lists and ranking returns: `quantbrasil rankings list|current|return ...`
29
31
  - watchlist details and changes: `quantbrasil watchlists ...`
30
32
  - holding details and historical return: `quantbrasil holdings ...`
31
33
  - indicator screening over saved universes: `quantbrasil screening universes|indicators|run ...`
34
+ - individual backtests: `quantbrasil backtests strategies|info|run ...`
32
35
  - pair cointegration: `quantbrasil cointegration pair <base_asset> <comparison_asset>`
33
36
  - holding metrics: `quantbrasil holdings historical-return|beta|var ...`
34
37
  - Use `--json` when output will be parsed by agent or script
@@ -42,6 +45,7 @@ Use this skill when the user asks for market or investing data/actions that Quan
42
45
  - Load [`references/rankings.md`](./references/rankings.md) when the user asks for Magic Formula, momentum rankings, Low Risk, top ranked assets, ranking fatorial, rankings do usuário, or current ordered lists.
43
46
  - Load [`references/portfolios.md`](./references/portfolios.md) when the request mentions portfolios, carteiras, watchlists, holdings, target weights, positions, historical return, beta, VaR, screening universes, or saved compositions.
44
47
  - Load [`references/screening.md`](./references/screening.md) when the user asks for IFR/RSI filters, sobrevendido/sobrecomprado assets, indicator screening, technical filter JSON, screening indicators, or examples of `ScreenerRequest`.
48
+ - Load [`references/backtests.md`](./references/backtests.md) when the user asks to run backtests, inspect strategy help/defaults, change strategy parameters, or explain what a strategy does.
45
49
  - Load [`references/cointegration.md`](./references/cointegration.md) when the user asks for cointegração, cointegration, Long & Short, long and short, long-short, pair trading, z-score between two assets, p-valor de cointegração, or meia-vida between a pair.
46
50
  - Load [`references/costs.md`](./references/costs.md) before chaining heavy reads, choosing between overview/screening/holding metrics, or answering cost-sensitive agent workflow questions.
47
51
  - Load [`references/errors.md`](./references/errors.md) when a CLI command fails, auth/config is unclear, or the user asks how to fix a QuantBrasil CLI error.