opencandle 0.2.0 → 0.4.0
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 +110 -87
- package/assets/logo.svg +187 -0
- package/dist/analysts/orchestrator.js +1 -2
- package/dist/analysts/orchestrator.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +38 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +34 -5
- package/dist/config.js +29 -8
- package/dist/config.js.map +1 -1
- package/dist/infra/browser.d.ts +10 -0
- package/dist/infra/browser.js +1 -0
- package/dist/infra/browser.js.map +1 -1
- package/dist/infra/cache.d.ts +4 -0
- package/dist/infra/cache.js +4 -0
- package/dist/infra/cache.js.map +1 -1
- package/dist/infra/native-dependencies.d.ts +1 -0
- package/dist/infra/native-dependencies.js +10 -0
- package/dist/infra/native-dependencies.js.map +1 -0
- package/dist/infra/node-version.d.ts +2 -0
- package/dist/infra/node-version.js +23 -0
- package/dist/infra/node-version.js.map +1 -0
- package/dist/infra/rate-limiter.js +6 -0
- package/dist/infra/rate-limiter.js.map +1 -1
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/sqlite.js +42 -4
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/memory/storage.d.ts +6 -0
- package/dist/memory/storage.js +3 -3
- package/dist/memory/storage.js.map +1 -1
- package/dist/memory/tool-defaults.d.ts +8 -0
- package/dist/memory/tool-defaults.js +59 -0
- package/dist/memory/tool-defaults.js.map +1 -0
- package/dist/onboarding/connect.d.ts +35 -0
- package/dist/onboarding/connect.js +118 -0
- package/dist/onboarding/connect.js.map +1 -0
- package/dist/onboarding/credential-interceptor.d.ts +44 -0
- package/dist/onboarding/credential-interceptor.js +72 -0
- package/dist/onboarding/credential-interceptor.js.map +1 -0
- package/dist/onboarding/degradation-accumulator.d.ts +21 -0
- package/dist/onboarding/degradation-accumulator.js +55 -0
- package/dist/onboarding/degradation-accumulator.js.map +1 -0
- package/dist/onboarding/prompt-user.d.ts +23 -0
- package/dist/onboarding/prompt-user.js +61 -0
- package/dist/onboarding/prompt-user.js.map +1 -0
- package/dist/onboarding/providers.d.ts +116 -0
- package/dist/onboarding/providers.js +239 -0
- package/dist/onboarding/providers.js.map +1 -0
- package/dist/onboarding/state.d.ts +31 -2
- package/dist/onboarding/state.js +141 -13
- package/dist/onboarding/state.js.map +1 -1
- package/dist/onboarding/tool-helpers.d.ts +34 -0
- package/dist/onboarding/tool-helpers.js +80 -0
- package/dist/onboarding/tool-helpers.js.map +1 -0
- package/dist/onboarding/tool-tags.d.ts +37 -0
- package/dist/onboarding/tool-tags.js +149 -0
- package/dist/onboarding/tool-tags.js.map +1 -0
- package/dist/onboarding/validation.d.ts +19 -0
- package/dist/onboarding/validation.js +117 -0
- package/dist/onboarding/validation.js.map +1 -0
- package/dist/pi/opencandle-extension.d.ts +7 -1
- package/dist/pi/opencandle-extension.js +488 -13
- package/dist/pi/opencandle-extension.js.map +1 -1
- package/dist/pi/session-storage.d.ts +2 -0
- package/dist/pi/session-storage.js +5 -0
- package/dist/pi/session-storage.js.map +1 -0
- package/dist/pi/session.d.ts +4 -1
- package/dist/pi/session.js +25 -3
- package/dist/pi/session.js.map +1 -1
- package/dist/pi/setup.d.ts +1 -2
- package/dist/pi/setup.js +67 -120
- package/dist/pi/setup.js.map +1 -1
- package/dist/pi/tool-adapter.d.ts +2 -2
- package/dist/pi/tool-adapter.js +14 -1
- package/dist/pi/tool-adapter.js.map +1 -1
- package/dist/prompts/context-builder.d.ts +22 -0
- package/dist/prompts/context-builder.js +47 -11
- package/dist/prompts/context-builder.js.map +1 -1
- package/dist/prompts/disclaimer.d.ts +6 -0
- package/dist/prompts/disclaimer.js +9 -0
- package/dist/prompts/disclaimer.js.map +1 -0
- package/dist/prompts/workflow-prompts.d.ts +8 -0
- package/dist/prompts/workflow-prompts.js +39 -5
- package/dist/prompts/workflow-prompts.js.map +1 -1
- package/dist/providers/alpha-vantage.js +20 -1
- package/dist/providers/alpha-vantage.js.map +1 -1
- package/dist/providers/exa-search.d.ts +39 -0
- package/dist/providers/exa-search.js +276 -0
- package/dist/providers/exa-search.js.map +1 -0
- package/dist/providers/finnhub.d.ts +17 -0
- package/dist/providers/finnhub.js +94 -0
- package/dist/providers/finnhub.js.map +1 -0
- package/dist/providers/fred.js +13 -1
- package/dist/providers/fred.js.map +1 -1
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/provider-credential-error.d.ts +8 -0
- package/dist/providers/provider-credential-error.js +22 -0
- package/dist/providers/provider-credential-error.js.map +1 -0
- package/dist/providers/reddit.d.ts +8 -0
- package/dist/providers/reddit.js +36 -9
- package/dist/providers/reddit.js.map +1 -1
- package/dist/providers/twitter.js +2 -8
- package/dist/providers/twitter.js.map +1 -1
- package/dist/providers/web-search.d.ts +17 -0
- package/dist/providers/web-search.js +224 -0
- package/dist/providers/web-search.js.map +1 -0
- package/dist/providers/wrap-provider.d.ts +7 -0
- package/dist/providers/wrap-provider.js +15 -0
- package/dist/providers/wrap-provider.js.map +1 -1
- package/dist/providers/yahoo-finance.js +70 -33
- package/dist/providers/yahoo-finance.js.map +1 -1
- package/dist/routing/classify-intent.js +22 -0
- package/dist/routing/classify-intent.js.map +1 -1
- package/dist/routing/defaults.js +1 -1
- package/dist/routing/defaults.js.map +1 -1
- package/dist/routing/index.d.ts +4 -0
- package/dist/routing/index.js +3 -0
- package/dist/routing/index.js.map +1 -1
- package/dist/routing/router-llm-client.d.ts +11 -0
- package/dist/routing/router-llm-client.js +42 -0
- package/dist/routing/router-llm-client.js.map +1 -0
- package/dist/routing/router-prompt.d.ts +2 -0
- package/dist/routing/router-prompt.js +138 -0
- package/dist/routing/router-prompt.js.map +1 -0
- package/dist/routing/router-types.d.ts +62 -0
- package/dist/routing/router-types.js +2 -0
- package/dist/routing/router-types.js.map +1 -0
- package/dist/routing/router.d.ts +10 -0
- package/dist/routing/router.js +194 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/runtime/session-coordinator.d.ts +63 -4
- package/dist/runtime/session-coordinator.js +155 -4
- package/dist/runtime/session-coordinator.js.map +1 -1
- package/dist/runtime/tool-defaults-wrapper.d.ts +3 -0
- package/dist/runtime/tool-defaults-wrapper.js +25 -0
- package/dist/runtime/tool-defaults-wrapper.js.map +1 -0
- package/dist/sentiment/adapters/finnhub.d.ts +7 -0
- package/dist/sentiment/adapters/finnhub.js +39 -0
- package/dist/sentiment/adapters/finnhub.js.map +1 -0
- package/dist/sentiment/adapters/reddit.d.ts +11 -0
- package/dist/sentiment/adapters/reddit.js +54 -0
- package/dist/sentiment/adapters/reddit.js.map +1 -0
- package/dist/sentiment/adapters/twitter.d.ts +9 -0
- package/dist/sentiment/adapters/twitter.js +32 -0
- package/dist/sentiment/adapters/twitter.js.map +1 -0
- package/dist/sentiment/adapters/web.d.ts +9 -0
- package/dist/sentiment/adapters/web.js +40 -0
- package/dist/sentiment/adapters/web.js.map +1 -0
- package/dist/sentiment/index.d.ts +16 -0
- package/dist/sentiment/index.js +44 -0
- package/dist/sentiment/index.js.map +1 -0
- package/dist/sentiment/keywords.d.ts +2 -0
- package/dist/sentiment/keywords.js +9 -0
- package/dist/sentiment/keywords.js.map +1 -0
- package/dist/sentiment/pipeline.d.ts +9 -0
- package/dist/sentiment/pipeline.js +57 -0
- package/dist/sentiment/pipeline.js.map +1 -0
- package/dist/sentiment/scorer.d.ts +9 -0
- package/dist/sentiment/scorer.js +64 -0
- package/dist/sentiment/scorer.js.map +1 -0
- package/dist/sentiment/store.d.ts +24 -0
- package/dist/sentiment/store.js +182 -0
- package/dist/sentiment/store.js.map +1 -0
- package/dist/sentiment/trends.d.ts +13 -0
- package/dist/sentiment/trends.js +73 -0
- package/dist/sentiment/trends.js.map +1 -0
- package/dist/sentiment/types.d.ts +66 -0
- package/dist/sentiment/types.js +54 -0
- package/dist/sentiment/types.js.map +1 -0
- package/dist/system-prompt.js +29 -13
- package/dist/system-prompt.js.map +1 -1
- package/dist/tool-kit.d.ts +4 -4
- package/dist/tools/fundamentals/company-overview.d.ts +4 -2
- package/dist/tools/fundamentals/company-overview.js +27 -27
- package/dist/tools/fundamentals/company-overview.js.map +1 -1
- package/dist/tools/fundamentals/comps.d.ts +1 -1
- package/dist/tools/fundamentals/comps.js +45 -45
- package/dist/tools/fundamentals/comps.js.map +1 -1
- package/dist/tools/fundamentals/dcf.d.ts +1 -1
- package/dist/tools/fundamentals/dcf.js +82 -82
- package/dist/tools/fundamentals/dcf.js.map +1 -1
- package/dist/tools/fundamentals/earnings.d.ts +4 -2
- package/dist/tools/fundamentals/earnings.js +25 -25
- package/dist/tools/fundamentals/earnings.js.map +1 -1
- package/dist/tools/fundamentals/financials.d.ts +4 -2
- package/dist/tools/fundamentals/financials.js +23 -23
- package/dist/tools/fundamentals/financials.js.map +1 -1
- package/dist/tools/fundamentals/sec-filings.d.ts +1 -1
- package/dist/tools/index.d.ts +28 -1
- package/dist/tools/index.js +35 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interaction/ask-user.d.ts +1 -1
- package/dist/tools/interaction/ask-user.js +28 -64
- package/dist/tools/interaction/ask-user.js.map +1 -1
- package/dist/tools/interaction/twitter-login.d.ts +1 -1
- package/dist/tools/macro/fear-greed.d.ts +1 -1
- package/dist/tools/macro/fred-data.d.ts +4 -2
- package/dist/tools/macro/fred-data.js +26 -26
- package/dist/tools/macro/fred-data.js.map +1 -1
- package/dist/tools/market/crypto-history.d.ts +1 -1
- package/dist/tools/market/crypto-price.d.ts +1 -1
- package/dist/tools/market/search-ticker.d.ts +1 -1
- package/dist/tools/market/stock-history.d.ts +1 -1
- package/dist/tools/market/stock-quote.d.ts +1 -1
- package/dist/tools/options/option-chain.d.ts +1 -1
- package/dist/tools/options/option-chain.js +4 -1
- package/dist/tools/options/option-chain.js.map +1 -1
- package/dist/tools/portfolio/correlation.d.ts +1 -1
- package/dist/tools/portfolio/predictions.d.ts +1 -1
- package/dist/tools/portfolio/risk-analysis.d.ts +1 -1
- package/dist/tools/portfolio/tracker.d.ts +1 -1
- package/dist/tools/portfolio/watchlist.d.ts +1 -1
- package/dist/tools/sentiment/reddit-sentiment.d.ts +4 -2
- package/dist/tools/sentiment/reddit-sentiment.js +107 -22
- package/dist/tools/sentiment/reddit-sentiment.js.map +1 -1
- package/dist/tools/sentiment/sentiment-summary.d.ts +7 -0
- package/dist/tools/sentiment/sentiment-summary.js +230 -0
- package/dist/tools/sentiment/sentiment-summary.js.map +1 -0
- package/dist/tools/sentiment/sentiment-trend.d.ts +22 -0
- package/dist/tools/sentiment/sentiment-trend.js +39 -0
- package/dist/tools/sentiment/sentiment-trend.js.map +1 -0
- package/dist/tools/sentiment/twitter-sentiment.d.ts +1 -1
- package/dist/tools/sentiment/twitter-sentiment.js +17 -0
- package/dist/tools/sentiment/twitter-sentiment.js.map +1 -1
- package/dist/tools/sentiment/web-search.d.ts +11 -0
- package/dist/tools/sentiment/web-search.js +115 -0
- package/dist/tools/sentiment/web-search.js.map +1 -0
- package/dist/tools/sentiment/web-sentiment.d.ts +8 -0
- package/dist/tools/sentiment/web-sentiment.js +66 -0
- package/dist/tools/sentiment/web-sentiment.js.map +1 -0
- package/dist/tools/technical/backtest.d.ts +1 -1
- package/dist/tools/technical/indicators.d.ts +1 -1
- package/dist/tools/technical/indicators.js +7 -1
- package/dist/tools/technical/indicators.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/sentiment.d.ts +21 -0
- package/dist/workflows/options-screener.js +7 -2
- package/dist/workflows/options-screener.js.map +1 -1
- package/dist/workflows/portfolio-builder.js +3 -3
- package/dist/workflows/portfolio-builder.js.map +1 -1
- package/gui/server/background-quotes.ts +31 -0
- package/gui/server/chat-event-adapter.ts +142 -0
- package/gui/server/invoke-tool.ts +89 -0
- package/gui/server/live-chat-event-adapter.ts +181 -0
- package/gui/server/model-setup.ts +100 -0
- package/gui/server/package.json +5 -0
- package/gui/server/projector.ts +212 -0
- package/gui/server/server.ts +592 -0
- package/gui/server/session-actions.ts +31 -0
- package/gui/server/tool-metadata.ts +88 -0
- package/gui/server/websocket.ts +128 -0
- package/gui/server/writer-lock.ts +118 -0
- package/gui/shared/chat-events.ts +118 -0
- package/gui/shared/event-reducer.ts +186 -0
- package/gui/web/dist/assets/CatalogOverlay-D1ImSJTe.js +1 -0
- package/gui/web/dist/assets/index-DBrWq43L.css +1 -0
- package/gui/web/dist/assets/index-RflHaj0y.js +67 -0
- package/gui/web/dist/assets/logo-CWpt6Y2a.svg +187 -0
- package/gui/web/dist/index.html +17 -0
- package/package.json +62 -20
- package/src/analysts/contracts.ts +189 -0
- package/src/analysts/orchestrator.ts +300 -0
- package/src/cli.ts +205 -0
- package/src/config.ts +161 -0
- package/src/index.ts +5 -0
- package/src/infra/browser.ts +111 -0
- package/src/infra/cache.ts +103 -0
- package/src/infra/http-client.ts +68 -0
- package/src/infra/index.ts +18 -0
- package/src/infra/native-dependencies.ts +12 -0
- package/src/infra/node-version.ts +24 -0
- package/src/infra/open-url.ts +28 -0
- package/src/infra/opencandle-paths.ts +64 -0
- package/src/infra/rate-limiter.ts +64 -0
- package/src/memory/index.ts +10 -0
- package/src/memory/manager.ts +159 -0
- package/src/memory/preference-extractor.ts +106 -0
- package/src/memory/retrieval.ts +70 -0
- package/src/memory/sqlite.ts +172 -0
- package/src/memory/storage.ts +204 -0
- package/src/memory/tool-defaults.ts +87 -0
- package/src/memory/types.ts +67 -0
- package/src/onboarding/connect.ts +184 -0
- package/src/onboarding/credential-interceptor.ts +134 -0
- package/src/onboarding/degradation-accumulator.ts +79 -0
- package/src/onboarding/prompt-user.ts +85 -0
- package/src/onboarding/providers.ts +315 -0
- package/src/onboarding/state.ts +218 -0
- package/src/onboarding/tool-helpers.ts +111 -0
- package/src/onboarding/tool-tags.ts +201 -0
- package/src/onboarding/validation.ts +158 -0
- package/src/pi/opencandle-extension.ts +724 -0
- package/src/pi/session-storage.ts +5 -0
- package/src/pi/session.ts +81 -0
- package/src/pi/setup.ts +371 -0
- package/src/pi/tool-adapter.ts +36 -0
- package/src/prompts/context-builder.ts +204 -0
- package/src/prompts/disclaimer.ts +9 -0
- package/src/prompts/sections.ts +46 -0
- package/src/prompts/workflow-prompts.ts +279 -0
- package/src/providers/alpha-vantage.ts +292 -0
- package/src/providers/coingecko.ts +96 -0
- package/src/providers/exa-search.ts +373 -0
- package/src/providers/fear-greed.ts +45 -0
- package/src/providers/finnhub.ts +124 -0
- package/src/providers/fred.ts +83 -0
- package/src/providers/index.ts +9 -0
- package/src/providers/provider-credential-error.ts +23 -0
- package/src/providers/reddit.ts +151 -0
- package/src/providers/sec-edgar.ts +96 -0
- package/src/providers/twitter.ts +173 -0
- package/src/providers/web-search.ts +293 -0
- package/src/providers/with-fallback.ts +41 -0
- package/src/providers/wrap-provider.ts +64 -0
- package/src/providers/yahoo-finance.ts +367 -0
- package/src/routing/classify-intent.ts +194 -0
- package/src/routing/defaults.ts +29 -0
- package/src/routing/entity-extractor.ts +140 -0
- package/src/routing/index.ts +26 -0
- package/src/routing/router-llm-client.ts +51 -0
- package/src/routing/router-prompt.ts +159 -0
- package/src/routing/router-types.ts +66 -0
- package/src/routing/router.ts +213 -0
- package/src/routing/slot-resolver.ts +152 -0
- package/src/routing/types.ts +63 -0
- package/src/runtime/evidence.ts +77 -0
- package/src/runtime/index.ts +55 -0
- package/src/runtime/prompt-step.ts +75 -0
- package/src/runtime/provider-ids.ts +15 -0
- package/src/runtime/provider-tracker.ts +40 -0
- package/src/runtime/run-context.ts +22 -0
- package/src/runtime/session-coordinator.ts +406 -0
- package/src/runtime/tool-defaults-wrapper.ts +35 -0
- package/src/runtime/validation.ts +214 -0
- package/src/runtime/workflow-events.ts +75 -0
- package/src/runtime/workflow-runner.ts +188 -0
- package/src/runtime/workflow-types.ts +102 -0
- package/src/sentiment/adapters/finnhub.ts +44 -0
- package/src/sentiment/adapters/reddit.ts +65 -0
- package/src/sentiment/adapters/twitter.ts +36 -0
- package/src/sentiment/adapters/web.ts +44 -0
- package/src/sentiment/index.ts +58 -0
- package/src/sentiment/keywords.ts +9 -0
- package/src/sentiment/pipeline.ts +68 -0
- package/src/sentiment/scorer.ts +78 -0
- package/src/sentiment/store.ts +260 -0
- package/src/sentiment/trends.ts +90 -0
- package/src/sentiment/types.ts +108 -0
- package/src/system-prompt.ts +115 -0
- package/src/tool-kit.ts +68 -0
- package/src/tools/AGENTS.md +36 -0
- package/src/tools/fundamentals/company-overview.ts +54 -0
- package/src/tools/fundamentals/comps.ts +156 -0
- package/src/tools/fundamentals/dcf.ts +267 -0
- package/src/tools/fundamentals/earnings.ts +47 -0
- package/src/tools/fundamentals/financials.ts +54 -0
- package/src/tools/fundamentals/sec-filings.ts +61 -0
- package/src/tools/index.ts +88 -0
- package/src/tools/interaction/ask-user.ts +81 -0
- package/src/tools/interaction/twitter-login.ts +93 -0
- package/src/tools/macro/fear-greed.ts +41 -0
- package/src/tools/macro/fred-data.ts +54 -0
- package/src/tools/market/crypto-history.ts +51 -0
- package/src/tools/market/crypto-price.ts +53 -0
- package/src/tools/market/search-ticker.ts +53 -0
- package/src/tools/market/stock-history.ts +79 -0
- package/src/tools/market/stock-quote.ts +64 -0
- package/src/tools/options/greeks.ts +82 -0
- package/src/tools/options/option-chain.ts +91 -0
- package/src/tools/portfolio/correlation.ts +162 -0
- package/src/tools/portfolio/predictions.ts +253 -0
- package/src/tools/portfolio/risk-analysis.ts +134 -0
- package/src/tools/portfolio/tracker.ts +147 -0
- package/src/tools/portfolio/watchlist.ts +153 -0
- package/src/tools/sentiment/reddit-sentiment.ts +164 -0
- package/src/tools/sentiment/sentiment-summary.ts +256 -0
- package/src/tools/sentiment/sentiment-trend.ts +58 -0
- package/src/tools/sentiment/twitter-sentiment.ts +96 -0
- package/src/tools/sentiment/web-search.ts +150 -0
- package/src/tools/sentiment/web-sentiment.ts +76 -0
- package/src/tools/technical/backtest.ts +246 -0
- package/src/tools/technical/indicators.ts +258 -0
- package/src/types/fundamentals.ts +46 -0
- package/src/types/index.ts +20 -0
- package/src/types/macro.ts +27 -0
- package/src/types/market.ts +43 -0
- package/src/types/options.ts +35 -0
- package/src/types/portfolio.ts +41 -0
- package/src/types/sentiment.ts +70 -0
- package/src/workflows/compare-assets.ts +39 -0
- package/src/workflows/index.ts +4 -0
- package/src/workflows/options-screener.ts +49 -0
- package/src/workflows/portfolio-builder.ts +52 -0
- package/src/workflows/types.ts +4 -0
- package/dist/tools/sentiment/news-sentiment.d.ts +0 -7
- package/dist/tools/sentiment/news-sentiment.js +0 -55
- package/dist/tools/sentiment/news-sentiment.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,63 +1,65 @@
|
|
|
1
1
|
# OpenCandle
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
OpenCandle is a terminal-first financial data agent built with TypeScript and Pi. It fetches market, macro, options, fundamentals, sentiment, and portfolio data from real providers, then lets the model synthesize that data into an answer.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
This repository is useful in two ways:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Run `opencandle` as an interactive CLI for market research
|
|
8
|
+
- Extend OpenCandle with new tools, providers, or Pi-compatible add-on packages
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
## What You Can Use It For
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
- Quote and history lookups for stocks and crypto
|
|
13
|
+
- Options chains with locally computed Greeks
|
|
14
|
+
- Company fundamentals, earnings, and SEC filings
|
|
15
|
+
- FRED macro series and Fear & Greed data
|
|
16
|
+
- Reddit-based sentiment and discussion lookups
|
|
17
|
+
- Portfolio tracking, watchlists, correlation, and risk analysis
|
|
18
|
+
- Multi-step workflows such as `/analyze NVDA`
|
|
12
19
|
|
|
13
|
-
|
|
20
|
+
OpenCandle is designed to fetch and format data. The model handles synthesis. Tool code should not invent financial conclusions or hardcode market numbers.
|
|
14
21
|
|
|
15
|
-
|
|
22
|
+
## Install And Run
|
|
16
23
|
|
|
17
|
-
|
|
24
|
+
Requires Node.js 20+.
|
|
25
|
+
|
|
26
|
+
### CLI
|
|
18
27
|
|
|
19
28
|
```bash
|
|
20
29
|
npm install -g opencandle
|
|
21
30
|
opencandle
|
|
22
31
|
|
|
23
|
-
# or
|
|
32
|
+
# or without installing globally
|
|
24
33
|
npx opencandle@latest
|
|
25
34
|
```
|
|
26
35
|
|
|
27
|
-
On first run, OpenCandle walks you through setup:
|
|
28
|
-
|
|
29
|
-
1. **Connect an AI provider** — sign in with OAuth (Google, OpenAI, Anthropic) or paste an API key
|
|
30
|
-
2. **Pick a model** — choose from the available models on your connected provider
|
|
31
|
-
3. **Optional: add market-data keys** — Alpha Vantage and FRED for fundamentals and macro data (can skip)
|
|
32
|
-
|
|
33
|
-
To rerun setup later, use `/setup`.
|
|
34
|
-
|
|
35
36
|
### From Source
|
|
36
37
|
|
|
37
38
|
```bash
|
|
38
39
|
npm install
|
|
39
40
|
cp .env.example .env
|
|
40
|
-
# Add any LLM env vars you want to use locally (for example GEMINI_API_KEY)
|
|
41
41
|
npm start
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
On first run, OpenCandle walks you through model setup. You can rerun that flow later with `/setup`.
|
|
45
|
+
|
|
46
|
+
## Configuration
|
|
47
|
+
|
|
48
|
+
Model access comes from Pi. Market data providers are optional and additive.
|
|
45
49
|
|
|
46
|
-
| Key | Required |
|
|
47
|
-
|
|
48
|
-
| `GEMINI_API_KEY` | No |
|
|
49
|
-
| `OPENAI_API_KEY` | No |
|
|
50
|
-
| `ANTHROPIC_API_KEY` | No |
|
|
51
|
-
| `ALPHA_VANTAGE_API_KEY` | No |
|
|
52
|
-
| `FRED_API_KEY` | No |
|
|
50
|
+
| Key | Required | Used For |
|
|
51
|
+
| --- | --- | --- |
|
|
52
|
+
| `GEMINI_API_KEY` | No | Google models through Pi |
|
|
53
|
+
| `OPENAI_API_KEY` | No | OpenAI models through Pi |
|
|
54
|
+
| `ANTHROPIC_API_KEY` | No | Anthropic models through Pi |
|
|
55
|
+
| `ALPHA_VANTAGE_API_KEY` | No | Fundamentals, earnings, financial statements |
|
|
56
|
+
| `FRED_API_KEY` | No | Macro series such as rates, CPI, GDP, unemployment |
|
|
53
57
|
|
|
54
|
-
Yahoo Finance, CoinGecko, Reddit, and Fear & Greed
|
|
55
|
-
Pi also supports OAuth-backed and custom providers through `~/.pi/agent/auth.json`, `/login`, `/model`, and `~/.pi/agent/models.json`.
|
|
58
|
+
Yahoo Finance, CoinGecko, Reddit, SEC EDGAR, and Fear & Greed data do not require keys.
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
OpenCandle stores its own user state in `~/.opencandle/` by default. Pi configuration stays in `.pi/` and `~/.pi/agent/`. The CLI should not depend on repo-local `.pi/extensions/`.
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
- OpenCandle finance-provider config lives in `~/.opencandle/config.json`:
|
|
62
|
+
Provider keys can also be stored in `~/.opencandle/config.json`:
|
|
61
63
|
|
|
62
64
|
```json
|
|
63
65
|
{
|
|
@@ -72,88 +74,109 @@ Pi also supports OAuth-backed and custom providers through `~/.pi/agent/auth.jso
|
|
|
72
74
|
}
|
|
73
75
|
```
|
|
74
76
|
|
|
75
|
-
|
|
76
|
-
- Set `OPENCANDLE_HOME` to override the default `~/.opencandle/` data directory.
|
|
77
|
-
- OpenCandle user data lives in `~/.opencandle/` (or `$OPENCANDLE_HOME`):
|
|
78
|
-
- `~/.opencandle/watchlist.json`
|
|
79
|
-
- `~/.opencandle/portfolio.json`
|
|
80
|
-
- `~/.opencandle/predictions.json`
|
|
81
|
-
- `~/.opencandle/state.db`
|
|
82
|
-
- `~/.opencandle/logs/...`
|
|
83
|
-
- The published CLI should work from any directory without depending on a repo-local `.pi/extensions/...` file. Project `.pi/` remains optional for user overrides.
|
|
77
|
+
Environment variables override values from `~/.opencandle/config.json`. Set `OPENCANDLE_HOME` if you want OpenCandle state somewhere other than `~/.opencandle/`.
|
|
84
78
|
|
|
85
|
-
## Usage
|
|
79
|
+
## Basic Usage
|
|
86
80
|
|
|
87
|
-
OpenCandle runs inside Pi's interactive
|
|
81
|
+
OpenCandle runs inside Pi's interactive terminal UI.
|
|
82
|
+
|
|
83
|
+
Useful commands:
|
|
88
84
|
|
|
89
85
|
```text
|
|
90
|
-
/
|
|
91
|
-
/login
|
|
92
|
-
/
|
|
93
|
-
/analyze
|
|
86
|
+
/setup
|
|
87
|
+
/login
|
|
88
|
+
/model
|
|
89
|
+
/analyze AAPL
|
|
94
90
|
```
|
|
95
91
|
|
|
96
|
-
|
|
92
|
+
Example prompts:
|
|
97
93
|
|
|
98
94
|
```text
|
|
99
|
-
What
|
|
95
|
+
What is AAPL trading at?
|
|
100
96
|
Get the options chain for TSLA expiring April 24
|
|
101
97
|
Show me MSFT puts with Greeks
|
|
102
|
-
What's the Fear and Greed index?
|
|
103
98
|
Get the fed funds rate from FRED
|
|
104
99
|
Add 100 shares of NVDA at 120 to my portfolio, then show my portfolio
|
|
105
100
|
Run risk analysis on SPY
|
|
106
|
-
analyze AAPL
|
|
107
101
|
```
|
|
108
102
|
|
|
109
|
-
##
|
|
103
|
+
## Data Sources And Tool Coverage
|
|
110
104
|
|
|
111
|
-
|
|
|
112
|
-
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
|
|
|
117
|
-
|
|
|
118
|
-
|
|
|
119
|
-
|
|
|
105
|
+
| Area | Examples | Source |
|
|
106
|
+
| --- | --- | --- |
|
|
107
|
+
| Market data | quotes, history, ticker search, crypto price/history | Yahoo Finance, CoinGecko |
|
|
108
|
+
| Options | chains, open interest, IV, Greeks | Yahoo Finance plus local calculations |
|
|
109
|
+
| Fundamentals | overview, financials, earnings, DCF, company comparison | Alpha Vantage |
|
|
110
|
+
| Macro | economic series, Fear & Greed | FRED, alternative.me |
|
|
111
|
+
| Sentiment | Reddit, Twitter/X, and web sentiment with cross-source pipeline | Reddit JSON API, Twitter/X, DuckDuckGo, Brave |
|
|
112
|
+
| Filings | SEC filing search | SEC EDGAR |
|
|
113
|
+
| Portfolio | watchlist, prediction tracking, correlation, risk | Local state plus market data |
|
|
120
114
|
|
|
121
|
-
##
|
|
115
|
+
## Engineering Notes
|
|
122
116
|
|
|
123
|
-
|
|
117
|
+
### Project Shape
|
|
124
118
|
|
|
119
|
+
```text
|
|
120
|
+
src/
|
|
121
|
+
├── providers/ API clients
|
|
122
|
+
├── tools/ Tool implementations by domain
|
|
123
|
+
├── infra/ Cache, rate limiter, HTTP, browser, paths
|
|
124
|
+
├── routing/ Intent classification and slot resolution
|
|
125
|
+
├── workflows/ Multi-step workflow builders
|
|
126
|
+
├── memory/ SQLite-backed state and retrieval
|
|
127
|
+
├── analysts/ Multi-analyst orchestration
|
|
128
|
+
├── pi/ Pi integration and session wiring
|
|
129
|
+
└── index.ts Public exports
|
|
125
130
|
```
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
131
|
+
|
|
132
|
+
### Development Commands
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm start
|
|
136
|
+
npm test
|
|
137
|
+
npm run test:watch
|
|
138
|
+
npm run test:e2e
|
|
139
|
+
npm run test:e2e:cli
|
|
140
|
+
npm run test:e2e:providers
|
|
129
141
|
```
|
|
130
142
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
143
|
+
`npm test` is the required baseline check after changes.
|
|
144
|
+
|
|
145
|
+
### Repository Rules That Matter
|
|
146
|
+
|
|
147
|
+
- TDD is mandatory for behavior changes
|
|
148
|
+
- Unit tests mock `globalThis.fetch` and use JSON fixtures
|
|
149
|
+
- Use `cache` and `rateLimiter` for external calls
|
|
150
|
+
- Tools fetch and format data; analysts and prompts synthesize
|
|
151
|
+
- Keep typing strict and use `.js` extensions on relative imports
|
|
152
|
+
|
|
153
|
+
### Public Package Exports
|
|
154
|
+
|
|
155
|
+
Besides the CLI, the package exposes pieces for engineers building on top of OpenCandle:
|
|
156
|
+
|
|
157
|
+
- `opencandle`
|
|
158
|
+
- `opencandle/tool-kit`
|
|
159
|
+
- `opencandle/infra`
|
|
160
|
+
- `opencandle/types`
|
|
161
|
+
- `opencandle/providers`
|
|
138
162
|
|
|
139
|
-
|
|
163
|
+
If you want to add a new tool or publish an add-on package, start with [docs/build-a-tool.md](./docs/build-a-tool.md).
|
|
164
|
+
|
|
165
|
+
## Testing The Agent
|
|
166
|
+
|
|
167
|
+
For end-to-end agent driving with file-based IPC:
|
|
140
168
|
|
|
141
169
|
```bash
|
|
142
|
-
|
|
143
|
-
npm run test:watch # watch mode
|
|
170
|
+
npx tsx tests/harness/manual-run.ts /tmp/opencandle-ipc "What is AAPL trading at?"
|
|
144
171
|
```
|
|
145
172
|
|
|
146
|
-
|
|
173
|
+
The harness writes status and trace files into the IPC directory. See [tests/harness/README.md](./tests/harness/README.md) for the full flow.
|
|
147
174
|
|
|
148
|
-
|
|
149
|
-
- Contributor guide: [CONTRIBUTING.md](https://github.com/Kahtaf/OpenCandle/blob/main/CONTRIBUTING.md)
|
|
150
|
-
- Security policy: [SECURITY.md](https://github.com/Kahtaf/OpenCandle/blob/main/SECURITY.md)
|
|
151
|
-
- Release history: [CHANGELOG.md](https://github.com/Kahtaf/OpenCandle/blob/main/CHANGELOG.md)
|
|
152
|
-
|
|
153
|
-
## Tech Stack
|
|
175
|
+
## Project Docs
|
|
154
176
|
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
177
|
+
- [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
178
|
+
- [docs/build-a-tool.md](./docs/build-a-tool.md)
|
|
179
|
+
- [tests/harness/README.md](./tests/harness/README.md)
|
|
180
|
+
- [CHANGELOG.md](./CHANGELOG.md)
|
|
181
|
+
- [SECURITY.md](./SECURITY.md)
|
|
182
|
+
- [LICENSE](./LICENSE)
|
package/assets/logo.svg
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="https://svgstorm.com"
|
|
2
|
+
viewBox = "0 0 1009 1008"
|
|
3
|
+
width="1009"
|
|
4
|
+
height="1008">
|
|
5
|
+
<g fill="None" fill-opacity="0.0" stroke="#34474E" stroke-opacity="0.00" stroke-width="0.3"><path d="
|
|
6
|
+
M 0.00 1008.00
|
|
7
|
+
L 1009.00 1008.00
|
|
8
|
+
L 1009.00 0.00
|
|
9
|
+
L 0.00 0.00
|
|
10
|
+
L 0.00 1008.00
|
|
11
|
+
M 893.00 7.00
|
|
12
|
+
C 912.65 7.48 933.31 16.27 951.00 28.00
|
|
13
|
+
C 960.90 34.53 969.82 43.54 977.00 53.00
|
|
14
|
+
C 987.75 70.16 998.47 88.32 1000.00 109.00
|
|
15
|
+
C 1004.61 172.94 1000.71 239.89 1002.00 305.00 C 1002.00 437.00 1002.00 569.00 1002.00 701.00 C 1000.71 766.09 1004.61 833.14 1000.00 897.00
|
|
16
|
+
C 997.20 915.93 990.73 934.49 979.00 950.00
|
|
17
|
+
C 971.95 960.06 962.97 968.87 953.00 976.00
|
|
18
|
+
C 936.25 987.24 917.87 994.87 898.00 998.00
|
|
19
|
+
C 848.40 1002.63 795.77 998.69 745.00 1000.00 C 537.83 999.33 329.35 1001.34 123.00 999.00
|
|
20
|
+
C 113.93 999.28 105.34 997.59 97.00 995.00
|
|
21
|
+
C 87.29 992.63 76.80 989.30 69.00 983.00
|
|
22
|
+
C 68.57 982.83 68.00 983.00 68.00 983.00
|
|
23
|
+
C 55.21 976.65 44.68 965.81 35.00 955.00
|
|
24
|
+
C -7.40 902.87 14.27 828.97 9.00 765.00 C 9.00 548.67 9.00 332.33 9.00 116.00 C 11.95 60.04 61.08 10.55 117.00 7.00
|
|
25
|
+
C 374.60 5.33 635.47 5.33 893.00 7.00 Z"/>
|
|
26
|
+
</g>
|
|
27
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="1.00" stroke-width="0.3"><path d="
|
|
28
|
+
M 117.00 7.00
|
|
29
|
+
C 375.67 7.00 634.33 7.00 893.00 7.00
|
|
30
|
+
C 635.47 5.33 374.60 5.33 117.00 7.00 Z"/>
|
|
31
|
+
</g>
|
|
32
|
+
<g fill="None" fill-opacity="0.0" stroke="#34474E" stroke-opacity="1.00" stroke-width="0.3"><path d="
|
|
33
|
+
M 893.00 7.00
|
|
34
|
+
C 634.33 7.00 375.67 7.00 117.00 7.00
|
|
35
|
+
C 61.08 10.55 11.95 60.04 9.00 116.00 C 9.00 332.33 9.00 548.67 9.00 765.00 C 14.27 828.97 -7.40 902.87 35.00 955.00
|
|
36
|
+
C 45.51 965.18 56.26 975.41 68.00 983.00
|
|
37
|
+
C 68.00 983.00 68.57 982.83 69.00 983.00
|
|
38
|
+
C 77.85 988.23 88.00 991.10 97.00 995.00
|
|
39
|
+
C 105.34 997.59 113.93 999.28 123.00 999.00
|
|
40
|
+
C 381.25 998.34 640.16 1000.33 898.00 998.00
|
|
41
|
+
C 917.87 994.87 936.25 987.24 953.00 976.00
|
|
42
|
+
C 961.89 967.94 970.70 958.59 979.00 950.00
|
|
43
|
+
C 990.73 934.49 997.20 915.93 1000.00 897.00
|
|
44
|
+
C 1001.66 634.92 1001.67 371.08 1000.00 109.00
|
|
45
|
+
C 998.47 88.32 987.75 70.16 977.00 53.00
|
|
46
|
+
C 968.92 44.28 959.99 35.47 951.00 28.00
|
|
47
|
+
C 933.31 16.27 912.65 7.48 893.00 7.00
|
|
48
|
+
M 515.00 304.00
|
|
49
|
+
C 539.00 304.00 563.00 304.00 587.00 304.00 C 615.29 302.32 605.38 337.85 607.00 356.00 C 607.00 452.00 607.00 548.00 607.00 644.00 C 605.19 661.97 615.63 698.38 587.00 696.00 C 563.00 696.00 539.00 696.00 515.00 696.00
|
|
50
|
+
C 515.00 728.00 515.00 760.00 515.00 792.00 C 512.34 804.03 522.39 828.07 505.00 830.00 C 487.59 827.79 497.67 804.11 495.00 792.00 C 495.00 760.00 495.00 728.00 495.00 696.00
|
|
51
|
+
C 471.33 696.00 447.67 696.00 424.00 696.00 C 394.53 699.12 406.18 662.06 404.00 644.00 C 404.00 548.33 404.00 452.67 404.00 357.00 C 406.52 338.80 394.21 302.66 423.00 304.00 C 447.00 304.00 471.00 304.00 495.00 304.00
|
|
52
|
+
C 495.00 272.00 495.00 240.00 495.00 208.00 C 497.32 195.66 488.16 173.46 505.01 170.01 C 521.85 173.62 512.68 195.59 515.00 208.00 C 515.00 240.00 515.00 272.00 515.00 304.00 Z"/>
|
|
53
|
+
</g>
|
|
54
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="0.91" stroke-width="0.3"><path d="
|
|
55
|
+
M 977.00 53.00
|
|
56
|
+
C 969.82 43.54 960.90 34.53 951.00 28.00
|
|
57
|
+
C 959.99 35.47 968.92 44.28 977.00 53.00 Z"/>
|
|
58
|
+
</g>
|
|
59
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="1.00" stroke-width="0.3"><path d="
|
|
60
|
+
M 1000.00 897.00
|
|
61
|
+
C 1004.61 833.14 1000.71 766.09 1002.00 701.00 C 1002.00 569.00 1002.00 437.00 1002.00 305.00 C 1000.71 239.89 1004.61 172.94 1000.00 109.00
|
|
62
|
+
C 1001.67 371.08 1001.66 634.92 1000.00 897.00 Z"/>
|
|
63
|
+
</g>
|
|
64
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="1.00" stroke-width="0.3"><path d="
|
|
65
|
+
M 515.00 304.00
|
|
66
|
+
C 515.00 272.00 515.00 240.00 515.00 208.00 C 512.68 195.59 521.85 173.62 505.01 170.01 C 488.16 173.46 497.32 195.66 495.00 208.00 C 495.00 240.00 495.00 272.00 495.00 304.00
|
|
67
|
+
C 471.00 304.00 447.00 304.00 423.00 304.00 C 394.21 302.66 406.52 338.80 404.00 357.00 C 404.00 452.67 404.00 548.33 404.00 644.00 C 406.18 662.06 394.53 699.12 424.00 696.00 C 447.67 696.00 471.33 696.00 495.00 696.00
|
|
68
|
+
C 495.00 728.00 495.00 760.00 495.00 792.00 C 497.67 804.11 487.59 827.79 505.00 830.00 C 522.39 828.07 512.34 804.03 515.00 792.00 C 515.00 760.00 515.00 728.00 515.00 696.00
|
|
69
|
+
C 539.00 696.00 563.00 696.00 587.00 696.00 C 615.63 698.38 605.19 661.97 607.00 644.00 C 607.00 548.00 607.00 452.00 607.00 356.00 C 605.38 337.85 615.29 302.32 587.00 304.00 C 563.00 304.00 539.00 304.00 515.00 304.00 Z"/>
|
|
70
|
+
</g>
|
|
71
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="0.78" stroke-width="0.3"><path d="
|
|
72
|
+
M 953.00 976.00
|
|
73
|
+
C 962.97 968.87 971.95 960.06 979.00 950.00
|
|
74
|
+
C 970.70 958.59 961.89 967.94 953.00 976.00 Z"/>
|
|
75
|
+
</g>
|
|
76
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="0.85" stroke-width="0.3"><path d="
|
|
77
|
+
M 68.00 983.00
|
|
78
|
+
C 56.26 975.41 45.51 965.18 35.00 955.00
|
|
79
|
+
C 44.68 965.81 55.21 976.65 68.00 983.00 Z"/>
|
|
80
|
+
</g>
|
|
81
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="0.79" stroke-width="0.3"><path d="
|
|
82
|
+
M 97.00 995.00
|
|
83
|
+
C 88.00 991.10 77.85 988.23 69.00 983.00
|
|
84
|
+
C 76.80 989.30 87.29 992.63 97.00 995.00 Z"/>
|
|
85
|
+
</g>
|
|
86
|
+
<g fill="None" fill-opacity="0.0" stroke="#87A188" stroke-opacity="0.53" stroke-width="0.3"><path d="
|
|
87
|
+
M 123.00 999.00
|
|
88
|
+
C 329.35 1001.34 537.83 999.33 745.00 1000.00 C 795.77 998.69 848.40 1002.63 898.00 998.00
|
|
89
|
+
C 640.16 1000.33 381.25 998.34 123.00 999.00 Z"/>
|
|
90
|
+
</g>
|
|
91
|
+
<g fill="#34474E" fill-opacity="0.00" stroke="None">
|
|
92
|
+
<path d="
|
|
93
|
+
M 0.00 1008.00
|
|
94
|
+
L 1009.00 1008.00
|
|
95
|
+
L 1009.00 0.00
|
|
96
|
+
L 0.00 0.00
|
|
97
|
+
L 0.00 1008.00
|
|
98
|
+
M 893.00 7.00
|
|
99
|
+
C 912.65 7.48 933.31 16.27 951.00 28.00
|
|
100
|
+
C 960.90 34.53 969.82 43.54 977.00 53.00
|
|
101
|
+
C 987.75 70.16 998.47 88.32 1000.00 109.00
|
|
102
|
+
C 1004.61 172.94 1000.71 239.89 1002.00 305.00 C 1002.00 437.00 1002.00 569.00 1002.00 701.00 C 1000.71 766.09 1004.61 833.14 1000.00 897.00
|
|
103
|
+
C 997.20 915.93 990.73 934.49 979.00 950.00
|
|
104
|
+
C 971.95 960.06 962.97 968.87 953.00 976.00
|
|
105
|
+
C 936.25 987.24 917.87 994.87 898.00 998.00
|
|
106
|
+
C 848.40 1002.63 795.77 998.69 745.00 1000.00 C 537.83 999.33 329.35 1001.34 123.00 999.00
|
|
107
|
+
C 113.93 999.28 105.34 997.59 97.00 995.00
|
|
108
|
+
C 87.29 992.63 76.80 989.30 69.00 983.00
|
|
109
|
+
C 68.57 982.83 68.00 983.00 68.00 983.00
|
|
110
|
+
C 55.21 976.65 44.68 965.81 35.00 955.00
|
|
111
|
+
C -7.40 902.87 14.27 828.97 9.00 765.00 C 9.00 548.67 9.00 332.33 9.00 116.00 C 11.95 60.04 61.08 10.55 117.00 7.00
|
|
112
|
+
C 374.60 5.33 635.47 5.33 893.00 7.00 Z"/>
|
|
113
|
+
</g>
|
|
114
|
+
<g fill="#87A188" fill-opacity="1.00" stroke="None">
|
|
115
|
+
<path d="
|
|
116
|
+
M 117.00 7.00
|
|
117
|
+
C 375.67 7.00 634.33 7.00 893.00 7.00
|
|
118
|
+
C 635.47 5.33 374.60 5.33 117.00 7.00 Z"/>
|
|
119
|
+
</g>
|
|
120
|
+
<g fill="#34474E" fill-opacity="1.00" stroke="None">
|
|
121
|
+
<path d="
|
|
122
|
+
M 893.00 7.00
|
|
123
|
+
C 634.33 7.00 375.67 7.00 117.00 7.00
|
|
124
|
+
C 61.08 10.55 11.95 60.04 9.00 116.00 C 9.00 332.33 9.00 548.67 9.00 765.00 C 14.27 828.97 -7.40 902.87 35.00 955.00
|
|
125
|
+
C 45.51 965.18 56.26 975.41 68.00 983.00
|
|
126
|
+
C 68.00 983.00 68.57 982.83 69.00 983.00
|
|
127
|
+
C 77.85 988.23 88.00 991.10 97.00 995.00
|
|
128
|
+
C 105.34 997.59 113.93 999.28 123.00 999.00
|
|
129
|
+
C 381.25 998.34 640.16 1000.33 898.00 998.00
|
|
130
|
+
C 917.87 994.87 936.25 987.24 953.00 976.00
|
|
131
|
+
C 961.89 967.94 970.70 958.59 979.00 950.00
|
|
132
|
+
C 990.73 934.49 997.20 915.93 1000.00 897.00
|
|
133
|
+
C 1001.66 634.92 1001.67 371.08 1000.00 109.00
|
|
134
|
+
C 998.47 88.32 987.75 70.16 977.00 53.00
|
|
135
|
+
C 968.92 44.28 959.99 35.47 951.00 28.00
|
|
136
|
+
C 933.31 16.27 912.65 7.48 893.00 7.00
|
|
137
|
+
M 515.00 304.00
|
|
138
|
+
C 539.00 304.00 563.00 304.00 587.00 304.00 C 615.29 302.32 605.38 337.85 607.00 356.00 C 607.00 452.00 607.00 548.00 607.00 644.00 C 605.19 661.97 615.63 698.38 587.00 696.00 C 563.00 696.00 539.00 696.00 515.00 696.00
|
|
139
|
+
C 515.00 728.00 515.00 760.00 515.00 792.00 C 512.34 804.03 522.39 828.07 505.00 830.00 C 487.59 827.79 497.67 804.11 495.00 792.00 C 495.00 760.00 495.00 728.00 495.00 696.00
|
|
140
|
+
C 471.33 696.00 447.67 696.00 424.00 696.00 C 394.53 699.12 406.18 662.06 404.00 644.00 C 404.00 548.33 404.00 452.67 404.00 357.00 C 406.52 338.80 394.21 302.66 423.00 304.00 C 447.00 304.00 471.00 304.00 495.00 304.00
|
|
141
|
+
C 495.00 272.00 495.00 240.00 495.00 208.00 C 497.32 195.66 488.16 173.46 505.01 170.01 C 521.85 173.62 512.68 195.59 515.00 208.00 C 515.00 240.00 515.00 272.00 515.00 304.00 Z"/>
|
|
142
|
+
</g>
|
|
143
|
+
<g fill="#87A188" fill-opacity="0.91" stroke="None">
|
|
144
|
+
<path d="
|
|
145
|
+
M 977.00 53.00
|
|
146
|
+
C 969.82 43.54 960.90 34.53 951.00 28.00
|
|
147
|
+
C 959.99 35.47 968.92 44.28 977.00 53.00 Z"/>
|
|
148
|
+
</g>
|
|
149
|
+
<g fill="#87A188" fill-opacity="1.00" stroke="None">
|
|
150
|
+
<path d="
|
|
151
|
+
M 1000.00 897.00
|
|
152
|
+
C 1004.61 833.14 1000.71 766.09 1002.00 701.00 C 1002.00 569.00 1002.00 437.00 1002.00 305.00 C 1000.71 239.89 1004.61 172.94 1000.00 109.00
|
|
153
|
+
C 1001.67 371.08 1001.66 634.92 1000.00 897.00 Z"/>
|
|
154
|
+
</g>
|
|
155
|
+
<g fill="#87A188" fill-opacity="1.00" stroke="None">
|
|
156
|
+
<path d="
|
|
157
|
+
M 515.00 304.00
|
|
158
|
+
C 515.00 272.00 515.00 240.00 515.00 208.00 C 512.68 195.59 521.85 173.62 505.01 170.01 C 488.16 173.46 497.32 195.66 495.00 208.00 C 495.00 240.00 495.00 272.00 495.00 304.00
|
|
159
|
+
C 471.00 304.00 447.00 304.00 423.00 304.00 C 394.21 302.66 406.52 338.80 404.00 357.00 C 404.00 452.67 404.00 548.33 404.00 644.00 C 406.18 662.06 394.53 699.12 424.00 696.00 C 447.67 696.00 471.33 696.00 495.00 696.00
|
|
160
|
+
C 495.00 728.00 495.00 760.00 495.00 792.00 C 497.67 804.11 487.59 827.79 505.00 830.00 C 522.39 828.07 512.34 804.03 515.00 792.00 C 515.00 760.00 515.00 728.00 515.00 696.00
|
|
161
|
+
C 539.00 696.00 563.00 696.00 587.00 696.00 C 615.63 698.38 605.19 661.97 607.00 644.00 C 607.00 548.00 607.00 452.00 607.00 356.00 C 605.38 337.85 615.29 302.32 587.00 304.00 C 563.00 304.00 539.00 304.00 515.00 304.00 Z"/>
|
|
162
|
+
</g>
|
|
163
|
+
<g fill="#87A188" fill-opacity="0.78" stroke="None">
|
|
164
|
+
<path d="
|
|
165
|
+
M 953.00 976.00
|
|
166
|
+
C 962.97 968.87 971.95 960.06 979.00 950.00
|
|
167
|
+
C 970.70 958.59 961.89 967.94 953.00 976.00 Z"/>
|
|
168
|
+
</g>
|
|
169
|
+
<g fill="#87A188" fill-opacity="0.85" stroke="None">
|
|
170
|
+
<path d="
|
|
171
|
+
M 68.00 983.00
|
|
172
|
+
C 56.26 975.41 45.51 965.18 35.00 955.00
|
|
173
|
+
C 44.68 965.81 55.21 976.65 68.00 983.00 Z"/>
|
|
174
|
+
</g>
|
|
175
|
+
<g fill="#87A188" fill-opacity="0.79" stroke="None">
|
|
176
|
+
<path d="
|
|
177
|
+
M 97.00 995.00
|
|
178
|
+
C 88.00 991.10 77.85 988.23 69.00 983.00
|
|
179
|
+
C 76.80 989.30 87.29 992.63 97.00 995.00 Z"/>
|
|
180
|
+
</g>
|
|
181
|
+
<g fill="#87A188" fill-opacity="0.53" stroke="None">
|
|
182
|
+
<path d="
|
|
183
|
+
M 123.00 999.00
|
|
184
|
+
C 329.35 1001.34 537.83 999.33 745.00 1000.00 C 795.77 998.69 848.40 1002.63 898.00 998.00
|
|
185
|
+
C 640.16 1000.33 381.25 998.34 123.00 999.00 Z"/>
|
|
186
|
+
</g>
|
|
187
|
+
</svg>
|
|
@@ -35,8 +35,7 @@ What is the options market pricing in that the stock price alone doesn't show?${
|
|
|
35
35
|
contrarian: (symbol) => `**[Contrarian Analyst]** You are a Burry-style contrarian. Your job is to find what the crowd is missing. Be terse and data-driven — cite concrete numbers like "FCF yield 14.7%" or "P/E 8.3x vs sector 22x." Analyze ${symbol}:
|
|
36
36
|
1. Use get_fear_greed for overall market mood — extreme readings signal opportunity.
|
|
37
37
|
2. Use get_reddit_sentiment on wallstreetbets and stocks — check the sentiment score. Extreme bullishness from retail is a warning; extreme bearishness may be opportunity.
|
|
38
|
-
3.
|
|
39
|
-
4. Cross-reference: Is sentiment overly bullish while fundamentals (revenue, margins, FCF) are deteriorating? Is everyone bearish while the numbers quietly improve?
|
|
38
|
+
3. Cross-reference: Is sentiment overly bullish while fundamentals (revenue, margins, FCF) are deteriorating? Is everyone bearish while the numbers quietly improve?
|
|
40
39
|
5. Reuse get_company_overview or other fundamentals already fetched earlier in the session if available. If fundamentals are unavailable, say so and base the contrarian view on sentiment and price only.
|
|
41
40
|
Where is the consensus wrong? What is the market over-pricing or under-pricing?${EXECUTION_GUARDRAILS}${VOTING_INSTRUCTION}`,
|
|
42
41
|
risk: (symbol) => `**[Risk Manager]** You are the final check before capital is deployed. Your job is to quantify downside, not to have an opinion on direction. Analyze ${symbol}:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/analysts/orchestrator.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAG,4CAA4C,CAAC;AACpE,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAErE,MAAM,kBAAkB,GAAG;;;;;gDAKqB,CAAC;AAEjD,MAAM,oBAAoB,GAAG;;;;kEAIqC,CAAC;AAEnE,MAAM,eAAe,GAAoD;IACvE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,yKAAyK,MAAM;;;;;uPAKoE,oBAAoB,GAAG,kBAAkB,EAAE;IAEhS,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACnB,gIAAgI,MAAM;;;;;;mJAMS,oBAAoB,GAAG,kBAAkB,EAAE;IAE5L,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,wFAAwF,MAAM;;;;;;gFAMlB,oBAAoB,GAAG,kBAAkB,EAAE;IAEzH,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CACrB,0NAA0N,MAAM
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/analysts/orchestrator.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAG,4CAA4C,CAAC;AACpE,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;AAErE,MAAM,kBAAkB,GAAG;;;;;gDAKqB,CAAC;AAEjD,MAAM,oBAAoB,GAAG;;;;kEAIqC,CAAC;AAEnE,MAAM,eAAe,GAAoD;IACvE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,yKAAyK,MAAM;;;;;uPAKoE,oBAAoB,GAAG,kBAAkB,EAAE;IAEhS,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACnB,gIAAgI,MAAM;;;;;;mJAMS,oBAAoB,GAAG,kBAAkB,EAAE;IAE5L,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,wFAAwF,MAAM;;;;;;gFAMlB,oBAAoB,GAAG,kBAAkB,EAAE;IAEzH,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CACrB,0NAA0N,MAAM;;;;;iFAKnJ,oBAAoB,GAAG,kBAAkB,EAAE;IAE1H,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACf,yJAAyJ,MAAM;;;;;;0DAMzG,oBAAoB,GAAG,kBAAkB,EAAE;CACpG,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,+EAA+E,MAAM;;;;;;;;EAQ5F,oBAAoB;;;;2FAIqE,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,+FAA+F,MAAM;;;;;;;;EAQ5G,oBAAoB;;;;yFAImE,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,6EAA6E,MAAM;;;;;;;;;;;EAW1F,oBAAoB;;;;2EAIqD,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,qFAAqF,MAAM;;;;;;;;;;;;;uDAa7C,MAAM;;;;;;mDAMV,CAAC;AACpD,CAAC;AAED,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAAE,EAAE,CAClD,0DAA0D,MAAM;;;;;;;2EAOS,CAAC;AAE5E,MAAM,0BAA0B,GAAG,CAAC,MAAc,EAAE,EAAE,CACpD,oEAAoE,MAAM;;;;;;;;;uDASrB,MAAM,GAAG,CAAC;AAEjE,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE,CACrD,2DAA2D,MAAM,8UAA8U,CAAC;AAElZ,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,mCAAmC,MAAM,6CAA6C,CAAC;AAChG,CAAC;AAMD,MAAM,UAAU,+BAA+B,CAAC,MAAc,EAAE,OAAsC;IACpG,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;IACvC,MAAM,KAAK,GAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,MAAM,UAAU,oCAAoC,CAAC,MAAc,EAAE,OAAsC;IACzG,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC;IACvC,MAAM,KAAK,GAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAExF,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG;QACnB,UAAU,CAAC,eAAe,EAAE,0BAA0B,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE;YACxF,eAAe,EAAE,CAAC,OAAO,CAAC;SAC3B,CAAC;QACF,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACpB,UAAU,CAAC,WAAW,IAAI,EAAE,EAAE,GAAG,IAAI,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE;YAC/E,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,OAAO,CAAC;YACzB,eAAe,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC;SACpC,CAAC,CACH;KACF,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,YAAY,EAAE,wBAAwB;YACtC,KAAK,EAAE;gBACL,GAAG,YAAY;gBACf,UAAU,CAAC,aAAa,EAAE,sBAAsB,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE;oBACzE,cAAc,EAAE,cAAc;oBAC9B,eAAe,EAAE,CAAC,aAAa,CAAC;iBACjC,CAAC;gBACF,UAAU,CAAC,aAAa,EAAE,sBAAsB,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE;oBACzE,cAAc,EAAE,CAAC,GAAG,cAAc,EAAE,aAAa,CAAC;oBAClD,eAAe,EAAE,CAAC,aAAa,CAAC;iBACjC,CAAC;gBACF,UAAU,CAAC,iBAAiB,EAAE,6BAA6B,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE;oBACxF,cAAc,EAAE,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC;oBACjE,eAAe,EAAE,CAAC,UAAU,CAAC;iBAC9B,CAAC;gBACF,UAAU,CAAC,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE;oBAC1E,cAAc,EAAE,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC;oBAC7E,eAAe,EAAE,CAAC,SAAS,CAAC;iBAC7B,CAAC;gBACF,UAAU,CAAC,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE;oBACnF,SAAS,EAAE,IAAI;oBACf,cAAc,EAAE,CAAC,SAAS,CAAC;oBAC3B,eAAe,EAAE,CAAC,mBAAmB,CAAC;iBACvC,CAAC;aACH;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY,EAAE,wBAAwB;QACtC,KAAK,EAAE;YACL,GAAG,YAAY;YACf,UAAU,CAAC,WAAW,EAAE,4BAA4B,EAAE,0BAA0B,CAAC,MAAM,CAAC,EAAE;gBACxF,cAAc,EAAE,cAAc;gBAC9B,eAAe,EAAE,CAAC,SAAS,CAAC;aAC7B,CAAC;YACF,UAAU,CAAC,YAAY,EAAE,wBAAwB,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAAE;gBACtF,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,CAAC,SAAS,CAAC;gBAC3B,eAAe,EAAE,CAAC,mBAAmB,CAAC;aACvC,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,eAAyC,EACzC,MAAc,EACd,OAAsC;IAEtC,KAAK,MAAM,MAAM,IAAI,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,eAAe,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,QAAQ,GAAG;QACf,IAAI,MAAM,CAAC,eAAe,cAAc,OAAO,EAAE,GAAG,CAAC;QACrD,IAAI,MAAM,CAAC,mCAAmC,cAAc,OAAO,EAAE,GAAG,CAAC;QACzE,IAAI,MAAM,CAAC,+BAA+B,cAAc,OAAO,EAAE,GAAG,CAAC;KACtE,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3D,OAAO,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
2
|
+
import "./infra/node-version.js";
|
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import "./infra/node-version.js";
|
|
3
|
+
import { spawn } from "node:child_process";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { dirname, resolve } from "node:path";
|
|
2
6
|
import { parseArgs } from "node:util";
|
|
3
|
-
import {
|
|
7
|
+
import { fileURLToPath } from "node:url";
|
|
8
|
+
import { AuthStorage, DefaultPackageManager, InteractiveMode, ModelRegistry, SettingsManager, createAgentSessionRuntime, createAgentSessionServices, getAgentDir, initTheme, } from "@earendil-works/pi-coding-agent";
|
|
4
9
|
import { createOpenCandleSession } from "./pi/session.js";
|
|
10
|
+
import { continueOpenCandleSession } from "./pi/session-storage.js";
|
|
5
11
|
import { loadEnv } from "./config.js";
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
6
14
|
async function handlePackageCommand(args, cwd, agentDir) {
|
|
7
15
|
const [command, ...rest] = args;
|
|
8
16
|
if (!command ||
|
|
@@ -86,10 +94,36 @@ async function handlePackageCommand(args, cwd, agentDir) {
|
|
|
86
94
|
}
|
|
87
95
|
return false;
|
|
88
96
|
}
|
|
97
|
+
async function handleGuiCommand(args, cwd) {
|
|
98
|
+
if (args[0] !== "gui")
|
|
99
|
+
return false;
|
|
100
|
+
const tsxCli = require.resolve("tsx/cli");
|
|
101
|
+
const serverPath = resolve(packageRoot, "gui/server/server.ts");
|
|
102
|
+
const child = spawn(process.execPath, [tsxCli, serverPath, ...args.slice(1)], {
|
|
103
|
+
cwd,
|
|
104
|
+
env: process.env,
|
|
105
|
+
stdio: "inherit",
|
|
106
|
+
});
|
|
107
|
+
const exitCode = await new Promise((resolveExit) => {
|
|
108
|
+
child.on("close", (code, signal) => {
|
|
109
|
+
if (signal) {
|
|
110
|
+
resolveExit(1);
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
resolveExit(code ?? 0);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
process.exitCode = exitCode;
|
|
118
|
+
return true;
|
|
119
|
+
}
|
|
89
120
|
async function main() {
|
|
90
121
|
const { positionals } = parseArgs({ allowPositionals: true, strict: false });
|
|
91
122
|
const cwd = process.cwd();
|
|
92
123
|
const agentDir = getAgentDir();
|
|
124
|
+
if (await handleGuiCommand(positionals, cwd)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
93
127
|
if (await handlePackageCommand(positionals, cwd, agentDir)) {
|
|
94
128
|
return;
|
|
95
129
|
}
|
|
@@ -100,7 +134,7 @@ async function main() {
|
|
|
100
134
|
const modelRegistry = ModelRegistry.create(authStorage);
|
|
101
135
|
const shouldSuppressFallbackMessage = modelRegistry.getAvailable().length === 0;
|
|
102
136
|
initTheme(settingsManager.getTheme(), true);
|
|
103
|
-
const sessionManager =
|
|
137
|
+
const sessionManager = continueOpenCandleSession(cwd);
|
|
104
138
|
const runtime = await createAgentSessionRuntime(async (opts) => {
|
|
105
139
|
const services = await createAgentSessionServices({
|
|
106
140
|
cwd: opts.cwd,
|
|
@@ -111,10 +145,12 @@ async function main() {
|
|
|
111
145
|
});
|
|
112
146
|
const result = await createOpenCandleSession({
|
|
113
147
|
cwd: opts.cwd,
|
|
148
|
+
agentDir: opts.agentDir,
|
|
114
149
|
settingsManager,
|
|
115
150
|
authStorage,
|
|
116
151
|
modelRegistry,
|
|
117
152
|
sessionManager: opts.sessionManager,
|
|
153
|
+
bindExtensions: false,
|
|
118
154
|
});
|
|
119
155
|
return {
|
|
120
156
|
...result,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|