@quantbrasil/cli 0.1.0-beta.3 → 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 +3 -3
  23. package/skills/quantbrasil/SKILL.md +8 -6
  24. package/skills/quantbrasil/references/cli.md +20 -25
  25. package/skills/quantbrasil/references/costs.md +4 -4
  26. package/skills/quantbrasil/references/errors.md +6 -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 +32 -25
  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
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKrB,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
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/capabilities/registry.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrB,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,4 +1,3 @@
1
- import { analyticsCapabilities } from "./analytics.js";
2
1
  import { assetCapabilities } from "./assets.js";
3
2
  import { marketCapabilities } from "./market.js";
4
3
  import { portfolioCapabilities } from "./portfolios.js";
@@ -6,7 +5,6 @@ export const capabilityRegistry = [
6
5
  ...marketCapabilities,
7
6
  ...assetCapabilities,
8
7
  ...portfolioCapabilities,
9
- ...analyticsCapabilities,
10
8
  ];
11
9
  export const capabilityRegistryById = Object.fromEntries(capabilityRegistry.map(capability => [capability.id, capability]));
12
10
  export function getCapabilityById(id) {
@@ -1,6 +1,6 @@
1
1
  export type CapabilityVisibility = "cli" | "opencode";
2
2
  export type CapabilityKind = "read" | "mutation";
3
- export type CapabilityGroup = "market" | "assets" | "portfolios" | "analytics";
3
+ export type CapabilityGroup = "market" | "assets" | "watchlists" | "holdings";
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.3",
3
+ "version": "0.1.0-beta.4",
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/typescript-config": "0.0.0",
45
- "@repo/eslint-config": "0.0.0"
44
+ "@repo/eslint-config": "0.0.0",
45
+ "@repo/typescript-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,16 +1,17 @@
1
1
  ---
2
2
  name: quantbrasil
3
- description: Go-to QuantBrasil market and investing skill. Use for supported asset lookup, prices, asset analysis, saved portfolios, portfolio changes, and risk/return analytics through the QuantBrasil CLI.
3
+ description: Go-to QuantBrasil market and investing skill. Use for supported asset lookup, prices, asset analysis, watchlists, holdings, and risk/return metrics through the QuantBrasil CLI.
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, saved portfolios, portfolio changes, and portfolio analytics.
8
+ Use this skill when the user asks for market or investing data/actions that QuantBrasil supports, including asset lookup, prices, asset analysis, watchlists, holdings, 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
- - For QuantBrasil-supported market, asset, portfolio, or analytics data, use the CLI before generic web or finance search.
13
+ - For QuantBrasil-supported market, asset, watchlist, holding, or holding metric data, use the CLI before generic web or finance search.
14
+ - When the request mentions portfolios, carteiras, watchlists, holdings, target weights, positions, historical return, beta, VaR, or saved compositions, load [`references/portfolios.md`](./references/portfolios.md) before choosing commands.
14
15
  - Use `quantbrasil` when available on PATH.
15
16
  - If `quantbrasil` is not found, report that the CLI binary is not on PATH and ask the user to install it or fix PATH.
16
17
  - Check readiness first: `quantbrasil --status`
@@ -19,15 +20,16 @@ Use this skill when the user asks for market or investing data/actions that Quan
19
20
  - asset discovery: `quantbrasil market assets`
20
21
  - price lookup: `quantbrasil market price <ticker>`
21
22
  - richer asset analysis: `quantbrasil assets overview <ticker> --sections ...`
22
- - saved portfolio discovery: `quantbrasil portfolios list`
23
- - saved portfolio details: `quantbrasil portfolios get <id>`
24
- - portfolio analytics: `quantbrasil analytics historical-return|beta|var ...`
23
+ - watchlist details and changes: `quantbrasil watchlists ...`
24
+ - holding details and historical return: `quantbrasil holdings ...`
25
+ - holding metrics: `quantbrasil holdings historical-return|beta|var ...`
25
26
  - Use `--json` when output will be parsed by agent or script
26
27
  - Use generic web or finance search only if the CLI is unavailable, the requested data is outside the QuantBrasil-supported surface, or the user explicitly asks for an external source.
27
28
  - Do not inspect the local repo, package source, or `~/.config/quantbrasil/config.json` for normal data queries. Use CLI status/errors instead.
28
29
 
29
30
  ## References
30
31
 
32
+ - Portfolio, watchlist, and holding semantics: [`references/portfolios.md`](./references/portfolios.md)
31
33
  - CLI surface: [`references/cli.md`](./references/cli.md)
32
34
  - Common workflows: [`references/workflows.md`](./references/workflows.md)
33
35
  - Cost-aware behavior: [`references/costs.md`](./references/costs.md)
@@ -43,37 +43,32 @@ Valid `--sections`:
43
43
  - `fundamentals`
44
44
  - `rankings`
45
45
 
46
- ## Portfolios
46
+ ## Watchlists and holdings
47
47
 
48
- ```bash
49
- quantbrasil portfolios list
50
- quantbrasil portfolios list --json
51
-
52
- quantbrasil portfolios get 93
53
- quantbrasil portfolios get 93 --json
54
-
55
- quantbrasil portfolios create "Dividendos"
56
- quantbrasil portfolios rename 93 "Longo Prazo"
57
- quantbrasil portfolios add-assets 93 PETR4 VALE3
58
- quantbrasil portfolios remove-assets 93 PETR4
59
- ```
60
-
61
- ## Analytics
62
-
63
- Saved portfolio:
48
+ Watchlists:
64
49
 
65
50
  ```bash
66
- quantbrasil analytics historical-return --portfolio 93 --from 2025-01-01 --to 2026-01-01
67
- quantbrasil analytics beta --portfolio 93 --years 1
68
- quantbrasil analytics var --portfolio 93 --years 1 --confidence 95
51
+ quantbrasil watchlists list
52
+ quantbrasil watchlists get 93
53
+ quantbrasil watchlists create "Dividendos"
54
+ quantbrasil watchlists rename 93 "Longo Prazo"
55
+ quantbrasil watchlists add-assets 93 PETR4 VALE3
56
+ quantbrasil watchlists remove-assets 93 PETR4
69
57
  ```
70
58
 
71
- Ad-hoc basket:
59
+ Holdings:
72
60
 
73
61
  ```bash
74
- quantbrasil analytics historical-return --asset VALE3:50 --asset PRIO3:50 --from 2025-01-01 --to 2026-01-01
75
- quantbrasil analytics beta --asset VALE3:50 --asset PRIO3:50 --years 3
76
- quantbrasil analytics var --asset VALE3:120 --asset WINFUT:-20 --years 1 --confidence 99
62
+ quantbrasil holdings list
63
+ quantbrasil holdings get 182
64
+ quantbrasil holdings create "Longo Prazo"
65
+ quantbrasil holdings create "Longo Prazo" --target PETR4:50 --target VALE3:50
66
+ quantbrasil holdings create "Carteira Real" --mode position
67
+ quantbrasil holdings rename 182 "Longo Prazo"
68
+ quantbrasil holdings set-targets 182 PETR4:50 VALE3:50
69
+ quantbrasil holdings historical-return 182 --from 2025-01-01 --to 2026-01-01
70
+ quantbrasil holdings beta 182 --years 1
71
+ quantbrasil holdings var 182 --years 1 --confidence 95
77
72
  ```
78
73
 
79
- Use `--json` on any analytics command when machine parsing needed.
74
+ Use `--json` on any holding metric command when machine parsing needed.
@@ -13,18 +13,18 @@ Current guidance uses backend qualitative classes only:
13
13
  - `market assets` is lowest-cost discovery path
14
14
  - `market price` is narrow read path
15
15
  - `assets overview` is richer and should use minimal `--sections`
16
- - portfolio analytics (`historical-return`, `beta`, `var`) are heaviest current public reads
16
+ - holding metrics (`historical-return`, `beta`, `var`) are heaviest current public reads
17
17
 
18
18
  ## Agent rules
19
19
 
20
20
  - prefer narrow command that answers question
21
21
  - prefer `market price` over `assets overview` for quote-only requests
22
- - prefer one analytics call targeted to actual question
23
- - do not chain multiple heavy analytics calls unless user asked for them
22
+ - prefer one holding metric call targeted to actual question
23
+ - do not chain multiple heavy holding metric calls unless user asked for them
24
24
  - use `--json` only when structured output needed
25
25
 
26
26
  ## Safe defaults
27
27
 
28
- - discover portfolio id once, then reuse it
28
+ - discover the holding id once, then reuse it
29
29
  - avoid full-report behavior when user asked only one metric
30
30
  - keep `assets overview --sections` minimal and relevant
@@ -36,9 +36,9 @@ Treat CLI validation as user-input error.
36
36
 
37
37
  Examples:
38
38
 
39
- - invalid portfolio id
39
+ - invalid watchlist or holding id
40
40
  - invalid `--sections`
41
- - invalid `--asset TICKER[:WEIGHT_PCT]`
41
+ - invalid `--target TICKER:WEIGHT_PCT`
42
42
  - invalid `--years`
43
43
 
44
44
  Fix input. Do not retry same bad command.
@@ -70,14 +70,15 @@ Stable codes:
70
70
 
71
71
  Possible causes:
72
72
 
73
- - portfolio id does not exist
73
+ - watchlist or holding id does not exist
74
74
  - ticker not tracked
75
75
  - requested history unavailable for period
76
76
 
77
77
  Recovery:
78
78
 
79
79
  - use `market assets` for discovery
80
- - use `portfolios list` before `portfolios get`
80
+ - use `watchlists list` before `watchlists get`
81
+ - use `holdings list` before holding metrics
81
82
  - narrow period or pick another ticker
82
83
 
83
84
  Stable code:
@@ -106,7 +107,7 @@ when a requested ticker is invalid for the operation.
106
107
  Recovery:
107
108
 
108
109
  - read the error message
109
- - fix the requested portfolio id, name, ticker list, or operation
110
+ - fix the requested watchlist/holding id, name, ticker list, or operation
110
111
  - do not retry unchanged mutation input
111
112
 
112
113
  Stable code:
@@ -0,0 +1,92 @@
1
+ # Portfolio Reference
2
+
3
+ Use this reference whenever the user mentions portfolios, carteiras, holdings,
4
+ watchlists, target weights, positions, historical return, beta, VaR, risk, or a
5
+ saved composition.
6
+
7
+ ## Domain model
8
+
9
+ - `Portfolio` is the umbrella domain term for a user-owned saved asset set.
10
+ - `Watchlist` is a portfolio used for monitoring assets. It has assets, but it
11
+ is not an investable composition and does not define weights or positions.
12
+ - `Holding` is a portfolio used as an investable composition. It can be based on
13
+ target weights or positions.
14
+ - A theoretical portfolio is a holding with target weights. Save it first, then
15
+ run metrics on the returned holding id.
16
+
17
+ ## Command routing
18
+
19
+ - Use `quantbrasil watchlists ...` for monitoring lists, ticker groups, and
20
+ non-investable saved lists.
21
+ - Use `quantbrasil holdings ...` for investable compositions, target weights,
22
+ positions, historical return, beta, VaR, and risk/return checks.
23
+ - Use `quantbrasil holdings list` when the user names a saved holding but does
24
+ not provide an id.
25
+ - Use `quantbrasil watchlists list` when the user names a saved watchlist but
26
+ does not provide an id.
27
+ - If the user asks for portfolio analytics without specifying an object, resolve
28
+ or create a holding first.
29
+
30
+ Do not use these patterns:
31
+
32
+ - `quantbrasil portfolios ...`
33
+ - `quantbrasil analytics ...`
34
+ - ad-hoc asset lists passed directly into metric commands
35
+ - running holding metrics on a watchlist
36
+
37
+ ## Holdings
38
+
39
+ Create target-weight holdings when the user wants to analyze a hypothetical or
40
+ model composition.
41
+
42
+ ```bash
43
+ quantbrasil holdings create "Teórica energia" --target VALE3:50 --target PRIO3:50
44
+ quantbrasil holdings historical-return 93 --from 2025-01-01 --to 2026-01-01
45
+ ```
46
+
47
+ `holdings create` returns the holding id. Reuse that id for follow-up commands.
48
+
49
+ Use `set-targets` to replace a holding target allocation.
50
+
51
+ ```bash
52
+ quantbrasil holdings set-targets 93 VALE3:40 PRIO3:35 PETR4:25
53
+ ```
54
+
55
+ Use position mode only when the user is creating or managing a real position
56
+ holding.
57
+
58
+ ```bash
59
+ quantbrasil holdings create "Carteira Real" --mode position
60
+ ```
61
+
62
+ ## Watchlists
63
+
64
+ Use watchlists for saved sets of assets that the user wants to monitor, screen,
65
+ or revisit later.
66
+
67
+ ```bash
68
+ quantbrasil watchlists create "Dividendos"
69
+ quantbrasil watchlists add-assets 93 PETR4 VALE3
70
+ quantbrasil watchlists get 93
71
+ ```
72
+
73
+ If the user asks for return, beta, VaR, or risk on a watchlist, explain that a
74
+ watchlist has no investable composition. Create a target-weight holding or use
75
+ an existing holding instead.
76
+
77
+ ## Metrics
78
+
79
+ Holding metrics always run through `holdings`.
80
+
81
+ ```bash
82
+ quantbrasil holdings historical-return 93 --from 2025-01-01 --to 2026-01-01
83
+ quantbrasil holdings beta 93 --years 1
84
+ quantbrasil holdings var 93 --years 1 --confidence 95
85
+ ```
86
+
87
+ Rules:
88
+
89
+ - `historical-return` requires absolute ISO dates.
90
+ - `beta` accepts `--years 1|3|5`.
91
+ - `var --confidence` takes percentages such as `95` or `99`.
92
+ - Use `--json` for machine parsing.
@@ -16,5 +16,5 @@ Use the public surface only:
16
16
  - `capabilities`
17
17
  - `market`
18
18
  - `assets`
19
- - `portfolios`
20
- - `analytics`
19
+ - `watchlists`
20
+ - `holdings`
@@ -5,9 +5,9 @@
5
5
  - asset price, quote, or daily move → `market price`
6
6
  - supported assets, tickers, or market universe → `market assets`
7
7
  - asset performance, technicals, risk, fundamentals, or ranking → `assets overview`
8
- - saved portfolios, holdings, or portfolio names → `portfolios list` / `portfolios get`
9
- - portfolio return, beta, risk, VaR, or comparison → `analytics ...`
10
- - portfolio creation or holdings changes → `portfolios create|rename|add-assets|remove-assets`
8
+ - watchlist details or changes → `watchlists ...`
9
+ - holding details or changes → `holdings ...`
10
+ - holding return, beta, risk, VaR, or comparison → `holdings historical-return|beta|var`
11
11
 
12
12
  ## Find supported ticker, then get price
13
13
 
@@ -60,52 +60,59 @@ Guidance:
60
60
 
61
61
  Avoid asking for every section unless user clearly wants full report.
62
62
 
63
- ## Analyze saved portfolio
63
+ ## Analyze saved holding
64
64
 
65
- 1. Discover portfolio id.
66
- 2. Inspect holdings if needed.
67
- 3. Run analytics.
65
+ 1. Discover holding id.
66
+ 2. Inspect the holding if needed.
67
+ 3. Run the holding metric.
68
68
 
69
69
  ```bash
70
- quantbrasil portfolios list
71
- quantbrasil portfolios get 93
72
- quantbrasil analytics historical-return --portfolio 93 --from 2025-01-01 --to 2026-01-01
73
- quantbrasil analytics beta --portfolio 93 --years 1
74
- quantbrasil analytics var --portfolio 93 --years 1 --confidence 95
70
+ quantbrasil holdings list
71
+ quantbrasil holdings get 93
72
+ quantbrasil holdings historical-return 93 --from 2025-01-01 --to 2026-01-01
73
+ quantbrasil holdings beta 93 --years 1
74
+ quantbrasil holdings var 93 --years 1 --confidence 95
75
75
  ```
76
76
 
77
- ## Analyze ad-hoc basket
77
+ ## Analyze a theoretical composition
78
78
 
79
- Use repeated `--asset TICKER[:WEIGHT_PCT]`.
79
+ Create a holding with target weights, then run holding metrics on its id.
80
80
 
81
81
  Rules:
82
82
 
83
- - if weights omitted, backend may assume equal weights
84
- - negative weights allowed for hedge / short exposure
83
+ - `holdings create` returns the holding id
84
+ - use `holdings set-targets` to replace target weights later
85
85
  - `beta` only accepts `--years 1|3|5`
86
86
  - `var --confidence` takes percent like `95` or `99`
87
87
 
88
88
  Example:
89
89
 
90
90
  ```bash
91
- quantbrasil analytics historical-return --asset VALE3:50 --asset PRIO3:50 --from 2025-01-01 --to 2026-01-01
92
- quantbrasil analytics beta --asset VALE3:120 --asset WINFUT:-20 --years 1
93
- quantbrasil analytics var --asset VALE3:120 --asset WINFUT:-20 --years 1 --confidence 99
91
+ quantbrasil holdings create "Teórica energia" --target VALE3:50 --target PRIO3:50
92
+ quantbrasil holdings historical-return 93 --from 2025-01-01 --to 2026-01-01
93
+ quantbrasil holdings beta 93 --years 1
94
+ quantbrasil holdings var 93 --years 1 --confidence 99
94
95
  ```
95
96
 
96
- ## Modify saved portfolio
97
+ ## Modify watchlists and holdings
97
98
 
98
99
  Use explicit mutation commands. Do not retry failed mutations automatically.
99
100
 
100
101
  ```bash
101
- quantbrasil portfolios create "Dividendos"
102
- quantbrasil portfolios rename 93 "Longo Prazo"
103
- quantbrasil portfolios add-assets 93 PETR4 VALE3
104
- quantbrasil portfolios remove-assets 93 PETR4
102
+ quantbrasil watchlists create "Dividendos"
103
+ quantbrasil watchlists rename 93 "Longo Prazo"
104
+ quantbrasil watchlists add-assets 93 PETR4 VALE3
105
+ quantbrasil watchlists remove-assets 93 PETR4
106
+
107
+ quantbrasil holdings create "Longo Prazo"
108
+ quantbrasil holdings create "Longo Prazo" --target PETR4:50 --target VALE3:50
109
+ quantbrasil holdings create "Carteira Real" --mode position
110
+ quantbrasil holdings rename 182 "Carteira Real"
111
+ quantbrasil holdings set-targets 182 PETR4:50 VALE3:50
105
112
  ```
106
113
 
107
114
  Rules:
108
115
 
109
- - use `portfolios list` first if user names a portfolio instead of giving id
116
+ - use `watchlists list` or `holdings list` first if the user names a saved object instead of giving id
110
117
  - confirm destructive intent before removing assets when user request is ambiguous
111
118
  - use `--json` only when structured output is needed
@@ -1,131 +0,0 @@
1
- import { Command } from "commander";
2
- import type { JsonValue } from "../vendor/core/index.js";
3
- import { type CliInvokeContext } from "../cli/client.js";
4
- import { type TerminalWriter } from "../cli/terminal.js";
5
- export interface AnalyticsCommandIO {
6
- stdout: TerminalWriter;
7
- }
8
- export interface AnalyticsCommandContext extends CliInvokeContext {
9
- io?: AnalyticsCommandIO;
10
- }
11
- export interface HistoricalReturnCommandOptions {
12
- portfolio?: number;
13
- asset?: string[];
14
- from: string;
15
- to: string;
16
- json?: boolean;
17
- }
18
- export interface BetaCommandOptions {
19
- portfolio?: number;
20
- asset?: string[];
21
- years?: string;
22
- json?: boolean;
23
- }
24
- export interface VarCommandOptions {
25
- portfolio?: number;
26
- asset?: string[];
27
- years?: string;
28
- confidence?: string;
29
- json?: boolean;
30
- }
31
- export interface HistoricalReturnHolding {
32
- [key: string]: JsonValue;
33
- ticker: string;
34
- weight_pct: number;
35
- total_return: number;
36
- contribution: number;
37
- }
38
- export interface HistoricalReturnResponse {
39
- [key: string]: JsonValue;
40
- source_type: "saved_portfolio" | "ad_hoc";
41
- portfolio_id: number | null;
42
- portfolio_name: string | null;
43
- requested_start_date: string;
44
- requested_end_date: string;
45
- effective_start_date: string;
46
- effective_end_date: string;
47
- total_return: number;
48
- annualized_return: number;
49
- max_drawdown: number;
50
- daily_volatility: number;
51
- annualized_volatility: number;
52
- sharpe_ratio: number;
53
- ibov_return: number;
54
- cdi_return: number;
55
- ipca_return: number;
56
- holdings: HistoricalReturnHolding[];
57
- summary_markdown: string;
58
- assumptions: string[];
59
- warnings: string[];
60
- }
61
- export interface BetaHolding {
62
- [key: string]: JsonValue;
63
- ticker: string;
64
- weight_pct: number;
65
- beta: number | null;
66
- weighted_beta: number | null;
67
- correlation: number | null;
68
- asset_daily_volatility: number | null;
69
- benchmark_daily_volatility: number | null;
70
- last_updated: string | null;
71
- }
72
- export interface BetaResponse {
73
- [key: string]: JsonValue;
74
- source_type: "saved_portfolio" | "ad_hoc";
75
- portfolio_id: number | null;
76
- portfolio_name: string | null;
77
- benchmark: "IBOV";
78
- lookback_years: number;
79
- beta: number;
80
- correlation: number;
81
- daily_volatility: number;
82
- annualized_volatility: number;
83
- long_exposure_pct: number;
84
- short_exposure_pct: number;
85
- total_weight_pct: number;
86
- holdings: BetaHolding[];
87
- summary_markdown: string;
88
- assumptions: string[];
89
- warnings: string[];
90
- }
91
- export interface VarHolding {
92
- [key: string]: JsonValue;
93
- ticker: string;
94
- weight_pct: number;
95
- }
96
- export interface VarResponse {
97
- [key: string]: JsonValue;
98
- source_type: "saved_portfolio" | "ad_hoc";
99
- portfolio_id: number | null;
100
- portfolio_name: string | null;
101
- lookback_years: number;
102
- confidence_pct: number;
103
- time_horizon: "1d";
104
- var: number;
105
- long_exposure_pct: number;
106
- short_exposure_pct: number;
107
- total_weight_pct: number;
108
- holdings: VarHolding[];
109
- histogram_data: JsonValue[];
110
- summary_markdown: string;
111
- assumptions: string[];
112
- warnings: string[];
113
- }
114
- interface ParsedAssetInput {
115
- [key: string]: JsonValue;
116
- ticker: string;
117
- weight_pct: number | null;
118
- }
119
- export declare function registerAnalyticsCommands(program: Command, context?: AnalyticsCommandContext): void;
120
- export declare function runHistoricalReturnCommand(options: HistoricalReturnCommandOptions, context?: AnalyticsCommandContext): Promise<void>;
121
- export declare function runBetaCommand(options: BetaCommandOptions, context?: AnalyticsCommandContext): Promise<void>;
122
- export declare function runVarCommand(options: VarCommandOptions, context?: AnalyticsCommandContext): Promise<void>;
123
- export declare function buildHistoricalReturnInput(options: HistoricalReturnCommandOptions): JsonValue;
124
- export declare function buildBetaInput(options: BetaCommandOptions): JsonValue;
125
- export declare function buildVarInput(options: VarCommandOptions): JsonValue;
126
- export declare function formatHistoricalReturnHuman(data: HistoricalReturnResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
127
- export declare function formatBetaHuman(data: BetaResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
128
- export declare function formatVarHuman(data: VarResponse, theme?: import("../cli/terminal.js").TerminalTheme): string;
129
- export declare function parseAssetSpec(rawAsset: string): ParsedAssetInput;
130
- export {};
131
- //# sourceMappingURL=analytics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":"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"}