@quantbrasil/cli 0.1.0-beta.3 → 0.1.0-beta.5

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 (44) hide show
  1. package/README.md +18 -11
  2. package/dist/cli/index.d.ts +4 -4
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +15 -12
  5. package/dist/commands/auth.d.ts +18 -0
  6. package/dist/commands/auth.d.ts.map +1 -1
  7. package/dist/commands/auth.js +49 -0
  8. package/dist/commands/market.d.ts +1 -0
  9. package/dist/commands/market.d.ts.map +1 -1
  10. package/dist/commands/market.js +17 -1
  11. package/dist/commands/portfolios.d.ts +148 -8
  12. package/dist/commands/portfolios.d.ts.map +1 -1
  13. package/dist/commands/portfolios.js +557 -55
  14. package/dist/index.d.ts +0 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +0 -1
  17. package/dist/vendor/core/capabilities/index.d.ts +0 -1
  18. package/dist/vendor/core/capabilities/index.d.ts.map +1 -1
  19. package/dist/vendor/core/capabilities/index.js +0 -1
  20. package/dist/vendor/core/capabilities/market.d.ts +9 -1
  21. package/dist/vendor/core/capabilities/market.d.ts.map +1 -1
  22. package/dist/vendor/core/capabilities/market.js +10 -0
  23. package/dist/vendor/core/capabilities/portfolios.d.ts +452 -56
  24. package/dist/vendor/core/capabilities/portfolios.d.ts.map +1 -1
  25. package/dist/vendor/core/capabilities/portfolios.js +434 -116
  26. package/dist/vendor/core/capabilities/registry.d.ts +714 -276
  27. package/dist/vendor/core/capabilities/registry.d.ts.map +1 -1
  28. package/dist/vendor/core/capabilities/registry.js +0 -2
  29. package/dist/vendor/core/capabilities/types.d.ts +1 -1
  30. package/dist/vendor/core/capabilities/types.d.ts.map +1 -1
  31. package/package.json +3 -3
  32. package/skills/quantbrasil/SKILL.md +9 -6
  33. package/skills/quantbrasil/references/cli.md +25 -25
  34. package/skills/quantbrasil/references/costs.md +4 -4
  35. package/skills/quantbrasil/references/errors.md +6 -5
  36. package/skills/quantbrasil/references/portfolios.md +103 -0
  37. package/skills/quantbrasil/references/unsupported.md +5 -2
  38. package/skills/quantbrasil/references/workflows.md +38 -26
  39. package/dist/commands/analytics.d.ts +0 -131
  40. package/dist/commands/analytics.d.ts.map +0 -1
  41. package/dist/commands/analytics.js +0 -291
  42. package/dist/vendor/core/capabilities/analytics.d.ts +0 -187
  43. package/dist/vendor/core/capabilities/analytics.d.ts.map +0 -1
  44. package/dist/vendor/core/capabilities/analytics.js +0 -214
package/README.md CHANGED
@@ -29,6 +29,7 @@ that file only exists inside this package.
29
29
  ```bash
30
30
  # from monorepo/packages/cli
31
31
  node ./bin/quantbrasil.js auth login --api-key qb_live_<id>.<secret>
32
+ node ./bin/quantbrasil.js whoami
32
33
  node ./bin/quantbrasil.js skills install --all
33
34
  node ./bin/quantbrasil.js --status
34
35
  node ./bin/quantbrasil.js auth logout
@@ -48,6 +49,7 @@ compatible local or staging backend.
48
49
  ```bash
49
50
  quantbrasil market assets
50
51
  quantbrasil market assets --type B3
52
+ quantbrasil market assets --search BTC
51
53
  quantbrasil market assets --json
52
54
  quantbrasil market price PETR4
53
55
  quantbrasil market price PETR4 --date 2026-04-10
@@ -55,16 +57,21 @@ quantbrasil market price PETR4 --json
55
57
  quantbrasil assets overview PETR4 --sections price,performance
56
58
  quantbrasil assets overview PETR4 --sections price,technicals
57
59
  quantbrasil assets overview PETR4 --sections price,fundamentals --json
