@quantbrasil/cli 0.1.0-beta.1 → 0.1.0-beta.11

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 (77) hide show
  1. package/README.md +64 -11
  2. package/dist/cli/client.js +4 -0
  3. package/dist/cli/index.d.ts +14 -4
  4. package/dist/cli/index.d.ts.map +1 -1
  5. package/dist/cli/index.js +72 -14
  6. package/dist/cli/prompt.d.ts +1 -0
  7. package/dist/cli/prompt.d.ts.map +1 -1
  8. package/dist/cli/prompt.js +17 -0
  9. package/dist/cli/skills.d.ts +9 -0
  10. package/dist/cli/skills.d.ts.map +1 -1
  11. package/dist/cli/skills.js +68 -4
  12. package/dist/commands/auth.d.ts +18 -0
  13. package/dist/commands/auth.d.ts.map +1 -1
  14. package/dist/commands/auth.js +49 -0
  15. package/dist/commands/cointegration.d.ts +52 -0
  16. package/dist/commands/cointegration.d.ts.map +1 -0
  17. package/dist/commands/cointegration.js +118 -0
  18. package/dist/commands/market.d.ts +1 -0
  19. package/dist/commands/market.d.ts.map +1 -1
  20. package/dist/commands/market.js +17 -1
  21. package/dist/commands/portfolios.d.ts +148 -8
  22. package/dist/commands/portfolios.d.ts.map +1 -1
  23. package/dist/commands/portfolios.js +557 -55
  24. package/dist/commands/rankings.d.ts +82 -0
  25. package/dist/commands/rankings.d.ts.map +1 -0
  26. package/dist/commands/rankings.js +235 -0
  27. package/dist/commands/screening.d.ts +120 -0
  28. package/dist/commands/screening.d.ts.map +1 -0
  29. package/dist/commands/screening.js +361 -0
  30. package/dist/commands/skills.js +7 -7
  31. package/dist/commands/update.d.ts +23 -0
  32. package/dist/commands/update.d.ts.map +1 -0
  33. package/dist/commands/update.js +209 -0
  34. package/dist/index.d.ts +3 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -1
  37. package/dist/vendor/core/capabilities/cointegration.d.ts +52 -0
  38. package/dist/vendor/core/capabilities/cointegration.d.ts.map +1 -0
  39. package/dist/vendor/core/capabilities/cointegration.js +63 -0
  40. package/dist/vendor/core/capabilities/index.d.ts +3 -1
  41. package/dist/vendor/core/capabilities/index.d.ts.map +1 -1
  42. package/dist/vendor/core/capabilities/index.js +3 -1
  43. package/dist/vendor/core/capabilities/market.d.ts +9 -1
  44. package/dist/vendor/core/capabilities/market.d.ts.map +1 -1
  45. package/dist/vendor/core/capabilities/market.js +10 -0
  46. package/dist/vendor/core/capabilities/portfolios.d.ts +452 -56
  47. package/dist/vendor/core/capabilities/portfolios.d.ts.map +1 -1
  48. package/dist/vendor/core/capabilities/portfolios.js +434 -116
  49. package/dist/vendor/core/capabilities/rankings.d.ts +83 -0
  50. package/dist/vendor/core/capabilities/rankings.d.ts.map +1 -0
  51. package/dist/vendor/core/capabilities/rankings.js +96 -0
  52. package/dist/vendor/core/capabilities/registry.d.ts +1380 -414
  53. package/dist/vendor/core/capabilities/registry.d.ts.map +1 -1
  54. package/dist/vendor/core/capabilities/registry.js +6 -2
  55. package/dist/vendor/core/capabilities/screening.d.ts +136 -0
  56. package/dist/vendor/core/capabilities/screening.d.ts.map +1 -0
  57. package/dist/vendor/core/capabilities/screening.js +155 -0
  58. package/dist/vendor/core/capabilities/types.d.ts +1 -1
  59. package/dist/vendor/core/capabilities/types.d.ts.map +1 -1
  60. package/package.json +3 -3
  61. package/skills/quantbrasil/SKILL.md +31 -11
  62. package/skills/quantbrasil/references/cli.md +112 -19
  63. package/skills/quantbrasil/references/cointegration.md +40 -0
  64. package/skills/quantbrasil/references/costs.md +10 -4
  65. package/skills/quantbrasil/references/errors.md +16 -5
  66. package/skills/quantbrasil/references/portfolios.md +114 -0
  67. package/skills/quantbrasil/references/quality-eval-queries.json +147 -0
  68. package/skills/quantbrasil/references/rankings.md +64 -0
  69. package/skills/quantbrasil/references/screening.md +212 -0
  70. package/skills/quantbrasil/references/unsupported.md +9 -2
  71. package/skills/quantbrasil/references/workflows.md +117 -23
  72. package/dist/commands/analytics.d.ts +0 -131
  73. package/dist/commands/analytics.d.ts.map +0 -1
  74. package/dist/commands/analytics.js +0 -291
  75. package/dist/vendor/core/capabilities/analytics.d.ts +0 -187
  76. package/dist/vendor/core/capabilities/analytics.d.ts.map +0 -1
  77. package/dist/vendor/core/capabilities/analytics.js +0 -214
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cointegration.d.ts","sourceRoot":"","sources":["../../src/commands/cointegration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,aAAa,EAAE,wBAAwB,EAAE,CAAC;IAC1C,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,2BAA4B,SAAQ,gBAAgB;IACnE,EAAE,CAAC,EAAE,sBAAsB,CAAC;CAC7B;AAED,KAAK,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/C,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,2BAAgC,GACxC,IAAI,CA6BN;AAED,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,+BAA+B,EACxC,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,+BAA+B,GACvC,UAAU,CAkBZ;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,yBAAyB,EAC/B,KAAK,6CAAsC,GAC1C,MAAM,CAiDR"}
@@ -0,0 +1,118 @@
1
+ import { invokeCliCapability } from "../cli/client.js";
2
+ import { createCliValidationError } from "../cli/errors.js";
3
+ import { createTerminalTheme } from "../cli/terminal.js";
4
+ export function registerCointegrationCommands(program, context = {}) {
5
+ const cointegrationCommand = program
6
+ .command("cointegration")
7
+ .description("Calcula cointegração para análise de Long & Short");
8
+ cointegrationCommand
9
+ .command("pair")
10
+ .description("Calcula cointegração para análise de Long & Short")
11
+ .argument("<base_asset>", "Ticker do ativo base, por exemplo PETR4")
12
+ .argument("<comparison_asset>", "Ticker do ativo de comparação, por exemplo VALE3")
13
+ .option("--window <n>", "Janela de candles (padrão 250)")
14
+ .option("--json", "Exibe saída JSON")
15
+ .action(async (baseAsset, comparisonAsset, options) => {
16
+ await runCointegrationPairCommand(baseAsset, comparisonAsset, options, context);
17
+ });
18
+ }
19
+ export async function runCointegrationPairCommand(baseAsset, comparisonAsset, options, context = {}) {
20
+ const stdout = context.io?.stdout ?? process.stdout;
21
+ const theme = createTerminalTheme(stdout, context.env ?? process.env);
22
+ const response = await invokeCliCapability({
23
+ capability: "cointegration.pair",
24
+ input: buildCointegrationPairInput(baseAsset, comparisonAsset, options),
25
+ env: context.env,
26
+ fetch: context.fetch,
27
+ });
28
+ if (options.json) {
29
+ stdout.write(`${JSON.stringify(response.data, null, 2)}\n`);
30
+ return;
31
+ }
32
+ stdout.write(`${formatCointegrationPairHuman(response.data, theme)}\n`);
33
+ }
34
+ export function buildCointegrationPairInput(baseAsset, comparisonAsset, options) {
35
+ const normalizedBase = normalizeTicker(baseAsset, "base_asset");
36
+ const normalizedComparison = normalizeTicker(comparisonAsset, "comparison_asset");
37
+ if (normalizedBase === normalizedComparison) {
38
+ throw createCliValidationError("Os ativos base e de comparação devem ser diferentes.");
39
+ }
40
+ return {
41
+ base_asset: normalizedBase,
42
+ comparison_asset: normalizedComparison,
43
+ window: parseWindowOption(options.window),
44
+ };
45
+ }
46
+ export function formatCointegrationPairHuman(data, theme = createTerminalTheme(process.stdout)) {
47
+ const lines = [
48
+ theme.label("Cointegração / Long & Short entre ativos"),
49
+ "",
50
+ theme.bold(`${data.base_asset} x ${data.comparison_asset}`),
51
+ `${theme.label("Janela:")} ${formatInteger(data.window)} candles`,
52
+ "",
53
+ ];
54
+ lines.push(`${theme.label("Beta:")} ${formatOptionalNumber(data.beta)}`);
55
+ if (data.beta_mean !== null) {
56
+ lines.push(`${theme.label("Beta médio:")} ${formatNumber(data.beta_mean)}`);
57
+ }
58
+ if (data.beta_std !== null) {
59
+ lines.push(`${theme.label("Beta std:")} ${formatNumber(data.beta_std)}`);
60
+ }
61
+ if (data.beta_volatility !== null) {
62
+ lines.push(`${theme.label("Volatilidade beta:")} ${formatNumber(data.beta_volatility)}`);
63
+ }
64
+ lines.push(`${theme.label("ADF:")} ${formatOptionalNumber(data.adf)}`);
65
+ lines.push(`${theme.label("P-valor:")} ${formatOptionalNumber(data.p_value)}`);
66
+ lines.push(`${theme.label("Confiança:")} ${data.confidence === null ? "n/d" : formatPercent(data.confidence * 100)}`);
67
+ lines.push(`${theme.label("Meia-vida:")} ${formatOptionalNumber(data.halflife)}`);
68
+ const latest = data.zscore_series[data.zscore_series.length - 1];
69
+ if (latest && latest.zscore !== null) {
70
+ lines.push(`${theme.label("Z-score atual:")} ${formatNumber(latest.zscore)} ${theme.dim(`(${latest.date})`)}`);
71
+ }
72
+ lines.push(`${theme.label("Pontos da série de z-score:")} ${formatInteger(data.zscore_series.length)}`);
73
+ lines.push(`${theme.label("Pontos da série de beta:")} ${formatInteger(data.beta_series.length)}`);
74
+ return lines.join("\n");
75
+ }
76
+ function normalizeTicker(rawTicker, label) {
77
+ const normalized = rawTicker.trim().toUpperCase();
78
+ if (!normalized) {
79
+ throw createCliValidationError(`${label} é obrigatório.`);
80
+ }
81
+ return normalized;
82
+ }
83
+ function parseWindowOption(rawWindow) {
84
+ if (rawWindow === undefined) {
85
+ return 250;
86
+ }
87
+ const trimmed = rawWindow.trim();
88
+ if (!trimmed) {
89
+ throw createCliValidationError("--window não pode ser vazio.");
90
+ }
91
+ const parsed = Number.parseInt(trimmed, 10);
92
+ if (!Number.isInteger(parsed) || parsed <= 0 || String(parsed) !== trimmed) {
93
+ throw createCliValidationError("--window deve ser um inteiro positivo.");
94
+ }
95
+ if (parsed < 20 || parsed > 2000) {
96
+ throw createCliValidationError("--window deve estar entre 20 e 2000 candles.");
97
+ }
98
+ return parsed;
99
+ }
100
+ function formatInteger(value) {
101
+ return new Intl.NumberFormat("pt-BR", {
102
+ maximumFractionDigits: 0,
103
+ }).format(value);
104
+ }
105
+ function formatNumber(value) {
106
+ return new Intl.NumberFormat("pt-BR", {
107
+ maximumFractionDigits: 4,
108
+ }).format(value);
109
+ }
110
+ function formatOptionalNumber(value) {
111
+ return value === null ? "n/d" : formatNumber(value);
112
+ }
113
+ function formatPercent(value) {
114
+ return `${new Intl.NumberFormat("pt-BR", {
115
+ maximumFractionDigits: 2,
116
+ minimumFractionDigits: 2,
117
+ }).format(value)}%`;
118
+ }
@@ -7,6 +7,7 @@ export interface MarketCommandIO {
7
7
  }
