opencandle 0.3.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/assets/logo.svg +187 -0
- 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 +9 -0
- package/dist/config.js +13 -0
- 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/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/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 +13 -1
- package/dist/onboarding/connect.js +21 -10
- package/dist/onboarding/connect.js.map +1 -1
- package/dist/onboarding/prompt-user.d.ts +1 -1
- package/dist/onboarding/providers.d.ts +7 -0
- package/dist/onboarding/providers.js +6 -3
- package/dist/onboarding/providers.js.map +1 -1
- package/dist/onboarding/tool-helpers.d.ts +1 -1
- package/dist/pi/opencandle-extension.d.ts +7 -1
- package/dist/pi/opencandle-extension.js +186 -10
- 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 -1
- package/dist/pi/setup.js +1 -1
- 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 +45 -10
- 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/yahoo-finance.js +70 -33
- package/dist/providers/yahoo-finance.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 -3
- 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/store.js +5 -0
- package/dist/sentiment/store.js.map +1 -1
- package/dist/system-prompt.js +20 -12
- package/dist/system-prompt.js.map +1 -1
- package/dist/tool-kit.d.ts +4 -4
- package/dist/tools/fundamentals/company-overview.d.ts +1 -1
- package/dist/tools/fundamentals/comps.d.ts +1 -1
- package/dist/tools/fundamentals/dcf.d.ts +1 -1
- package/dist/tools/fundamentals/earnings.d.ts +1 -1
- package/dist/tools/fundamentals/financials.d.ts +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 +27 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/interaction/ask-user.d.ts +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 +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 +1 -1
- package/dist/tools/sentiment/sentiment-summary.d.ts +1 -1
- package/dist/tools/sentiment/sentiment-trend.d.ts +1 -1
- package/dist/tools/sentiment/twitter-sentiment.d.ts +1 -1
- package/dist/tools/sentiment/web-search.d.ts +1 -1
- package/dist/tools/sentiment/web-sentiment.d.ts +1 -1
- 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/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 +44 -18
- 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/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>
|
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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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export interface SentimentConfig {
|
|
|
4
4
|
commentsPerPost: number;
|
|
5
5
|
divergenceThreshold: number;
|
|
6
6
|
}
|
|
7
|
+
export type RouterMode = "rules" | "llm";
|
|
7
8
|
export interface Config {
|
|
8
9
|
alphaVantageApiKey?: string;
|
|
9
10
|
fredApiKey?: string;
|
|
@@ -12,6 +13,12 @@ export interface Config {
|
|
|
12
13
|
finnhubApiKey?: string;
|
|
13
14
|
/** Enable adversarial bull/bear debate in comprehensive analysis. Default: true. */
|
|
14
15
|
debate?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Intent-router rollout flag. `"rules"` (default) runs the legacy regex
|
|
18
|
+
* `classifyIntent` + `extractPreferences` path. `"llm"` runs the LLM router
|
|
19
|
+
* ahead of prompt assembly. Controlled by `OPENCANDLE_ROUTER_MODE`.
|
|
20
|
+
*/
|
|
21
|
+
routerMode: RouterMode;
|
|
15
22
|
sentiment?: SentimentConfig;
|
|
16
23
|
}
|
|
17
24
|
export interface OpenCandleFileConfig {
|
|
@@ -46,3 +53,5 @@ export declare function loadFileConfig(path?: string): OpenCandleFileConfig;
|
|
|
46
53
|
export declare function saveFileConfig(config: OpenCandleFileConfig, path?: string): void;
|
|
47
54
|
export declare function loadConfig(): Config;
|
|
48
55
|
export declare function getConfig(): Config;
|
|
56
|
+
/** Test-only: clear the memoized config so the next `getConfig()` re-reads env. */
|
|
57
|
+
export declare function resetConfigCache(): void;
|
package/dist/config.js
CHANGED
|
@@ -29,6 +29,14 @@ const SENTIMENT_DEFAULTS = {
|
|
|
29
29
|
commentsPerPost: 5,
|
|
30
30
|
divergenceThreshold: 0.4,
|
|
31
31
|
};
|
|
32
|
+
function resolveRouterMode() {
|
|
33
|
+
const raw = process.env.OPENCANDLE_ROUTER_MODE;
|
|
34
|
+
if (raw === undefined || raw === "")
|
|
35
|
+
return "rules";
|
|
36
|
+
if (raw === "rules" || raw === "llm")
|
|
37
|
+
return raw;
|
|
38
|
+
throw new Error(`Invalid OPENCANDLE_ROUTER_MODE="${raw}". Allowed values: "rules" (default) or "llm".`);
|
|
39
|
+
}
|
|
32
40
|
function resolveConfig(fileConfig) {
|
|
33
41
|
const debateEnv = process.env.OPENCANDLE_DEBATE;
|
|
34
42
|
const fileSentiment = fileConfig.sentiment;
|
|
@@ -39,6 +47,7 @@ function resolveConfig(fileConfig) {
|
|
|
39
47
|
exaApiKey: process.env.EXA_API_KEY ?? fileConfig.providers?.exa?.apiKey,
|
|
40
48
|
finnhubApiKey: process.env.FINNHUB_API_KEY ?? fileConfig.providers?.finnhub?.apiKey,
|
|
41
49
|
debate: debateEnv !== undefined ? debateEnv !== "false" && debateEnv !== "0" : fileConfig.debate ?? true,
|
|
50
|
+
routerMode: resolveRouterMode(),
|
|
42
51
|
sentiment: {
|
|
43
52
|
retentionDays: fileSentiment?.retentionDays ?? SENTIMENT_DEFAULTS.retentionDays,
|
|
44
53
|
defaultSubreddits: fileSentiment?.defaultSubreddits ?? SENTIMENT_DEFAULTS.defaultSubreddits,
|
|
@@ -83,4 +92,8 @@ export function getConfig() {
|
|
|
83
92
|
}
|
|
84
93
|
return cachedConfig;
|
|
85
94
|
}
|
|
95
|
+
/** Test-only: clear the memoized config so the next `getConfig()` re-reads env. */
|
|
96
|
+
export function resetConfigCache() {
|
|
97
|
+
cachedConfig = null;
|
|
98
|
+
}
|
|
86
99
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/infra/browser.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared stealth browser infrastructure using Camoufox (anti-detection Firefox).
|
|
3
|
+
* Provides a singleton browser instance that any tool can use for scraping.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* import { StealthBrowser } from "../infra/browser.js";
|
|
7
|
+
* const data = await StealthBrowser.fetchJson<MyType>(url);
|
|
8
|
+
* const result = await StealthBrowser.evaluate(url, () => document.title);
|
|
9
|
+
*/
|
|
10
|
+
import "./node-version.js";
|
|
1
11
|
import type { Page } from "playwright-core";
|
|
2
12
|
export declare const StealthBrowser: {
|
|
3
13
|
/**
|
package/dist/infra/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/infra/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/infra/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getNativeDependencyErrorMessage(error: unknown, dependencyName: string): string | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function getNativeDependencyErrorMessage(error, dependencyName) {
|
|
2
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
3
|
+
if (!message.includes("NODE_MODULE_VERSION") &&
|
|
4
|
+
!message.includes("was compiled against a different Node.js version")) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return `${dependencyName} native binding was built for a different Node ABI than the active Node ${process.versions.node}. ` +
|
|
8
|
+
`Run \`npm rebuild ${dependencyName}\` or reinstall dependencies under the active Node with \`npm install\`.`;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=native-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-dependencies.js","sourceRoot":"","sources":["../../src/infra/native-dependencies.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,+BAA+B,CAAC,KAAc,EAAE,cAAsB;IACpF,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IACE,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACxC,CAAC,OAAO,CAAC,QAAQ,CAAC,kDAAkD,CAAC,EACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,cAAc,2EAA2E,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI;QAC1H,qBAAqB,cAAc,0EAA0E,CAAC;AAClH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
const SUPPORTED_NODE_RANGE = "20.19+, 22.12+, or 24.x-26.x";
|
|
2
|
+
function isSupportedNodeVersion(version) {
|
|
3
|
+
const [majorRaw, minorRaw] = version.split(".");
|
|
4
|
+
const major = Number(majorRaw);
|
|
5
|
+
const minor = Number(minorRaw);
|
|
6
|
+
if (major === 20)
|
|
7
|
+
return minor >= 19;
|
|
8
|
+
if (major === 22)
|
|
9
|
+
return minor >= 12;
|
|
10
|
+
return major >= 24 && major < 27;
|
|
11
|
+
}
|
|
12
|
+
export function getUnsupportedNodeVersionMessage(version = process.versions.node) {
|
|
13
|
+
if (isSupportedNodeVersion(version))
|
|
14
|
+
return null;
|
|
15
|
+
return `OpenCandle supports Node ${SUPPORTED_NODE_RANGE}. Current Node is ${version}. Use Node ${SUPPORTED_NODE_RANGE}; the repo default is Node 22.22.0 via \`nvm use\`. After switching Node versions, reinstall dependencies under the active Node with \`npm install\` or rebuild native modules with \`npm rebuild better-sqlite3\`.`;
|
|
16
|
+
}
|
|
17
|
+
export function assertSupportedNodeVersion(version) {
|
|
18
|
+
const message = getUnsupportedNodeVersionMessage(version);
|
|
19
|
+
if (message)
|
|
20
|
+
throw new Error(message);
|
|
21
|
+
}
|
|
22
|
+
assertSupportedNodeVersion();
|
|
23
|
+
//# sourceMappingURL=node-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-version.js","sourceRoot":"","sources":["../../src/infra/node-version.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AAE5D,SAAS,sBAAsB,CAAC,OAAe;IAC7C,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE/B,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,IAAI,EAAE,CAAC;IACrC,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,IAAI,EAAE,CAAC;IACrC,OAAO,KAAK,IAAI,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,UAAkB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACtF,IAAI,sBAAsB,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEjD,OAAO,4BAA4B,oBAAoB,qBAAqB,OAAO,cAAc,oBAAoB,qNAAqN,CAAC;AAC7U,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IACzD,MAAM,OAAO,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,0BAA0B,EAAE,CAAC"}
|
package/dist/memory/index.d.ts
CHANGED
|
@@ -4,5 +4,7 @@ export type { WorkflowPreferences } from "./storage.js";
|
|
|
4
4
|
export { buildMemoryContext } from "./retrieval.js";
|
|
5
5
|
export { extractPreferences } from "./preference-extractor.js";
|
|
6
6
|
export { MemoryManager } from "./manager.js";
|
|
7
|
+
export { getAllDefaults, getDefaults, setDefault, clearDefault } from "./tool-defaults.js";
|
|
8
|
+
export type { ToolDefaults } from "./tool-defaults.js";
|
|
7
9
|
export type { MemoryCategory, MemoryEntry } from "./types.js";
|
|
8
10
|
export { isStale, STALENESS_THRESHOLDS, NEVER_TRUST_FROM_MEMORY } from "./types.js";
|
package/dist/memory/index.js
CHANGED
|
@@ -3,5 +3,6 @@ export { MemoryStorage } from "./storage.js";
|
|
|
3
3
|
export { buildMemoryContext } from "./retrieval.js";
|
|
4
4
|
export { extractPreferences } from "./preference-extractor.js";
|
|
5
5
|
export { MemoryManager } from "./manager.js";
|
|
6
|
+
export { getAllDefaults, getDefaults, setDefault, clearDefault } from "./tool-defaults.js";
|
|
6
7
|
export { isStale, STALENESS_THRESHOLDS, NEVER_TRUST_FROM_MEMORY } from "./types.js";
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
package/dist/memory/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG3F,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/memory/sqlite.js
CHANGED
|
@@ -2,7 +2,7 @@ import { mkdirSync } from "node:fs";
|
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
import Database from "better-sqlite3";
|
|
4
4
|
import { getStateDbPath } from "../infra/opencandle-paths.js";
|
|
5
|
-
const CURRENT_SCHEMA_VERSION =
|
|
5
|
+
const CURRENT_SCHEMA_VERSION = 4;
|
|
6
6
|
const CURRENT_SCHEMA = `
|
|
7
7
|
CREATE TABLE IF NOT EXISTS schema_version (
|
|
8
8
|
version INTEGER NOT NULL
|
|
@@ -28,7 +28,8 @@ const CURRENT_SCHEMA = `
|
|
|
28
28
|
resolved_slots_json TEXT,
|
|
29
29
|
defaults_used_json TEXT,
|
|
30
30
|
output_summary TEXT,
|
|
31
|
-
created_at TEXT NOT NULL
|
|
31
|
+
created_at TEXT NOT NULL,
|
|
32
|
+
turn_type TEXT NOT NULL DEFAULT 'workflow'
|
|
32
33
|
);
|
|
33
34
|
|
|
34
35
|
CREATE TABLE IF NOT EXISTS recommendations (
|
|
@@ -51,6 +52,14 @@ const CURRENT_SCHEMA = `
|
|
|
51
52
|
);
|
|
52
53
|
|
|
53
54
|
CREATE INDEX IF NOT EXISTS idx_workflow_events_run_id ON workflow_events(run_id);
|
|
55
|
+
|
|
56
|
+
CREATE TABLE IF NOT EXISTS tool_defaults (
|
|
57
|
+
tool_name TEXT NOT NULL,
|
|
58
|
+
param_path TEXT NOT NULL,
|
|
59
|
+
value_json TEXT NOT NULL,
|
|
60
|
+
set_at TEXT NOT NULL,
|
|
61
|
+
PRIMARY KEY (tool_name, param_path)
|
|
62
|
+
);
|
|
54
63
|
`;
|
|
55
64
|
export function initDatabase(path) {
|
|
56
65
|
if (path !== ":memory:") {
|
|
@@ -67,11 +76,39 @@ export function initDefaultDatabase() {
|
|
|
67
76
|
}
|
|
68
77
|
function ensureCurrentSchema(db) {
|
|
69
78
|
const currentVersion = readSchemaVersion(db);
|
|
70
|
-
if (currentVersion
|
|
71
|
-
|
|
79
|
+
if (currentVersion === CURRENT_SCHEMA_VERSION) {
|
|
80
|
+
// Up to date — still run CREATE TABLE IF NOT EXISTS for any missing auxiliary
|
|
81
|
+
// tables (e.g. workflow_events added out-of-band).
|
|
82
|
+
db.exec(CURRENT_SCHEMA);
|
|
72
83
|
return;
|
|
73
84
|
}
|
|
85
|
+
if (currentVersion === 3) {
|
|
86
|
+
migrateV3ToV4(db);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// Additive v2 → v3 → v4 migration without dropping data.
|
|
90
|
+
if (currentVersion === 2) {
|
|
91
|
+
migrateV2ToV3(db);
|
|
92
|
+
migrateV3ToV4(db);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// Any other mismatch (null first-run, or a foreign schema): reset.
|
|
96
|
+
resetSchema(db);
|
|
97
|
+
}
|
|
98
|
+
function migrateV2ToV3(db) {
|
|
99
|
+
const cols = db.pragma("table_info(workflow_runs)").map((c) => c.name);
|
|
100
|
+
if (!cols.includes("turn_type")) {
|
|
101
|
+
db.exec(`ALTER TABLE workflow_runs ADD COLUMN turn_type TEXT NOT NULL DEFAULT 'workflow'`);
|
|
102
|
+
}
|
|
103
|
+
// Ensure any tables or indexes added between versions are present.
|
|
74
104
|
db.exec(CURRENT_SCHEMA);
|
|
105
|
+
db.prepare("DELETE FROM schema_version").run();
|
|
106
|
+
db.prepare("INSERT INTO schema_version (version) VALUES (?)").run(3);
|
|
107
|
+
}
|
|
108
|
+
function migrateV3ToV4(db) {
|
|
109
|
+
db.exec(CURRENT_SCHEMA);
|
|
110
|
+
db.prepare("DELETE FROM schema_version").run();
|
|
111
|
+
db.prepare("INSERT INTO schema_version (version) VALUES (?)").run(CURRENT_SCHEMA_VERSION);
|
|
75
112
|
}
|
|
76
113
|
function readSchemaVersion(db) {
|
|
77
114
|
const table = db
|
|
@@ -88,6 +125,7 @@ function resetSchema(db) {
|
|
|
88
125
|
DROP TABLE IF EXISTS recommendations;
|
|
89
126
|
DROP TABLE IF EXISTS workflow_runs;
|
|
90
127
|
DROP TABLE IF EXISTS user_preferences;
|
|
128
|
+
DROP TABLE IF EXISTS tool_defaults;
|
|
91
129
|
DROP TABLE IF EXISTS schema_version;
|
|
92
130
|
`);
|
|
93
131
|
db.exec(CURRENT_SCHEMA);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/memory/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,MAAM,cAAc,GAAG
|
|
1
|
+
{"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/memory/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDtB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAExB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAI,cAAc,KAAK,sBAAsB,EAAE,CAAC;QAC9C,8EAA8E;QAC9E,mDAAmD;QACnD,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxB,OAAO;IACT,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,yDAAyD;IACzD,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO;IACT,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB;IAC1C,MAAM,IAAI,GAAI,EAAE,CAAC,MAAM,CAAC,2BAA2B,CAA6B,CAAC,GAAG,CAClF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACd,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,IAAI,CACL,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAExB,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB;IAC1C,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAExB,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAqB;IAC9C,MAAM,KAAK,GAAG,EAAE;SACb,OAAO,CAAC,iFAAiF,CAAC;SAC1F,GAAG,EAAkC,CAAC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,EAE3D,CAAC;IACd,OAAO,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,EAAqB;IACxC,EAAE,CAAC,IAAI,CAAC;;;;;;GAMP,CAAC,CAAC;IACH,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxB,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAqB;IACjD,MAAM,IAAI,GAAG,EAAE;SACZ,OAAO,CAAC,iEAAiE,CAAC;SAC1E,GAAG,EAA6B,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAqB;IACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,EAE3D,CAAC;IACd,OAAO,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC;AAC3B,CAAC"}
|
package/dist/memory/storage.d.ts
CHANGED
|
@@ -24,6 +24,12 @@ interface WorkflowRunInput {
|
|
|
24
24
|
resolvedSlotsJson: string;
|
|
25
25
|
defaultsUsedJson: string;
|
|
26
26
|
outputSummary?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Router route verbatim. One of `"workflow"` or `"fallback"`. Defaults to
|
|
29
|
+
* `"workflow"` at the schema layer so legacy callers (rules-mode cascade)
|
|
30
|
+
* don't need to pass anything. Router-mode callers MUST pass this explicitly.
|
|
31
|
+
*/
|
|
32
|
+
turnType?: "workflow" | "fallback";
|
|
27
33
|
}
|
|
28
34
|
interface RecommendationInput {
|
|
29
35
|
workflowRunId: number;
|
package/dist/memory/storage.js
CHANGED
|
@@ -83,9 +83,9 @@ export class MemoryStorage {
|
|
|
83
83
|
insertWorkflowRun(input) {
|
|
84
84
|
const now = new Date().toISOString();
|
|
85
85
|
const result = this.db
|
|
86
|
-
.prepare(`INSERT INTO workflow_runs (session_id, workflow_type, input_slots_json, resolved_slots_json, defaults_used_json, output_summary, created_at)
|
|
87
|
-
VALUES (?, ?, ?, ?, ?, ?, ?)`)
|
|
88
|
-
.run(input.sessionId, input.workflowType, input.inputSlotsJson, input.resolvedSlotsJson, input.defaultsUsedJson, input.outputSummary ?? null, now);
|
|
86
|
+
.prepare(`INSERT INTO workflow_runs (session_id, workflow_type, input_slots_json, resolved_slots_json, defaults_used_json, output_summary, created_at, turn_type)
|
|
87
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
88
|
+
.run(input.sessionId, input.workflowType, input.inputSlotsJson, input.resolvedSlotsJson, input.defaultsUsedJson, input.outputSummary ?? null, now, input.turnType ?? "workflow");
|
|
89
89
|
return Number(result.lastInsertRowid);
|
|
90
90
|
}
|
|
91
91
|
getRecentWorkflowRuns(limit) {
|