gloomberb 0.13.3 → 0.14.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 (1397) hide show
  1. package/README.md +37 -304
  2. package/README.zh-CN.md +47 -239
  3. package/package.json +16 -8
  4. package/src/api-client/askg.test.ts +256 -0
  5. package/src/api-client/askg.ts +544 -0
  6. package/src/api-client/auth.ts +110 -50
  7. package/src/api-client/chat.ts +58 -24
  8. package/src/api-client/collections.ts +53 -0
  9. package/src/api-client/data.ts +260 -69
  10. package/src/api-client/errors.ts +31 -4
  11. package/src/api-client/index.test.ts +568 -303
  12. package/src/api-client/index.ts +374 -476
  13. package/src/api-client/normalizers.ts +43 -13
  14. package/src/api-client/notes.ts +89 -0
  15. package/src/api-client/paths.test.ts +32 -0
  16. package/src/api-client/paths.ts +169 -36
  17. package/src/api-client/request.test.ts +35 -18
  18. package/src/api-client/request.ts +170 -34
  19. package/src/api-client/research-activity.test.ts +316 -0
  20. package/src/api-client/research-activity.ts +339 -32
  21. package/src/api-client/session-request-lifetime.test.ts +184 -0
  22. package/src/api-client/socket-health.test.ts +18 -12
  23. package/src/api-client/socket-lifetime.test.ts +76 -0
  24. package/src/api-client/socket.ts +279 -75
  25. package/src/api-client/teams.test.ts +270 -0
  26. package/src/api-client/teams.ts +241 -0
  27. package/src/api-client/theses.ts +177 -0
  28. package/src/api-client/types.ts +757 -10
  29. package/src/api-client/views.ts +125 -0
  30. package/src/app/global-shortcuts.test.tsx +5 -37
  31. package/src/app/pane-runtime/plugin-bindings.ts +125 -6
  32. package/src/app/pane-runtime/ticker-navigation-runtime.test.ts +144 -0
  33. package/src/app/pane-runtime/ticker-open-runtime.test.tsx +170 -0
  34. package/src/app/pane-runtime/ticker-open-runtime.ts +68 -12
  35. package/src/app/runtime/desktop-deeplink.test.ts +44 -1
  36. package/src/app/runtime/desktop-deeplink.ts +22 -11
  37. package/src/app/runtime/layout-warmup.test.ts +73 -0
  38. package/src/app/runtime/layout-warmup.ts +118 -0
  39. package/src/app/runtime/startup.ts +47 -2
  40. package/src/app/runtime/ticker-refresh.test.tsx +115 -0
  41. package/src/app/runtime/ticker-refresh.ts +109 -157
  42. package/src/app.tsx +32 -6
  43. package/src/architecture/browser-entry-graph.test.ts +1 -0
  44. package/src/architecture/import-boundaries.test.ts +14 -0
  45. package/src/brokers/bond-price-basis.test.ts +35 -0
  46. package/src/brokers/broker-ticker-sync.ts +6 -2
  47. package/src/brokers/legacy-contract.test.ts +51 -0
  48. package/src/brokers/sync-broker-instance.test.ts +70 -0
  49. package/src/capabilities/factories.ts +4 -0
  50. package/src/capabilities/index.ts +1 -0
  51. package/src/capabilities/service-capabilities.ts +43 -3
  52. package/src/capabilities/stream-client.ts +39 -0
  53. package/src/cli/base-converter.test.ts +16 -0
  54. package/src/cli/base-converter.ts +5 -4
  55. package/src/cli/commands/automation.ts +1 -147
  56. package/src/cli/commands/futures-price-precision.test.tsx +65 -0
  57. package/src/cli/commands/market-fx.test.ts +59 -0
  58. package/src/cli/commands/market.ts +10 -5
  59. package/src/cli/commands/overview.ts +1 -32
  60. package/src/cli/commands/plugins.ts +461 -79
  61. package/src/cli/commands/quote-price-basis.test.ts +82 -0
  62. package/src/cli/commands/system.ts +83 -5
  63. package/src/cli/commands/ticker-financial-units.test.ts +43 -0
  64. package/src/cli/commands/ticker-period.test.ts +62 -0
  65. package/src/cli/commands/ticker.ts +170 -106
  66. package/src/cli/desktop-pane-shot.ts +26 -5
  67. package/src/cli/entry.test.ts +55 -0
  68. package/src/cli/entry.ts +13 -6
  69. package/src/cli/helpers.ts +5 -3
  70. package/src/cli/index.ts +6 -3
  71. package/src/cli/native-smoke.ts +16 -0
  72. package/src/cli/pane-functions/capabilities.ts +9 -383
  73. package/src/cli/pane-functions/catalog.ts +6 -5
  74. package/src/cli/pane-functions/data.ts +0 -6
  75. package/src/cli/pane-functions/discovery.test.ts +36 -0
  76. package/src/cli/pane-functions/discovery.ts +30 -18
  77. package/src/cli/pane-functions/headless.test.ts +67 -0
  78. package/src/cli/pane-functions/headless.ts +24 -6
  79. package/src/cli/pane-functions/index.test.ts +29 -0
  80. package/src/cli/pane-functions/index.ts +1 -1
  81. package/src/cli/pane-functions/intraday-shot.test.ts +84 -20
  82. package/src/cli/pane-functions/options.ts +5 -2
  83. package/src/cli/pane-functions/report.test.ts +6 -3
  84. package/src/cli/pane-functions/report.ts +5 -857
  85. package/src/cli/pane-functions/resolver.ts +1 -1
  86. package/src/cli/pane-functions/screenshot.test.ts +0 -6
  87. package/src/cli/pane-functions/screenshot.ts +96 -134
  88. package/src/cli/registry.test.ts +24 -50
  89. package/src/cli/result.test.ts +18 -0
  90. package/src/cli/result.ts +3 -1
  91. package/src/cli.test.ts +14 -5
  92. package/src/components/chart/composite/axis-overlays.tsx +4 -2
  93. package/src/components/chart/composite/column-layout.ts +2 -2
  94. package/src/components/chart/composite/composite-chart.test.tsx +164 -7
  95. package/src/components/chart/composite/composite-chart.tsx +131 -30
  96. package/src/components/chart/composite/format.test.ts +74 -0
  97. package/src/components/chart/composite/format.ts +85 -12
  98. package/src/components/chart/composite/fx-precision.test.ts +92 -0
  99. package/src/components/chart/composite/interactions.test.ts +13 -0
  100. package/src/components/chart/composite/interactions.ts +3 -1
  101. package/src/components/chart/composite/panel-series.ts +2 -0
  102. package/src/components/chart/composite/price-axis-labels.test.ts +8 -0
  103. package/src/components/chart/composite/price-axis-labels.tsx +3 -1
  104. package/src/components/chart/composite/price-series.ts +18 -11
  105. package/src/components/chart/composite/renderers.test.ts +5 -5
  106. package/src/components/chart/composite/scene-market-cursor.test.ts +148 -0
  107. package/src/components/chart/composite/scene.test.ts +166 -0
  108. package/src/components/chart/composite/scene.ts +57 -21
  109. package/src/{plugins/prediction-markets/chart.test.tsx → components/chart/composite/scroll-surface.test.tsx} +34 -22
  110. package/src/components/chart/composite/text-renderer.ts +5 -2
  111. package/src/components/chart/composite/time-axis.test.ts +11 -2
  112. package/src/components/chart/composite/time-axis.ts +8 -5
  113. package/src/components/chart/composite/types.ts +9 -0
  114. package/src/components/chart/native/kitty/index.test.ts +4 -79
  115. package/src/components/chart/static/chart-surface.test.tsx +13 -0
  116. package/src/components/chart/static/chart-surface.tsx +19 -11
  117. package/src/components/chart/static/series.ts +3 -3
  118. package/src/components/command-bar/assist/model.test.ts +66 -0
  119. package/src/components/command-bar/assist/model.ts +82 -7
  120. package/src/components/command-bar/commands/collection.ts +27 -7
  121. package/src/components/command-bar/commands/direct/runtime.ts +7 -2
  122. package/src/components/command-bar/list/model.ts +9 -0
  123. package/src/components/command-bar/list/view.tsx +25 -83
  124. package/src/components/command-bar/multi-select-picker.tsx +6 -8
  125. package/src/components/command-bar/pane-actions.ts +13 -7
  126. package/src/components/command-bar/pane-templates/workflow.ts +28 -3
  127. package/src/components/command-bar/panel/index.tsx +189 -76
  128. package/src/components/command-bar/panel/layout.test.ts +32 -0
  129. package/src/components/command-bar/panel/layout.ts +9 -1
  130. package/src/components/command-bar/panel/palette.ts +28 -0
  131. package/src/components/command-bar/panel/state.ts +6 -0
  132. package/src/components/command-bar/panel/types.ts +1 -14
  133. package/src/components/command-bar/routes/ticker-search/actions.ts +33 -12
  134. package/src/components/command-bar/routes/ticker-search/results.test.ts +42 -1
  135. package/src/components/command-bar/routes/ticker-search/results.ts +14 -11
  136. package/src/components/command-bar/routing/actions.ts +9 -8
  137. package/src/components/command-bar/surface/index.tsx +20 -1
  138. package/src/components/command-bar/surface/listing-selection.test.tsx +84 -0
  139. package/src/components/command-bar/surface/test-harness.tsx +11 -93
  140. package/src/components/command-bar/theme-picker.tsx +12 -27
  141. package/src/components/command-bar/workflow/body.tsx +8 -35
  142. package/src/components/command-bar/workflow/builtin.ts +55 -14
  143. package/src/components/command-bar/workflow/collection-actions.test.ts +11 -0
  144. package/src/components/command-bar/workflow/collection-actions.ts +50 -11
  145. package/src/components/command-bar/workflow/collection-identity.test.ts +180 -0
  146. package/src/components/command-bar/workflow/collection-ticker.ts +65 -0
  147. package/src/components/command-bar/workflow/coordinator.ts +0 -1
  148. package/src/components/command-bar/workflow/field-row.tsx +20 -35
  149. package/src/components/command-bar/workflow/ops.test.ts +167 -1
  150. package/src/components/command-bar/workflow/ops.ts +59 -3
  151. package/src/components/command-bar/workflow/runtime.ts +13 -0
  152. package/src/components/command-bar/workflow/submit.ts +9 -2
  153. package/src/components/command-bar/workflow/ticker-listing-picker.test.ts +41 -0
  154. package/src/components/command-bar/workflow/ticker-listing-picker.ts +35 -0
  155. package/src/components/command-bar/workflow/tickers.ts +42 -11
  156. package/src/components/data-table/export.ts +4 -1
  157. package/src/components/data-table/frozen-column.test.tsx +114 -0
  158. package/src/components/data-table/horizontal-navigation.test.tsx +154 -0
  159. package/src/components/data-table/stack-view.test.tsx +23 -18
  160. package/src/components/data-table/stack-view.tsx +37 -1
  161. package/src/components/data-table/view.test.tsx +107 -63
  162. package/src/components/data-table/view.tsx +40 -3
  163. package/src/components/feed-data-table/stack-view.tsx +20 -5
  164. package/src/components/index.ts +40 -15
  165. package/src/components/layout/detached-pane-shell.tsx +71 -17
  166. package/src/components/layout/floating-pane.tsx +7 -0
  167. package/src/components/layout/header.tsx +3 -0
  168. package/src/components/layout/market-summary.ts +1 -1
  169. package/src/components/layout/missing-pane.tsx +111 -0
  170. package/src/components/layout/pane/content.tsx +29 -9
  171. package/src/components/layout/pane/footer/current-actions.test.tsx +108 -0
  172. package/src/components/layout/pane/footer/index.tsx +44 -3
  173. package/src/components/layout/pane/footer/model.ts +11 -0
  174. package/src/components/layout/pane/footer/notice.desktop.test.tsx +56 -0
  175. package/src/components/layout/pane/footer/registration.tsx +32 -1
  176. package/src/components/layout/pane/header.tsx +31 -1
  177. package/src/components/layout/pane/index.tsx +3 -0
  178. package/src/components/layout/pane/sizing.test.ts +1 -0
  179. package/src/components/layout/pane/sizing.ts +4 -1
  180. package/src/components/layout/shell/chrome.ts +7 -2
  181. package/src/components/layout/shell/index.test.tsx +117 -34
  182. package/src/components/layout/shell/index.tsx +42 -22
  183. package/src/components/layout/shell/menu.test.ts +34 -0
  184. package/src/components/layout/shell/menu.ts +9 -0
  185. package/src/components/layout/shell/pane/actions.ts +20 -3
  186. package/src/components/layout/shell/pane/layers.tsx +26 -0
  187. package/src/components/layout/shell/pane-occlusion.test.ts +52 -0
  188. package/src/components/layout/shell/pane-occlusion.ts +63 -0
  189. package/src/components/layout/status-bar-groups.test.ts +92 -0
  190. package/src/components/layout/status-bar-groups.ts +85 -0
  191. package/src/components/layout/status-bar.test.tsx +6 -6
  192. package/src/components/layout/status-bar.tsx +140 -31
  193. package/src/components/layout/titlebar-overlay.ts +11 -1
  194. package/src/components/layout/window-fullscreen.ts +32 -0
  195. package/src/components/onboarding/account-step/form-panel.tsx +13 -32
  196. package/src/components/onboarding/account-step/index.tsx +13 -29
  197. package/src/components/onboarding/first-run-workspace.test.ts +81 -0
  198. package/src/components/onboarding/first-run-workspace.ts +215 -0
  199. package/src/components/onboarding/onboarding-frame.tsx +109 -35
  200. package/src/components/onboarding/onboarding-wizard.test.tsx +389 -202
  201. package/src/components/onboarding/onboarding-wizard.tsx +379 -303
  202. package/src/components/onboarding/portfolio-step/index.tsx +13 -0
  203. package/src/components/onboarding/portfolio-step/positions-panel.tsx +292 -0
  204. package/src/components/onboarding/portfolio-step/types.ts +7 -1
  205. package/src/components/onboarding/wizard-account.ts +38 -18
  206. package/src/components/onboarding/wizard-model.test.ts +67 -0
  207. package/src/components/onboarding/wizard-model.ts +99 -3
  208. package/src/components/onboarding/wizard-positions.ts +327 -0
  209. package/src/components/price-performance.tsx +1 -1
  210. package/src/components/sign-in-gate.test.tsx +10 -78
  211. package/src/components/table-view-shared.tsx +4 -3
  212. package/src/components/ticker/badge/format.test.ts +66 -0
  213. package/src/components/ticker/badge/format.ts +51 -19
  214. package/src/components/ticker/badge/index.tsx +12 -5
  215. package/src/components/ticker/badge/list.test.tsx +84 -0
  216. package/src/components/ticker/badge/list.tsx +69 -6
  217. package/src/components/ticker/list-table-view.tsx +8 -0
  218. package/src/components/ui/action-row.tsx +36 -0
  219. package/src/components/ui/button.tsx +44 -11
  220. package/src/components/ui/checkbox.tsx +5 -2
  221. package/src/components/ui/choice-dialog.tsx +15 -6
  222. package/src/components/ui/data-table/opentui/index.tsx +101 -33
  223. package/src/components/ui/data-table/stable-columns.ts +34 -0
  224. package/src/components/ui/data-table/types.ts +6 -1
  225. package/src/components/ui/display.desktop.test.tsx +55 -0
  226. package/src/components/ui/display.test.tsx +36 -0
  227. package/src/components/ui/display.tsx +124 -0
  228. package/src/components/ui/external-link.test.tsx +25 -0
  229. package/src/components/ui/external-link.tsx +11 -3
  230. package/src/components/ui/fields.tsx +17 -4
  231. package/src/components/ui/index.ts +19 -3
  232. package/src/components/ui/list-view.tsx +32 -16
  233. package/src/components/ui/loading.tsx +5 -4
  234. package/src/components/ui/native-select.tsx +14 -5
  235. package/src/components/ui/prose.tsx +110 -0
  236. package/src/components/ui/select-button.tsx +49 -18
  237. package/src/components/ui/status.tsx +63 -54
  238. package/src/components/ui/tabs.tsx +3 -1
  239. package/src/components/ui/toggle.tsx +22 -1
  240. package/src/components/ui/ui.test.tsx +62 -26
  241. package/src/components/use-pane-notice-footer.test.tsx +116 -0
  242. package/src/components/use-pane-notice-footer.tsx +128 -0
  243. package/src/core/app-runtime.test.ts +113 -0
  244. package/src/core/app-runtime.ts +97 -0
  245. package/src/core/app-services.ts +35 -103
  246. package/src/core/state/app/instrument.ts +77 -0
  247. package/src/core/state/app/layout-reducer.ts +60 -0
  248. package/src/core/state/app/layout.ts +149 -19
  249. package/src/core/state/app/state.ts +2 -2
  250. package/src/core/state/app/types.ts +14 -1
  251. package/src/core/state/session-persistence.ts +18 -48
  252. package/src/data/cached-query.test.ts +95 -0
  253. package/src/data/cached-query.ts +106 -0
  254. package/src/data/config/layout.ts +35 -1
  255. package/src/data/config/store/index.test.ts +41 -0
  256. package/src/data/config/store/normalize.ts +65 -7
  257. package/src/data/fred-series.ts +22 -66
  258. package/src/{renderers/browser/persistence.ts → data/json-persistence.ts} +8 -8
  259. package/src/{renderers/browser/storage.ts → data/json-storage.ts} +5 -5
  260. package/src/{renderers/browser/ticker-repository.ts → data/json-ticker-repository.ts} +7 -7
  261. package/src/data/memory-resource-store.test.ts +24 -0
  262. package/src/{renderers/electrobun/view/resource-store.ts → data/memory-resource-store.ts} +2 -2
  263. package/src/data/plugin-cache.test.ts +46 -0
  264. package/src/data/plugin-cache.ts +89 -0
  265. package/src/data/response-sequence.ts +6 -0
  266. package/src/i18n/es.ts +84 -3
  267. package/src/i18n/ja.ts +84 -3
  268. package/src/i18n/ko.ts +84 -3
  269. package/src/i18n/zh-cn.ts +84 -3
  270. package/src/i18n/zh-tw.ts +84 -3
  271. package/src/layout-marketplace/cloud.test.ts +154 -0
  272. package/src/layout-marketplace/cloud.ts +215 -0
  273. package/src/layout-marketplace/gallery-desktop.test.tsx +19 -74
  274. package/src/layout-marketplace/gallery-desktop.tsx +65 -3
  275. package/src/layout-marketplace/gallery-terminal.tsx +83 -5
  276. package/src/layout-marketplace/gallery.tsx +254 -18
  277. package/src/layout-marketplace/linked-sync.ts +104 -0
  278. package/src/layout-marketplace/linked.ts +119 -0
  279. package/src/layout-marketplace/mini-workspace.test.tsx +9 -62
  280. package/src/layout-marketplace/model.ts +71 -19
  281. package/src/layout-marketplace/payload.test.ts +156 -0
  282. package/src/layout-marketplace/payload.ts +77 -16
  283. package/src/layout-marketplace/use-marketplace.ts +68 -1
  284. package/src/market-data/coordinator/auxiliary.ts +40 -11
  285. package/src/market-data/coordinator/entries.ts +11 -1
  286. package/src/market-data/coordinator/events.test.ts +33 -3
  287. package/src/market-data/coordinator/events.ts +25 -1
  288. package/src/market-data/coordinator/financials.ts +2 -61
  289. package/src/market-data/coordinator/fx-refresh.test.ts +61 -0
  290. package/src/market-data/coordinator/index.test.ts +25 -0
  291. package/src/market-data/coordinator/index.ts +129 -27
  292. package/src/market-data/coordinator/quotes.ts +1 -0
  293. package/src/market-data/coordinator/subscriptions.test.ts +12 -5
  294. package/src/market-data/hooks.tsx +8 -13
  295. package/src/market-data/legacy-contract-hooks.test.tsx +49 -0
  296. package/src/market-data/legacy-contract.test.ts +99 -0
  297. package/src/market-data/market/format.test.ts +77 -1
  298. package/src/market-data/market/format.ts +100 -6
  299. package/src/market-data/market/freshness.ts +13 -1
  300. package/src/market-data/market/price-basis.ts +9 -0
  301. package/src/market-data/market/status.test.ts +15 -1
  302. package/src/market-data/market/status.ts +18 -22
  303. package/src/market-data/performance.ts +21 -6
  304. package/src/market-data/portfolio-financials.ts +27 -0
  305. package/src/market-data/portfolio-instrument.test.ts +80 -0
  306. package/src/market-data/quotes/contributions.ts +32 -9
  307. package/src/market-data/quotes/day-range.test.ts +84 -0
  308. package/src/market-data/quotes/day-range.ts +95 -0
  309. package/src/market-data/quotes/freshness.test.ts +63 -0
  310. package/src/market-data/quotes/freshness.ts +17 -11
  311. package/src/market-data/quotes/metadata.ts +55 -0
  312. package/src/market-data/quotes/observation-time.test.ts +74 -0
  313. package/src/market-data/quotes/price-basis.test.ts +44 -0
  314. package/src/market-data/quotes/resolution.test.ts +137 -0
  315. package/src/market-data/quotes/resolution.ts +57 -11
  316. package/src/market-data/request-types.ts +27 -13
  317. package/src/market-data/result-types.ts +3 -0
  318. package/src/market-data/selectors.ts +2 -23
  319. package/src/market-data/snapshot-contract.test.ts +110 -0
  320. package/src/market-data/snapshot-provider.test.ts +93 -0
  321. package/src/market-data/snapshot-provider.ts +175 -0
  322. package/src/market-data/ticker-price-returns.test.ts +26 -0
  323. package/src/market-data/ticker-price-returns.ts +18 -0
  324. package/src/news/aggregator.test.ts +20 -4
  325. package/src/news/aggregator.ts +40 -10
  326. package/src/news/news-model.ts +33 -2
  327. package/src/news/types.ts +2 -0
  328. package/src/pane-settings.ts +24 -0
  329. package/src/plugins/builtin/account-management/form-components.tsx +22 -94
  330. package/src/plugins/builtin/account-management/model.ts +26 -12
  331. package/src/plugins/builtin/account-management/navigation.ts +1 -1
  332. package/src/plugins/builtin/account-management/pane.tsx +31 -54
  333. package/src/plugins/builtin/alerts/index.test.tsx +52 -42
  334. package/src/plugins/builtin/alerts/index.tsx +7 -2
  335. package/src/plugins/builtin/alerts/quotes.ts +2 -2
  336. package/src/plugins/builtin/analytics/broker-performance.test.ts +79 -0
  337. package/src/plugins/builtin/analytics/broker-performance.ts +57 -70
  338. package/src/plugins/builtin/analytics/display.ts +6 -3
  339. package/src/plugins/builtin/analytics/index.test.tsx +262 -53
  340. package/src/plugins/builtin/analytics/index.tsx +85 -51
  341. package/src/plugins/builtin/analytics/metrics.test.ts +23 -6
  342. package/src/plugins/builtin/analytics/metrics.ts +97 -49
  343. package/src/plugins/builtin/analytics/pane-model.test.ts +191 -0
  344. package/src/plugins/builtin/analytics/pane-model.ts +194 -100
  345. package/src/plugins/builtin/analytics/portfolio-identity.test.tsx +272 -0
  346. package/src/plugins/builtin/analytics/return-window.test.ts +72 -0
  347. package/src/plugins/builtin/analytics/sector-model.test.ts +56 -0
  348. package/src/plugins/builtin/analytics/sector-model.ts +38 -23
  349. package/src/plugins/builtin/analytics/sharpe-cadence.test.ts +111 -0
  350. package/src/plugins/builtin/analytics/sharpe-cadence.ts +161 -0
  351. package/src/plugins/builtin/analytics/view.tsx +61 -66
  352. package/src/plugins/builtin/broker-manager/index.test.tsx +5 -9
  353. package/src/plugins/builtin/broker-manager/index.tsx +11 -12
  354. package/src/plugins/builtin/buildout/cells.test.tsx +31 -0
  355. package/src/plugins/builtin/buildout/cells.tsx +2 -12
  356. package/src/plugins/builtin/buildout/detail/company.tsx +23 -42
  357. package/src/plugins/builtin/buildout/detail/index.tsx +0 -1
  358. package/src/plugins/builtin/buildout/detail/intel.tsx +5 -10
  359. package/src/plugins/builtin/buildout/detail/site.tsx +15 -33
  360. package/src/plugins/builtin/buildout/detail/ui.tsx +17 -56
  361. package/src/plugins/builtin/buildout/pane/header.tsx +3 -11
  362. package/src/plugins/builtin/buildout/pane/status.tsx +3 -18
  363. package/src/plugins/builtin/cds/headless.test.ts +20 -2
  364. package/src/plugins/builtin/cds/model.test.ts +10 -0
  365. package/src/plugins/builtin/cds/model.ts +18 -8
  366. package/src/plugins/builtin/cds/pane.test.tsx +2 -2
  367. package/src/plugins/builtin/cds/pane.tsx +32 -41
  368. package/src/plugins/builtin/chart-composer/catalog-inventory.test.ts +17 -0
  369. package/src/plugins/builtin/chart-composer/catalog-inventory.ts +57 -16
  370. package/src/plugins/builtin/chart-composer/cli-options.ts +7 -4
  371. package/src/plugins/builtin/chart-composer/data-catalog-pane.tsx +24 -2
  372. package/src/plugins/builtin/chart-composer/editor/controller.ts +7 -1
  373. package/src/plugins/builtin/chart-composer/editor/opentui-view.tsx +2 -0
  374. package/src/plugins/builtin/chart-composer/editor.test.tsx +32 -23
  375. package/src/plugins/builtin/chart-composer/editor.tsx +3 -6
  376. package/src/plugins/builtin/chart-composer/financial-periods.fixture.json +225 -0
  377. package/src/plugins/builtin/chart-composer/headless-schema.ts +221 -0
  378. package/src/plugins/builtin/chart-composer/headless.test.ts +158 -0
  379. package/src/plugins/builtin/chart-composer/headless.ts +225 -0
  380. package/src/plugins/builtin/chart-composer/index.tsx +90 -8
  381. package/src/plugins/builtin/chart-composer/loading.test.tsx +134 -0
  382. package/src/plugins/builtin/chart-composer/pane-share.test.ts +74 -1
  383. package/src/plugins/builtin/chart-composer/pane.tsx +125 -134
  384. package/src/plugins/builtin/chart-composer/presets.test.ts +46 -0
  385. package/src/plugins/builtin/chart-composer/presets.ts +41 -13
  386. package/src/plugins/builtin/chart-composer/quick-add.tsx +7 -1
  387. package/src/plugins/builtin/chart-composer/quote-metadata.test.ts +176 -0
  388. package/src/plugins/builtin/chart-composer/semantic.ts +1 -0
  389. package/src/plugins/builtin/chart-composer/settings.test.ts +30 -0
  390. package/src/plugins/builtin/chart-composer/settings.ts +1 -1
  391. package/src/plugins/builtin/chart-composer/use-series-catalog.test.tsx +94 -0
  392. package/src/plugins/builtin/chart-composer/use-series-catalog.ts +7 -2
  393. package/src/plugins/builtin/chat/channel-labels.ts +13 -0
  394. package/src/plugins/builtin/chat/channels.ts +2 -0
  395. package/src/plugins/builtin/chat/content/channel-navigation.ts +16 -3
  396. package/src/plugins/builtin/chat/content/composer.tsx +13 -46
  397. package/src/plugins/builtin/chat/content/index.tsx +3 -1
  398. package/src/plugins/builtin/chat/content/new-dm-dialog.tsx +10 -15
  399. package/src/plugins/builtin/chat/controller/channels.ts +5 -1
  400. package/src/plugins/builtin/chat/controller/index.ts +17 -4
  401. package/src/plugins/builtin/chat/controller/session-lifetime.test.ts +182 -0
  402. package/src/plugins/builtin/chat/controller/session-runtime.ts +16 -4
  403. package/src/plugins/builtin/chat/controller.test.ts +173 -296
  404. package/src/plugins/builtin/chat/message/desktop.tsx +9 -9
  405. package/src/plugins/builtin/chat/message/profile-popover.tsx +3 -23
  406. package/src/plugins/builtin/chat/message/terminal.tsx +9 -9
  407. package/src/plugins/builtin/chat/sidebar.test.tsx +107 -0
  408. package/src/plugins/builtin/chat/sidebar.tsx +71 -18
  409. package/src/plugins/builtin/chat/status-widget.tsx +6 -12
  410. package/src/plugins/builtin/chat/test-harness.test.ts +46 -0
  411. package/src/plugins/builtin/chat/test-harness.tsx +12 -6
  412. package/src/plugins/builtin/cloud/askg/controller.test.ts +275 -0
  413. package/src/plugins/builtin/cloud/askg/controller.ts +440 -0
  414. package/src/plugins/builtin/cloud/askg/host.ts +87 -0
  415. package/src/plugins/builtin/cloud/askg/model.test.ts +222 -0
  416. package/src/plugins/builtin/cloud/askg/model.ts +623 -0
  417. package/src/plugins/builtin/cloud/askg/pane.tsx +734 -0
  418. package/src/plugins/builtin/cloud/askg/pending-question.ts +38 -0
  419. package/src/plugins/builtin/cloud/askg/protocol.ts +11 -0
  420. package/src/plugins/builtin/cloud/auth-actions.tsx +49 -51
  421. package/src/plugins/builtin/cloud/auth-form.tsx +5 -7
  422. package/src/plugins/builtin/cloud/auth-model.ts +8 -6
  423. package/src/plugins/builtin/cloud/plugin.tsx +57 -3
  424. package/src/plugins/builtin/cloud/team/acm-tab.tsx +127 -0
  425. package/src/plugins/builtin/cloud/team/capability.ts +71 -0
  426. package/src/plugins/builtin/cloud/team/collections-sync.ts +222 -0
  427. package/src/plugins/builtin/cloud/team/collections.test.ts +126 -0
  428. package/src/plugins/builtin/cloud/team/collections.ts +181 -0
  429. package/src/plugins/builtin/cloud/team/command.ts +313 -0
  430. package/src/plugins/builtin/cloud/team/model.test.ts +174 -0
  431. package/src/plugins/builtin/cloud/team/model.ts +209 -0
  432. package/src/plugins/builtin/cloud/team/module.tsx +78 -0
  433. package/src/plugins/builtin/cloud/team/pane-model.test.ts +100 -0
  434. package/src/plugins/builtin/cloud/team/pane-model.ts +156 -0
  435. package/src/plugins/builtin/cloud/team/pane-request.ts +47 -0
  436. package/src/plugins/builtin/cloud/team/pane-sections.tsx +509 -0
  437. package/src/plugins/builtin/cloud/team/pane-ui.tsx +325 -0
  438. package/src/plugins/builtin/cloud/team/pane.test.tsx +196 -0
  439. package/src/plugins/builtin/cloud/team/pane.tsx +712 -0
  440. package/src/plugins/builtin/cloud/team/status-widget.tsx +75 -0
  441. package/src/plugins/builtin/cloud/team/store.test.ts +231 -0
  442. package/src/plugins/builtin/cloud/team/store.ts +318 -0
  443. package/src/plugins/builtin/cloud/team/team-state-host.ts +70 -0
  444. package/src/plugins/builtin/cloud/team/views.ts +185 -0
  445. package/src/plugins/builtin/cloud/thesis/board-pane.test.tsx +239 -0
  446. package/src/plugins/builtin/cloud/thesis/board-pane.tsx +471 -0
  447. package/src/plugins/builtin/cloud/thesis/detail.tsx +522 -0
  448. package/src/plugins/builtin/cloud/thesis/exposure.ts +119 -0
  449. package/src/plugins/builtin/cloud/thesis/flows.ts +552 -0
  450. package/src/plugins/builtin/cloud/thesis/model.test.ts +171 -0
  451. package/src/plugins/builtin/cloud/thesis/model.ts +406 -0
  452. package/src/plugins/builtin/cloud/thesis/module.tsx +63 -0
  453. package/src/plugins/builtin/cloud/thesis/pane-request.ts +47 -0
  454. package/src/plugins/builtin/cloud/thesis/prompts.tsx +214 -0
  455. package/src/plugins/builtin/cloud/thesis/store.ts +279 -0
  456. package/src/plugins/builtin/cloud/thesis/ticker-tab.tsx +131 -0
  457. package/src/plugins/builtin/cloud/upgrade-status-widget.tsx +2 -15
  458. package/src/plugins/builtin/cloud/verification-status-widget.tsx +72 -0
  459. package/src/plugins/builtin/cloud-tweets/model.ts +13 -0
  460. package/src/plugins/builtin/cloud-tweets/pane.tsx +4 -2
  461. package/src/plugins/builtin/cloud-tweets/table.test.tsx +125 -0
  462. package/src/plugins/builtin/cloud-tweets/table.tsx +66 -20
  463. package/src/plugins/builtin/composite-plugins.ts +2 -12
  464. package/src/plugins/builtin/congress-trades/detail.tsx +42 -7
  465. package/src/plugins/builtin/congress-trades/footer.ts +23 -7
  466. package/src/plugins/builtin/congress-trades/keyboard.ts +10 -1
  467. package/src/plugins/builtin/congress-trades/model.test.ts +29 -10
  468. package/src/plugins/builtin/congress-trades/model.ts +28 -3
  469. package/src/plugins/builtin/congress-trades/pane.tsx +24 -6
  470. package/src/plugins/builtin/congress-trades/table.tsx +0 -1
  471. package/src/plugins/builtin/connections/pane.test.tsx +12 -16
  472. package/src/plugins/builtin/connections/pane.tsx +18 -30
  473. package/src/plugins/builtin/correlation/compute.test.ts +53 -86
  474. package/src/plugins/builtin/correlation/compute.ts +54 -60
  475. package/src/plugins/builtin/correlation/headless-schema.ts +69 -0
  476. package/src/plugins/builtin/correlation/headless.test.ts +147 -0
  477. package/src/plugins/builtin/correlation/headless.ts +110 -0
  478. package/src/plugins/builtin/correlation/history.ts +16 -0
  479. package/src/plugins/builtin/correlation/index.test.tsx +27 -55
  480. package/src/plugins/builtin/correlation/index.tsx +31 -13
  481. package/src/plugins/builtin/correlation/matrix/model.ts +38 -21
  482. package/src/plugins/builtin/correlation/relationship/controls.tsx +0 -30
  483. package/src/plugins/builtin/correlation/relationship/history.test.tsx +62 -0
  484. package/src/plugins/builtin/correlation/relationship/history.ts +31 -57
  485. package/src/plugins/builtin/correlation/relationship/model.ts +29 -62
  486. package/src/plugins/builtin/correlation/relationship/pane.tsx +47 -38
  487. package/src/plugins/builtin/credit-conditions/client.test.ts +43 -1
  488. package/src/plugins/builtin/credit-conditions/client.ts +17 -6
  489. package/src/plugins/builtin/credit-conditions/index.test.tsx +59 -38
  490. package/src/plugins/builtin/credit-conditions/index.tsx +35 -60
  491. package/src/plugins/builtin/credit-conditions/model.test.ts +1 -0
  492. package/src/plugins/builtin/credit-conditions/model.ts +1 -0
  493. package/src/plugins/builtin/custom-view/index.tsx +69 -0
  494. package/src/plugins/builtin/custom-view/loader.ts +107 -0
  495. package/src/plugins/builtin/custom-view/pane.tsx +308 -0
  496. package/src/plugins/builtin/custom-view/view-spec.test.ts +107 -0
  497. package/src/plugins/builtin/custom-view/view-spec.ts +347 -0
  498. package/src/plugins/builtin/debug/index.tsx +65 -46
  499. package/src/plugins/builtin/debug/template.ts +8 -0
  500. package/src/plugins/builtin/dividend-yield/browser.tsx +26 -0
  501. package/src/plugins/builtin/dividend-yield/calendar.ts +9 -0
  502. package/src/plugins/builtin/dividend-yield/client.test.ts +204 -2
  503. package/src/plugins/builtin/dividend-yield/client.ts +148 -96
  504. package/src/plugins/builtin/dividend-yield/dividend-source-integrity.test.ts +232 -0
  505. package/src/plugins/builtin/dividend-yield/headless.test.ts +35 -1
  506. package/src/plugins/builtin/dividend-yield/headless.ts +48 -11
  507. package/src/plugins/builtin/dividend-yield/index.tsx +64 -51
  508. package/src/plugins/builtin/dividend-yield/pane.test.tsx +349 -0
  509. package/src/plugins/builtin/dividend-yield/pane.tsx +118 -117
  510. package/src/plugins/builtin/dividend-yield/provider-client.test.ts +61 -0
  511. package/src/plugins/builtin/dividend-yield/provider-client.ts +44 -0
  512. package/src/plugins/builtin/dividend-yield/reference-price.test.ts +115 -0
  513. package/src/plugins/builtin/dividend-yield/reference-price.ts +27 -0
  514. package/src/plugins/builtin/dividend-yield/view.test.ts +58 -0
  515. package/src/plugins/builtin/dividend-yield/view.ts +35 -0
  516. package/src/plugins/builtin/earnings/data/cache.test.ts +21 -1
  517. package/src/plugins/builtin/earnings/data/cache.ts +11 -86
  518. package/src/plugins/builtin/earnings/detail-model.test.ts +103 -0
  519. package/src/plugins/builtin/earnings/detail-model.ts +165 -0
  520. package/src/plugins/builtin/earnings/detail-view.tsx +131 -0
  521. package/src/plugins/builtin/earnings/estimate-basis.test.ts +158 -0
  522. package/src/plugins/builtin/earnings/estimate-basis.ts +76 -0
  523. package/src/plugins/builtin/earnings/estimate-fixtures.test-data.ts +327 -0
  524. package/src/plugins/builtin/earnings/headless.ts +29 -18
  525. package/src/plugins/builtin/earnings/index.tsx +96 -69
  526. package/src/plugins/builtin/earnings/table.test.ts +60 -0
  527. package/src/plugins/builtin/earnings/table.ts +46 -36
  528. package/src/plugins/builtin/earnings-calls/data.test.ts +252 -0
  529. package/src/plugins/builtin/earnings-calls/data.ts +66 -28
  530. package/src/plugins/builtin/earnings-calls/headless-freshness.test.ts +41 -0
  531. package/src/plugins/builtin/earnings-calls/headless.test.ts +69 -3
  532. package/src/plugins/builtin/earnings-calls/headless.ts +82 -89
  533. package/src/plugins/builtin/earnings-calls/index.tsx +22 -22
  534. package/src/plugins/builtin/earnings-calls/model.ts +1 -0
  535. package/src/plugins/builtin/earnings-calls/pane.test.tsx +466 -0
  536. package/src/plugins/builtin/earnings-calls/pane.tsx +225 -65
  537. package/src/plugins/builtin/earnings-calls/prose.test.ts +16 -1
  538. package/src/plugins/builtin/earnings-calls/prose.ts +33 -30
  539. package/src/plugins/builtin/earnings-calls/transcript-view.tsx +138 -115
  540. package/src/plugins/builtin/econ/calendar-model.ts +10 -61
  541. package/src/plugins/builtin/econ/detail-view.tsx +35 -81
  542. package/src/plugins/builtin/econ/fred-cache.test.ts +39 -1
  543. package/src/plugins/builtin/econ/fred-client.test.ts +34 -7
  544. package/src/plugins/builtin/econ/fred-series-map.ts +57 -36
  545. package/src/plugins/builtin/econ/index.test.tsx +10 -13
  546. package/src/plugins/builtin/econ-statistics/client.test.ts +108 -0
  547. package/src/plugins/builtin/econ-statistics/client.ts +42 -13
  548. package/src/plugins/builtin/econ-statistics/defs.ts +3 -0
  549. package/src/plugins/builtin/econ-statistics/detail.tsx +12 -13
  550. package/src/plugins/builtin/econ-statistics/headless.test.ts +1 -1
  551. package/src/plugins/builtin/econ-statistics/headless.ts +6 -1
  552. package/src/plugins/builtin/econ-statistics/pane.test.tsx +69 -0
  553. package/src/plugins/builtin/econ-statistics/pane.tsx +52 -87
  554. package/src/plugins/builtin/econ-statistics/stats.ts +30 -11
  555. package/src/plugins/builtin/econ-statistics/transform.test.ts +23 -0
  556. package/src/plugins/builtin/econ-statistics/transform.ts +13 -4
  557. package/src/plugins/builtin/econ-statistics/view.test.ts +27 -0
  558. package/src/plugins/builtin/econ-statistics/view.ts +20 -1
  559. package/src/plugins/builtin/executives/data.ts +126 -0
  560. package/src/plugins/builtin/executives/format.test.ts +23 -0
  561. package/src/plugins/builtin/executives/format.ts +58 -0
  562. package/src/plugins/builtin/executives/index.tsx +61 -0
  563. package/src/plugins/builtin/executives/pane.test.tsx +335 -0
  564. package/src/plugins/builtin/executives/pane.tsx +467 -0
  565. package/src/plugins/builtin/filing-events/feed.test.ts +146 -0
  566. package/src/plugins/builtin/filing-events/feed.ts +189 -0
  567. package/src/plugins/builtin/filing-events/index.tsx +50 -0
  568. package/src/plugins/builtin/filing-events/pane.test.tsx +107 -0
  569. package/src/plugins/builtin/filing-events/pane.tsx +253 -0
  570. package/src/plugins/builtin/futures/index.tsx +15 -8
  571. package/src/plugins/builtin/futures/model.test.ts +25 -0
  572. package/src/plugins/builtin/futures/model.ts +12 -3
  573. package/src/plugins/builtin/futures/pane.test.tsx +8 -28
  574. package/src/plugins/builtin/futures/table.tsx +2 -2
  575. package/src/plugins/builtin/fx-matrix/export.test.ts +30 -0
  576. package/src/plugins/builtin/fx-matrix/export.ts +32 -0
  577. package/src/plugins/builtin/fx-matrix/index.tsx +24 -41
  578. package/src/plugins/builtin/fx-matrix/pairs.test.ts +11 -0
  579. package/src/plugins/builtin/fx-matrix/pairs.ts +3 -2
  580. package/src/plugins/builtin/fx-matrix/pane.test.tsx +6 -9
  581. package/src/plugins/builtin/fx-matrix/refresh.test.tsx +69 -0
  582. package/src/plugins/builtin/help/components.tsx +6 -26
  583. package/src/plugins/builtin/help/index.tsx +34 -44
  584. package/src/plugins/builtin/holders/headless.ts +8 -0
  585. package/src/plugins/builtin/insider/amendments.test.ts +112 -0
  586. package/src/plugins/builtin/insider/amendments.ts +65 -0
  587. package/src/plugins/builtin/insider/client.ts +4 -8
  588. package/src/plugins/builtin/insider/headless.test.ts +14 -0
  589. package/src/plugins/builtin/insider/headless.ts +27 -5
  590. package/src/plugins/builtin/insider/index.tsx +70 -36
  591. package/src/plugins/builtin/insider/insider-data.test.ts +50 -37
  592. package/src/plugins/builtin/insider/insider-data.ts +100 -31
  593. package/src/plugins/builtin/insider/model.ts +102 -55
  594. package/src/plugins/builtin/insider/pane.test.tsx +87 -0
  595. package/src/plugins/builtin/jobs/client.ts +85 -0
  596. package/src/plugins/builtin/jobs/headless.ts +215 -0
  597. package/src/plugins/builtin/jobs/index.tsx +83 -0
  598. package/src/plugins/builtin/jobs/model.test.ts +119 -0
  599. package/src/plugins/builtin/jobs/model.ts +350 -0
  600. package/src/plugins/builtin/jobs/pages.test.tsx +103 -0
  601. package/src/plugins/builtin/jobs/pages.ts +48 -0
  602. package/src/plugins/builtin/jobs/pane.tsx +710 -0
  603. package/src/plugins/builtin/jobs/share-bars.tsx +93 -0
  604. package/src/plugins/builtin/kelly-sizer/model.test.ts +6 -0
  605. package/src/plugins/builtin/kelly-sizer/model.ts +2 -2
  606. package/src/plugins/builtin/kelly-sizer/pane.tsx +21 -13
  607. package/src/plugins/builtin/kelly-sizer/portfolio.ts +9 -11
  608. package/src/plugins/builtin/kelly-sizer/sections.tsx +17 -23
  609. package/src/plugins/builtin/kelly-sizer/view.test.tsx +11 -0
  610. package/src/plugins/builtin/kelly-sizer/view.tsx +20 -58
  611. package/src/plugins/builtin/market-movers/headless.ts +9 -8
  612. package/src/plugins/builtin/market-movers/index.tsx +26 -21
  613. package/src/plugins/builtin/market-movers/integrity.test.ts +119 -0
  614. package/src/plugins/builtin/market-movers/model.ts +44 -10
  615. package/src/plugins/builtin/market-movers/pane-research.test.tsx +138 -0
  616. package/src/plugins/builtin/market-movers/screener.ts +77 -51
  617. package/src/plugins/builtin/market-movers/table.ts +12 -12
  618. package/src/plugins/builtin/market-valuation/align.ts +28 -17
  619. package/src/plugins/builtin/market-valuation/cache.ts +9 -1
  620. package/src/plugins/builtin/market-valuation/chart-projection.ts +11 -9
  621. package/src/plugins/builtin/market-valuation/chart-series.ts +14 -4
  622. package/src/plugins/builtin/market-valuation/client.test.ts +160 -21
  623. package/src/plugins/builtin/market-valuation/client.ts +54 -16
  624. package/src/plugins/builtin/market-valuation/defs.ts +13 -1
  625. package/src/plugins/builtin/market-valuation/detail.tsx +25 -43
  626. package/src/plugins/builtin/market-valuation/headless.test.ts +19 -2
  627. package/src/plugins/builtin/market-valuation/headless.ts +11 -6
  628. package/src/plugins/builtin/market-valuation/indicators.ts +51 -84
  629. package/src/plugins/builtin/market-valuation/model.test.ts +79 -43
  630. package/src/plugins/builtin/market-valuation/pane.test.tsx +47 -53
  631. package/src/plugins/builtin/market-valuation/pane.tsx +87 -100
  632. package/src/plugins/builtin/market-valuation/series.ts +18 -1
  633. package/src/plugins/builtin/market-valuation/sources.ts +74 -10
  634. package/src/plugins/builtin/market-valuation/trend.ts +2 -4
  635. package/src/plugins/builtin/market-valuation/view.ts +26 -23
  636. package/src/plugins/builtin/news/index.tsx +8 -3
  637. package/src/plugins/builtin/news/wire/breaking/pane.test.tsx +13 -41
  638. package/src/plugins/builtin/news/wire/breaking/pane.tsx +7 -3
  639. package/src/plugins/builtin/news/wire/index.tsx +30 -9
  640. package/src/plugins/builtin/news/wire/industry-pane.tsx +7 -3
  641. package/src/plugins/builtin/news/wire/news/detail-view.test.tsx +279 -0
  642. package/src/plugins/builtin/news/wire/news/detail-view.tsx +91 -47
  643. package/src/plugins/builtin/news/wire/news/footer.ts +17 -22
  644. package/src/plugins/builtin/news/wire/news/preset-pane.tsx +7 -3
  645. package/src/plugins/builtin/news/wire/news/table.tsx +11 -1
  646. package/src/plugins/builtin/news/wire/persisted-articles.ts +23 -2
  647. package/src/plugins/builtin/news/wire/rss/feed-xml.ts +104 -0
  648. package/src/plugins/builtin/news/wire/rss/parser.test.ts +63 -1
  649. package/src/plugins/builtin/news/wire/rss/parser.ts +70 -96
  650. package/src/plugins/builtin/news/wire/rss/source.test.ts +38 -1
  651. package/src/plugins/builtin/news/wire/rss/source.ts +26 -25
  652. package/src/plugins/builtin/notes/export.ts +57 -0
  653. package/src/plugins/builtin/notes/files.ts +6 -1
  654. package/src/plugins/builtin/notes/index.tsx +85 -10
  655. package/src/plugins/builtin/notes/migration.ts +80 -0
  656. package/src/plugins/builtin/notes/owner.tsx +129 -0
  657. package/src/plugins/builtin/notes/quick-notes-pane.test.tsx +10 -2
  658. package/src/plugins/builtin/notes/quick-notes-pane.tsx +130 -42
  659. package/src/plugins/builtin/notes/store.test.ts +245 -0
  660. package/src/plugins/builtin/notes/store.ts +304 -0
  661. package/src/plugins/builtin/notes/ticker-notes-tab.test.tsx +38 -68
  662. package/src/plugins/builtin/notes/ticker-notes-tab.tsx +60 -13
  663. package/src/plugins/builtin/options/analytics.test.ts +65 -0
  664. package/src/plugins/builtin/options/analytics.ts +62 -23
  665. package/src/plugins/builtin/options/calc-seed.test.ts +15 -3
  666. package/src/plugins/builtin/options/calc-seed.ts +18 -6
  667. package/src/plugins/builtin/options/chain-integrity.test.tsx +251 -0
  668. package/src/plugins/builtin/options/expiry-catalogue.ts +43 -0
  669. package/src/plugins/builtin/options/expiry-selection.test.tsx +317 -0
  670. package/src/plugins/builtin/options/footer.test.ts +38 -1
  671. package/src/plugins/builtin/options/footer.ts +69 -3
  672. package/src/plugins/builtin/options/live-quotes.test.ts +18 -4
  673. package/src/plugins/builtin/options/live-quotes.ts +7 -2
  674. package/src/plugins/builtin/options/market-reference.test.ts +36 -0
  675. package/src/plugins/builtin/options/market-reference.ts +70 -0
  676. package/src/plugins/builtin/options/quote-context.tsx +29 -0
  677. package/src/plugins/builtin/options/table.test.ts +100 -0
  678. package/src/plugins/builtin/options/table.ts +41 -11
  679. package/src/plugins/builtin/options/types.ts +1 -0
  680. package/src/plugins/builtin/options/view.test.tsx +271 -43
  681. package/src/plugins/builtin/options/view.tsx +137 -65
  682. package/src/plugins/builtin/options-calculator/boundary-integrity.test.tsx +112 -0
  683. package/src/plugins/builtin/options-calculator/index.tsx +1 -1
  684. package/src/plugins/builtin/options-calculator/model.test.ts +70 -0
  685. package/src/plugins/builtin/options-calculator/model.ts +52 -6
  686. package/src/plugins/builtin/options-calculator/pane.test.tsx +44 -12
  687. package/src/plugins/builtin/options-calculator/pane.tsx +59 -61
  688. package/src/plugins/builtin/plugin-marketplace/ids.ts +2 -0
  689. package/src/plugins/builtin/plugin-marketplace/model.test.ts +238 -19
  690. package/src/plugins/builtin/plugin-marketplace/model.ts +219 -17
  691. package/src/plugins/builtin/plugin-marketplace/pane.tsx +426 -198
  692. package/src/plugins/builtin/plugin-marketplace/store.ts +56 -6
  693. package/src/plugins/builtin/plugin-module.ts +9 -6
  694. package/src/plugins/builtin/portfolio-list/account-metrics.test.ts +20 -0
  695. package/src/plugins/builtin/portfolio-list/account-metrics.ts +3 -4
  696. package/src/plugins/builtin/portfolio-list/bond-price-basis.test.ts +120 -0
  697. package/src/plugins/builtin/portfolio-list/cli/portfolio-command.ts +1 -1
  698. package/src/plugins/builtin/portfolio-list/cli/render.test.ts +261 -0
  699. package/src/plugins/builtin/portfolio-list/cli/render.ts +81 -27
  700. package/src/plugins/builtin/portfolio-list/cli/shared.ts +1 -1
  701. package/src/plugins/builtin/portfolio-list/column-values.ts +87 -123
  702. package/src/plugins/builtin/portfolio-list/command-bar.ts +1 -1
  703. package/src/plugins/builtin/portfolio-list/grid.tsx +3 -1
  704. package/src/plugins/builtin/portfolio-list/header.tsx +7 -41
  705. package/src/plugins/builtin/portfolio-list/metrics.test.ts +133 -1
  706. package/src/plugins/builtin/portfolio-list/mutations.test.ts +13 -0
  707. package/src/plugins/builtin/portfolio-list/mutations.ts +7 -1
  708. package/src/plugins/builtin/portfolio-list/pane/data.ts +4 -0
  709. package/src/plugins/builtin/portfolio-list/pane/index.test.tsx +153 -88
  710. package/src/plugins/builtin/portfolio-list/pane/index.tsx +43 -10
  711. package/src/plugins/builtin/portfolio-list/pane/streaming.ts +22 -8
  712. package/src/plugins/builtin/portfolio-list/position-cost-integrity.test.ts +101 -0
  713. package/src/plugins/builtin/portfolio-list/position-metrics.ts +166 -90
  714. package/src/plugins/builtin/portfolio-list/summary/index.tsx +31 -3
  715. package/src/plugins/builtin/portfolio-list/summary/totals.ts +71 -31
  716. package/src/plugins/builtin/portfolio-list/table.tsx +15 -1
  717. package/src/plugins/builtin/portfolio-list/use-cursor-neighbor-prefetch.test.tsx +96 -0
  718. package/src/plugins/builtin/portfolio-list/use-cursor-neighbor-prefetch.ts +87 -0
  719. package/src/plugins/builtin/portfolio-list/use-throttled-cursor-symbol.test.tsx +8 -5
  720. package/src/plugins/builtin/portfolio-list/use-throttled-cursor-symbol.ts +4 -1
  721. package/src/plugins/builtin/research/analyst-headless.test.ts +28 -0
  722. package/src/plugins/builtin/research/analyst-headless.ts +26 -22
  723. package/src/plugins/builtin/research/analyst-model.test.ts +36 -0
  724. package/src/plugins/builtin/research/analyst-model.ts +61 -17
  725. package/src/plugins/builtin/research/analyst-pane.test.tsx +15 -40
  726. package/src/plugins/builtin/research/analyst-pane.tsx +15 -7
  727. package/src/plugins/builtin/research/corporate-actions-pane.test.tsx +68 -0
  728. package/src/plugins/builtin/research/corporate-actions-pane.tsx +104 -37
  729. package/src/plugins/builtin/research/equity-diagnostic-pane.test.tsx +17 -46
  730. package/src/plugins/builtin/research/equity-diagnostic-pane.tsx +13 -24
  731. package/src/plugins/builtin/research/event-model.test.ts +137 -0
  732. package/src/plugins/builtin/research/event-model.ts +119 -35
  733. package/src/plugins/builtin/research/events-headless.test.ts +11 -0
  734. package/src/plugins/builtin/research/events-headless.ts +36 -19
  735. package/src/plugins/builtin/research/headless-schema.ts +16 -0
  736. package/src/plugins/builtin/research/headless.test.ts +18 -0
  737. package/src/plugins/builtin/research/headless.ts +19 -8
  738. package/src/plugins/builtin/research/index.test.ts +30 -5
  739. package/src/plugins/builtin/research/index.tsx +3 -0
  740. package/src/plugins/builtin/research/relative-valuation-headless.test.ts +192 -0
  741. package/src/plugins/builtin/research/relative-valuation-headless.ts +51 -0
  742. package/src/plugins/builtin/research/relative-valuation-model.ts +54 -0
  743. package/src/plugins/builtin/research/relative-valuation-pane.test.tsx +98 -0
  744. package/src/plugins/builtin/research/relative-valuation-pane.tsx +72 -71
  745. package/src/plugins/builtin/research-search/document-view.tsx +15 -28
  746. package/src/plugins/builtin/research-search/pane.test.tsx +11 -20
  747. package/src/plugins/builtin/research-search/pane.tsx +5 -9
  748. package/src/plugins/builtin/risk-factors/data.test.ts +53 -0
  749. package/src/plugins/builtin/risk-factors/data.ts +117 -0
  750. package/src/plugins/builtin/risk-factors/headless.test.ts +40 -0
  751. package/src/plugins/builtin/risk-factors/headless.ts +70 -0
  752. package/src/plugins/builtin/risk-factors/index.tsx +63 -0
  753. package/src/plugins/builtin/risk-factors/pane.test.tsx +52 -0
  754. package/src/plugins/builtin/risk-factors/pane.tsx +310 -0
  755. package/src/plugins/builtin/risk-factors/test-fixtures.ts +4 -0
  756. package/src/plugins/builtin/scanner/denied.tsx +7 -7
  757. package/src/plugins/builtin/scanner/feed.ts +2 -2
  758. package/src/plugins/builtin/scanner/flow-pane.tsx +17 -8
  759. package/src/plugins/builtin/scanner/hilo-pane.tsx +21 -7
  760. package/src/plugins/builtin/sec/filing-content.test.ts +16 -0
  761. package/src/plugins/builtin/sec/filing-content.ts +46 -5
  762. package/src/plugins/builtin/sec/filing-display.tsx +13 -7
  763. package/src/plugins/builtin/sec/filing-documents.ts +10 -0
  764. package/src/plugins/builtin/sec/headless.test.ts +27 -0
  765. package/src/plugins/builtin/sec/headless.ts +4 -2
  766. package/src/plugins/builtin/sec/index.tsx +125 -29
  767. package/src/plugins/builtin/sec/model.ts +41 -3
  768. package/src/plugins/builtin/sec/pane.test.tsx +152 -0
  769. package/src/plugins/builtin/sectors/client.test.ts +211 -0
  770. package/src/plugins/builtin/sectors/client.ts +89 -18
  771. package/src/plugins/builtin/sectors/headless.test.ts +59 -0
  772. package/src/plugins/builtin/sectors/headless.ts +20 -1
  773. package/src/plugins/builtin/sectors/index.tsx +21 -22
  774. package/src/plugins/builtin/sectors/pane-cache.test.tsx +78 -0
  775. package/src/plugins/builtin/sectors/sector-model.test.ts +59 -0
  776. package/src/plugins/builtin/sectors/sector-model.ts +89 -24
  777. package/src/plugins/builtin/shared/cloud-upgrade.ts +49 -15
  778. package/src/plugins/builtin/shared/headless-market-data.ts +40 -0
  779. package/src/plugins/builtin/shared/headless-options.ts +33 -0
  780. package/src/plugins/builtin/shared/pane-footer.ts +4 -6
  781. package/src/plugins/builtin/shared/research-cloud-session.test.tsx +143 -0
  782. package/src/plugins/builtin/shared/research-cloud-session.ts +16 -0
  783. package/src/plugins/builtin/shared/screener-live-quotes.test.ts +13 -0
  784. package/src/plugins/builtin/shared/screener-live-quotes.ts +10 -9
  785. package/src/plugins/builtin/shared/series-cache.test.ts +106 -0
  786. package/src/plugins/builtin/shared/series-cache.ts +94 -49
  787. package/src/plugins/builtin/shared/table-pane.ts +4 -1
  788. package/src/plugins/builtin/shared/ticker-request.test.tsx +137 -0
  789. package/src/plugins/builtin/shared/ticker-request.ts +11 -46
  790. package/src/plugins/builtin/shared/ticker-surface.test.ts +1 -1
  791. package/src/plugins/builtin/shared/ticker-surface.ts +4 -3
  792. package/src/plugins/builtin/shared/use-quote-board.test.tsx +73 -6
  793. package/src/plugins/builtin/shared/use-quote-board.ts +18 -10
  794. package/src/plugins/builtin/short-interest/client.test.ts +47 -0
  795. package/src/plugins/builtin/short-interest/client.ts +5 -10
  796. package/src/plugins/builtin/short-interest/model.ts +2 -4
  797. package/src/plugins/builtin/short-interest/pane.test.tsx +57 -0
  798. package/src/plugins/builtin/short-interest/pane.tsx +21 -69
  799. package/src/plugins/builtin/thirteenf/api.test.ts +91 -0
  800. package/src/plugins/builtin/thirteenf/api.ts +78 -88
  801. package/src/plugins/builtin/thirteenf/data.test.ts +177 -1
  802. package/src/plugins/builtin/thirteenf/data.ts +118 -38
  803. package/src/plugins/builtin/thirteenf/format.ts +2 -0
  804. package/src/plugins/builtin/thirteenf/headless.test.ts +36 -0
  805. package/src/plugins/builtin/thirteenf/headless.ts +27 -8
  806. package/src/plugins/builtin/thirteenf/model.test.ts +90 -24
  807. package/src/plugins/builtin/thirteenf/model.ts +129 -82
  808. package/src/plugins/builtin/thirteenf/pane.test.tsx +27 -92
  809. package/src/plugins/builtin/thirteenf/pane.tsx +55 -33
  810. package/src/plugins/builtin/thirteenf/table.ts +2 -3
  811. package/src/plugins/builtin/thirteenf/types.ts +13 -1
  812. package/src/plugins/builtin/ticker-detail/chart-tab-switch.test.tsx +17 -50
  813. package/src/plugins/builtin/ticker-detail/data-panes/historical-price-precision.test.tsx +120 -0
  814. package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.test.tsx +41 -0
  815. package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.tsx +36 -13
  816. package/src/plugins/builtin/ticker-detail/financials/aggregation.test.ts +79 -0
  817. package/src/plugins/builtin/ticker-detail/financials/aggregation.ts +90 -13
  818. package/src/plugins/builtin/ticker-detail/financials/model.test.ts +152 -0
  819. package/src/plugins/builtin/ticker-detail/financials/model.ts +139 -22
  820. package/src/plugins/builtin/ticker-detail/financials/period-integrity.test.tsx +77 -0
  821. package/src/plugins/builtin/ticker-detail/financials/schema.ts +3 -3
  822. package/src/plugins/builtin/ticker-detail/financials/tab.tsx +71 -49
  823. package/src/plugins/builtin/ticker-detail/fund-profile.test.tsx +118 -0
  824. package/src/plugins/builtin/ticker-detail/headless-schema.ts +59 -0
  825. package/src/plugins/builtin/ticker-detail/headless.test.ts +165 -0
  826. package/src/plugins/builtin/ticker-detail/headless.ts +150 -0
  827. package/src/plugins/builtin/ticker-detail/index.tsx +34 -22
  828. package/src/plugins/builtin/ticker-detail/overview/components.tsx +21 -22
  829. package/src/plugins/builtin/ticker-detail/overview/model.test.ts +118 -0
  830. package/src/plugins/builtin/ticker-detail/overview/model.ts +65 -43
  831. package/src/plugins/builtin/ticker-detail/overview/pane.tsx +2 -1
  832. package/src/plugins/builtin/ticker-detail/overview/types.ts +2 -0
  833. package/src/plugins/builtin/ticker-detail/overview-return-coverage.test.tsx +71 -0
  834. package/src/plugins/builtin/ticker-detail/overview-tab.tsx +92 -80
  835. package/src/plugins/builtin/ticker-detail/pane.tsx +42 -19
  836. package/src/plugins/builtin/ticker-detail/quote-footer.ts +28 -0
  837. package/src/plugins/builtin/ticker-detail/quote-monitor/card.tsx +18 -9
  838. package/src/plugins/builtin/ticker-detail/quote-monitor/index.test.tsx +21 -29
  839. package/src/plugins/builtin/ticker-detail/quote-monitor/retained-status.test.tsx +134 -0
  840. package/src/plugins/builtin/ticker-detail/quote-status.test.tsx +116 -0
  841. package/src/plugins/builtin/ticker-detail/quote-time-integrity.test.ts +42 -0
  842. package/src/plugins/builtin/ticker-research-plugin.ts +8 -0
  843. package/src/plugins/builtin/treasury-auctions/cache.test.ts +43 -1
  844. package/src/plugins/builtin/treasury-auctions/cache.ts +29 -67
  845. package/src/plugins/builtin/treasury-auctions/client.test.ts +26 -8
  846. package/src/plugins/builtin/treasury-auctions/client.ts +28 -4
  847. package/src/plugins/builtin/treasury-auctions/headless.ts +2 -0
  848. package/src/plugins/builtin/treasury-auctions/model.test.ts +22 -0
  849. package/src/plugins/builtin/treasury-auctions/model.ts +28 -25
  850. package/src/plugins/builtin/treasury-auctions/pane.test.tsx +7 -22
  851. package/src/plugins/builtin/treasury-auctions/pane.tsx +32 -37
  852. package/src/plugins/builtin/treasury-auctions/types.ts +2 -2
  853. package/src/plugins/builtin/volatility/index.tsx +18 -47
  854. package/src/plugins/builtin/world-indices/headless.ts +4 -3
  855. package/src/plugins/builtin/world-indices/index.tsx +12 -5
  856. package/src/plugins/builtin/world-indices/pane.test.tsx +55 -15
  857. package/src/plugins/builtin/world-indices/table.tsx +3 -3
  858. package/src/plugins/builtin/world-venue-map/map.desktop.test.tsx +12 -73
  859. package/src/plugins/builtin/world-venue-map/pane.tsx +5 -7
  860. package/src/plugins/builtin/yield-curve/chart.test.ts +32 -0
  861. package/src/plugins/builtin/yield-curve/chart.ts +37 -0
  862. package/src/plugins/builtin/yield-curve/headless.test.ts +23 -7
  863. package/src/plugins/builtin/yield-curve/headless.ts +24 -7
  864. package/src/plugins/builtin/yield-curve/history.test.ts +124 -0
  865. package/src/plugins/builtin/yield-curve/history.ts +89 -0
  866. package/src/plugins/builtin/yield-curve/index.tsx +112 -97
  867. package/src/plugins/builtin/yield-curve/pane.test.tsx +137 -0
  868. package/src/plugins/builtin/yield-curve/treasury-data.test.ts +15 -5
  869. package/src/plugins/builtin/yield-curve/treasury-data.ts +25 -17
  870. package/src/plugins/bundle.test.ts +44 -1
  871. package/src/plugins/bundle.ts +59 -7
  872. package/src/plugins/catalog-backend.test.ts +1 -1
  873. package/src/plugins/catalog-backend.ts +0 -2
  874. package/src/plugins/catalog-browser.test.ts +9 -3
  875. package/src/plugins/catalog-browser.ts +37 -2
  876. package/src/plugins/catalog-manifest.ts +1 -3
  877. package/src/plugins/catalog-ui.ts +2 -6
  878. package/src/plugins/current-target.ts +17 -0
  879. package/src/plugins/external-runtime.ts +70 -0
  880. package/src/plugins/health.ts +21 -0
  881. package/src/plugins/host-contract.ts +26 -0
  882. package/src/plugins/host-link.test.ts +133 -0
  883. package/src/plugins/host-link.ts +49 -10
  884. package/src/plugins/host-module-imports.test.ts +94 -0
  885. package/src/plugins/host-module-imports.ts +73 -0
  886. package/src/plugins/host-modules.ts +2 -51
  887. package/src/plugins/host-resolver.test.ts +96 -0
  888. package/src/plugins/host-resolver.ts +102 -0
  889. package/src/plugins/host-smoke.ts +103 -0
  890. package/src/plugins/launch-layout.test.ts +131 -0
  891. package/src/plugins/launch-layout.ts +148 -0
  892. package/src/plugins/loader.test.ts +54 -0
  893. package/src/plugins/loader.ts +138 -36
  894. package/src/plugins/manager-node.ts +41 -0
  895. package/src/plugins/ownership.ts +4 -3
  896. package/src/plugins/pane-manager/dock-tree.ts +4 -2
  897. package/src/plugins/pane-manager/layout-state.ts +11 -4
  898. package/src/plugins/pane-manager/queries.ts +5 -4
  899. package/src/plugins/pane-manager.test.ts +22 -0
  900. package/src/plugins/pane-state.ts +48 -0
  901. package/src/plugins/plugin-names.ts +32 -0
  902. package/src/plugins/registry/contributions.ts +65 -126
  903. package/src/plugins/registry/index.test.ts +71 -5
  904. package/src/plugins/registry/index.ts +181 -102
  905. package/src/plugins/registry/pane-settings.ts +20 -14
  906. package/src/plugins/registry/plugin-state.ts +5 -20
  907. package/src/plugins/registry/setup-command.test.ts +62 -0
  908. package/src/plugins/registry/setup-command.ts +93 -0
  909. package/src/plugins/registry/shared.ts +1 -3
  910. package/src/plugins/registry/slots.ts +1 -1
  911. package/src/plugins/runtime/context.tsx +1 -0
  912. package/src/plugins/runtime/index.tsx +15 -49
  913. package/src/plugins/runtime/state.ts +28 -47
  914. package/src/plugins/seed.test.ts +57 -4
  915. package/src/plugins/seed.ts +28 -9
  916. package/src/plugins/team-state.ts +70 -0
  917. package/src/plugins/ticker-navigation.ts +5 -0
  918. package/src/plugins/web-bundled.ts +42 -0
  919. package/src/public/i18n.ts +17 -0
  920. package/src/public/layout.ts +12 -0
  921. package/src/public/market-data.ts +19 -0
  922. package/src/public/pane-hooks.ts +8 -1
  923. package/src/public/public-api.test.ts +39 -282
  924. package/src/public/quotes.ts +50 -0
  925. package/src/public/react.ts +44 -0
  926. package/src/public/remote.ts +23 -0
  927. package/src/public/test-support.ts +46 -1
  928. package/src/public/tickers.ts +40 -0
  929. package/src/public/time-series.ts +5 -0
  930. package/src/public/utils.ts +38 -2
  931. package/src/react/async-resource.test.tsx +106 -0
  932. package/src/react/async-resource.ts +65 -0
  933. package/src/react/plugins/plugin-slot.tsx +2 -10
  934. package/src/react/use-throttled-commit-value.ts +18 -1
  935. package/src/remote/app-host.tsx +17 -2
  936. package/src/remote/controller.test.ts +109 -3
  937. package/src/remote/controller.ts +44 -2
  938. package/src/remote/schema.ts +15 -0
  939. package/src/remote/semantic-tree.tsx +15 -7
  940. package/src/renderers/browser/app-services.ts +19 -52
  941. package/src/renderers/browser/bundled-plugins.test.ts +41 -0
  942. package/src/renderers/browser/bundled-plugins.ts +60 -0
  943. package/src/renderers/browser/cloud-transport.ts +8 -2
  944. package/src/renderers/browser/config-host.test.ts +1 -1
  945. package/src/renderers/browser/config-host.ts +1 -1
  946. package/src/renderers/browser/deeplink-bridge.test.ts +8 -4
  947. package/src/renderers/browser/deeplink-bridge.ts +18 -0
  948. package/src/renderers/browser/http-proxy-transport.test.ts +98 -0
  949. package/src/renderers/browser/http-proxy-transport.ts +83 -0
  950. package/src/renderers/browser/main.tsx +18 -2
  951. package/src/renderers/browser/research-entry.test.ts +24 -0
  952. package/src/renderers/browser/research-entry.ts +16 -2
  953. package/src/renderers/browser/storage.test.ts +7 -7
  954. package/src/renderers/cloudflare/http-proxy.test.ts +122 -0
  955. package/src/renderers/cloudflare/http-proxy.ts +197 -0
  956. package/src/renderers/cloudflare/worker.ts +7 -0
  957. package/src/renderers/electrobun/bun/core-capabilities.ts +0 -160
  958. package/src/renderers/electrobun/bun/desktop/host-requests.ts +4 -0
  959. package/src/renderers/electrobun/bun/external-plugins.ts +178 -63
  960. package/src/renderers/electrobun/bun/index.ts +49 -9
  961. package/src/renderers/electrobun/shared/protocol.ts +40 -4
  962. package/src/renderers/electrobun/view/app-services.ts +36 -90
  963. package/src/renderers/electrobun/view/backend-rpc.ts +12 -2
  964. package/src/renderers/electrobun/view/build-assets.ts +0 -1
  965. package/src/renderers/electrobun/view/capability-stream-client.ts +51 -0
  966. package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +110 -455
  967. package/src/renderers/electrobun/view/cli-pane-shot-frame.test.tsx +67 -0
  968. package/src/renderers/electrobun/view/cli-pane-shot-frame.tsx +39 -0
  969. package/src/renderers/electrobun/view/data-table/dom.ts +3 -0
  970. package/src/renderers/electrobun/view/data-table/frozen-column.test.tsx +73 -0
  971. package/src/renderers/electrobun/view/data-table/frozen-column.ts +22 -0
  972. package/src/renderers/electrobun/view/data-table/horizontal-navigation.test.tsx +77 -0
  973. package/src/renderers/electrobun/view/data-table/index.test.tsx +125 -0
  974. package/src/renderers/electrobun/view/data-table/index.tsx +48 -6
  975. package/src/renderers/electrobun/view/data-table/row.tsx +32 -3
  976. package/src/renderers/electrobun/view/desktop/control-styles.ts +7 -0
  977. package/src/renderers/electrobun/view/desktop/controls.test.tsx +141 -48
  978. package/src/renderers/electrobun/view/desktop/controls.tsx +86 -39
  979. package/src/renderers/electrobun/view/desktop/list-view.tsx +44 -9
  980. package/src/renderers/electrobun/view/dom-ui-host.tsx +4 -2
  981. package/src/renderers/electrobun/view/external-plugins.test.ts +13 -1
  982. package/src/renderers/electrobun/view/external-plugins.ts +47 -35
  983. package/src/renderers/electrobun/view/host/block-glyph-canvas.tsx +115 -0
  984. package/src/renderers/electrobun/view/host/box.test.tsx +50 -89
  985. package/src/renderers/electrobun/view/host/input.tsx +7 -1
  986. package/src/renderers/electrobun/view/host/media-surface.tsx +1 -2
  987. package/src/renderers/electrobun/view/host/scroll-box.desktop.test.tsx +26 -0
  988. package/src/renderers/electrobun/view/host/scroll-box.tsx +14 -6
  989. package/src/renderers/electrobun/view/host/text.tsx +28 -0
  990. package/src/renderers/electrobun/view/http-fetch.ts +3 -14
  991. package/src/renderers/electrobun/view/input-host.test.tsx +11 -47
  992. package/src/renderers/electrobun/view/input-host.tsx +1 -1
  993. package/src/renderers/electrobun/view/main.tsx +38 -6
  994. package/src/renderers/electrobun/view/native-stubs/native-stubs.test.ts +2 -7
  995. package/src/renderers/electrobun/view/remote/asset-data-client.ts +2 -0
  996. package/src/renderers/electrobun/view/remote/persistence.ts +2 -2
  997. package/src/renderers/electrobun/view/remote/quote-subscription-registry.ts +6 -1
  998. package/src/renderers/electrobun/view/rpc-codec.test.ts +64 -0
  999. package/src/renderers/electrobun/view/rpc-codec.ts +35 -0
  1000. package/src/renderers/electrobun/view/screenshot-watermark.test.ts +48 -0
  1001. package/src/renderers/electrobun/view/screenshot-watermark.ts +105 -0
  1002. package/src/renderers/electrobun/view/styles.css +16 -0
  1003. package/src/renderers/electrobun/view/test-utils.tsx +76 -0
  1004. package/src/renderers/electrobun/view/toast-host.test.tsx +8 -25
  1005. package/src/renderers/electrobun/view/ui-host.tsx +0 -3
  1006. package/src/renderers/electrobun/view/window-fullscreen.ts +57 -0
  1007. package/src/renderers/opentui/interaction-performance.ts +29 -3
  1008. package/src/renderers/opentui/scrollbox-layout.ts +35 -0
  1009. package/src/renderers/opentui/start.tsx +7 -40
  1010. package/src/renderers/opentui/test-utils.tsx +117 -6
  1011. package/src/renderers/opentui/ui-host.tsx +1 -1
  1012. package/src/renderers/share/chart.test.ts +52 -0
  1013. package/src/renderers/share/chart.ts +74 -0
  1014. package/src/renderers/share/main.tsx +10 -2
  1015. package/src/renderers/share/styles.css +29 -0
  1016. package/src/renderers/share/view.test.tsx +20 -0
  1017. package/src/renderers/share/view.tsx +24 -15
  1018. package/src/shares/api.test.ts +15 -0
  1019. package/src/shares/live.ts +27 -0
  1020. package/src/shares/pane.ts +3 -0
  1021. package/src/shares/payload.ts +35 -3
  1022. package/src/sources/gloomberb-cloud/history-coverage.test.ts +119 -0
  1023. package/src/sources/gloomberb-cloud/index.test.ts +307 -20
  1024. package/src/sources/gloomberb-cloud/index.ts +176 -62
  1025. package/src/sources/gloomberb-cloud/news.ts +11 -3
  1026. package/src/sources/gloomberb-cloud/normalizers.test.ts +27 -1
  1027. package/src/sources/gloomberb-cloud/normalizers.ts +29 -8
  1028. package/src/sources/gloomberb-cloud/quote-metadata.test.ts +50 -0
  1029. package/src/sources/gloomberb-cloud/valuation-observations.ts +29 -0
  1030. package/src/sources/history-coverage.test.ts +40 -0
  1031. package/src/sources/history-coverage.ts +97 -0
  1032. package/src/sources/listing-history.ts +52 -0
  1033. package/src/sources/listing-target.ts +41 -0
  1034. package/src/sources/provider-router/arca-cache.test.ts +97 -0
  1035. package/src/sources/provider-router/batches.ts +21 -5
  1036. package/src/sources/provider-router/broker-session.test.ts +52 -0
  1037. package/src/sources/provider-router/brokers.ts +1 -0
  1038. package/src/sources/provider-router/cache.test.ts +133 -0
  1039. package/src/sources/provider-router/cache.ts +113 -8
  1040. package/src/sources/provider-router/cached-financials.test.ts +104 -14
  1041. package/src/sources/provider-router/cached-routes.test.ts +212 -0
  1042. package/src/sources/provider-router/cached-routes.ts +223 -0
  1043. package/src/sources/provider-router/connection-health.ts +1 -0
  1044. package/src/sources/provider-router/financial-routes.ts +90 -26
  1045. package/src/sources/provider-router/financials.test.ts +97 -1
  1046. package/src/sources/provider-router/financials.ts +217 -44
  1047. package/src/sources/provider-router/fixtures/quarterly-source-disagreements.json +438 -0
  1048. package/src/sources/provider-router/history-boundary-cache.test.ts +72 -0
  1049. package/src/sources/provider-router/history-gap-cache.test.ts +84 -0
  1050. package/src/sources/provider-router/history-gaps.test.ts +141 -0
  1051. package/src/sources/provider-router/history.test.ts +124 -3
  1052. package/src/sources/provider-router/history.ts +156 -46
  1053. package/src/sources/provider-router/index.test.ts +19 -13
  1054. package/src/sources/provider-router/index.ts +83 -18
  1055. package/src/sources/provider-router/listing-history.test.ts +139 -0
  1056. package/src/sources/provider-router/listing-identity.test.ts +128 -0
  1057. package/src/sources/provider-router/non-company-metadata.test.ts +95 -0
  1058. package/src/sources/provider-router/o-income-basis.test.ts +64 -0
  1059. package/src/sources/provider-router/primary.ts +44 -8
  1060. package/src/sources/provider-router/profile-enrichment.test.ts +171 -0
  1061. package/src/sources/provider-router/quote-completion.test.ts +62 -0
  1062. package/src/sources/provider-router/quote-domain.test.ts +92 -0
  1063. package/src/sources/provider-router/routing.ts +2 -30
  1064. package/src/sources/provider-router/search.ts +2 -11
  1065. package/src/sources/provider-router/shell-history-cache.test.ts +131 -0
  1066. package/src/sources/provider-router/statement-history.test.ts +71 -0
  1067. package/src/sources/provider-router/statement-history.ts +15 -0
  1068. package/src/sources/provider-router/statement-observations.test.ts +126 -0
  1069. package/src/sources/provider-router/streaming.ts +1 -1
  1070. package/src/sources/provider-router/supplemental.ts +2 -389
  1071. package/src/sources/provider-router/valuation-retractions.test.ts +280 -0
  1072. package/src/sources/sec-edgar-shares.fixture.json +188 -0
  1073. package/src/sources/sec-edgar-shares.test.ts +66 -0
  1074. package/src/sources/sec-edgar.test.ts +146 -0
  1075. package/src/sources/sec-edgar.ts +136 -37
  1076. package/src/sources/sec-income-attribution.test.ts +93 -0
  1077. package/src/sources/yahoo-finance/financials.ts +23 -23
  1078. package/src/sources/yahoo-finance/mappers.test.ts +95 -1
  1079. package/src/sources/yahoo-finance/mappers.ts +104 -43
  1080. package/src/sources/yahoo-finance/options.test.ts +13 -0
  1081. package/src/sources/yahoo-finance/options.ts +4 -2
  1082. package/src/sources/yahoo-finance/quote-summary.ts +25 -12
  1083. package/src/sources/yahoo-finance/requests.test.ts +37 -0
  1084. package/src/sources/yahoo-finance/requests.ts +9 -2
  1085. package/src/sources/yahoo-finance/snapshots.test.ts +140 -0
  1086. package/src/sources/yahoo-finance/snapshots.ts +21 -11
  1087. package/src/sources/yahoo-finance/symbols.test.ts +8 -0
  1088. package/src/sources/yahoo-finance/symbols.ts +60 -11
  1089. package/src/sources/yahoo-finance/types.ts +8 -0
  1090. package/src/sources/yahoo-finance/yahoo-chart-interval.ts +18 -0
  1091. package/src/sources/yahoo-finance.test.ts +20 -0
  1092. package/src/sources/yahoo-finance.ts +54 -20
  1093. package/src/state/app/bootstrap.test.ts +124 -0
  1094. package/src/state/app/bootstrap.ts +106 -130
  1095. package/src/state/app/context/index.test.tsx +56 -0
  1096. package/src/state/app/context/index.tsx +101 -31
  1097. package/src/state/app/context/selector.test.tsx +38 -2
  1098. package/src/state/config-save-scheduler.ts +16 -4
  1099. package/src/state/hooks/inline-ticker-failures.test.ts +77 -0
  1100. package/src/state/hooks/inline-ticker-failures.ts +100 -0
  1101. package/src/state/hooks/inline-tickers.test.tsx +47 -11
  1102. package/src/state/hooks/inline-tickers.ts +254 -85
  1103. package/src/state/hooks/quote-streaming.ts +6 -13
  1104. package/src/state/hooks/session-snapshot.ts +9 -5
  1105. package/src/state/persist-scheduler.test.ts +54 -1
  1106. package/src/state/persist-scheduler.ts +36 -3
  1107. package/src/state/session-persistence.test.ts +46 -0
  1108. package/src/sync/core-contributors.test.ts +35 -6
  1109. package/src/sync/core-contributors.ts +30 -27
  1110. package/src/test-support/market-session.ts +12 -0
  1111. package/src/test-support/pane.tsx +52 -0
  1112. package/src/test-support/plugin-runtime.ts +5 -0
  1113. package/src/theme/color-utils.ts +90 -33
  1114. package/src/tickers/instrument-label.ts +10 -0
  1115. package/src/tickers/list.test.ts +1 -0
  1116. package/src/tickers/list.ts +1 -1
  1117. package/src/tickers/metadata.ts +4 -1
  1118. package/src/tickers/open-target.test.ts +86 -0
  1119. package/src/tickers/open-target.ts +48 -9
  1120. package/src/tickers/search/identity.ts +19 -0
  1121. package/src/tickers/search/index.test.ts +263 -8
  1122. package/src/tickers/search/index.ts +164 -29
  1123. package/src/tickers/search/ranking.ts +85 -9
  1124. package/src/tickers/search/types.ts +5 -1
  1125. package/src/tickers/search/upsert.ts +14 -6
  1126. package/src/tickers/search-contract-context.test.tsx +161 -0
  1127. package/src/tickers/search-contract-templates.test.ts +83 -0
  1128. package/src/tickers/selection.ts +21 -0
  1129. package/src/time-series/alignment.ts +11 -3
  1130. package/src/time-series/bond-price-history.test.ts +52 -0
  1131. package/src/time-series/chart-data.test.ts +44 -12
  1132. package/src/time-series/chart-data.ts +36 -8
  1133. package/src/time-series/economic.test.ts +44 -0
  1134. package/src/time-series/economic.ts +42 -0
  1135. package/src/time-series/field-catalog.ts +3 -2
  1136. package/src/time-series/financial-history-request.test.ts +20 -0
  1137. package/src/time-series/financial-period-coverage.test.ts +37 -0
  1138. package/src/time-series/financial-period-coverage.ts +59 -0
  1139. package/src/time-series/financial-period-gaps.test.ts +128 -0
  1140. package/src/time-series/fixtures/q4-reported-common-income.json +394 -0
  1141. package/src/time-series/fixtures/q4-reported-per-share.json +305 -0
  1142. package/src/time-series/forward-valuation.test.ts +131 -0
  1143. package/src/time-series/forward-valuation.ts +247 -0
  1144. package/src/time-series/fundamentals.test.ts +111 -24
  1145. package/src/time-series/fundamentals.ts +260 -131
  1146. package/src/time-series/hooks.ts +7 -3
  1147. package/src/time-series/legacy-contract-live.test.ts +23 -0
  1148. package/src/time-series/live-quotes.test.ts +5 -2
  1149. package/src/time-series/live-quotes.ts +23 -29
  1150. package/src/time-series/market-price-units.test.ts +75 -0
  1151. package/src/time-series/market.ts +55 -15
  1152. package/src/time-series/price-comparison.test.ts +233 -0
  1153. package/src/time-series/price-comparison.ts +133 -0
  1154. package/src/time-series/price-history-integrity-window.test.ts +137 -0
  1155. package/src/time-series/price-history-integrity.test.ts +195 -0
  1156. package/src/time-series/q4-common-income.test.ts +63 -0
  1157. package/src/time-series/q4-per-share.test.ts +144 -0
  1158. package/src/time-series/reporting-currency.test.ts +99 -0
  1159. package/src/time-series/reporting-currency.ts +37 -0
  1160. package/src/time-series/reporting.ts +38 -2
  1161. package/src/time-series/resolve.test.ts +528 -366
  1162. package/src/time-series/resolve.ts +322 -76
  1163. package/src/time-series/sec-eps-research.test.ts +55 -0
  1164. package/src/time-series/session-history-domain.test.ts +160 -0
  1165. package/src/{cli/pane-functions/intraday-shot.ts → time-series/session-history.ts} +96 -42
  1166. package/src/time-series/spec-studies.test.ts +177 -6
  1167. package/src/time-series/studies.ts +173 -38
  1168. package/src/time-series/transforms.test.ts +38 -2
  1169. package/src/time-series/transforms.ts +5 -1
  1170. package/src/time-series/types.ts +30 -0
  1171. package/src/time-series/use-chart-resolution.test.tsx +72 -4
  1172. package/src/time-series/use-chart-resolution.ts +45 -28
  1173. package/src/time-series/valuation-currency.test.ts +127 -0
  1174. package/src/time-series/valuation-currency.ts +46 -0
  1175. package/src/time-series/valuation-denominator.test.ts +240 -0
  1176. package/src/time-series/valuation-live-status.test.ts +63 -0
  1177. package/src/time-series/valuation-price.test.ts +264 -0
  1178. package/src/time-series/valuation-price.ts +68 -0
  1179. package/src/types/broker.ts +2 -1
  1180. package/src/types/config.test.ts +31 -0
  1181. package/src/types/config.ts +49 -10
  1182. package/src/types/data-provider.ts +43 -0
  1183. package/src/types/exchange-rate.ts +13 -0
  1184. package/src/types/financials.ts +164 -2
  1185. package/src/types/headless.ts +23 -0
  1186. package/src/types/instrument.ts +11 -0
  1187. package/src/types/plugin.ts +108 -2
  1188. package/src/types/ticker.ts +10 -2
  1189. package/src/ui/context-menu.test.ts +2 -1
  1190. package/src/ui/context-menu.tsx +3 -3
  1191. package/src/ui/host.tsx +6 -2
  1192. package/src/ui/index.tsx +3 -4
  1193. package/src/utils/dom-screenshot.test.ts +52 -0
  1194. package/src/utils/dom-screenshot.ts +70 -15
  1195. package/src/utils/exchange-rate-snapshot.test.ts +22 -0
  1196. package/src/utils/exchange-rate-snapshot.ts +62 -0
  1197. package/src/utils/exchanges.test.ts +24 -0
  1198. package/src/utils/exchanges.ts +22 -11
  1199. package/src/utils/financial-statements.test.ts +74 -1
  1200. package/src/utils/financial-statements.ts +119 -14
  1201. package/src/utils/format.test.ts +21 -1
  1202. package/src/utils/format.ts +56 -23
  1203. package/src/utils/fundamentals.ts +15 -0
  1204. package/src/utils/fx-status.test.ts +16 -0
  1205. package/src/utils/fx-status.ts +46 -0
  1206. package/src/utils/http-proxy-response.ts +44 -0
  1207. package/src/utils/http-transport.ts +21 -1
  1208. package/src/utils/income-statement.ts +46 -0
  1209. package/src/utils/instrument-identity.test.ts +26 -0
  1210. package/src/utils/instrument-identity.ts +35 -0
  1211. package/src/utils/latest-financial-period.test.ts +19 -0
  1212. package/src/utils/latest-financial-period.ts +26 -0
  1213. package/src/utils/market-capitalization-consumers.test.ts +59 -0
  1214. package/src/utils/market-capitalization.test.ts +38 -0
  1215. package/src/utils/market-capitalization.ts +58 -0
  1216. package/src/utils/options.test.ts +20 -0
  1217. package/src/utils/options.ts +4 -4
  1218. package/src/utils/perf-marks.ts +26 -0
  1219. package/src/utils/plugin-proxy-hosts.json +16 -0
  1220. package/src/utils/plugin-proxy-hosts.ts +25 -0
  1221. package/src/utils/price-earnings.test.ts +39 -0
  1222. package/src/utils/price-earnings.ts +13 -0
  1223. package/src/utils/price-history-integrity.ts +61 -0
  1224. package/src/utils/price-history.test.ts +41 -3
  1225. package/src/utils/price-history.ts +90 -6
  1226. package/src/utils/reported-money.test.ts +25 -0
  1227. package/src/utils/reported-money.ts +31 -0
  1228. package/src/utils/screenshot-watermark.ts +27 -0
  1229. package/src/utils/sec-eps-basis.test.ts +82 -0
  1230. package/src/utils/sec-eps-basis.ts +152 -0
  1231. package/src/utils/sec.test.ts +12 -10
  1232. package/src/utils/sec.ts +4 -3
  1233. package/src/utils/semver.test.ts +31 -0
  1234. package/src/utils/semver.ts +48 -0
  1235. package/src/utils/sort-values.test.ts +11 -0
  1236. package/src/utils/sort-values.ts +2 -0
  1237. package/src/utils/statement-observations.ts +121 -0
  1238. package/src/cli/commands/automation.test.ts +0 -211
  1239. package/src/components/chart/native/surface/sync.ts +0 -34
  1240. package/src/components/command-bar/panel/body.tsx +0 -301
  1241. package/src/components/onboarding/account-step/chooser-panel.tsx +0 -51
  1242. package/src/plugins/builtin/ai/agent-history.ts +0 -143
  1243. package/src/plugins/builtin/ai/ask-ai-detail-tab.tsx +0 -466
  1244. package/src/plugins/builtin/ai/ask-ai.test.tsx +0 -365
  1245. package/src/plugins/builtin/ai/index.test.ts +0 -302
  1246. package/src/plugins/builtin/ai/index.tsx +0 -440
  1247. package/src/plugins/builtin/ai/pane-settings.test.ts +0 -155
  1248. package/src/plugins/builtin/ai/pane-settings.ts +0 -319
  1249. package/src/plugins/builtin/ai/pi/credential-store.test.ts +0 -80
  1250. package/src/plugins/builtin/ai/pi/credential-store.ts +0 -138
  1251. package/src/plugins/builtin/ai/pi/file-store.ts +0 -138
  1252. package/src/plugins/builtin/ai/pi/host.test.ts +0 -500
  1253. package/src/plugins/builtin/ai/pi/host.ts +0 -565
  1254. package/src/plugins/builtin/ai/pi/index.ts +0 -5
  1255. package/src/plugins/builtin/ai/pi/models-store.test.ts +0 -44
  1256. package/src/plugins/builtin/ai/pi/models-store.ts +0 -141
  1257. package/src/plugins/builtin/ai/pi/providers.ts +0 -68
  1258. package/src/plugins/builtin/ai/pi/runtime.test.ts +0 -240
  1259. package/src/plugins/builtin/ai/pi/runtime.ts +0 -636
  1260. package/src/plugins/builtin/ai/providers.test.ts +0 -68
  1261. package/src/plugins/builtin/ai/providers.ts +0 -191
  1262. package/src/plugins/builtin/ai/runner-selection.test.ts +0 -174
  1263. package/src/plugins/builtin/ai/runner-selection.ts +0 -193
  1264. package/src/plugins/builtin/ai/runner-selector.tsx +0 -153
  1265. package/src/plugins/builtin/ai/runner.test.ts +0 -198
  1266. package/src/plugins/builtin/ai/runner.ts +0 -316
  1267. package/src/plugins/builtin/ai/screener/contract.test.ts +0 -70
  1268. package/src/plugins/builtin/ai/screener/contract.ts +0 -136
  1269. package/src/plugins/builtin/ai/screener/editor-runtime.ts +0 -160
  1270. package/src/plugins/builtin/ai/screener/editor.tsx +0 -131
  1271. package/src/plugins/builtin/ai/screener/footer.ts +0 -104
  1272. package/src/plugins/builtin/ai/screener/keyboard.ts +0 -106
  1273. package/src/plugins/builtin/ai/screener/market-runtime.ts +0 -101
  1274. package/src/plugins/builtin/ai/screener/model.test.ts +0 -24
  1275. package/src/plugins/builtin/ai/screener/model.ts +0 -113
  1276. package/src/plugins/builtin/ai/screener/pane.test.tsx +0 -479
  1277. package/src/plugins/builtin/ai/screener/pane.tsx +0 -438
  1278. package/src/plugins/builtin/ai/screener/results-view.tsx +0 -144
  1279. package/src/plugins/builtin/ai/screener/results.ts +0 -139
  1280. package/src/plugins/builtin/ai/screener/runner.ts +0 -164
  1281. package/src/plugins/builtin/ai/screener/tabs-bar.tsx +0 -65
  1282. package/src/plugins/builtin/ai/settings.ts +0 -81
  1283. package/src/plugins/builtin/ai/ticker-context.ts +0 -65
  1284. package/src/plugins/builtin/ai/use-runtime-providers.ts +0 -28
  1285. package/src/plugins/builtin/ai/workspace/model.test.ts +0 -227
  1286. package/src/plugins/builtin/ai/workspace/model.ts +0 -283
  1287. package/src/plugins/builtin/ai/workspace/pane.test.tsx +0 -197
  1288. package/src/plugins/builtin/ai/workspace/pane.tsx +0 -907
  1289. package/src/plugins/builtin/chat/message/action-chip.tsx +0 -39
  1290. package/src/plugins/builtin/cloud/askg/verify.ts +0 -130
  1291. package/src/plugins/builtin/earnings/data/data.test.ts +0 -90
  1292. package/src/plugins/builtin/earnings/data/data.ts +0 -115
  1293. package/src/plugins/builtin/fear-greed/cache.test.ts +0 -90
  1294. package/src/plugins/builtin/fear-greed/cache.ts +0 -154
  1295. package/src/plugins/builtin/fear-greed/charts.tsx +0 -305
  1296. package/src/plugins/builtin/fear-greed/data.test.ts +0 -72
  1297. package/src/plugins/builtin/fear-greed/data.ts +0 -375
  1298. package/src/plugins/builtin/fear-greed/format.ts +0 -87
  1299. package/src/plugins/builtin/fear-greed/headless.test.ts +0 -53
  1300. package/src/plugins/builtin/fear-greed/headless.ts +0 -84
  1301. package/src/plugins/builtin/fear-greed/index.tsx +0 -43
  1302. package/src/plugins/builtin/fear-greed/pane.tsx +0 -169
  1303. package/src/plugins/builtin/ipo-calendar/cache.ts +0 -101
  1304. package/src/plugins/builtin/ipo-calendar/client.test.ts +0 -31
  1305. package/src/plugins/builtin/ipo-calendar/client.ts +0 -311
  1306. package/src/plugins/builtin/ipo-calendar/headless.test.ts +0 -89
  1307. package/src/plugins/builtin/ipo-calendar/headless.ts +0 -127
  1308. package/src/plugins/builtin/ipo-calendar/index.tsx +0 -68
  1309. package/src/plugins/builtin/ipo-calendar/model.ts +0 -133
  1310. package/src/plugins/builtin/ipo-calendar/pane.tsx +0 -328
  1311. package/src/plugins/builtin/ipo-calendar/types.ts +0 -19
  1312. package/src/plugins/builtin/market-halts/client.ts +0 -114
  1313. package/src/plugins/builtin/market-halts/index.tsx +0 -30
  1314. package/src/plugins/builtin/market-halts/model.test.ts +0 -187
  1315. package/src/plugins/builtin/market-halts/model.ts +0 -291
  1316. package/src/plugins/builtin/market-halts/pane.tsx +0 -256
  1317. package/src/plugins/builtin/market-heatmap/data.test.ts +0 -122
  1318. package/src/plugins/builtin/market-heatmap/data.ts +0 -305
  1319. package/src/plugins/builtin/market-heatmap/index.tsx +0 -400
  1320. package/src/plugins/builtin/market-valuation/model.ts +0 -8
  1321. package/src/plugins/builtin/notes/sync.test.ts +0 -49
  1322. package/src/plugins/builtin/notes/sync.ts +0 -98
  1323. package/src/plugins/builtin/polls/client.ts +0 -57
  1324. package/src/plugins/builtin/polls/hooks.ts +0 -20
  1325. package/src/plugins/builtin/polls/index.tsx +0 -35
  1326. package/src/plugins/builtin/polls/normalize.test.ts +0 -230
  1327. package/src/plugins/builtin/polls/normalize.ts +0 -319
  1328. package/src/plugins/builtin/polls/pane.tsx +0 -722
  1329. package/src/plugins/builtin/polls/types.ts +0 -77
  1330. package/src/plugins/builtin/scanner/waiting.tsx +0 -11
  1331. package/src/plugins/builtin/shared/public-share.ts +0 -23
  1332. package/src/plugins/builtin/tv/channels.ts +0 -27
  1333. package/src/plugins/builtin/tv/index.tsx +0 -40
  1334. package/src/plugins/builtin/tv/pane.tsx +0 -346
  1335. package/src/plugins/builtin/tv/youtube-embed.test.ts +0 -84
  1336. package/src/plugins/builtin/tv/youtube-embed.ts +0 -173
  1337. package/src/plugins/builtin/tv/youtube-stream.ts +0 -125
  1338. package/src/plugins/catalog-manifest.test.ts +0 -58
  1339. package/src/plugins/prediction-markets/backend-plugin.ts +0 -21
  1340. package/src/plugins/prediction-markets/cache.ts +0 -163
  1341. package/src/plugins/prediction-markets/capability.test.ts +0 -281
  1342. package/src/plugins/prediction-markets/capability.ts +0 -171
  1343. package/src/plugins/prediction-markets/categories.ts +0 -213
  1344. package/src/plugins/prediction-markets/chart.tsx +0 -158
  1345. package/src/plugins/prediction-markets/cli.ts +0 -28
  1346. package/src/plugins/prediction-markets/columns.ts +0 -134
  1347. package/src/plugins/prediction-markets/controller/catalog.ts +0 -395
  1348. package/src/plugins/prediction-markets/controller/data.ts +0 -177
  1349. package/src/plugins/prediction-markets/controller/detail.ts +0 -247
  1350. package/src/plugins/prediction-markets/controller/effects.ts +0 -253
  1351. package/src/plugins/prediction-markets/controller/index.ts +0 -368
  1352. package/src/plugins/prediction-markets/controller/keyboard.ts +0 -245
  1353. package/src/plugins/prediction-markets/controller/live-updates.ts +0 -86
  1354. package/src/plugins/prediction-markets/controller/selection.ts +0 -59
  1355. package/src/plugins/prediction-markets/controller/status.ts +0 -104
  1356. package/src/plugins/prediction-markets/detail/book.tsx +0 -144
  1357. package/src/plugins/prediction-markets/detail/outcomes.tsx +0 -101
  1358. package/src/plugins/prediction-markets/detail/overview.tsx +0 -84
  1359. package/src/plugins/prediction-markets/detail/pane.tsx +0 -344
  1360. package/src/plugins/prediction-markets/detail/rules.tsx +0 -31
  1361. package/src/plugins/prediction-markets/detail/shared.tsx +0 -49
  1362. package/src/plugins/prediction-markets/detail/trades.tsx +0 -101
  1363. package/src/plugins/prediction-markets/detail.test.tsx +0 -94
  1364. package/src/plugins/prediction-markets/headless.test.ts +0 -119
  1365. package/src/plugins/prediction-markets/headless.ts +0 -255
  1366. package/src/plugins/prediction-markets/index.tsx +0 -117
  1367. package/src/plugins/prediction-markets/keyboard.ts +0 -65
  1368. package/src/plugins/prediction-markets/launch.test.ts +0 -126
  1369. package/src/plugins/prediction-markets/launch.ts +0 -275
  1370. package/src/plugins/prediction-markets/metrics.ts +0 -328
  1371. package/src/plugins/prediction-markets/navigation.ts +0 -77
  1372. package/src/plugins/prediction-markets/outcome-order.ts +0 -19
  1373. package/src/plugins/prediction-markets/pane.test.tsx +0 -562
  1374. package/src/plugins/prediction-markets/pane.tsx +0 -347
  1375. package/src/plugins/prediction-markets/plugin.test.tsx +0 -645
  1376. package/src/plugins/prediction-markets/rows.ts +0 -229
  1377. package/src/plugins/prediction-markets/services/fetch.ts +0 -121
  1378. package/src/plugins/prediction-markets/services/kalshi/adapter.ts +0 -398
  1379. package/src/plugins/prediction-markets/services/kalshi/normalize.ts +0 -211
  1380. package/src/plugins/prediction-markets/services/kalshi/types.ts +0 -103
  1381. package/src/plugins/prediction-markets/services/polymarket/adapter.ts +0 -177
  1382. package/src/plugins/prediction-markets/services/polymarket/detail.ts +0 -356
  1383. package/src/plugins/prediction-markets/services/polymarket/normalize.ts +0 -239
  1384. package/src/plugins/prediction-markets/services/polymarket/types.ts +0 -66
  1385. package/src/plugins/prediction-markets/services/polymarket/ws.ts +0 -128
  1386. package/src/plugins/prediction-markets/settings.ts +0 -163
  1387. package/src/plugins/prediction-markets/test-helpers.tsx +0 -591
  1388. package/src/plugins/prediction-markets/types.ts +0 -179
  1389. package/src/plugins/registry/context.ts +0 -218
  1390. package/src/renderers/electrobun/bun/desktop/media.ts +0 -17
  1391. package/src/renderers/electrobun/view/ai-host.ts +0 -198
  1392. package/src/renderers/electrobun/view/native-stubs/chart/surface-sync.ts +0 -1
  1393. package/src/renderers/electrobun/view/resource-store.test.ts +0 -44
  1394. package/src/shares/chart-snapshot.test.ts +0 -34
  1395. package/src/shares/chart-snapshot.ts +0 -28
  1396. package/src/sources/provider-router/document-routes.ts +0 -203
  1397. package/src/types/media.ts +0 -19