58
- quantbrasil portfolios list
59
- quantbrasil portfolios get 93
60
- quantbrasil portfolios get 93 --json
61
- quantbrasil portfolios create "Dividendos"
62
- quantbrasil portfolios rename 93 "Longo Prazo"
63
- quantbrasil portfolios add-assets 93 PETR4 VALE3
64
- quantbrasil portfolios remove-assets 93 PETR4
65
- quantbrasil analytics historical-return --portfolio 93 --from 2025-01-01 --to 2026-01-01
66
- quantbrasil analytics beta --portfolio 93 --years 3
67
- quantbrasil analytics var --portfolio 93 --years 1 --confidence 95
60
+ quantbrasil watchlists list
61
+ quantbrasil watchlists get 93
62
+ quantbrasil watchlists create "Dividendos"
63
+ quantbrasil watchlists add-assets 93 PETR4 VALE3
64
+ quantbrasil holdings list
65
+ quantbrasil holdings get 182
66
+ quantbrasil holdings create "Longo Prazo"
67
+ quantbrasil holdings create "Longo Prazo" --target PETR4:50 --target VALE3:50
68
+ quantbrasil holdings create "Carteira Real" --mode position
69
+ quantbrasil holdings set-targets 182 PETR4:50 VALE3:50
70
+ quantbrasil holdings set-positions 182 PRIO3:1600 BTC-USD:0.25 QQQ:10
71
+ quantbrasil holdings historical-return 182 --from 2025-01-01 --to 2026-01-01
72
+ quantbrasil holdings historical-return 182 --period 1y
73
+ quantbrasil holdings beta 182 --years 3
74
+ quantbrasil holdings var 182 --years 1 --confidence 95
68
75
  ```
69
76
 
70
77
  ## Local config
@@ -183,7 +190,7 @@ For commands that expose `--json`, failures are written to stderr as JSON:
183
190
  "category": "auth",
184
191
  "exit_code": 1,
185
192
  "status": 401,
186
- "path": "/api/desk/tools/portfolio/list",
193
+ "path": "/api/desk/tools/watchlist/list",
187
194
  "request_id": "req_..."
188
195
  }
189
196
  }
@@ -2,7 +2,7 @@ import { Command } from "commander";
2
2
  import { type CapabilitiesCommandIO, runCapabilitiesCommand } from "../commands/capabilities.js";
3
3
  import { runMarketAssetsCommand, runMarketPriceCommand } from "../commands/market.js";
4
4
  import { runInitCommand } from "../commands/init.js";
5
- import { runPortfolioAddAssetsCommand, runPortfolioCreateCommand, runPortfolioGetCommand, runPortfolioListCommand, runPortfolioRemoveAssetsCommand, runPortfolioRenameCommand } from "../commands/portfolios.js";
5
+ import { runHoldingCreateCommand, runHoldingBetaCommand, runHoldingGetCommand, runHoldingHistoricalReturnCommand, runHoldingListCommand, runHoldingRenameCommand, runHoldingSetPositionsCommand, runHoldingSetTargetsCommand, runHoldingVarCommand, runWatchlistAddAssetsCommand, runWatchlistCreateCommand, runWatchlistGetCommand, runWatchlistListCommand, runWatchlistRemoveAssetsCommand, runWatchlistRenameCommand } from "../commands/portfolios.js";
6
6
  import { runSkillsInstallCommand } from "../commands/skills.js";
7
7
  import { runStatusCommand } from "../commands/status.js";
8
8
  import { type TerminalWriter } from "./terminal.js";
@@ -11,6 +11,7 @@ export interface CliProgramOptions {
11
11
  env?: NodeJS.ProcessEnv;
12
12
  fetch?: typeof fetch;
13
13
  prompt?: (promptLabel: string) => Promise<string>;
14
+ now?: Date;
14
15
  stderr?: TerminalWriter;
15
16
  suppressCommanderErrors?: boolean;
16
17
  }
@@ -19,12 +20,11 @@ export interface CliRunOptions extends CliProgramOptions {
19
20
  }
20
21
  export declare function createCliProgram(options?: CliProgramOptions): Command;
21
22
  export declare function run(argv?: string[], options?: CliRunOptions): Promise<void>;
22
- export { runBetaCommand, runHistoricalReturnCommand, runVarCommand, } from "../commands/analytics.js";
23
- export { runAuthLoginCommand, runAuthLogoutCommand } from "../commands/auth.js";
23
+ export { runAuthLoginCommand, runAuthLogoutCommand, runAuthWhoamiCommand, } from "../commands/auth.js";
24
24
  export { runAssetOverviewCommand } from "../commands/assets.js";
25
25
  export { runCapabilitiesCommand, runStatusCommand };
26
26
  export { runInitCommand };
27
27
  export { runMarketAssetsCommand, runMarketPriceCommand };
28
- export { runPortfolioAddAssetsCommand, runPortfolioCreateCommand, runPortfolioGetCommand, runPortfolioListCommand, runPortfolioRemoveAssetsCommand, runPortfolioRenameCommand, };
28
+ export { runHoldingBetaCommand, runHoldingCreateCommand, runHoldingGetCommand, runHoldingHistoricalReturnCommand, runHoldingListCommand, runHoldingRenameCommand, runHoldingSetPositionsCommand, runHoldingSetTargetsCommand, runHoldingVarCommand, runWatchlistAddAssetsCommand, runWatchlistCreateCommand, runWatchlistGetCommand, runWatchlistListCommand, runWatchlistRemoveAssetsCommand, runWatchlistRenameCommand, };
29
29
  export { runSkillsInstallCommand };
30
30
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,OAAO,EACL,KAAK,qBAAqB,EAE1B,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAQvE,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,qBAAqB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CA+DzE;AAED,wBAAsB,GAAG,CACvB,IAAI,WAAe,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAoCD,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AACF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,OAAO,EACL,KAAK,qBAAqB,EAE1B,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAGL,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAQvE,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,qBAAqB,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CA2DzE;AAeD,wBAAsB,GAAG,CACvB,IAAI,WAAe,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAoCD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,EAC7B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,EAC5B,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,+BAA+B,EAC/B,yBAAyB,GAC1B,CAAC;AACF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -1,12 +1,11 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { Command } from "commander";
3
- import { registerAnalyticsCommands, } from "../commands/analytics.js";
4
3
  import { registerAssetsCommands, } from "../commands/assets.js";
5
- import { registerAuthCommands, } from "../commands/auth.js";
4
+ import { registerAuthCommands, runAuthWhoamiCommand, } from "../commands/auth.js";
6
5
  import { registerCapabilitiesCommand, runCapabilitiesCommand, } from "../commands/capabilities.js";
7
6
  import { registerMarketCommands, runMarketAssetsCommand, runMarketPriceCommand, } from "../commands/market.js";
8
7
  import { registerInitCommand, runInitCommand, } from "../commands/init.js";
9
- import { registerPortfoliosCommands, runPortfolioAddAssetsCommand, runPortfolioCreateCommand, runPortfolioGetCommand, runPortfolioListCommand, runPortfolioRemoveAssetsCommand, runPortfolioRenameCommand, } from "../commands/portfolios.js";
8
+ import { registerPortfoliosCommands, runHoldingCreateCommand, runHoldingBetaCommand, runHoldingGetCommand, runHoldingHistoricalReturnCommand, runHoldingListCommand, runHoldingRenameCommand, runHoldingSetPositionsCommand, runHoldingSetTargetsCommand, runHoldingVarCommand, runWatchlistAddAssetsCommand, runWatchlistCreateCommand, runWatchlistGetCommand, runWatchlistListCommand, runWatchlistRemoveAssetsCommand, runWatchlistRenameCommand, } from "../commands/portfolios.js";
10
9
  import { registerSkillsCommands, runSkillsInstallCommand, } from "../commands/skills.js";
11
10
  import { registerStatusFlag, runStatusCommand, } from "../commands/status.js";
12
11
  import { buildCliErrorPayload, formatCliErrorMessage, normalizeCliError, shouldEmitJsonError, } from "./errors.js";
@@ -26,11 +25,6 @@ export function createCliProgram(options = {}) {
26
25
  env: options.env,
27
26
  fetch: options.fetch,
28
27
  };
29
- const analyticsContext = {
30
- io: options.io,
31
- env: options.env,
32
- fetch: options.fetch,
33
- };
34
28
  const marketContext = {
35
29
  io: options.io,
36
30
  env: options.env,
@@ -46,6 +40,7 @@ export function createCliProgram(options = {}) {
46
40
  io: options.io,
47
41
  env: options.env,
48
42
  fetch: options.fetch,
43
+ now: options.now,
49
44
  };
50
45
  const skillsContext = {
51
46
  io: options.io,
@@ -65,8 +60,8 @@ export function createCliProgram(options = {}) {
65
60
  configureCommanderOutput(program, options);
66
61
  registerCapabilitiesCommand(program, options.io);
67
62
  registerAuthCommands(program, authContext);
63
+ registerWhoamiCommand(program, authContext);
68
64
  registerAssetsCommands(program, assetsContext);
69
- registerAnalyticsCommands(program, analyticsContext);
70
65
  registerInitCommand(program, initContext);
71
66
  registerMarketCommands(program, marketContext);
72
67
  registerPortfoliosCommands(program, portfoliosContext);
@@ -74,6 +69,15 @@ export function createCliProgram(options = {}) {
74
69
  registerStatusFlag(program, statusContext);
75
70
  return program;
76
71
  }
72
+ function registerWhoamiCommand(program, context) {
73
+ program
74
+ .command("whoami")
75
+ .description("Show the authenticated QuantBrasil user")
76
+ .option("--json", "Show JSON output")
77
+ .action(async (options) => {
78
+ await runAuthWhoamiCommand(options, context);
79
+ });
80
+ }
77
81
  export async function run(argv = process.argv, options = {}) {
78
82
  const emitJsonError = shouldEmitJsonError(argv);
79
83
  const program = createCliProgram({
@@ -122,11 +126,10 @@ function isCommanderDisplayExit(error) {
122
126
  return (error.code === "commander.helpDisplayed" ||
123
127
  error.code === "commander.version");
124
128
  }
125
- export { runBetaCommand, runHistoricalReturnCommand, runVarCommand, } from "../commands/analytics.js";
126
- export { runAuthLoginCommand, runAuthLogoutCommand } from "../commands/auth.js";
129
+ export { runAuthLoginCommand, runAuthLogoutCommand, runAuthWhoamiCommand, } from "../commands/auth.js";
127
130
  export { runAssetOverviewCommand } from "../commands/assets.js";
128
131
  export { runCapabilitiesCommand, runStatusCommand };
129
132
  export { runInitCommand };
130
133
  export { runMarketAssetsCommand, runMarketPriceCommand };
131
- export { runPortfolioAddAssetsCommand, runPortfolioCreateCommand, runPortfolioGetCommand, runPortfolioListCommand, runPortfolioRemoveAssetsCommand, runPortfolioRenameCommand, };
134
+ export { runHoldingBetaCommand, runHoldingCreateCommand, runHoldingGetCommand, runHoldingHistoricalReturnCommand, runHoldingListCommand, runHoldingRenameCommand, runHoldingSetPositionsCommand, runHoldingSetTargetsCommand, runHoldingVarCommand, runWatchlistAddAssetsCommand, runWatchlistCreateCommand, runWatchlistGetCommand, runWatchlistListCommand, runWatchlistRemoveAssetsCommand, runWatchlistRenameCommand, };
132
135
  export { runSkillsInstallCommand };
@@ -11,7 +11,25 @@ export interface AuthCommandContext {
11
11
  export interface AuthLoginCommandOptions {
12
12
  apiKey: string;
13
13
  }
14
+ export interface AuthWhoamiCommandOptions {
15
+ json?: boolean;
16
+ }
17
+ export interface AuthWhoamiOutput {
18
+ ok: true;
19
+ user_id: number;
20
+ email: string;
21
+ name: string;
22
+ is_premium: boolean;
23
+ auth_source: "env" | "config";
24
+ api_key: {
25
+ id: number;
26
+ name: string;
27
+ key_prefix: string;
28
+ scopes: string[];
29
+ };
30
+ }
14
31
  export declare function registerAuthCommands(program: Command, context?: AuthCommandContext): void;
15
32
  export declare function runAuthLoginCommand(options: AuthLoginCommandOptions, context?: AuthCommandContext): Promise<void>;
16
33
  export declare function runAuthLogoutCommand(context?: AuthCommandContext): Promise<void>;
34
+ export declare function runAuthWhoamiCommand(options?: AuthWhoamiCommandOptions, context?: AuthCommandContext): Promise<void>;
17
35
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,kBAAuB,GAC/B,IAAI,CAmBN;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,EAChC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,aAAa,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC9B,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,kBAAuB,GAC/B,IAAI,CA2BN;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,EAChC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,wBAA6B,EACtC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -1,4 +1,5 @@
1
1
  import { verifyCliApiKey } from "../cli/auth.js";
2
+ import { resolveRequiredCliAuth } from "../cli/client.js";
2
3
  import { clearCliStoredAuth, saveCliApiKey } from "../cli/config.js";
3
4
  import { createTerminalTheme } from "../cli/terminal.js";
4
5
  export function registerAuthCommands(program, context = {}) {
@@ -18,6 +19,13 @@ export function registerAuthCommands(program, context = {}) {
18
19
  .action(async () => {
19
20
  await runAuthLogoutCommand(context);
20
21
  });
22
+ authCommand
23
+ .command("whoami")
24
+ .description("Show the authenticated QuantBrasil user")
25
+ .option("--json", "Show JSON output")
26
+ .action(async (options) => {
27
+ await runAuthWhoamiCommand(options, context);
28
+ });
21
29
  }
22
30
  export async function runAuthLoginCommand(options, context = {}) {
23
31
  const stdout = getStdout(context);
@@ -43,6 +51,47 @@ export async function runAuthLogoutCommand(context = {}) {
43
51
  }
44
52
  stdout.write(`${theme.dim(`No local API key was stored at ${configPath}.`)}\n`);
45
53
  }
54
+ export async function runAuthWhoamiCommand(options = {}, context = {}) {
55
+ const stdout = getStdout(context);
56
+ const theme = createTerminalTheme(stdout, context.env ?? process.env);
57
+ const auth = await resolveRequiredCliAuth(context.env ?? process.env);
58
+ const verifiedAuth = await verifyCliApiKey(auth.apiKey, {
59
+ env: context.env,
60
+ fetch: context.fetch,
61
+ });
62
+ const output = {
63
+ ok: true,
64
+ user_id: verifiedAuth.userId,
65
+ email: verifiedAuth.email,
66
+ name: verifiedAuth.name,
67
+ is_premium: verifiedAuth.isPremium,
68
+ auth_source: auth.source,
69
+ api_key: {
70
+ id: verifiedAuth.apiKey.id,
71
+ name: verifiedAuth.apiKey.name,
72
+ key_prefix: verifiedAuth.apiKey.keyPrefix,
73
+ scopes: verifiedAuth.apiKey.scopes,
74
+ },
75
+ };
76
+ if (options.json) {
77
+ stdout.write(`${JSON.stringify(output, null, 2)}\n`);
78
+ return;
79
+ }
80
+ stdout.write(`${formatAuthWhoamiHuman(output, theme)}\n`);
81
+ }
82
+ function formatAuthWhoamiHuman(data, theme) {
83
+ const source = data.auth_source === "env" ? "QUANTBRASIL_API_KEY" : "local config";
84
+ return [
85
+ theme.label("QuantBrasil user"),
86
+ "",
87
+ `${theme.label("Email:")} ${theme.bold(data.email)}`,
88
+ `${theme.label("Name:")} ${data.name}`,
89
+ `${theme.label("User ID:")} ${data.user_id}`,
90
+ `${theme.label("Premium:")} ${data.is_premium ? "yes" : "no"}`,
91
+ `${theme.label("API key:")} ${data.api_key.name} ${theme.dim(`(${data.api_key.key_prefix})`)}`,
92
+ `${theme.label("Auth source:")} ${source}`,
93
+ ].join("\n");
94
+ }
46
95
  function getStdout(context) {
47
96
  return context.io?.stdout ?? process.stdout;
48
97
  }
@@ -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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"}