mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-11-07 09:45:36 +00:00
feat(cli): agent-native output, stdin symbols, and exit-code classes
Phase 1 of docs/DESIGN.md: - Output format resolves -o > IDX_OUTPUT > general.output > auto; auto is a table on a terminal and JSON when stdout is piped or captured. `config init` now writes output = "auto". - JSON is pretty only on a terminal and compact otherwise. New `-o jsonl` prints one array item per line with the same key order. - No ANSI color when stdout is not a terminal (direct owo-colors calls now go through output::style). - `stocks quote -` and `stocks compare -` read symbols from stdin. - Exit codes by class: 2 invalid input/config, 3 not found or cache miss, 4 upstream unavailable, 5 unsupported, 1 other. Golden changes are limited to those documented kinds and were verified mechanically: JSON goldens are semantically identical, tables differ only by removed ANSI codes and the column padding comfy-table had reserved for them (cell contents identical), exit codes match each error's class, and help/completions only gain the new --output values. 17 new golden cases cover auto, jsonl, stdin, and the new errors. tests/cli.rs now pins IDX_OUTPUT=table in its harness (its tests assert table text and run piped) and parses discover JSON instead of matching pretty-printed whitespace. Live A/B against main: 16/16 stocks cases identical; ownership discover got IDX 403 on both binaries, now exiting 4 instead of 1 as intended. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
fe627496dd
commit
22b6dabaeb
119 changed files with 920 additions and 1896 deletions
|
|
@ -1,81 +1,4 @@
|
|||
exit: 0
|
||||
--- stdout
|
||||
[
|
||||
{
|
||||
"symbol": "BBCA.JK",
|
||||
"growth": {
|
||||
"revenue_growth": 0.081,
|
||||
"earnings_growth": 0.121,
|
||||
"revenue_growth_pct": 8.1,
|
||||
"earnings_growth_pct": 12.1,
|
||||
"revenue_signal": "slow",
|
||||
"earnings_signal": "moderate",
|
||||
"overall_signal": "mixed"
|
||||
},
|
||||
"valuation": {
|
||||
"pe_trailing": 25.4,
|
||||
"pe_forward": null,
|
||||
"pb": 4.6,
|
||||
"roe": 0.198,
|
||||
"roe_pct": 19.8,
|
||||
"net_margin": 0.324,
|
||||
"net_margin_pct": 32.4,
|
||||
"ev_ebitda": null,
|
||||
"pe_signal": "premium",
|
||||
"pb_signal": "expensive",
|
||||
"roe_signal": "strong",
|
||||
"margin_signal": "excellent",
|
||||
"ev_ebitda_signal": "no data",
|
||||
"overall_signal": "expensive"
|
||||
},
|
||||
"risk": {
|
||||
"debt_to_equity": 0.42,
|
||||
"current_ratio": 1.18,
|
||||
"roa": 0.031,
|
||||
"roa_pct": 3.1,
|
||||
"de_signal": "conservative",
|
||||
"current_ratio_signal": "tight",
|
||||
"overall_signal": "moderate risk"
|
||||
},
|
||||
"overall_signal": "mixed"
|
||||
},
|
||||
{
|
||||
"symbol": "BBRI.JK",
|
||||
"growth": {
|
||||
"revenue_growth": 0.081,
|
||||
"earnings_growth": 0.121,
|
||||
"revenue_growth_pct": 8.1,
|
||||
"earnings_growth_pct": 12.1,
|
||||
"revenue_signal": "slow",
|
||||
"earnings_signal": "moderate",
|
||||
"overall_signal": "mixed"
|
||||
},
|
||||
"valuation": {
|
||||
"pe_trailing": 25.4,
|
||||
"pe_forward": null,
|
||||
"pb": 4.6,
|
||||
"roe": 0.198,
|
||||
"roe_pct": 19.8,
|
||||
"net_margin": 0.324,
|
||||
"net_margin_pct": 32.4,
|
||||
"ev_ebitda": null,
|
||||
"pe_signal": "premium",
|
||||
"pb_signal": "expensive",
|
||||
"roe_signal": "strong",
|
||||
"margin_signal": "excellent",
|
||||
"ev_ebitda_signal": "no data",
|
||||
"overall_signal": "expensive"
|
||||
},
|
||||
"risk": {
|
||||
"debt_to_equity": 0.42,
|
||||
"current_ratio": 1.18,
|
||||
"roa": 0.031,
|
||||
"roa_pct": 3.1,
|
||||
"de_signal": "conservative",
|
||||
"current_ratio_signal": "tight",
|
||||
"overall_signal": "moderate risk"
|
||||
},
|
||||
"overall_signal": "mixed"
|
||||
}
|
||||
]
|
||||
[{"symbol":"BBCA.JK","growth":{"revenue_growth":0.081,"earnings_growth":0.121,"revenue_growth_pct":8.1,"earnings_growth_pct":12.1,"revenue_signal":"slow","earnings_signal":"moderate","overall_signal":"mixed"},"valuation":{"pe_trailing":25.4,"pe_forward":null,"pb":4.6,"roe":0.198,"roe_pct":19.8,"net_margin":0.324,"net_margin_pct":32.4,"ev_ebitda":null,"pe_signal":"premium","pb_signal":"expensive","roe_signal":"strong","margin_signal":"excellent","ev_ebitda_signal":"no data","overall_signal":"expensive"},"risk":{"debt_to_equity":0.42,"current_ratio":1.18,"roa":0.031,"roa_pct":3.1,"de_signal":"conservative","current_ratio_signal":"tight","overall_signal":"moderate risk"},"overall_signal":"mixed"},{"symbol":"BBRI.JK","growth":{"revenue_growth":0.081,"earnings_growth":0.121,"revenue_growth_pct":8.1,"earnings_growth_pct":12.1,"revenue_signal":"slow","earnings_signal":"moderate","overall_signal":"mixed"},"valuation":{"pe_trailing":25.4,"pe_forward":null,"pb":4.6,"roe":0.198,"roe_pct":19.8,"net_margin":0.324,"net_margin_pct":32.4,"ev_ebitda":null,"pe_signal":"premium","pb_signal":"expensive","roe_signal":"strong","margin_signal":"excellent","ev_ebitda_signal":"no data","overall_signal":"expensive"},"risk":{"debt_to_equity":0.42,"current_ratio":1.18,"roa":0.031,"roa_pct":3.1,"de_signal":"conservative","current_ratio_signal":"tight","overall_signal":"moderate risk"},"overall_signal":"mixed"}]
|
||||
--- stderr
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue