opencandle 0.4.0 → 0.6.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.
Files changed (564) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +186 -117
  3. package/dist/analysts/contracts.d.ts +1 -3
  4. package/dist/analysts/contracts.js +1 -11
  5. package/dist/analysts/contracts.js.map +1 -1
  6. package/dist/analysts/orchestrator.d.ts +1 -3
  7. package/dist/analysts/orchestrator.js +1 -26
  8. package/dist/analysts/orchestrator.js.map +1 -1
  9. package/dist/cli.js +32 -8
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config.d.ts +19 -3
  12. package/dist/config.js +69 -3
  13. package/dist/config.js.map +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/infra/browser.d.ts +1 -3
  18. package/dist/infra/browser.js +4 -2
  19. package/dist/infra/browser.js.map +1 -1
  20. package/dist/infra/cache.d.ts +8 -11
  21. package/dist/infra/cache.js +17 -15
  22. package/dist/infra/cache.js.map +1 -1
  23. package/dist/infra/http-client.d.ts +4 -1
  24. package/dist/infra/http-client.js +59 -6
  25. package/dist/infra/http-client.js.map +1 -1
  26. package/dist/infra/index.d.ts +3 -3
  27. package/dist/infra/index.js +3 -3
  28. package/dist/infra/index.js.map +1 -1
  29. package/dist/infra/native-dependencies.js +2 -2
  30. package/dist/infra/native-dependencies.js.map +1 -1
  31. package/dist/infra/node-version.js.map +1 -1
  32. package/dist/infra/opencandle-paths.d.ts +0 -3
  33. package/dist/infra/opencandle-paths.js +4 -11
  34. package/dist/infra/opencandle-paths.js.map +1 -1
  35. package/dist/infra/rate-limiter.d.ts +4 -0
  36. package/dist/infra/rate-limiter.js +17 -10
  37. package/dist/infra/rate-limiter.js.map +1 -1
  38. package/dist/market-state/alert-conditions.d.ts +34 -0
  39. package/dist/market-state/alert-conditions.js +23 -0
  40. package/dist/market-state/alert-conditions.js.map +1 -0
  41. package/dist/market-state/alert-runner.d.ts +55 -0
  42. package/dist/market-state/alert-runner.js +634 -0
  43. package/dist/market-state/alert-runner.js.map +1 -0
  44. package/dist/market-state/daily-report.d.ts +26 -0
  45. package/dist/market-state/daily-report.js +179 -0
  46. package/dist/market-state/daily-report.js.map +1 -0
  47. package/dist/market-state/local-automation-service.d.ts +25 -0
  48. package/dist/market-state/local-automation-service.js +119 -0
  49. package/dist/market-state/local-automation-service.js.map +1 -0
  50. package/dist/market-state/notification-delivery.d.ts +14 -0
  51. package/dist/market-state/notification-delivery.js +139 -0
  52. package/dist/market-state/notification-delivery.js.map +1 -0
  53. package/dist/market-state/resolve-for-mutation.d.ts +10 -0
  54. package/dist/market-state/resolve-for-mutation.js +15 -0
  55. package/dist/market-state/resolve-for-mutation.js.map +1 -0
  56. package/dist/market-state/resolve.d.ts +14 -0
  57. package/dist/market-state/resolve.js +89 -0
  58. package/dist/market-state/resolve.js.map +1 -0
  59. package/dist/market-state/service.d.ts +527 -0
  60. package/dist/market-state/service.js +1099 -0
  61. package/dist/market-state/service.js.map +1 -0
  62. package/dist/memory/index.d.ts +7 -7
  63. package/dist/memory/index.js +6 -6
  64. package/dist/memory/index.js.map +1 -1
  65. package/dist/memory/manager.d.ts +9 -0
  66. package/dist/memory/manager.js +39 -22
  67. package/dist/memory/manager.js.map +1 -1
  68. package/dist/memory/retrieval.js +7 -4
  69. package/dist/memory/retrieval.js.map +1 -1
  70. package/dist/memory/sqlite.js +385 -3
  71. package/dist/memory/sqlite.js.map +1 -1
  72. package/dist/memory/storage.d.ts +3 -2
  73. package/dist/memory/storage.js +1 -2
  74. package/dist/memory/storage.js.map +1 -1
  75. package/dist/memory/tool-defaults.js +64 -28
  76. package/dist/memory/tool-defaults.js.map +1 -1
  77. package/dist/memory/types.js +4 -0
  78. package/dist/memory/types.js.map +1 -1
  79. package/dist/monitor.d.ts +2 -0
  80. package/dist/monitor.js +104 -0
  81. package/dist/monitor.js.map +1 -0
  82. package/dist/onboarding/connect.js +4 -6
  83. package/dist/onboarding/connect.js.map +1 -1
  84. package/dist/onboarding/credential-interceptor.js +1 -1
  85. package/dist/onboarding/credential-interceptor.js.map +1 -1
  86. package/dist/onboarding/degradation-accumulator.js +1 -3
  87. package/dist/onboarding/degradation-accumulator.js.map +1 -1
  88. package/dist/onboarding/providers.js +3 -16
  89. package/dist/onboarding/providers.js.map +1 -1
  90. package/dist/onboarding/state.js.map +1 -1
  91. package/dist/onboarding/tool-helpers.js +1 -1
  92. package/dist/onboarding/tool-helpers.js.map +1 -1
  93. package/dist/onboarding/tool-tags.js +6 -4
  94. package/dist/onboarding/tool-tags.js.map +1 -1
  95. package/dist/onboarding/validation.js +1 -1
  96. package/dist/onboarding/validation.js.map +1 -1
  97. package/dist/pi/opencandle-extension.d.ts +8 -0
  98. package/dist/pi/opencandle-extension.js +637 -59
  99. package/dist/pi/opencandle-extension.js.map +1 -1
  100. package/dist/pi/session.d.ts +1 -1
  101. package/dist/pi/session.js +3 -1
  102. package/dist/pi/session.js.map +1 -1
  103. package/dist/pi/setup.js +17 -2
  104. package/dist/pi/setup.js.map +1 -1
  105. package/dist/pi/tool-adapter.js +5 -2
  106. package/dist/pi/tool-adapter.js.map +1 -1
  107. package/dist/prompts/context-builder.d.ts +18 -3
  108. package/dist/prompts/context-builder.js +117 -18
  109. package/dist/prompts/context-builder.js.map +1 -1
  110. package/dist/prompts/disclaimer.js +1 -1
  111. package/dist/prompts/disclaimer.js.map +1 -1
  112. package/dist/prompts/policy-cards.d.ts +13 -0
  113. package/dist/prompts/policy-cards.js +197 -0
  114. package/dist/prompts/policy-cards.js.map +1 -0
  115. package/dist/prompts/sections.d.ts +1 -1
  116. package/dist/prompts/sections.js +3 -3
  117. package/dist/prompts/sections.js.map +1 -1
  118. package/dist/prompts/symbol-preflight.d.ts +20 -0
  119. package/dist/prompts/symbol-preflight.js +49 -0
  120. package/dist/prompts/symbol-preflight.js.map +1 -0
  121. package/dist/prompts/workflow-prompts.d.ts +1 -1
  122. package/dist/prompts/workflow-prompts.js +209 -19
  123. package/dist/prompts/workflow-prompts.js.map +1 -1
  124. package/dist/providers/alpha-vantage.d.ts +1 -1
  125. package/dist/providers/alpha-vantage.js +49 -8
  126. package/dist/providers/alpha-vantage.js.map +1 -1
  127. package/dist/providers/coingecko.js +1 -1
  128. package/dist/providers/coingecko.js.map +1 -1
  129. package/dist/providers/errors.d.ts +5 -0
  130. package/dist/providers/errors.js +11 -0
  131. package/dist/providers/errors.js.map +1 -0
  132. package/dist/providers/exa-search.d.ts +2 -2
  133. package/dist/providers/exa-search.js +19 -11
  134. package/dist/providers/exa-search.js.map +1 -1
  135. package/dist/providers/fear-greed.js +1 -1
  136. package/dist/providers/fear-greed.js.map +1 -1
  137. package/dist/providers/finnhub.js +3 -5
  138. package/dist/providers/finnhub.js.map +1 -1
  139. package/dist/providers/fred.js +2 -2
  140. package/dist/providers/fred.js.map +1 -1
  141. package/dist/providers/index.d.ts +7 -6
  142. package/dist/providers/index.js +6 -5
  143. package/dist/providers/index.js.map +1 -1
  144. package/dist/providers/reddit.js +2 -2
  145. package/dist/providers/reddit.js.map +1 -1
  146. package/dist/providers/sec-edgar.d.ts +9 -1
  147. package/dist/providers/sec-edgar.js +181 -6
  148. package/dist/providers/sec-edgar.js.map +1 -1
  149. package/dist/providers/tradingview.d.ts +47 -0
  150. package/dist/providers/tradingview.js +275 -0
  151. package/dist/providers/tradingview.js.map +1 -0
  152. package/dist/providers/twitter.js +6 -8
  153. package/dist/providers/twitter.js.map +1 -1
  154. package/dist/providers/web-search.js +26 -12
  155. package/dist/providers/web-search.js.map +1 -1
  156. package/dist/providers/with-fallback.js +4 -2
  157. package/dist/providers/with-fallback.js.map +1 -1
  158. package/dist/providers/wrap-provider.d.ts +2 -3
  159. package/dist/providers/wrap-provider.js +14 -8
  160. package/dist/providers/wrap-provider.js.map +1 -1
  161. package/dist/providers/yahoo-finance.d.ts +3 -1
  162. package/dist/providers/yahoo-finance.js +226 -11
  163. package/dist/providers/yahoo-finance.js.map +1 -1
  164. package/dist/routing/classify-intent.d.ts +9 -0
  165. package/dist/routing/classify-intent.js +153 -3
  166. package/dist/routing/classify-intent.js.map +1 -1
  167. package/dist/routing/defaults.d.ts +1 -1
  168. package/dist/routing/defaults.js +3 -3
  169. package/dist/routing/defaults.js.map +1 -1
  170. package/dist/routing/entity-extractor.d.ts +2 -0
  171. package/dist/routing/entity-extractor.js +377 -26
  172. package/dist/routing/entity-extractor.js.map +1 -1
  173. package/dist/routing/fund-symbols.d.ts +2 -0
  174. package/dist/routing/fund-symbols.js +55 -0
  175. package/dist/routing/fund-symbols.js.map +1 -0
  176. package/dist/routing/horizon.d.ts +1 -0
  177. package/dist/routing/horizon.js +10 -0
  178. package/dist/routing/horizon.js.map +1 -0
  179. package/dist/routing/index.d.ts +12 -6
  180. package/dist/routing/index.js +8 -4
  181. package/dist/routing/index.js.map +1 -1
  182. package/dist/routing/legacy-rule-router.d.ts +9 -0
  183. package/dist/routing/legacy-rule-router.js +12 -0
  184. package/dist/routing/legacy-rule-router.js.map +1 -0
  185. package/dist/routing/planning.d.ts +54 -0
  186. package/dist/routing/planning.js +562 -0
  187. package/dist/routing/planning.js.map +1 -0
  188. package/dist/routing/route-manifest.d.ts +35 -0
  189. package/dist/routing/route-manifest.js +242 -0
  190. package/dist/routing/route-manifest.js.map +1 -0
  191. package/dist/routing/router-llm-client.js.map +1 -1
  192. package/dist/routing/router-prompt.js +46 -45
  193. package/dist/routing/router-prompt.js.map +1 -1
  194. package/dist/routing/router-types.d.ts +10 -0
  195. package/dist/routing/router.d.ts +1 -0
  196. package/dist/routing/router.js +572 -13
  197. package/dist/routing/router.js.map +1 -1
  198. package/dist/routing/slot-resolver.d.ts +1 -1
  199. package/dist/routing/slot-resolver.js +45 -7
  200. package/dist/routing/slot-resolver.js.map +1 -1
  201. package/dist/routing/symbol-disambiguator.d.ts +11 -0
  202. package/dist/routing/symbol-disambiguator.js +52 -0
  203. package/dist/routing/symbol-disambiguator.js.map +1 -0
  204. package/dist/routing/turn-context.d.ts +44 -0
  205. package/dist/routing/turn-context.js +45 -0
  206. package/dist/routing/turn-context.js.map +1 -0
  207. package/dist/routing/types.d.ts +15 -1
  208. package/dist/runtime/answer-contracts.d.ts +82 -0
  209. package/dist/runtime/answer-contracts.js +442 -0
  210. package/dist/runtime/answer-contracts.js.map +1 -0
  211. package/dist/runtime/artifact-contracts.d.ts +14 -0
  212. package/dist/runtime/artifact-contracts.js +57 -0
  213. package/dist/runtime/artifact-contracts.js.map +1 -0
  214. package/dist/runtime/planning-evidence.d.ts +99 -0
  215. package/dist/runtime/planning-evidence.js +466 -0
  216. package/dist/runtime/planning-evidence.js.map +1 -0
  217. package/dist/runtime/prompt-step.d.ts +1 -9
  218. package/dist/runtime/prompt-step.js +0 -10
  219. package/dist/runtime/prompt-step.js.map +1 -1
  220. package/dist/runtime/run-context.d.ts +5 -2
  221. package/dist/runtime/run-context.js +8 -1
  222. package/dist/runtime/run-context.js.map +1 -1
  223. package/dist/runtime/session-coordinator.d.ts +29 -3
  224. package/dist/runtime/session-coordinator.js +204 -31
  225. package/dist/runtime/session-coordinator.js.map +1 -1
  226. package/dist/runtime/session-title.d.ts +14 -0
  227. package/dist/runtime/session-title.js +50 -0
  228. package/dist/runtime/session-title.js.map +1 -0
  229. package/dist/runtime/tool-defaults-wrapper.js +1 -3
  230. package/dist/runtime/tool-defaults-wrapper.js.map +1 -1
  231. package/dist/runtime/validation.js.map +1 -1
  232. package/dist/runtime/workflow-events.js.map +1 -1
  233. package/dist/runtime/workflow-runner.d.ts +3 -3
  234. package/dist/runtime/workflow-runner.js +1 -1
  235. package/dist/runtime/workflow-runner.js.map +1 -1
  236. package/dist/sentiment/adapters/finnhub.d.ts +1 -1
  237. package/dist/sentiment/adapters/finnhub.js +6 -1
  238. package/dist/sentiment/adapters/finnhub.js.map +1 -1
  239. package/dist/sentiment/adapters/reddit.d.ts +2 -2
  240. package/dist/sentiment/adapters/twitter.d.ts +1 -1
  241. package/dist/sentiment/adapters/web.d.ts +1 -1
  242. package/dist/sentiment/index.d.ts +9 -11
  243. package/dist/sentiment/index.js +9 -20
  244. package/dist/sentiment/index.js.map +1 -1
  245. package/dist/sentiment/keywords.js +26 -4
  246. package/dist/sentiment/keywords.js.map +1 -1
  247. package/dist/sentiment/pipeline.d.ts +2 -2
  248. package/dist/sentiment/pipeline.js +1 -1
  249. package/dist/sentiment/pipeline.js.map +1 -1
  250. package/dist/sentiment/scorer.js +1 -1
  251. package/dist/sentiment/store.d.ts +1 -1
  252. package/dist/sentiment/store.js +1 -1
  253. package/dist/sentiment/store.js.map +1 -1
  254. package/dist/sentiment/trends.d.ts +1 -1
  255. package/dist/sentiment/trends.js.map +1 -1
  256. package/dist/sentiment/types.js.map +1 -1
  257. package/dist/system-prompt.js +7 -3
  258. package/dist/system-prompt.js.map +1 -1
  259. package/dist/tool-kit.d.ts +7 -7
  260. package/dist/tool-kit.js +4 -4
  261. package/dist/tool-kit.js.map +1 -1
  262. package/dist/tools/fundamentals/company-overview.js +12 -7
  263. package/dist/tools/fundamentals/company-overview.js.map +1 -1
  264. package/dist/tools/fundamentals/comps.js +19 -10
  265. package/dist/tools/fundamentals/comps.js.map +1 -1
  266. package/dist/tools/fundamentals/dcf.js +24 -12
  267. package/dist/tools/fundamentals/dcf.js.map +1 -1
  268. package/dist/tools/fundamentals/earnings.js +9 -4
  269. package/dist/tools/fundamentals/earnings.js.map +1 -1
  270. package/dist/tools/fundamentals/financials.js +9 -4
  271. package/dist/tools/fundamentals/financials.js.map +1 -1
  272. package/dist/tools/fundamentals/sec-filings.d.ts +1 -0
  273. package/dist/tools/fundamentals/sec-filings.js +36 -4
  274. package/dist/tools/fundamentals/sec-filings.js.map +1 -1
  275. package/dist/tools/index.d.ts +23 -18
  276. package/dist/tools/index.js +53 -38
  277. package/dist/tools/index.js.map +1 -1
  278. package/dist/tools/interaction/ask-user.js +15 -3
  279. package/dist/tools/interaction/ask-user.js.map +1 -1
  280. package/dist/tools/interaction/twitter-login.js +13 -3
  281. package/dist/tools/interaction/twitter-login.js.map +1 -1
  282. package/dist/tools/macro/fear-greed.js +1 -1
  283. package/dist/tools/macro/fear-greed.js.map +1 -1
  284. package/dist/tools/macro/fred-data.d.ts +1 -1
  285. package/dist/tools/macro/fred-data.js +44 -9
  286. package/dist/tools/macro/fred-data.js.map +1 -1
  287. package/dist/tools/market/crypto-history.js +21 -3
  288. package/dist/tools/market/crypto-history.js.map +1 -1
  289. package/dist/tools/market/crypto-price.js +4 -2
  290. package/dist/tools/market/crypto-price.js.map +1 -1
  291. package/dist/tools/market/screen-stocks.d.ts +18 -0
  292. package/dist/tools/market/screen-stocks.js +252 -0
  293. package/dist/tools/market/screen-stocks.js.map +1 -0
  294. package/dist/tools/market/search-ticker.js +161 -9
  295. package/dist/tools/market/search-ticker.js.map +1 -1
  296. package/dist/tools/market/stock-history.d.ts +2 -2
  297. package/dist/tools/market/stock-history.js +27 -8
  298. package/dist/tools/market/stock-history.js.map +1 -1
  299. package/dist/tools/market/stock-quote.js +6 -4
  300. package/dist/tools/market/stock-quote.js.map +1 -1
  301. package/dist/tools/options/greeks.js +1 -2
  302. package/dist/tools/options/greeks.js.map +1 -1
  303. package/dist/tools/options/option-chain.js +27 -9
  304. package/dist/tools/options/option-chain.js.map +1 -1
  305. package/dist/tools/portfolio/alerts.d.ts +15 -0
  306. package/dist/tools/portfolio/alerts.js +357 -0
  307. package/dist/tools/portfolio/alerts.js.map +1 -0
  308. package/dist/tools/portfolio/correlation.d.ts +1 -1
  309. package/dist/tools/portfolio/correlation.js +34 -14
  310. package/dist/tools/portfolio/correlation.js.map +1 -1
  311. package/dist/tools/portfolio/daily-report.d.ts +8 -0
  312. package/dist/tools/portfolio/daily-report.js +83 -0
  313. package/dist/tools/portfolio/daily-report.js.map +1 -0
  314. package/dist/tools/portfolio/holdings-overlap.d.ts +8 -0
  315. package/dist/tools/portfolio/holdings-overlap.js +112 -0
  316. package/dist/tools/portfolio/holdings-overlap.js.map +1 -0
  317. package/dist/tools/portfolio/notifications.d.ts +7 -0
  318. package/dist/tools/portfolio/notifications.js +43 -0
  319. package/dist/tools/portfolio/notifications.js.map +1 -0
  320. package/dist/tools/portfolio/predictions.d.ts +12 -6
  321. package/dist/tools/portfolio/predictions.js +338 -88
  322. package/dist/tools/portfolio/predictions.js.map +1 -1
  323. package/dist/tools/portfolio/risk-analysis.d.ts +1 -1
  324. package/dist/tools/portfolio/risk-analysis.js +46 -7
  325. package/dist/tools/portfolio/risk-analysis.js.map +1 -1
  326. package/dist/tools/portfolio/tracker.d.ts +4 -3
  327. package/dist/tools/portfolio/tracker.js +247 -102
  328. package/dist/tools/portfolio/tracker.js.map +1 -1
  329. package/dist/tools/portfolio/watchlist.d.ts +6 -4
  330. package/dist/tools/portfolio/watchlist.js +209 -101
  331. package/dist/tools/portfolio/watchlist.js.map +1 -1
  332. package/dist/tools/sentiment/reddit-sentiment.js +24 -11
  333. package/dist/tools/sentiment/reddit-sentiment.js.map +1 -1
  334. package/dist/tools/sentiment/sentiment-summary.js +71 -14
  335. package/dist/tools/sentiment/sentiment-summary.js.map +1 -1
  336. package/dist/tools/sentiment/sentiment-trend.d.ts +1 -1
  337. package/dist/tools/sentiment/sentiment-trend.js +12 -2
  338. package/dist/tools/sentiment/sentiment-trend.js.map +1 -1
  339. package/dist/tools/sentiment/twitter-sentiment.js +13 -6
  340. package/dist/tools/sentiment/twitter-sentiment.js.map +1 -1
  341. package/dist/tools/sentiment/untrusted-text.d.ts +2 -0
  342. package/dist/tools/sentiment/untrusted-text.js +17 -0
  343. package/dist/tools/sentiment/untrusted-text.js.map +1 -0
  344. package/dist/tools/sentiment/web-search.js +37 -12
  345. package/dist/tools/sentiment/web-search.js.map +1 -1
  346. package/dist/tools/sentiment/web-sentiment.js +16 -4
  347. package/dist/tools/sentiment/web-sentiment.js.map +1 -1
  348. package/dist/tools/technical/backtest.d.ts +3 -3
  349. package/dist/tools/technical/backtest.js +65 -44
  350. package/dist/tools/technical/backtest.js.map +1 -1
  351. package/dist/tools/technical/indicators.js +24 -8
  352. package/dist/tools/technical/indicators.js.map +1 -1
  353. package/dist/types/index.d.ts +3 -3
  354. package/dist/types/index.js.map +1 -1
  355. package/dist/types/market.d.ts +1 -0
  356. package/dist/types/options.d.ts +10 -0
  357. package/dist/types/portfolio.d.ts +41 -4
  358. package/dist/workflows/compare-assets.d.ts +0 -3
  359. package/dist/workflows/compare-assets.js +55 -10
  360. package/dist/workflows/compare-assets.js.map +1 -1
  361. package/dist/workflows/index.d.ts +3 -4
  362. package/dist/workflows/index.js +3 -3
  363. package/dist/workflows/index.js.map +1 -1
  364. package/dist/workflows/options-screener.d.ts +0 -3
  365. package/dist/workflows/options-screener.js +88 -14
  366. package/dist/workflows/options-screener.js.map +1 -1
  367. package/dist/workflows/portfolio-builder.d.ts +0 -3
  368. package/dist/workflows/portfolio-builder.js +7 -11
  369. package/dist/workflows/portfolio-builder.js.map +1 -1
  370. package/gui/server/ask-user-bridge.ts +82 -0
  371. package/gui/server/automation-heartbeat.ts +97 -0
  372. package/gui/server/background-quotes.ts +97 -1
  373. package/gui/server/chat-event-adapter.ts +32 -10
  374. package/gui/server/chat-run-session.ts +16 -0
  375. package/gui/server/gui-session-manager.ts +5 -0
  376. package/gui/server/invoke-tool.ts +144 -1
  377. package/gui/server/live-chat-event-adapter.ts +21 -6
  378. package/gui/server/market-state-api.ts +315 -0
  379. package/gui/server/model-setup.ts +149 -2
  380. package/gui/server/private-api-access.ts +62 -0
  381. package/gui/server/projector.ts +58 -11
  382. package/gui/server/prompt-observation.ts +58 -0
  383. package/gui/server/quote-snapshot-store.ts +50 -0
  384. package/gui/server/server.ts +236 -376
  385. package/gui/server/session-actions.ts +186 -1
  386. package/gui/server/session-entry-wait.ts +81 -0
  387. package/gui/server/shutdown.ts +47 -0
  388. package/gui/server/tool-invoke-ack.ts +49 -0
  389. package/gui/server/tool-metadata.ts +23 -10
  390. package/gui/server/websocket.ts +13 -3
  391. package/gui/server/writer-lock.ts +6 -2
  392. package/gui/server/ws-hub.ts +292 -0
  393. package/gui/shared/chat-events.ts +16 -1
  394. package/gui/shared/event-reducer.ts +24 -6
  395. package/gui/web/dist/assets/CatalogOverlay-eJ2cBk33.js +1 -0
  396. package/gui/web/dist/assets/index-2KZtKBmu.css +1 -0
  397. package/gui/web/dist/assets/index-CveNgtDg.js +69 -0
  398. package/gui/web/dist/index.html +2 -2
  399. package/package.json +22 -12
  400. package/src/analysts/contracts.ts +10 -23
  401. package/src/analysts/orchestrator.ts +8 -43
  402. package/src/cli.ts +37 -13
  403. package/src/config.ts +99 -7
  404. package/src/index.ts +1 -1
  405. package/src/infra/browser.ts +4 -2
  406. package/src/infra/cache.ts +41 -30
  407. package/src/infra/http-client.ts +72 -6
  408. package/src/infra/index.ts +7 -10
  409. package/src/infra/native-dependencies.ts +8 -3
  410. package/src/infra/node-version.ts +3 -1
  411. package/src/infra/opencandle-paths.ts +3 -14
  412. package/src/infra/rate-limiter.ts +32 -20
  413. package/src/market-state/alert-conditions.ts +82 -0
  414. package/src/market-state/alert-runner.ts +863 -0
  415. package/src/market-state/daily-report.ts +247 -0
  416. package/src/market-state/local-automation-service.ts +162 -0
  417. package/src/market-state/notification-delivery.ts +158 -0
  418. package/src/market-state/resolve-for-mutation.ts +24 -0
  419. package/src/market-state/resolve.ts +112 -0
  420. package/src/market-state/service.ts +2344 -0
  421. package/src/memory/index.ts +7 -7
  422. package/src/memory/manager.ts +57 -26
  423. package/src/memory/retrieval.ts +8 -7
  424. package/src/memory/sqlite.ts +407 -6
  425. package/src/memory/storage.ts +8 -17
  426. package/src/memory/tool-defaults.ts +60 -39
  427. package/src/memory/types.ts +7 -3
  428. package/src/monitor.ts +121 -0
  429. package/src/onboarding/connect.ts +10 -33
  430. package/src/onboarding/credential-interceptor.ts +3 -15
  431. package/src/onboarding/degradation-accumulator.ts +1 -3
  432. package/src/onboarding/providers.ts +9 -40
  433. package/src/onboarding/state.ts +4 -15
  434. package/src/onboarding/tool-helpers.ts +2 -9
  435. package/src/onboarding/tool-tags.ts +6 -6
  436. package/src/onboarding/validation.ts +14 -20
  437. package/src/pi/opencandle-extension.ts +795 -120
  438. package/src/pi/session.ts +7 -5
  439. package/src/pi/setup.ts +61 -33
  440. package/src/pi/tool-adapter.ts +5 -2
  441. package/src/prompts/context-builder.ts +143 -21
  442. package/src/prompts/disclaimer.ts +1 -1
  443. package/src/prompts/policy-cards.ts +220 -0
  444. package/src/prompts/sections.ts +4 -4
  445. package/src/prompts/symbol-preflight.ts +80 -0
  446. package/src/prompts/workflow-prompts.ts +231 -28
  447. package/src/providers/alpha-vantage.ts +82 -40
  448. package/src/providers/coingecko.ts +2 -5
  449. package/src/providers/errors.ts +9 -0
  450. package/src/providers/exa-search.ts +24 -22
  451. package/src/providers/fear-greed.ts +1 -1
  452. package/src/providers/finnhub.ts +7 -6
  453. package/src/providers/fred.ts +3 -3
  454. package/src/providers/index.ts +14 -6
  455. package/src/providers/reddit.ts +17 -6
  456. package/src/providers/sec-edgar.ts +235 -5
  457. package/src/providers/tradingview.ts +399 -0
  458. package/src/providers/twitter.ts +6 -8
  459. package/src/providers/web-search.ts +30 -20
  460. package/src/providers/with-fallback.ts +8 -7
  461. package/src/providers/wrap-provider.ts +15 -10
  462. package/src/providers/yahoo-finance.ts +292 -20
  463. package/src/routing/classify-intent.ts +186 -4
  464. package/src/routing/defaults.ts +4 -4
  465. package/src/routing/entity-extractor.ts +428 -28
  466. package/src/routing/fund-symbols.ts +58 -0
  467. package/src/routing/horizon.ts +7 -0
  468. package/src/routing/index.ts +60 -16
  469. package/src/routing/legacy-rule-router.ts +13 -0
  470. package/src/routing/planning.ts +823 -0
  471. package/src/routing/route-manifest.ts +309 -0
  472. package/src/routing/router-llm-client.ts +4 -4
  473. package/src/routing/router-prompt.ts +52 -52
  474. package/src/routing/router-types.ts +18 -0
  475. package/src/routing/router.ts +717 -20
  476. package/src/routing/slot-resolver.ts +75 -14
  477. package/src/routing/symbol-disambiguator.ts +72 -0
  478. package/src/routing/turn-context.ts +108 -0
  479. package/src/routing/types.ts +15 -1
  480. package/src/runtime/answer-contracts.ts +672 -0
  481. package/src/runtime/artifact-contracts.ts +77 -0
  482. package/src/runtime/planning-evidence.ts +682 -0
  483. package/src/runtime/prompt-step.ts +1 -16
  484. package/src/runtime/run-context.ts +12 -2
  485. package/src/runtime/session-coordinator.ts +297 -56
  486. package/src/runtime/session-title.ts +60 -0
  487. package/src/runtime/tool-defaults-wrapper.ts +1 -3
  488. package/src/runtime/validation.ts +1 -4
  489. package/src/runtime/workflow-events.ts +7 -7
  490. package/src/runtime/workflow-runner.ts +5 -11
  491. package/src/sentiment/adapters/finnhub.ts +7 -2
  492. package/src/sentiment/adapters/reddit.ts +2 -2
  493. package/src/sentiment/adapters/twitter.ts +1 -1
  494. package/src/sentiment/adapters/web.ts +1 -1
  495. package/src/sentiment/index.ts +16 -26
  496. package/src/sentiment/keywords.ts +26 -4
  497. package/src/sentiment/pipeline.ts +15 -4
  498. package/src/sentiment/scorer.ts +1 -1
  499. package/src/sentiment/store.ts +2 -2
  500. package/src/sentiment/trends.ts +9 -3
  501. package/src/sentiment/types.ts +5 -4
  502. package/src/system-prompt.ts +7 -3
  503. package/src/tool-kit.ts +10 -9
  504. package/src/tools/fundamentals/company-overview.ts +20 -10
  505. package/src/tools/fundamentals/comps.ts +69 -56
  506. package/src/tools/fundamentals/dcf.ts +146 -96
  507. package/src/tools/fundamentals/earnings.ts +17 -7
  508. package/src/tools/fundamentals/financials.ts +17 -8
  509. package/src/tools/fundamentals/sec-filings.ts +52 -8
  510. package/src/tools/index.ts +53 -38
  511. package/src/tools/interaction/ask-user.ts +22 -10
  512. package/src/tools/interaction/twitter-login.ts +17 -5
  513. package/src/tools/macro/fear-greed.ts +2 -2
  514. package/src/tools/macro/fred-data.ts +80 -42
  515. package/src/tools/market/crypto-history.ts +25 -4
  516. package/src/tools/market/crypto-price.ts +7 -7
  517. package/src/tools/market/screen-stocks.ts +279 -0
  518. package/src/tools/market/search-ticker.ts +219 -18
  519. package/src/tools/market/stock-history.ts +38 -13
  520. package/src/tools/market/stock-quote.ts +11 -8
  521. package/src/tools/options/greeks.ts +5 -6
  522. package/src/tools/options/option-chain.ts +47 -18
  523. package/src/tools/portfolio/alerts.ts +457 -0
  524. package/src/tools/portfolio/correlation.ts +48 -21
  525. package/src/tools/portfolio/daily-report.ts +101 -0
  526. package/src/tools/portfolio/holdings-overlap.ts +139 -0
  527. package/src/tools/portfolio/notifications.ts +45 -0
  528. package/src/tools/portfolio/predictions.ts +407 -107
  529. package/src/tools/portfolio/risk-analysis.ts +47 -8
  530. package/src/tools/portfolio/tracker.ts +271 -110
  531. package/src/tools/portfolio/watchlist.ts +251 -116
  532. package/src/tools/sentiment/reddit-sentiment.ts +51 -25
  533. package/src/tools/sentiment/sentiment-summary.ts +116 -35
  534. package/src/tools/sentiment/sentiment-trend.ts +24 -7
  535. package/src/tools/sentiment/twitter-sentiment.ts +23 -16
  536. package/src/tools/sentiment/untrusted-text.ts +21 -0
  537. package/src/tools/sentiment/web-search.ts +52 -16
  538. package/src/tools/sentiment/web-sentiment.ts +27 -11
  539. package/src/tools/technical/backtest.ts +78 -47
  540. package/src/tools/technical/indicators.ts +40 -17
  541. package/src/types/index.ts +8 -3
  542. package/src/types/market.ts +1 -0
  543. package/src/types/options.ts +17 -0
  544. package/src/types/portfolio.ts +46 -4
  545. package/src/types/sentiment.ts +2 -2
  546. package/src/workflows/compare-assets.ts +67 -19
  547. package/src/workflows/index.ts +3 -4
  548. package/src/workflows/options-screener.ts +98 -22
  549. package/src/workflows/portfolio-builder.ts +40 -29
  550. package/dist/runtime/index.d.ts +0 -16
  551. package/dist/runtime/index.js +0 -10
  552. package/dist/runtime/index.js.map +0 -1
  553. package/dist/runtime/provider-ids.d.ts +0 -14
  554. package/dist/runtime/provider-ids.js +0 -14
  555. package/dist/runtime/provider-ids.js.map +0 -1
  556. package/dist/workflows/types.d.ts +0 -4
  557. package/dist/workflows/types.js +0 -2
  558. package/dist/workflows/types.js.map +0 -1
  559. package/gui/web/dist/assets/CatalogOverlay-D1ImSJTe.js +0 -1
  560. package/gui/web/dist/assets/index-DBrWq43L.css +0 -1
  561. package/gui/web/dist/assets/index-RflHaj0y.js +0 -67
  562. package/src/runtime/index.ts +0 -55
  563. package/src/runtime/provider-ids.ts +0 -15
  564. package/src/workflows/types.ts +0 -4
