@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.
- package/README.md +64 -11
- package/dist/cli/client.js +4 -0
- package/dist/cli/index.d.ts +14 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +72 -14
- package/dist/cli/prompt.d.ts +1 -0
- package/dist/cli/prompt.d.ts.map +1 -1
- package/dist/cli/prompt.js +17 -0
- package/dist/cli/skills.d.ts +9 -0
- package/dist/cli/skills.d.ts.map +1 -1
- package/dist/cli/skills.js +68 -4
- package/dist/commands/auth.d.ts +18 -0
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +49 -0
- package/dist/commands/cointegration.d.ts +52 -0
- package/dist/commands/cointegration.d.ts.map +1 -0
- package/dist/commands/cointegration.js +118 -0
- package/dist/commands/market.d.ts +1 -0
- package/dist/commands/market.d.ts.map +1 -1
- package/dist/commands/market.js +17 -1
- package/dist/commands/portfolios.d.ts +148 -8
- package/dist/commands/portfolios.d.ts.map +1 -1
- package/dist/commands/portfolios.js +557 -55
- package/dist/commands/rankings.d.ts +82 -0
- package/dist/commands/rankings.d.ts.map +1 -0
- package/dist/commands/rankings.js +235 -0
- package/dist/commands/screening.d.ts +120 -0
- package/dist/commands/screening.d.ts.map +1 -0
- package/dist/commands/screening.js +361 -0
- package/dist/commands/skills.js +7 -7
- package/dist/commands/update.d.ts +23 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +209 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/vendor/core/capabilities/cointegration.d.ts +52 -0
- package/dist/vendor/core/capabilities/cointegration.d.ts.map +1 -0
- package/dist/vendor/core/capabilities/cointegration.js +63 -0
- package/dist/vendor/core/capabilities/index.d.ts +3 -1
- package/dist/vendor/core/capabilities/index.d.ts.map +1 -1
- package/dist/vendor/core/capabilities/index.js +3 -1
- package/dist/vendor/core/capabilities/market.d.ts +9 -1
- package/dist/vendor/core/capabilities/market.d.ts.map +1 -1
- package/dist/vendor/core/capabilities/market.js +10 -0
- package/dist/vendor/core/capabilities/portfolios.d.ts +452 -56
- package/dist/vendor/core/capabilities/portfolios.d.ts.map +1 -1
- package/dist/vendor/core/capabilities/portfolios.js +434 -116
- package/dist/vendor/core/capabilities/rankings.d.ts +83 -0
- package/dist/vendor/core/capabilities/rankings.d.ts.map +1 -0
- package/dist/vendor/core/capabilities/rankings.js +96 -0
- package/dist/vendor/core/capabilities/registry.d.ts +1380 -414
- package/dist/vendor/core/capabilities/registry.d.ts.map +1 -1
- package/dist/vendor/core/capabilities/registry.js +6 -2
- package/dist/vendor/core/capabilities/screening.d.ts +136 -0
- package/dist/vendor/core/capabilities/screening.d.ts.map +1 -0
- package/dist/vendor/core/capabilities/screening.js +155 -0
- package/dist/vendor/core/capabilities/types.d.ts +1 -1
- package/dist/vendor/core/capabilities/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/skills/quantbrasil/SKILL.md +31 -11
- package/skills/quantbrasil/references/cli.md +112 -19
- package/skills/quantbrasil/references/cointegration.md +40 -0
- package/skills/quantbrasil/references/costs.md +10 -4
- package/skills/quantbrasil/references/errors.md +16 -5
- package/skills/quantbrasil/references/portfolios.md +114 -0
- package/skills/quantbrasil/references/quality-eval-queries.json +147 -0
- package/skills/quantbrasil/references/rankings.md +64 -0
- package/skills/quantbrasil/references/screening.md +212 -0
- package/skills/quantbrasil/references/unsupported.md +9 -2
- package/skills/quantbrasil/references/workflows.md +117 -23
- package/dist/commands/analytics.d.ts +0 -131
- package/dist/commands/analytics.d.ts.map +0 -1
- package/dist/commands/analytics.js +0 -291
- package/dist/vendor/core/capabilities/analytics.d.ts +0 -187
- package/dist/vendor/core/capabilities/analytics.d.ts.map +0 -1
- 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
|
+
}
|
|
@@ -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,
|
|
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"}
|
package/dist/commands/market.js
CHANGED
|
@@ -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
|
|
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
|
|
52
|
-
export declare function
|
|
53
|
-
export declare function
|
|
54
|
-
export declare function
|
|
55
|
-
export declare function
|
|
56
|
-
export declare function
|
|
57
|
-
export declare function
|
|
58
|
-
export declare function
|
|
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":"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;AAK9E,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"portfolios.d.ts","sourceRoot":"","sources":["../../src/commands/portfolios.ts"],"names":[],"mappings":"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"}
|