package/README.md CHANGED
@@ -12,6 +12,8 @@ Desktop app for macOS and Windows. Terminal UI for macOS, Linux, and Windows.
12
12
   · 
13
13
  <a href="#install"><strong>Install the TUI</strong></a>
14
14
  &nbsp;&middot;&nbsp;
15
+ <a href="https://term.gloom.sh"><strong>Open in browser</strong></a>
16
+ &nbsp;&middot;&nbsp;
15
17
  <a href="README.zh-CN.md">简体中文</a>
16
18
 
17
19
  <br />
@@ -21,349 +23,80 @@ Desktop app for macOS and Windows. Terminal UI for macOS, Linux, and Windows.
21
23
 
22
24
  </div>
23
25
 
24
- ## Desktop App or TUI?
25
-
26
- Gloomberb has two ways in:
27
-
28
- | Surface | Best for | How it runs |
29
- |---------|----------|-------------|
30
- | Desktop app | A polished app window, pop-out panes, OS shortcuts, and built-in updates | Published for macOS and Windows. It also installs a `gloomberb` terminal command for the TUI. |
31
- | Terminal UI | Fast keyboard workflows inside your terminal, SSH/dev boxes, Linux machines, and script-friendly setups | Runs with `gloomberb` on macOS, Linux, and Windows. |
32
- | Browser app | The shared DOM interface without an install | Open [term.gloom.sh](https://term.gloom.sh). |
33
-
34
- The desktop app and TUI share the full command language and plugin system. The browser app uses the same official DOM renderer and layout with a reviewed browser plugin catalog.
35
-
36
- ## Browser App
26
+ - **Research companies:** quotes, charts, financials, filings, options, and analyst ratings.
27
+ - **Follow markets:** news, global indices, FX, economic events, and market scanners.
28
+ - **Manage your workspace:** portfolios, watchlists, broker connections, alerts, notes, and AI tools.
37
29
 
38
- [term.gloom.sh](https://term.gloom.sh) requires a free Gloom Cloud account. The workspace loads behind a sign-in panel that cannot be dismissed, and a session opens it; configuration, tickers, layouts, session state, and plugin state are stored in the browser. Free accounts receive rate-limited, 15-minute-delayed Gloom Cloud market data and read-only chat until the email is verified; Pro accounts receive realtime market data. Public share pages stay open to everyone with no account. Cloud REST and WebSocket traffic uses the same-origin `/api` path, which the Worker forwards only to `https://api.gloom.sh`; it is not an arbitrary network proxy.
39
-
40
- The browser build intentionally omits brokers and native integrations, filesystem notes, local AI, external plugins, updater/debug tools, application menus, native window controls, pop-out native windows, and native context menus. Modules that still depend on desktop-only or CORS-blocked feeds are also absent for now: RSS/Substack, prediction markets and polls, market halts/heatmap/movers, dividend/ownership/SEC panes, earnings/IPO, and TV. Public shares open under `/s/:id` in a separate slim bundle. Share creation and owner deletion use the signed-in Gloom Cloud session through the same fixed API path; public reads require no account.
41
-
42
- Local browser development:
43
-
44
- ```bash
45
- bun run web:build
46
- bunx wrangler dev
47
- ```
48
-
49
- Validate the public artifacts with `bun run web:audit` and `bun run cloudflare:dry-run`. `wrangler.jsonc` remains generic for local checks. After verification passes on `main`, GitHub Actions deploys `term.gloom.sh` with `wrangler.production.jsonc`. The private Gloom Cloud API is deployed separately.
30
+ The desktop app and TUI share the command language and plugin system. The [browser app](https://term.gloom.sh) offers a smaller feature set and requires a free Gloom Cloud account: free market data is rate-limited and delayed by 15 minutes; Pro provides realtime data. See [browser features and limits](docs/browser.md).
50
31
 
51
32
  ## Install
52
33
 
53
- ### macOS
34
+ ### Desktop
54
35
 
55
- Install the desktop app and the `gloomberb` terminal command:
36
+ On **macOS (Apple Silicon)**:
56
37
 
57
38
  ```bash
58
39
  brew install --cask vincelwt/tap/gloomberb
59
- # or
60
- curl -fsSL gloom.sh/install | bash
61
40
  ```
62
41
 
63
- Both install `Gloomberb.app` and a `gloomberb` command that runs the TUI through the app bundle, so the bundled runtime is stored once.
64
-
65
- `Gloomberb.app` is Apple Silicon (arm64) only. On an Intel Mac the install script installs the standalone `gloomberb` terminal app instead, and the Homebrew cask refuses to install rather than leaving an app that cannot launch.
42
+ On **Windows 11**, [download the installer](https://github.com/gloom-sh/gloomberb/releases/latest/download/stable-win-x64-GloomberbSetup.exe). It supports x64, and ARM64 through x64 emulation.
66
43
 
67
- Prefer a direct download?
44
+ Both desktop installers include the `gloomberb` terminal command.
68
45
 
69
- - [Download Gloomberb for Mac](https://gloom.sh/download/desktop)
46
+ ### Terminal
70
47
 
71
- ### Linux
72
-
73
- Install the standalone TUI binary:
48
+ On **macOS or Linux**:
74
49
 
75
50
  ```bash
76
51
  curl -fsSL gloom.sh/install | bash
77
52
  ```
78
53
 
79
- This installs `gloomberb` to `~/.local/bin` by default. A Linux desktop package is not published yet.
80
-
81
- ### Windows
54
+ On Apple Silicon Macs, this installs the desktop app and TUI. On Intel Macs and Linux, it installs the standalone TUI.
82
55
 
83
- Install the desktop app:
84
-
85
- - [Download GloomberbSetup.exe for Windows](https://github.com/gloom-sh/gloomberb/releases/latest/download/stable-win-x64-GloomberbSetup.exe)
86
-
87
- The installer supports Windows 11 on x64 and ARM64. On ARM64, the desktop app and its bundled `gloomberb` terminal command use Windows' built-in x64 emulation.
88
-
89
- For a terminal-only setup on x64, install Bun and use the package:
90
-
91
- ```powershell
92
- bun install -g gloomberb
93
- ```
94
-
95
- ### Terminal Package
96
-
97
- Already have Bun installed on any supported OS?
56
+ Or install with [Bun](https://bun.sh) on macOS, Linux, or Windows x64:
98
57
 
99
58
  ```bash
100
59
  bun install -g gloomberb
101
60
  ```
102
61
 
103
- Then run:
104
-
105
- ```bash
106
- gloomberb
107
- ```
108
-
109
- On macOS and Windows, desktop updates replace the installed app in place and keep the terminal command pointing at the updated runtime. Homebrew users can also update through `brew upgrade --cask gloomberb`.
110
-
111
- For the best terminal experience, use a [Kitty](https://sw.kovidgoyal.net/kitty/)-compatible terminal such as Ghostty, Kitty, or WezTerm.
112
-
113
- Live TV in the terminal also requires `mpv` with Kitty video output. Gloomberb resolves the stream in JavaScript and runs `mpv` with its `yt-dlp` integration disabled, so `yt-dlp` is not required.
62
+ Run `gloomberb` to launch. For graphics, use a Kitty-compatible terminal such as Ghostty, Kitty, or WezTerm. See the [installation guide](docs/installation.md) for direct downloads, install locations, and updates.
114
63
 
115
64
  ## Start
116
65
 
117
- Open command mode with `Ctrl+P`, then type a command. Press `` ` `` to open ticker search directly.
66
+ Press `Ctrl+P` to open the command bar, or press `` ` `` to search for a ticker. Desktop also supports `Cmd/Ctrl+K`.
118
67
 
119
68
  | Try | Opens |
120
69
  |-----|-------|
121
- | `DES AAPL` | Security details |
70
+ | `DES AAPL` | Company details |
122
71
  | `GP NVDA` | Price chart |
123
- | `G AAPL:price, MSFT:revenue` | Mixed-series chart |
124
- | `TOP` | Ranked market stories |
125
- | `HM` | Market heatmap |
126
- | `MOST` | Market movers |
127
- | `HILO` | New highs and new lows |
72
+ | `TOP` | Market stories |
128
73
  | `PF` | Portfolios and watchlists |
129
- | `KELLY AAPL` | Position sizing |
130
- | `HELP` | Full in-app shortcut list |
74
+ | `HELP` | Commands and keyboard shortcuts |
131
75
 
132
- ## What It Does
76
+ Use `Tab` to switch panes and `j` / `k` to navigate lists. The [user guide](docs/usage.md) covers charts, broker setup, keyboard shortcuts, and the full command reference. See [research data conventions](docs/research-data.md) for return definitions, financial sources, and model assumptions.
133
77
 
134
- - Research companies with quotes, charts, financials, filings, holders, insiders, options, analyst ratings, events, and relative valuation.
135
- - Follow markets with top stories, breaking news, sector feeds, Substack subscriptions, global indices, futures, FX, macro events, yield curves, Treasury auctions, market movers, new-high/new-low and options-flow scanners, and fear/greed.
136
- - Track portfolios and watchlists, connect brokers, set alerts, keep notes, run AI screens, browse prediction markets, and use Gloom Cloud chat.
78
+ ## CLI
137
79
 
138
- ### Broker position sync
80
+ Run commands directly from your shell:
139
81
 
140
- Use **New Portfolio** or **Add Broker Account** to connect a broker. Gloomberb can import positions from Interactive Brokers, Public, Robinhood, and SimpleFIN.
82
+ ```bash
83
+ gloomberb quote AAPL
84
+ gloomberb quote AAPL --json
85
+ gloomberb help
86
+ ```
141
87
 
142
- Each broker is a plugin with its own repository, installed on first launch and updatable on its own. Manage them from the plugin directory, or with `gloomberb install gloom-sh/gloomberb-public` and friends.
88
+ Output is human-readable by default; use `--json`, `--csv`, or `--ndjson` for scripts. See the [CLI reference](docs/usage.md#cli) for commands and flags.
143
89
 
144
- - Robinhood opens a browser sign-in page. Gloomberb uses only the read-only account and equity-position tools from the Robinhood Trading MCP server.
145
- - Public needs an API secret from Public API settings. Gloomberb creates a short-lived access token and uses only the account and portfolio endpoints.
146
- - SimpleFIN needs a one-time setup token from SimpleFIN Bridge. Gloomberb exchanges the token and imports only accounts that contain holdings.
90
+ ## Plugins and contributing
147
91
 
148
- Gloomberb saves the connection data on the local device. It does not include this data in Gloom Cloud synchronization. A later position sync updates the managed portfolios and removes positions that the broker no longer reports.
92
+ Plugins add panes, data providers, broker connections, and commands. Install one from GitHub:
149
93
 
150
- ## CLI
151
-
152
- Running `gloomberb` with no arguments launches the terminal UI. Normal commands run through a headless CLI path; use `gloomberb launch-ui` when a script should explicitly open the UI.
153
-
154
- Human-readable output is the default. Automation can opt into structured output with `--json`, `--csv`, or `--ndjson`. JSON output favors the richest fetched model available and includes display-column metadata when a command has table columns; CSV and NDJSON use the command's tabular row view. Common global flags include `--limit`, `--refresh`, `--quiet`, `--no-color`, `--dry-run`, and `--yes`.
155
-
156
- | Command | Use |
157
- |---------|-----|
158
- | `gloomberb` | Launch the terminal UI |
159
- | `gloomberb launch-ui` | Explicitly launch the terminal UI |
160
- | `gloomberb help` | Show all CLI commands |
161
- | `gloomberb api list|get|invoke|subscribe` | Inspect and call plugin capabilities directly |
162
- | `gloomberb quote <symbols>` | Fetch current quotes |
163
- | `gloomberb search <query>` / `provider-search <query>` | Search tickers and provider symbols |
164
- | `gloomberb ticker <symbol>` | Show quote, ownership, and financials |
165
- | `gloomberb history|financials|fundamentals|options <symbol>` | Fetch research data |
166
- | `gloomberb news|filings|holders|insider|13f|analyst|events|valuation <symbol>` | Fetch company research feeds |
167
- | `gloomberb movers|indices|sectors|fx|fear-greed|earnings` | Fetch market overview data |
168
- | `gloomberb econ|fred|yield-curve` | Fetch macro data |
169
- | `gloomberb compare|correlation|relationship <symbols>` | Compare securities |
170
- | `gloomberb portfolio [action]` | Manage manual portfolios |
171
- | `gloomberb watchlist [action]` | Manage watchlists |
172
- | `gloomberb notes|alerts [action]` | Manage local notes and alerts |
173
- | `gloomberb broker|ibkr [action]` | Inspect broker profiles |
174
- | `gloomberb ai providers|ask` | Use configured AI providers |
175
- | `gloomberb rss fetch <url>` | Fetch an RSS feed |
176
- | `gloomberb provider status` | Inspect enabled data providers |
177
- | `gloomberb config|cache|plugin|layout|pane|debug|doctor|version|changelog` | Inspect and manage local app state |
178
- | `gloomberb fn [...]` | Run a pane-backed report command |
179
- | `gloomberb shot [...]` | Capture a pane-backed screenshot |
180
- | `gloomberb predictions [...]` | Launch Prediction Markets |
181
- | `gloomberb plugins` | List installed plugins |
182
- | `gloomberb install <user/repo>` | Install a plugin from GitHub |
183
- | `gloomberb remove <name>` | Remove an installed plugin |
184
- | `gloomberb update [name]` | Update plugins |
185
-
186
- ## Plugins
187
-
188
- Everything from the portfolio list to broker integrations is a plugin. Plugins can add panes, tabs, columns, command bar commands, CLI commands, status bar widgets, and data providers.
189
-
190
- Core plugin areas include:
191
-
192
- - Portfolios, watchlists, manual entry, and broker connections
193
- - Ticker details, quotes, charts, options, filings, holders, insiders, and research
194
- - News, Substack reader feeds, market movers, global indices, sectors, FX, earnings, macro data, and yield curves
195
- - Prediction markets, alerts, notes, chat, AI screeners, and external plugins
196
-
197
- See [PLUGINS.md](PLUGINS.md) for the plugin API and the shared UI surface available through `gloomberb/components`.
198
-
199
- ## Keyboard
200
-
201
- | Key | Action |
202
- |-----|--------|
203
- | `Ctrl+P` | Open command mode |
204
- | `` ` `` | Open ticker search |
205
- | `Ctrl+,` | Open focused pane settings |
206
- | `Ctrl+W` | Close focused pane |
207
- | `Ctrl+Shift+M` | Move focused window (`WIN resize` starts resize mode) |
208
- | `Ctrl+Shift+D` | Dock or float focused pane |
209
- | `Ctrl+Shift+E` | Export focused pane table as CSV |
210
- | `Ctrl+Shift+L` | Layout actions |
211
- | `Ctrl+Shift+G` | Tidy windows |
212
- | `Tab` | Switch panes |
213
- | `j` / `k` | Navigate lists |
214
- | `h` / `l` | Switch tabs |
215
- | `m` | Cycle chart mode |
216
- | `q` | Quit |
217
-
218
- Desktop builds also accept `Cmd/Ctrl+K` for the command bar, the matching `Cmd` shortcuts on macOS, `Cmd/Ctrl+Shift+O` to pop out a pane, and `Cmd/Ctrl+Shift+C` to copy a focused pane screenshot.
219
-
220
- ## Command Reference
221
-
222
- Use `HELP` inside Gloomberb for the live shortcut list. The common command-bar prefixes are listed here for quick scanning.
223
-
224
- ### Company Research
225
-
226
- | Shortcut | Function |
227
- |----------|----------|
228
- | `DES <ticker>` / `T <ticker>` | Security details for a ticker |
229
- | `FA <ticker>` | Financial statement view |
230
- | `G <series>` | Custom chart composer |
231
- | `CAT [query]` | Browse and search chartable series |
232
- | `GP <ticker>` | Price chart |
233
- | `GIP <ticker>` | Intraday price chart |
234
- | `HP <ticker>` | Historical OHLCV prices |
235
- | `GF <tickers>` | Fundamental statement graph |
236
- | `GE <tickers>` | Valuation multiple graph |
237
- | `GR <tickers>` | Security relationship graph |
238
- | `EE <ticker>` | Events view with earnings and revenue estimates |
239
- | `EM [tickers]` | Earnings monitor |
240
- | `SRCH [query]` | Full-text search across earnings call transcripts, news, and SEC filings |
241
- | `QQ <tickers>` | Ticker quote monitor |
242
- | `CMP <tickers>` | Normalized price comparison |
243
- | `CORR <tickers>` | Ticker return correlations |
244
- | `ANR <ticker>` | Analyst targets and ratings |
245
- | `DIAG <ticker>` | Equity Diagnostic with cited flags and anomalies |
246
- | `SEC <ticker>` | SEC filings and company disclosures |
247
- | `OMON <ticker>` | Options monitor |
248
- | `OVME` | Black-Scholes option calculator with Greeks and implied volatility |
249
- | `HDS <ticker>` | Institutional holders |
250
- | `DVD <ticker>` | Dividend yield and history |
251
- | `SI <ticker>` | Short interest |
252
- | `13F [fund/ticker/CIK]` | 13F fund filings and holdings |
253
- | `INS <ticker>` | Insider activity |
254
- | `EVT <ticker>` | Corporate actions, earnings, and estimates |
255
- | `RV <tickers>` | Relative valuation |
256
-
257
- ### Chart Composer
258
-
259
- `G`, `GP`, `GIP`, `CMP`, `GF`, and `GE` all open the same chart composer with different starting presets. `CAT` opens a searchable catalog of those chartable series so you can graph one without typing the expression. A custom expression can mix unrelated data sources on one synchronized timeline:
260
-
261
- ```text
262
- G AAPL:price, MSFT:revenue, FRED:CPIAUCSL
94
+ ```bash
95
+ gloomberb install gloom-sh/gloomberb-tv
263
96
  ```
264
97
 
265
- Open **Series** to add, remove, reorder, or hide series and choose each series' field, chart style, transform, axis, panel, period, and panel scale. Price data supports candles, OHLC, HLC, line, and area; scalar data supports its compatible line, area, step, column, and point modes. Panels can use independent left/right axes and linear or logarithmic scales.
266
-
267
- The toolbar controls preset or exact date ranges, intervals from one minute through monthly, the primary chart mode, technical indicators, and pair formulas. Indicators include volume, SMA, EMA, Bollinger Bands, RSI, and MACD; formulas include ratio, spread, and rolling correlation. Mixed-frequency values use as-of alignment: fundamentals use filing dates when available, sparse series carry forward only after becoming available, and missing publication dates are called out in the chart status.
268
-
269
- ### Markets, News, and Macro
270
-
271
- | Shortcut | Function |
272
- |----------|----------|
273
- | `TOP` | Ranked market stories |
274
- | `HM` | Market heatmap for large US stocks and ETFs |
275
- | `MOST` | Top gainers, losers, most active, and trending tickers |
276
- | `HILO` | Session new highs and new lows with 30s/1m/5m momentum |
277
- | `FLOW` | Unusual options activity: sweeps, blocks, and large premium |
278
- | `PM <query>` | Polymarket and Kalshi prediction data |
279
- | `N` | News feed |
280
- | `CN <ticker>` | Ticker news |
281
- | `NI` | Sector news |
282
- | `SUB` | Authenticated Substack reader feed |
283
- | `FIRST` | Breaking news |
284
- | `TWIT <query>` | Ticker-related market posts |
285
- | `TBO` | TheBuildout infrastructure intelligence |
286
- | `CG` | Congress trading disclosures |
287
- | `WEI` | Global equity indices |
288
- | `MAP` | Live world venue map with local market status and clocks |
289
- | `FUT` | Front-month futures across index, rates, energy, metals, grains, and FX |
290
- | `ECO` | Economic events and releases |
291
- | `ECST [statistic]` | Economic statistics: inflation, labour, growth, consumer, housing, rates |
292
- | `GC` | Yield curve |
293
- | `AUCT` | Treasury auction results: high rate, bid-to-cover, indirect share, and size |
294
- | `VIX` | VIX 30-day/3-month implied-volatility curve |
295
- | `CRD` | Credit spreads |
296
- | `VAL [indicator]` | Whole-market valuation: Buffett, CAPE, excess CAPE yield, Tobin Q, investor equity allocation, dividend yield, margin debt, cap/profits, cap/M2 |
297
- | `CDS [ticker]` | Single-name corporate CDS activity: most-active issuers, or one issuer's trades |
298
- | `ERN` | Earnings calendar |
299
- | `IPO` | Upcoming and recent IPOs |
300
- | `HALT` | US trading halts with reason and resumption times |
301
- | `TV` | Live Bloomberg, CNBC, and Yahoo Finance television |
302
- | `BI` / `SP` | S&P 500 sector performance |
303
- | `FXC` | Major FX cross rates |
304
- | `FNG` | Fear and greed market gauge |
305
-
306
- ### Workspace and App Controls
307
-
308
- | Shortcut | Function |
309
- |----------|----------|
310
- | `PF` | Portfolio and watchlist workspace |
311
- | `PORT` | Portfolio risk and sector exposure |
312
- | `ALRT` | Price alerts |
313
- | `SA <symbol condition price>` | Create a price alert |
314
- | `AI <prompt>` | AI screener |
315
- | `AGENT` | Local AI research workspace |
316
- | `CHAT [channel]` | Gloom Cloud chat |
317
- | `DM @user [@user...]` | Open or start a direct or group chat |
318
- | `ACM` | Gloom Cloud account settings |
319
- | `NOTE` | Notes |
320
- | `IBKR` | IBKR trading pane |
321
- | `BR` | Broker connections |
322
- | `CHG` | Changelog |
323
- | `HELP` | Open shortcut and layout help |
324
- | `AW` / `AP <ticker>` | Add a ticker to the active watchlist or portfolio |
325
- | `RW` / `RP <ticker>` | Remove a ticker from the active watchlist or portfolio |
326
- | `PS` | Open focused pane settings |
327
- | `LAY` | Open the layout browser to switch, publish, or add layouts |
328
- | `LMA <query>` | Layout and pane arrangement actions |
329
- | `WIN move\|resize` | Move or resize the focused window |
330
- | `GL` | Tidy all windows |
331
- | `SB` | Toggle the status bar |
332
- | `VF` | Toggle quote value flashing |
333
- | `TH <theme>` | Change color theme |
334
- | `FONT+` / `FONT-` | Increase or decrease desktop font size |
335
- | `CONN` | Connection health |
336
- | `POLL` | Prediction-market polls |
337
- | `UPGRADE` | Account upgrade |
338
- | `CR` | Cycle chart renderer |
339
- | `LANG <locale>` | Change interface language (`auto`, `en`, `es`, `zh-CN`, `zh-TW`, `ja`, or `ko`) |
340
- | `PL <plugin>` | Manage plugins |
341
-
342
- Published layouts preserve portable pane setup and state, including searches, chart viewport, and drawings. Credentials, accounts, portfolios, and pane fields marked private stay local. Publishing copies a durable `term.gloom.sh/l/...` link for social sharing.
343
-
344
- ## Gloom Cloud sign-in
345
-
346
- Sign in with email and password, or pick `Log In with QR Code` from the command bar and scan the code with the Gloomberb mobile companion app to sign the terminal in without typing. The onboarding wizard offers the same QR option as the recommended path, with email and password as the alternative.
347
-
348
- ## Localized interface
349
-
350
- Gloomberb includes English, Spanish, Simplified Chinese, Traditional Chinese, Japanese, and Korean UI support. English remains the default fallback language.
351
-
352
- - **Automatic detection:** supported `LANG` / `LC_ALL` and desktop system locales select the matching interface automatically.
353
- - **Command switching:** enter `LANG` in the command bar (Ctrl+P) to cycle languages, or use `LANG auto`, `LANG en`, `LANG es`, `LANG zh-CN`, `LANG zh-TW`, `LANG ja`, or `LANG ko`. The choice is persisted in `config.json`.
354
- - **One-run override:** `GLOOMBERB_LANG=ja gloomberb` (or another supported locale) takes highest priority in environments that expose process locale variables.
355
-
356
- Implementation notes:
357
-
358
- - Locale dictionaries live in [src/i18n](src/i18n), keyed by the original English UI text. Missing entries safely fall back to English.
359
- - Shared render sinks call `t()` / `tf()` / `tc()` for pane titles, the command bar, menus, settings, tabs, help, and onboarding.
360
- - Finance abbreviations such as BID, ASK, and CHG% intentionally remain in English for terminal conventions and fixed-width alignment.
361
- - CJK wide characters and grapheme clusters are measured by [src/utils/format.ts](src/utils/format.ts) using terminal display-cell widths.
362
-
363
- ## License
364
-
365
- MIT
366
-
367
- ## Credits
368
-
369
- - [OpenTUI](https://opentui.com/) for the layout engine
98
+ See the [plugin development guide](PLUGINS.md), [TV setup](docs/usage.md#live-tv), or [contributing guide](CONTRIBUTING.md) to get started.
99
+
100
+ Available in English, Spanish, Simplified Chinese, Traditional Chinese, Japanese, and Korean. Use `LANG` in the command bar to switch; see [language settings](docs/usage.md#localized-interface).
101
+
102
+ [MIT licensed](LICENSE). Built with [OpenTUI](https://opentui.com/).