@@ -1,11 +1,12 @@
1
1
  import { parseDteTarget } from "../routing/defaults.js";
2
+ import { areLikelyFundOrIndexSymbols, isFundOrIndexAssetScope } from "../routing/fund-symbols.js";
3
+ import { isLongInvestmentHorizon } from "../routing/horizon.js";
2
4
  function tag(source) {
3
5
  switch (source) {
4
6
  case "default":
5
7
  return " [DEFAULT]";
6
8
  case "preference":
7
9
  return " [SAVED PREFERENCE]";
8
- case "user":
9
10
  default:
10
11
  return "";
11
12
  }
@@ -35,7 +36,11 @@ const DISPLAY_NAMES = {
35
36
  objective: "objective",
36
37
  moneynessPreference: "moneyness",
37
38
  liquidityMinimum: "liquidity",
39
+ optionStrategy: "option strategy",
40
+ costBasis: "cost basis",
41
+ shareQuantity: "share quantity",
38
42
  symbols: "symbols",
43
+ metrics: "metrics",
39
44
  };
40
45
  /**
41
46
  * Build a deterministic assumption disclosure block from resolution.sources.
@@ -44,6 +49,8 @@ const DISPLAY_NAMES = {
44
49
  export function buildDisclosureBlock(slotValues, slotSources, workflowConstraints) {
45
50
  const userSpecified = [];
46
51
  const fromPreferences = [];
52
+ const fromPriorContext = [];
53
+ const fromMemory = [];
47
54
  const defaults = [];
48
55
  for (const [key, source] of Object.entries(slotSources)) {
49
56
  const val = slotValues[key];
@@ -56,6 +63,12 @@ export function buildDisclosureBlock(slotValues, slotSources, workflowConstraint
56
63
  case "preference":
57
64
  fromPreferences.push(display);
58
65
  break;
66
+ case "prior_context":
67
+ fromPriorContext.push(display);
68
+ break;
69
+ case "memory":
70
+ fromMemory.push(display);
71
+ break;
59
72
  case "default":
60
73
  defaults.push(display);
61
74
  break;
@@ -67,6 +80,10 @@ export function buildDisclosureBlock(slotValues, slotSources, workflowConstraint
67
80
  lines.push(` User-specified: ${userSpecified.join(", ")}`);
68
81
  if (fromPreferences.length > 0)
69
82
  lines.push(` From saved preferences: ${fromPreferences.join(", ")}`);
83
+ if (fromPriorContext.length > 0)
84
+ lines.push(` From prior context: ${fromPriorContext.join(", ")}`);
85
+ if (fromMemory.length > 0)
86
+ lines.push(` From memory: ${fromMemory.join(", ")}`);
70
87
  if (defaults.length > 0)
71
88
  lines.push(` Defaults: ${defaults.join(", ")}`);
72
89
  if (workflowConstraints && workflowConstraints.length > 0) {
@@ -102,7 +119,10 @@ function formatSlotValue(value) {
102
119
  }
103
120
  export function buildPortfolioPrompt(resolution) {
104
121
  const { resolved: s, sources } = resolution;
105
- const isEtfOnly = s.assetScope.toLowerCase().startsWith("etf");
122
+ const normalizedScope = s.assetScope.toLowerCase();
123
+ const isFundBuildingBlocks = normalizedScope.includes("etf") ||
124
+ normalizedScope.includes("fund") ||
125
+ normalizedScope.includes("building_blocks");
106
126
  const disclosureBlock = buildDisclosureBlock({
107
127
  budget: formatBudget(s.budget),
108
128
  riskProfile: s.riskProfile,
@@ -111,12 +131,14 @@ export function buildPortfolioPrompt(resolution) {
111
131
  assetScope: s.assetScope,
112
132
  maxSinglePositionPct: `${s.maxSinglePositionPct}%`,
113
133
  }, sources);
114
- const toolSteps = isEtfOnly
115
- ? `1. Identify ${s.positionCount} diverse ETF candidates appropriate for a ${s.riskProfile} ${s.timeHorizon} portfolio.
134
+ const toolSteps = isFundBuildingBlocks
135
+ ? `1. Identify ${s.positionCount} diversified fund/ETF building-block candidates appropriate for a ${s.riskProfile} ${s.timeHorizon} portfolio.
136
+ Include distinct asset-class roles such as core domestic equity, international equity, fixed income, short-duration or cash-like stability, and inflation-sensitive ballast when appropriate.
116
137
  2. Use get_stock_quote for each candidate to get current prices.
117
138
  3. Use analyze_risk on each candidate for volatility, Sharpe, and max drawdown.
118
139
  4. Use analyze_correlation across all candidates to check diversification.`
119
140
  : `1. Identify ${s.positionCount} diverse candidates appropriate for a ${s.riskProfile} ${s.timeHorizon} portfolio.
141
+ Avoid over-concentration in individual equities unless the user explicitly asked for stock picks; use diversified funds where they better fit the requested horizon and risk profile.
120
142
  2. Use get_stock_quote for each candidate to get current prices.
121
143
  3. Use get_company_overview for fundamentals on each candidate.
122
144
  4. Use analyze_risk on each candidate for volatility, Sharpe, and max drawdown.
@@ -134,13 +156,22 @@ Build a draft portfolio under these parameters:
134
156
  Steps:
135
157
  ${toolSteps}
136
158
 
159
+ Portfolio construction guardrails:
160
+ - For broad balanced portfolio requests, prefer diversified building blocks over individual-company concentration unless the user explicitly asks for stocks.
161
+ - For horizons under 5 years, include enough fixed-income, short-duration, cash-like, or inflation-sensitive ballast to make the drawdown risk match the horizon.
162
+ - If a candidate's risk metrics undermine its role (for example materially negative risk-adjusted returns, high drawdown, or excessive correlation), lower the allocation, name a role-equivalent replacement, or explain why you are keeping it.
163
+ - Keep rationale tied to each holding's role in this portfolio; do not paste company descriptions or generic issuer background.
164
+
137
165
  ${disclosureBlock}
138
166
 
139
167
  Response format:
140
168
  - Start with the assumptions block above exactly as written. Do not relabel source attribution anywhere else in your response.
169
+ - Then start the analysis with "Bottom line:" and directly say what portfolio you would build for the user.
141
170
  - Commit to the draft: give concrete percentages for each position, not ranges, and not "consider allocating X-Y%".
142
- - Present an allocation table: symbol, allocation %, dollar amount, and a one-line analyst rationale for each position (what the data showed).
171
+ - Present an allocation table: symbol, allocation %, dollar amount, current price used, estimated shares, role, and a one-line analyst rationale for each position (what the data showed and why it belongs in this portfolio).
172
+ - After the table, add a brief "Why this fits the horizon" summary explaining the growth/stability tradeoff and horizon-specific risks for the stated time horizon.
143
173
  - Include a risk summary (portfolio volatility, diversification quality) and an invalidation condition for the overall draft ("revisit if correlation exceeds 0.7 across the core ETFs" or equivalent).
174
+ - Include practical implementation notes: rebalance cadence, low-cost/liquid implementation, and tax/account caveats where relevant.
144
175
  - Suggest what to change for more growth or more safety.`;
145
176
  }
146
177
  export function buildOptionsScreenerPrompt(resolution) {
@@ -182,7 +213,63 @@ For LEAPS / long-dated options:
182
213
  objective: s.objective,
183
214
  moneynessPreference: s.moneynessPreference,
184
215
  liquidityMinimum: s.liquidityMinimum,
216
+ ...(s.maxPremium !== undefined ? { maxPremium: formatBudget(s.maxPremium) } : {}),
217
+ ...(s.optionStrategy ? { optionStrategy: s.optionStrategy } : {}),
218
+ ...(s.costBasis !== undefined ? { costBasis: formatBudget(s.costBasis) } : {}),
219
+ ...(s.shareQuantity !== undefined ? { shareQuantity: `${s.shareQuantity} shares` } : {}),
220
+ ...(s.catalystSymbols?.length ? { catalystSymbols: s.catalystSymbols.join(", ") } : {}),
185
221
  }, sources, workflowConstraints);
222
+ const coveredCallContext = [
223
+ s.optionStrategy
224
+ ? `\n- Option strategy: ${s.optionStrategy}${tag(sources.optionStrategy)}`
225
+ : "",
226
+ s.costBasis !== undefined
227
+ ? `\n- Cost basis: ${formatBudget(s.costBasis)} (Position cost basis: ${formatBudget(s.costBasis)})${tag(sources.costBasis)}`
228
+ : "",
229
+ s.shareQuantity !== undefined
230
+ ? `\n- Share quantity: ${s.shareQuantity} shares${tag(sources.shareQuantity)}`
231
+ : "",
232
+ s.catalystSymbols?.length
233
+ ? `\n- Catalyst/context tickers: ${s.catalystSymbols.join(", ")}${tag(sources.catalystSymbols)}`
234
+ : "",
235
+ ].join("");
236
+ const isProtectivePutContext = s.optionStrategy === "protective_put";
237
+ const isCoveredCallContext = !isProtectivePutContext &&
238
+ (s.optionStrategy === "covered_call" ||
239
+ s.costBasis !== undefined ||
240
+ (s.catalystSymbols?.length ?? 0) > 0);
241
+ const coveredCallInstructions = isCoveredCallContext
242
+ ? `
243
+ Covered-call sale guidance:
244
+ - Treat this as selling covered calls against an existing ${s.symbol} share position, not buying calls.
245
+ - Treat ${s.symbol} as the option-chain underlying.
246
+ - Because the user phrased ${s.symbol} as an existing holding, briefly state that you are treating ${s.symbol} as the held ticker. If they meant memory exposure or a different ticker, tell them to clarify and do not silently switch to another underlying.
247
+ - Do not substitute catalyst/context tickers as the option-chain underlying.
248
+ - Use catalyst/context tickers only to frame event risk, sympathy moves, and whether a nearer expiration is appropriate.
249
+ - Rank by premium collected, strike above cost basis, assignment risk, event risk, and live liquidity.
250
+ - Do not describe max loss as the option premium paid. Covered-call sale risks are assignment/capped upside, share-price downside in the owned stock, IV/event risk, and poor exit liquidity.
251
+ - If the option-chain tool reports closed_market_or_stale_quotes, do not treat zero bid/ask as confirmed live illiquidity; say the chain was checked outside regular options trading and recheck after regular options trading opens.
252
+ - If retrieved contracts have zero bid/ask, zero open interest, or otherwise unusable live quotes, the final answer MUST still include "Best action:" and "Conditional candidate:".
253
+ - In that fallback, "Best action:" should be no trade unless the user's broker shows a real bid, and "Conditional candidate:" should be a strike above cost basis labeled conditional on live bid/ask.
254
+ `
255
+ : "";
256
+ const protectivePutInstructions = isProtectivePutContext
257
+ ? `
258
+ Protective-put hedge guidance:
259
+ - Treat this as buying puts to hedge an existing long ${s.symbol} share position, not buying calls.
260
+ - Treat ${s.symbol} as the option-chain underlying.
261
+ - Rank put contracts by protection per dollar of premium: expiration fit, hedge floor, moneyness, liquidity, and premium as a percent of the stock position.
262
+ - For "doesn't cost too much" or similar cost-sensitive language, prefer liquid puts modestly below the current stock price before far-OTM lottery hedges; explain the tradeoff between cheaper premium and weaker protection.
263
+ - If share quantity is provided, use 1 put contract per 100 shares when discussing coverage and contract count.
264
+ - If share quantity is provided, state total premium for the required number of contracts in the ranked table or top-pick explanation.
265
+ - Include the hedge floor: approximate protected stock value at strike, net of premium where possible.
266
+ - Mention lower-cost alternatives such as a collar or put spread when outright put premium is high.
267
+ - Long protective puts have premium/decay risk and exercise/exit choices; do not frame assignment risk like a short option sale.
268
+ `
269
+ : "";
270
+ const topPickExplanation = isCoveredCallContext
271
+ ? `Explain why the top pick is ranked #1. For covered calls with a cost basis, include the effective assignment sale price (strike + premium collected) and compare it with the ${s.costBasis !== undefined ? formatBudget(s.costBasis) : "user's"} cost basis.`
272
+ : "Explain why the top pick is ranked #1.";
186
273
  return `Current date: ${dateStr}
187
274
  Do NOT invent or assume a different current date.${expirationSection}
188
275
 
@@ -191,46 +278,149 @@ Screen and rank options contracts for ${s.symbol}:
191
278
  - DTE target: ${s.dteTarget}${tag(sources.dteTarget)}
192
279
  - Objective: ${s.objective}${tag(sources.objective)}
193
280
  - Moneyness: ${s.moneynessPreference}${tag(sources.moneynessPreference)}
194
- - Liquidity: ${s.liquidityMinimum}${tag(sources.liquidityMinimum)}${s.budget ? `\n- Budget: ${formatBudget(s.budget)}` : ""}${s.maxPremium ? `\n- Max premium: ${formatBudget(s.maxPremium)}` : ""}
281
+ - Liquidity: ${s.liquidityMinimum}${tag(sources.liquidityMinimum)}${coveredCallContext}${s.budget ? `\n- Budget: ${formatBudget(s.budget)}` : ""}${s.maxPremium ? `\n- Max premium: ${formatBudget(s.maxPremium)}` : ""}
195
282
 
196
283
  Steps:
197
284
  1. Use get_stock_quote for ${s.symbol} to get current price and recent movement.
198
285
  2. Use get_option_chain for ${s.symbol} to get the full chain with Greeks. If you filter by contract type, pass \`type: "call"\` or \`type: "put"\` in lowercase.
199
- 3. Filter contracts matching: ${s.direction === "bullish" ? "calls" : "puts"}, DTE near ${s.dteTarget}, ${s.moneynessPreference} strikes.
200
- 4. Rank by ${s.objective}: balance premium cost, delta exposure, and probability of profit.
286
+ 3. Filter contracts matching: ${s.direction === "bullish" && !isProtectivePutContext ? "calls" : "puts"}, DTE near ${s.dteTarget}, ${s.moneynessPreference} strikes.
287
+ 4. ${isProtectivePutContext ? "Rank by hedge quality: protection per dollar of premium, expiration fit, moneyness, liquidity, and hedge floor." : `Rank by ${s.objective}: balance premium cost, delta exposure, and probability of profit.`}${s.maxPremium !== undefined ? ` Do not rank contracts above the user's max premium of ${formatBudget(s.maxPremium)} unless no contracts under that cap are liquid; if so, say the cap could not be met.` : ""}
201
288
  5. Filter for ${s.liquidityMinimum}: high open interest and tight bid-ask spread.
289
+ ${s.optionStrategy === "covered_call"
290
+ ? `6. Covered call framing: treat option premium as premium received, not paid. Use the user's cost basis when provided, and include return-if-assigned and assignment/downside risk instead of long-call max-loss framing.
291
+ `
292
+ : ""}${isCoveredCallContext && s.costBasis !== undefined
293
+ ? `Cost-basis math: if assigned, share gain/loss is strike minus ${formatBudget(s.costBasis)} before premium. Total return if assigned is (strike - cost basis + premium received) / cost basis.
294
+ `
295
+ : ""}
202
296
  ${longDatedInstructions}
297
+ ${coveredCallInstructions}
298
+ ${protectivePutInstructions}
203
299
  ${rankingConstraints}
204
300
  ${disclosureBlock}
205
301
 
206
302
  Response format:
207
303
  - Start with the assumptions block above exactly as written. Do not relabel source attribution anywhere else in your response.
208
- - Present top 3-5 ranked contracts in a table: strike, expiry, premium, delta, IV, OI, bid-ask spread.
209
- - Explain why the top pick is ranked #1.
210
- - Include risk caveats (max loss = premium, IV crush risk, time decay).`;
304
+ - ${isCoveredCallContext ? `Start with an Interpretation line: "Interpretation: Treating ${s.symbol} as the held ticker because you phrased it as an existing position. If you meant ${s.symbol} as memory exposure or another ticker, clarify before trading."` : isProtectivePutContext ? `Start with an Interpretation line: "Interpretation: Treating this as buying protective puts on an existing long ${s.symbol} share position."` : "State the interpretation only if the user's requested underlying is ambiguous."}
305
+ - Present top 3-5 ranked contracts in a table: strike, expiry, premium, delta, gamma, theta, vega, rho, IV, OI, bid-ask spread${isProtectivePutContext ? ", hedge floor, premium % of position" : ""}.
306
+ - ${topPickExplanation}
307
+ - Verify bid/ask and open interest in the user's broker before trading, even when OC shows live values.
308
+ - Include ${isCoveredCallContext ? "covered-call sale risks (assignment/capped upside, share-price downside in the owned stock, IV/event risk, exit liquidity). Do not describe max loss as the option premium paid" : isProtectivePutContext ? "protective-put risks (premium decay/cost, imperfect hedge before the strike, liquidity, and opportunity cost). Do not discuss short-option assignment risk" : "risk caveats (max loss = premium, IV crush risk, time decay)"}.`;
211
309
  }
212
310
  export function buildCompareAssetsPrompt(resolution) {
213
311
  const symbols = resolution.resolved.symbols;
214
312
  const symbolList = symbols.join(", ");
215
- const disclosureBlock = buildDisclosureBlock({ symbols: symbolList }, resolution.sources);
313
+ const timeHorizon = resolution.resolved.timeHorizon;
314
+ const budget = resolution.resolved.budget;
315
+ const includeSentiment = resolution.resolved.metrics?.includes("sentiment") ?? false;
316
+ const isMacroHedge = resolution.resolved.metrics?.includes("macro_hedge") ?? false;
317
+ const isInterestRateSensitive = resolution.resolved.metrics?.includes("interest_rates") ?? false;
318
+ const isOverlapComparison = resolution.resolved.metrics?.includes("overlap") ?? false;
319
+ const hasFundContext = isFundOrIndexAssetScope(resolution.resolved.assetScope) || areLikelyFundOrIndexSymbols(symbols);
320
+ const shouldProbeFundOverlap = !isOverlapComparison && isLongInvestmentHorizon(timeHorizon) && hasFundContext;
321
+ const sentimentStep = includeSentiment
322
+ ? `\n6. Use get_sentiment_summary for each of: ${symbolList} to compare retail/news sentiment and note source availability.`
323
+ : "";
324
+ const interestRateStep = isInterestRateSensitive
325
+ ? `\n${includeSentiment ? "7" : "6"}. Use get_economic_data for the current Fed funds backdrop. Treat this as historical/current context unless you also have explicit futures or forecast evidence.`
326
+ : "";
327
+ const sentimentMetric = includeSentiment ? ", sentiment score/summary" : "";
328
+ const interestRateGuidance = isInterestRateSensitive
329
+ ? `
330
+ interest-rate comparison guidance:
331
+ - Separate the user's conditional premise from observed data: if the prompt says rates "start falling," state that the recommendation depends on why rates fall and whether market pricing confirms it.
332
+ - Give a compact scenario split: benign disinflation/soft landing, recession or earnings shock, and sticky inflation or renewed rate pressure. State which asset type should benefit in each case and why.
333
+ - Connect rates to asset mechanics: duration-like sensitivity of future earnings, cost of capital, earnings resilience, valuation multiples, and risk appetite.
334
+ - For ETF or fund comparisons, include concentration and sector-exposure risk when one asset is meaningfully narrower or more growth/technology-heavy than the other.
335
+ - If forward valuation, earnings estimates, or rate-futures evidence is unavailable, say that directly and avoid treating historical Fed funds data as a forecast.`
336
+ : "";
337
+ const overlapGuidance = isOverlapComparison
338
+ ? `
339
+ ETF overlap guidance:
340
+ - Treat this as an ETF overlap and diversification question, not a generic return ranking.
341
+ - Lead with whether adding the second ETF creates a mega-cap technology tilt, growth-factor tilt, or real diversification.
342
+ - Explain that holdings overlap and sector concentration are not the same as correlation; correlation is supporting evidence, not the answer.
343
+ - Use provider top holdings and overlap weights when available. If provider coverage is partial or unavailable, say so directly and fall back to plain-language fund structure.
344
+ - Discuss top holdings, shared mega-cap names, sector concentration, and whether the position is a deliberate tilt or accidental duplication.
345
+ - avoid treating price, RSI, or generic risk metrics as the main answer.`
346
+ : shouldProbeFundOverlap
347
+ ? `
348
+ ETF/fund overlap check:
349
+ - If these assets are ETFs, funds, or index products, use provider-backed holdings-overlap evidence before making diversification claims.
350
+ - Compare fund role, style/factor tilt, concentration, and broad sector exposure when available; do not invent exact holdings or weights.
351
+ - For dividend/income funds versus growth funds over multi-year horizons, explain taxable account dividend drag: dividends can be taxed annually even when reinvested, while more return may be deferred as capital gains in growth-oriented funds. Contrast that with tax-advantaged accounts.
352
+ - Include expense ratios, dividend yields, and AUM only when fetched evidence supports them; otherwise tell the user to verify current fund facts before acting.
353
+ - Treat holdings overlap and sector concentration as different from correlation; correlation is supporting evidence, not a substitute for constituent exposure.
354
+ - If provider holdings coverage is partial or unavailable, say so directly and continue with the available price, risk, and correlation evidence.`
355
+ : "";
356
+ const macroHedgeSteps = isMacroHedge
357
+ ? `
358
+ macro hedge decision guidance:
359
+ - Treat this as a hedge-role comparison, not a generic "which asset has better recent technicals" ranking.
360
+ - Prioritize what each asset hedges: inflation, falling real yields, USD weakness, geopolitical/systemic shocks, liquidity stress, and risk-asset drawdowns.
361
+ - Compare volatility, drawdown, and correlation regime stability. If a metric is unavailable for one asset, explain how that limits confidence instead of awarding the other asset by default.
362
+ - Use current macro evidence where available: real yields or Fed-rate direction, inflation trend, USD/liquidity backdrop, and risk-on/risk-off conditions.
363
+ - Include a compact scenario map for stagflation, rising real yields, liquidity crunch/risk-off, USD debasement, and geopolitical shock. State which asset is likely the better hedge in each scenario and why.
364
+ - End with conditional guidance: prefer the steadier hedge for capital preservation; prefer the higher-volatility asset only for debasement/asymmetric-upside exposure.`
365
+ : "";
366
+ const tableInstruction = isMacroHedge
367
+ ? "- Present a comparison table with hedge-relevant columns: hedge role, macro drivers, volatility/drawdown evidence, correlation regime, liquidity/risk-on sensitivity, current data, and missing evidence."
368
+ : isOverlapComparison
369
+ ? "- Present an ETF overlap table with columns: fund role, shared top holdings/overlap weight from provider when available, sector concentration, what exposure is duplicated, what exposure is new, and diversification implication."
370
+ : shouldProbeFundOverlap
371
+ ? "- Present a long-horizon fund comparison table with columns: fund role/style, dividend/income versus growth tradeoff, risk evidence, holdings-overlap availability, tax and expense/yield/AUM verification gaps, and horizon fit."
372
+ : `- Present a comparison table with key metrics: price, P/E, revenue growth, profit margin, RSI, Sharpe, max drawdown${sentimentMetric}.
373
+ - Highlight which asset is stronger on each metric.`;
374
+ const technicalRiskSteps = isOverlapComparison
375
+ ? `3. Use analyze_holdings_overlap with symbols [${symbolList}] to fetch provider top holdings and compute pairwise overlap by weight.
376
+ 4. Use analyze_correlation across [${symbolList}] only as supporting diversification evidence; do not substitute correlation for holdings overlap.
377
+ 5. Skip momentum/risk tool calls unless the user asks about timing or trade setup; the core question is top holdings and sector overlap.`
378
+ : shouldProbeFundOverlap
379
+ ? `3. Use analyze_holdings_overlap with symbols [${symbolList}] to fetch provider top holdings and compute pairwise overlap by weight.
380
+ 4. Use analyze_correlation across [${symbolList}] as supporting diversification evidence.
381
+ 5. Use analyze_risk for each to compare long-horizon risk context.
382
+ 6. Use get_technical_indicators only as secondary timing context; do not let RSI or short-term momentum dominate the long-horizon fund decision.`
383
+ : `3. Use get_technical_indicators for each to compare momentum and trend.
384
+ 4. Use analyze_risk for each to compare risk metrics.
385
+ 5. Use analyze_correlation across [${symbolList}] to check diversification.`;
386
+ const horizonLine = timeHorizon ? `\nTime horizon: ${timeHorizon}` : "";
387
+ const budgetLine = budget !== undefined ? `\nBudget: ${formatBudget(budget)}` : "";
388
+ const horizonSteps = timeHorizon
389
+ ? `
390
+ 6. Adapt the comparison to the ${timeHorizon} horizon: prioritize near-term catalysts, earnings/guidance, estimate revisions, sentiment, and forward-looking valuation evidence over long-term historical averages.
391
+ 7. Use historical risk and technical metrics as context, but explain what they do and do not imply over ${timeHorizon}.`
392
+ : "";
393
+ const horizonResponse = timeHorizon
394
+ ? `
395
+ - Start the verdict by directly answering whether the assets should compare for a ${timeHorizon} horizon and why.
396
+ - Prioritize the evidence that matters most over ${timeHorizon}: near-term catalysts, earnings/guidance, forward-looking valuation/estimates, sentiment, macro sensitivity, and company-specific risks.
397
+ - Call out evidence that is missing or unavailable, especially forward-looking estimates or company-specific catalysts.`
398
+ : "";
399
+ const disclosureBlock = buildDisclosureBlock({
400
+ symbols: symbolList,
401
+ ...(timeHorizon ? { timeHorizon } : {}),
402
+ ...(budget !== undefined ? { budget: formatBudget(budget) } : {}),
403
+ ...(resolution.resolved.assetScope ? { assetScope: resolution.resolved.assetScope } : {}),
404
+ ...(resolution.resolved.metrics ? { metrics: resolution.resolved.metrics.join(", ") } : {}),
405
+ }, resolution.sources);
216
406
  return `Current date: ${todayStr()}
217
407
 
218
- Compare these assets side by side: ${symbolList}
408
+ Compare these assets side by side: ${symbolList}${horizonLine}${budgetLine}
219
409
 
220
410
  Steps:
221
411
  1. Use get_stock_quote for each of: ${symbolList}.
222
412
  2. Use compare_companies with symbols [${symbols.map((s) => `"${s}"`).join(", ")}] for peer metrics. If some fundamentals are unavailable, continue the comparison with the available symbols and mark missing metrics as unavailable.
223
- 3. Use get_technical_indicators for each to compare momentum and trend.
224
- 4. Use analyze_risk for each to compare risk metrics.
225
- 5. Use analyze_correlation across [${symbolList}] to check diversification.
413
+ ${technicalRiskSteps}${sentimentStep}${interestRateStep}${horizonSteps}
414
+ ${macroHedgeSteps}
415
+ ${interestRateGuidance}
416
+ ${overlapGuidance}
226
417
 
227
418
  ${disclosureBlock}
228
419
 
229
420
  Response format:
230
421
  - Start with the assumptions block above exactly as written. Do not relabel source attribution anywhere else in your response.
231
- - Present a comparison table with key metrics: price, P/E, revenue growth, profit margin, RSI, Sharpe, max drawdown.
232
- - Highlight which asset is stronger on each metric.
422
+ ${tableInstruction}
233
423
  - Provide a summary verdict: which is most attractive and why.
234
- - Note any caveats (different sectors, market cap disparity, unavailable fundamentals, etc.).`;
424
+ - Note any caveats (different sectors, concentration, market cap disparity, unavailable fundamentals, unavailable forward-looking estimates, etc.).${horizonResponse}`;
235
425
  }
236
426
  //# sourceMappingURL=workflow-prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-prompts.js","sourceRoot":"","sources":["../../src/prompts/workflow-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-prompts.js","sourceRoot":"","sources":["../../src/prompts/workflow-prompts.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { CompanyOverview, EarningsData, FinancialStatement } from "../types/fundamentals.js";
2
- import type { StockQuote, OHLCV } from "../types/market.js";
2
+ import type { OHLCV, StockQuote } from "../types/market.js";
3
3
  export declare function getOverview(symbol: string, apiKey: string): Promise<CompanyOverview>;
4
4
  export declare function getEarnings(symbol: string, apiKey: string): Promise<EarningsData>;
5
5
  export declare function getFinancials(symbol: string, apiKey: string): Promise<FinancialStatement[]>;
@@ -1,5 +1,5 @@
1
- import { httpGet, HttpError } from "../infra/http-client.js";
2
- import { cache, TTL, STALE_LIMIT } from "../infra/cache.js";
1
+ import { cache, STALE_LIMIT, TTL } from "../infra/cache.js";
2
+ import { HttpError, httpGet } from "../infra/http-client.js";
3
3
  import { rateLimiter } from "../infra/rate-limiter.js";
4
4
  import { ProviderCredentialError } from "./provider-credential-error.js";
5
5
  const BASE_URL = "https://www.alphavantage.co/query";
@@ -21,6 +21,22 @@ function buildUrl(fn, params, apiKey) {
21
21
  const qs = new URLSearchParams({ function: fn, ...params, apikey: apiKey });
22
22
  return `${BASE_URL}?${qs}`;
23
23
  }
24
+ function throwIfApiMessage(data) {
25
+ if (!data || typeof data !== "object")
26
+ return;
27
+ const payload = data;
28
+ const message = payload.Note ?? payload.Information ?? payload["Error Message"];
29
+ if (typeof message !== "string" || message.length === 0)
30
+ return;
31
+ const normalized = message.toLowerCase();
32
+ if (normalized.includes("api call frequency") || normalized.includes("rate limit")) {
33
+ throw new Error(`Alpha Vantage rate limited: ${message}`);
34
+ }
35
+ if (normalized.includes("invalid api")) {
36
+ throw new ProviderCredentialError("alpha_vantage", "stale");
37
+ }
38
+ throw new Error(`Alpha Vantage error: ${message}`);
39
+ }
24
40
  export async function getOverview(symbol, apiKey) {
25
41
  const cacheKey = `av:overview:${symbol}`;
26
42
  const missingCacheKey = `${cacheKey}:missing`;
@@ -34,6 +50,7 @@ export async function getOverview(symbol, apiKey) {
34
50
  await rateLimiter.acquire("alphavantage");
35
51
  const url = buildUrl("OVERVIEW", { symbol }, apiKey);
36
52
  const data = await httpGet(url);
53
+ throwIfApiMessage(data);
37
54
  if (!data.Symbol) {
38
55
  cache.set(missingCacheKey, "missing", MISSING_OVERVIEW_TTL);
39
56
  throw new Error(`Alpha Vantage: No data found for ${symbol}`);
@@ -77,6 +94,7 @@ export async function getEarnings(symbol, apiKey) {
77
94
  await rateLimiter.acquire("alphavantage");
78
95
  const url = buildUrl("EARNINGS", { symbol }, apiKey);
79
96
  const data = await httpGet(url);
97
+ throwIfApiMessage(data);
80
98
  const quarterly = (data.quarterlyEarnings ?? []).slice(0, 8).map((e) => ({
81
99
  date: e.fiscalDateEnding,
82
100
  reportedEPS: parseFloat(e.reportedEPS) || 0,
@@ -149,7 +167,9 @@ export async function getFinancials(symbol, apiKey) {
149
167
  async function fetchStatement(fn, symbol, apiKey) {
150
168
  await rateLimiter.acquire("alphavantage");
151
169
  const url = buildUrl(fn, { symbol }, apiKey);
152
- return httpGet(url);
170
+ const data = await httpGet(url);
171
+ throwIfApiMessage(data);
172
+ return data;
153
173
  }
154
174
  export async function getGlobalQuote(symbol, apiKey) {
155
175
  const cacheKey = `av:globalquote:${symbol}`;
@@ -160,6 +180,7 @@ export async function getGlobalQuote(symbol, apiKey) {
160
180
  await rateLimiter.acquire("alphavantage");
161
181
  const url = buildUrl("GLOBAL_QUOTE", { symbol }, apiKey);
162
182
  const data = await httpGet(url);
183
+ throwIfApiMessage(data);
163
184
  const gq = data["Global Quote"];
164
185
  if (!gq || !gq["05. price"]) {
165
186
  throw new Error(`Alpha Vantage: No quote data for ${symbol}`);
@@ -204,11 +225,12 @@ export async function getDailyHistory(symbol, apiKey, range = "6mo") {
204
225
  const outputsize = daysNeeded > 100 ? "full" : "compact";
205
226
  const url = buildUrl("TIME_SERIES_DAILY", { symbol, outputsize }, apiKey);
206
227
  const data = await httpGet(url);
228
+ throwIfApiMessage(data);
207
229
  const timeSeries = data["Time Series (Daily)"];
208
230
  if (!timeSeries) {
209
231
  throw new Error(`Alpha Vantage: No daily history for ${symbol}`);
210
232
  }
211
- const ohlcv = Object.entries(timeSeries)
233
+ const sorted = Object.entries(timeSeries)
212
234
  .map(([date, bar]) => ({
213
235
  date,
214
236
  open: parseFloat(bar["1. open"]) || 0,
@@ -217,8 +239,12 @@ export async function getDailyHistory(symbol, apiKey, range = "6mo") {
217
239
  close: parseFloat(bar["4. close"]) || 0,
218
240
  volume: parseInt(bar["5. volume"], 10) || 0,
219
241
  }))
220
- .sort((a, b) => a.date.localeCompare(b.date))
221
- .slice(-daysNeeded);
242
+ .sort((a, b) => a.date.localeCompare(b.date));
243
+ // Count-based slicing for ytd is only an estimate (ignores holidays and
244
+ // the starting weekday) and can leak prior-year bars; filter by date.
245
+ const ohlcv = range === "ytd"
246
+ ? sorted.filter((bar) => bar.date >= `${new Date().getFullYear()}-01-01`)
247
+ : sorted.slice(-daysNeeded);
222
248
  cache.set(cacheKey, ohlcv, TTL.HISTORY);
223
249
  return ohlcv;
224
250
  }
@@ -232,11 +258,26 @@ export async function getDailyHistory(symbol, apiKey, range = "6mo") {
232
258
  }
233
259
  function rangeToDays(range) {
234
260
  const map = {
235
- "1d": 1, "5d": 5, "1mo": 22, "3mo": 66, "6mo": 130,
236
- "1y": 252, "2y": 504, "5y": 1260, "max": 5000,
261
+ "1d": 1,
262
+ "5d": 5,
263
+ "1mo": 22,
264
+ "3mo": 66,
265
+ "6mo": 130,
266
+ "1y": 252,
267
+ "2y": 504,
268
+ "5y": 1260,
269
+ "10y": 2520,
270
+ max: 5000,
237
271
  };
272
+ if (range === "ytd")
273
+ return tradingDaysSinceStartOfYear();
238
274
  return map[range] ?? 130;
239
275
  }
276
+ function tradingDaysSinceStartOfYear(date = new Date()) {
277
+ const start = new Date(date.getFullYear(), 0, 1);
278
+ const calendarDays = Math.max(1, Math.ceil((date.getTime() - start.getTime()) / 86_400_000) + 1);
279
+ return Math.max(1, Math.ceil((calendarDays / 7) * 5));
280
+ }
240
281
  function parseNum(s) {
241
282
  return parseFloat(s ?? "0") || 0;
242
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"alpha-vantage.js","sourceRoot":"","sources":["../../src/providers/alpha-vantage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alpha-vantage.js","sourceRoot":"","sources":["../../src/providers/alpha-vantage.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import { cache, STALE_LIMIT, TTL } from "../infra/cache.js";
1
2
  import { httpGet } from "../infra/http-client.js";
2
- import { cache, TTL, STALE_LIMIT } from "../infra/cache.js";
3
3
  import { rateLimiter } from "../infra/rate-limiter.js";
4
4
  const BASE_URL = "https://api.coingecko.com/api/v3";
5
5
  export async function getCryptoPrice(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"coingecko.js","sourceRoot":"","sources":["../../src/providers/coingecko.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coingecko.js","sourceRoot":"","sources":["../../src/providers/coingecko.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class InvalidSymbolError extends Error {
2
+ readonly symbol: string;
3
+ readonly provider: string;
4
+ constructor(symbol: string, provider: string);
5
+ }
@@ -0,0 +1,11 @@
1
+ export class InvalidSymbolError extends Error {
2
+ symbol;
3
+ provider;
4
+ constructor(symbol, provider) {
5
+ super(`Invalid symbol ${symbol} for ${provider}`);
6
+ this.symbol = symbol;
7
+ this.provider = provider;
8
+ this.name = "InvalidSymbolError";
9
+ }
10
+ }
11
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/providers/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAEzB;IACA;IAFlB,YACkB,MAAc,EACd,QAAgB;QAEhC,KAAK,CAAC,kBAAkB,MAAM,QAAQ,QAAQ,EAAE,CAAC,CAAC;QAHlC,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAQ;QAGhC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}