8
8
  export interface MarketAssetsCommandOptions {
9
9
  type?: string;
10
+ search?: string;
10
11
  json?: boolean;
11
12
  }
12
13
  export interface MarketPriceCommandOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/commands/market.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CA2BN;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAgBf;AA0CD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,uBAAuB,EAC7B,KAAK,6CAAsC,GAC1C,MAAM,CAgBR;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,EACzB,KAAK,6CAAsC,GAC1C,MAAM,CAoCR"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../src/commands/market.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,oBAAyB,GACjC,IAAI,CA4BN;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,0BAA0B,EACnC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,EAClC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,IAAI,CAAC,CAgBf;AAmDD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,uBAAuB,EAC7B,KAAK,6CAAsC,GAC1C,MAAM,CAgBR;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,EACzB,KAAK,6CAAsC,GAC1C,MAAM,CAoCR"}
@@ -10,6 +10,7 @@ export function registerMarketCommands(program, context = {}) {
10
10
  .command("assets")
11
11
  .description("List the monitored QuantBrasil asset universe")
12
12
  .option("--type <type>", `Filter by exact asset type (${monitoredAssetTypes.join(", ")})`)
13
+ .option("--search <text>", "Filter monitored tickers by text")
13
14
  .option("--json", "Show JSON output")
14
15
  .action(async (options) => {
15
16
  await runMarketAssetsCommand(options, context);
@@ -29,9 +30,17 @@ export async function runMarketAssetsCommand(options, context = {}) {
29
30
  const stdout = context.io?.stdout ?? process.stdout;
30
31
  const theme = createTerminalTheme(stdout, context.env ?? process.env);
31
32
  const assetType = normalizeMarketAssetType(options.type);
33
+ const search = normalizeMarketAssetSearch(options.search);
34
+ const input = {};
35
+ if (assetType) {
36
+ input.type = assetType;
37
+ }
38
+ if (search) {
39
+ input.search = search;
40
+ }
32
41
  const response = await invokeCliCapability({
33
42
  capability: "market.assets",
34
- input: assetType ? { type: assetType } : {},
43
+ input,
35
44
  env: context.env,
36
45
  fetch: context.fetch,
37
46
  });
@@ -69,6 +78,13 @@ function normalizeMarketAssetType(rawType) {
69
78
  }
70
79
  return normalized;
71
80
  }
81
+ function normalizeMarketAssetSearch(rawSearch) {
82
+ if (!rawSearch) {
83
+ return undefined;
84
+ }
85
+ const normalized = rawSearch.trim();
86
+ return normalized || undefined;
87
+ }
72
88
  function buildMarketPriceInput(ticker, options) {
73
89
  const payload = {
74
90
  ticker,
@@ -14,12 +14,52 @@ export interface PortfolioGetCommandOptions {
14
14
  export interface PortfolioMutationCommandOptions {
15
15
  json?: boolean;
16
16
  }
17
+ export interface HoldingCreateCommandOptions {
18
+ mode?: string;
19
+ target?: string[];
20
+ json?: boolean;
21
+ }
22
+ export interface HoldingSetTargetsCommandOptions {
23
+ json?: boolean;
24
+ }
25
+ export interface HoldingSetPositionsCommandOptions {
26
+ json?: boolean;
27
+ }
28
+ export interface HoldingHistoricalReturnCommandOptions {
29
+ from?: string;
30
+ to?: string;
31
+ period?: string;
32
+ json?: boolean;
33
+ }
34
+ export interface HoldingBetaCommandOptions {
35
+ years?: string;
36
+ json?: boolean;
37
+ }
38
+ export interface HoldingVarCommandOptions {
39
+ years?: string;
40
+ confidence?: string;
41
+ json?: boolean;
42
+ }
43
+ export interface HoldingTargetInput {
44
+ [key: string]: JsonValue;
45
+ ticker: string;
46
+ weight_pct: number;
47
+ }
48
+ export interface HoldingPositionInput {
49
+ [key: string]: JsonValue;
50
+ ticker: string;
51
+ quantity: number;
52
+ }
17
53
  export interface PortfolioOut {
18
54
  [key: string]: JsonValue;
19
55
  id: number;
20
56
  name: string;
57
+ kind: "WATCHLIST" | "HOLDING" | "SYSTEM" | null;
21
58
  symbols: string[];
22
59
  weights: Record<string, number> | null;
60
+ default_allocation_input: "TARGET_WEIGHT" | "POSITION" | null;
61
+ has_target_weights: boolean;
62
+ has_positions: boolean;
23
63
  }
24
64
  export interface PortfolioListResponse {
25
65
  [key: string]: JsonValue;
@@ -44,17 +84,117 @@ export interface PortfolioMutationResponse {
44
84
  summary_markdown: string;
45
85
  portfolio: PortfolioOut;
46
86
  }
87
+ export interface HistoricalReturnHolding {
88
+ [key: string]: JsonValue;
89
+ ticker: string;
90
+ weight_pct: number;
91
+ total_return: number;
92
+ contribution: number;
93
+ }
94
+ export interface HistoricalReturnResponse {
95
+ [key: string]: JsonValue;
96
+ source_type: "saved_holding";
97
+ portfolio_id: number | null;
98
+ portfolio_name: string | null;
99
+ requested_start_date: string;
100
+ requested_end_date: string;
101
+ effective_start_date: string;
102
+ effective_end_date: string;
103
+ total_return: number;
104
+ annualized_return: number;
105
+ max_drawdown: number;
106
+ daily_volatility: number;
107
+ annualized_volatility: number;
108
+ sharpe_ratio: number;
109
+ ibov_return: number;
110
+ cdi_return: number;
111
+ ipca_return: number;
112
+ holdings: HistoricalReturnHolding[];
113
+ summary_markdown: string;
114
+ assumptions: string[];
115
+ warnings: string[];
116
+ }
117
+ export interface BetaHolding {
118
+ [key: string]: JsonValue;
119
+ ticker: string;
120
+ weight_pct: number;
121
+ beta: number | null;
122
+ weighted_beta: number | null;
123
+ correlation: number | null;
124
+ asset_daily_volatility: number | null;
125
+ benchmark_daily_volatility: number | null;
126
+ last_updated: string | null;
127
+ }
128
+ export interface BetaResponse {
129
+ [key: string]: JsonValue;
130
+ source_type: "saved_holding";
131
+ portfolio_id: number | null;
132
+ portfolio_name: string | null;
133
+ benchmark: "IBOV";
134
+ lookback_years: number;
135
+ beta: number;
136
+ correlation: number;
137
+ daily_volatility: number;
138
+ annualized_volatility: number;
139
+ long_exposure_pct: number;
140
+ short_exposure_pct: number;
141
+ total_weight_pct: number;
142
+ holdings: BetaHolding[];
143
+ summary_markdown: string;
144
+ assumptions: string[];
145
+ warnings: string[];
146
+ }
147
+ export interface VarHolding {
148
+ [key: string]: JsonValue;
149
+ ticker: string;
150
+ weight_pct: number;
151
+ }
152
+ export interface VarResponse {
153
+ [key: string]: JsonValue;
154
+ source_type: "saved_holding";
155
+ portfolio_id: number | null;
156
+ portfolio_name: string | null;
157
+ lookback_years: number;
158
+ confidence_pct: number;
159
+ time_horizon: "1d";
160
+ var: number;
161
+ long_exposure_pct: number;
162
+ short_exposure_pct: number;
163
+ total_weight_pct: number;
164
+ holdings: VarHolding[];
165
+ histogram_data: JsonValue[];
166
+ summary_markdown: string;
167
+ assumptions: string[];
168
+ warnings: string[];
169
+ }
47
170
  export interface PortfoliosCommandContext extends CliInvokeContext {
48
171
  io?: PortfoliosCommandIO;
172
+ now?: Date;
49
173
  }
50
174
  export declare function registerPortfoliosCommands(program: Command, context?: PortfoliosCommandContext): void;
51
- export declare function runPortfolioListCommand(options: PortfolioListCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
52
- export declare function runPortfolioGetCommand(portfolioId: number, options: PortfolioGetCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
53
- export declare function runPortfolioCreateCommand(name: string, options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
54
- export declare function runPortfolioRenameCommand(portfolioId: number, name: string, options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
55
- export declare function runPortfolioAddAssetsCommand(portfolioId: number, symbols: string[], options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
56
- export declare function runPortfolioRemoveAssetsCommand(portfolioId: number, symbols: string[], options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
57
- export declare function formatPortfolioListHuman(data: PortfolioListResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
58
- export declare function formatPortfolioGetHuman(data: PortfolioGetResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
175
+ export declare function runWatchlistListCommand(options: PortfolioListCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
176
+ export declare function runHoldingListCommand(options: PortfolioListCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
177
+ export declare function runWatchlistGetCommand(portfolioId: number, options: PortfolioGetCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
178
+ export declare function runHoldingGetCommand(portfolioId: number, options: PortfolioGetCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
179
+ export declare function runWatchlistCreateCommand(name: string, options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
180
+ export declare function runHoldingCreateCommand(name: string, options: HoldingCreateCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
181
+ export declare function runHoldingSetTargetsCommand(portfolioId: number, targets: string[], options: HoldingSetTargetsCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
182
+ export declare function runHoldingSetPositionsCommand(portfolioId: number, positions: string[], options: HoldingSetPositionsCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
183
+ export declare function runWatchlistRenameCommand(portfolioId: number, name: string, options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
184
+ export declare function runHoldingRenameCommand(portfolioId: number, name: string, options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
185
+ export declare function runWatchlistAddAssetsCommand(portfolioId: number, symbols: string[], options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
186
+ export declare function runWatchlistRemoveAssetsCommand(portfolioId: number, symbols: string[], options: PortfolioMutationCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
187
+ export declare function runHoldingHistoricalReturnCommand(portfolioId: number, options: HoldingHistoricalReturnCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
188
+ export declare function runHoldingBetaCommand(portfolioId: number, options: HoldingBetaCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
189
+ export declare function runHoldingVarCommand(portfolioId: number, options: HoldingVarCommandOptions, context?: PortfoliosCommandContext): Promise<void>;
190
+ export declare function formatPortfolioListHuman(data: PortfolioListResponse, theme?: import("../cli/terminal.js").TerminalTheme, title?: string): string;
191
+ export declare function formatPortfolioGetHuman(data: PortfolioGetResponse, theme?: import("../cli/terminal.js").TerminalTheme, title?: string): string;
59
192
  export declare function formatPortfolioMutationHuman(data: PortfolioCreateResponse | PortfolioMutationResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
193
+ export declare function resolveHistoricalReturnDateRange(options: HoldingHistoricalReturnCommandOptions, now?: Date): {
194
+ start_date: string;
195
+ end_date: string;
196
+ };
197
+ export declare function formatHistoricalReturnHuman(data: HistoricalReturnResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
198
+ export declare function formatBetaHuman(data: BetaResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
199
+ export declare function formatVarHuman(data: VarResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
60
200
  //# sourceMappingURL=portfolios.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"portfolios.d.ts","sourceRoot":"","sources":["../../src/commands/portfolios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portfolios.d.ts","sourceRoot":"","sources":["../../src/commands/portfolios.ts"],"names":[],"mappings":"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"}