gloomberb 0.15.3 → 0.15.5

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 (578) hide show
  1. package/README.md +3 -1
  2. package/package.json +4 -3
  3. package/src/api-client/askg.ts +2 -2
  4. package/src/api-client/cot.ts +3 -3
  5. package/src/api-client/crypto-markets.ts +1 -1
  6. package/src/api-client/data.ts +17 -0
  7. package/src/api-client/debt-maturities.ts +2 -2
  8. package/src/api-client/earnings.ts +3 -3
  9. package/src/api-client/equity-screener.ts +2 -2
  10. package/src/api-client/estimate-revisions.ts +5 -5
  11. package/src/api-client/index.ts +8 -10
  12. package/src/api-client/ipo.ts +4 -4
  13. package/src/api-client/market-movers.ts +1 -1
  14. package/src/api-client/mna.ts +2 -2
  15. package/src/api-client/normalizers.ts +1 -1
  16. package/src/api-client/paths.ts +2 -2
  17. package/src/api-client/plan-rules.ts +2 -2
  18. package/src/api-client/rates.ts +1 -1
  19. package/src/api-client/request.ts +1 -1
  20. package/src/api-client/social-mentions.ts +1 -1
  21. package/src/api-client/types.ts +32 -32
  22. package/src/api-client/yield-curves.ts +47 -0
  23. package/src/app/app-bootstrap-state.ts +0 -2
  24. package/src/app/global-shortcuts.ts +21 -0
  25. package/src/app/keybindings/actions.ts +9 -1
  26. package/src/app/keybindings/chord.ts +1 -1
  27. package/src/app/keybindings/index.ts +0 -14
  28. package/src/app/keybindings/labels.ts +1 -1
  29. package/src/app/keybindings/resolve.ts +1 -8
  30. package/src/app/pane-runtime/index.tsx +7 -14
  31. package/src/app/pane-runtime/layout-placement.ts +1 -30
  32. package/src/app/pane-runtime/plugin-bindings.ts +184 -180
  33. package/src/app/pane-runtime/ticker-inspector-runtime.ts +5 -5
  34. package/src/app/pane-runtime/ticker-open-runtime.ts +5 -5
  35. package/src/app/pane-template-dialog-wizard.tsx +13 -5
  36. package/src/app/runtime/broker-import.ts +1 -1
  37. package/src/app/runtime/desktop-deeplink.ts +4 -4
  38. package/src/app/runtime/desktop-menu.ts +4 -4
  39. package/src/app/runtime/layout-warmup.ts +1 -1
  40. package/src/app/runtime/plugin-bindings.ts +187 -188
  41. package/src/app/runtime/update.ts +1 -1
  42. package/src/app.tsx +3 -3
  43. package/src/brokers/signed-in/adapter.ts +1 -1
  44. package/src/brokers/signed-in/client.ts +1 -1
  45. package/src/brokers/signed-in/connect.ts +1 -1
  46. package/src/brokers/signed-in/sign-in.ts +1 -1
  47. package/src/cli/commands/plugins.ts +3 -3
  48. package/src/cli/desktop-pane-shot.ts +3 -3
  49. package/src/cli/errors.ts +3 -3
  50. package/src/cli/pane-functions/capabilities.ts +2 -2
  51. package/src/cli/pane-functions/dom.ts +1 -1
  52. package/src/cli/pane-functions/function-help.ts +1031 -0
  53. package/src/cli/pane-functions/headless.ts +1 -1
  54. package/src/cli/pane-functions/options.ts +1 -1
  55. package/src/cli/pane-functions/report.ts +1 -1
  56. package/src/cli/pane-functions/screenshot-evidence.ts +3 -3
  57. package/src/cli/pane-functions/screenshot.ts +5 -6
  58. package/src/cli/restore-plugins.ts +1 -1
  59. package/src/components/chart/composite/column-layout.ts +1 -1
  60. package/src/components/chart/composite/composite-chart.tsx +298 -24
  61. package/src/components/chart/composite/downsample.ts +1 -1
  62. package/src/components/chart/composite/index.ts +0 -1
  63. package/src/components/chart/composite/interactions.ts +2 -0
  64. package/src/components/chart/composite/levels.ts +154 -0
  65. package/src/components/chart/composite/rasterizer.ts +9 -1
  66. package/src/components/chart/composite/scene.ts +60 -1
  67. package/src/components/chart/composite/session-shading.ts +99 -0
  68. package/src/components/chart/composite/text-renderer.ts +5 -0
  69. package/src/components/chart/composite/time-axis.ts +1 -1
  70. package/src/components/chart/composite/tools.ts +1 -1
  71. package/src/components/chart/composite/types.ts +42 -3
  72. package/src/components/chart/composite/volume-profile-paint.ts +77 -0
  73. package/src/components/chart/curve/index.ts +2 -2
  74. package/src/components/chart/curve/model.ts +7 -4
  75. package/src/components/chart/native/kitty/support.ts +1 -1
  76. package/src/components/chart/static/index.ts +0 -2
  77. package/src/components/chart/static/series.ts +3 -0
  78. package/src/components/chart/static/trail-chart-surface.tsx +1 -1
  79. package/src/components/chart/surface3d/model.ts +4 -4
  80. package/src/components/chart/surface3d/software.ts +1 -1
  81. package/src/components/chart-table/axis.ts +20 -0
  82. package/src/components/chart-table/index.ts +4 -8
  83. package/src/components/chart-table/layout.ts +3 -3
  84. package/src/components/chart-table/selection.ts +1 -1
  85. package/src/components/command-bar/assist/model.ts +1 -1
  86. package/src/components/command-bar/commands/registry.ts +4 -1
  87. package/src/components/command-bar/keyboard-handlers.ts +1 -1
  88. package/src/components/command-bar/keyboard-shortcuts.ts +1 -1
  89. package/src/components/command-bar/layout-items/current-layout.ts +2 -2
  90. package/src/components/command-bar/layout-items/focused-pane.ts +3 -3
  91. package/src/components/command-bar/layout-items.ts +1 -1
  92. package/src/components/command-bar/list/badge.ts +1 -1
  93. package/src/components/command-bar/multi-select-picker.tsx +1 -1
  94. package/src/components/command-bar/pane-actions.ts +3 -3
  95. package/src/components/command-bar/pane-settings.ts +1 -1
  96. package/src/components/command-bar/pane-templates/workflow.ts +1 -1
  97. package/src/components/command-bar/panel/layout.ts +1 -1
  98. package/src/components/command-bar/panel/runtime.ts +1 -1
  99. package/src/components/command-bar/panel/types.ts +1 -1
  100. package/src/components/command-bar/picker-activation.ts +3 -3
  101. package/src/components/command-bar/routes/root/help-items.ts +66 -0
  102. package/src/components/command-bar/routes/root/results.ts +9 -0
  103. package/src/components/command-bar/routes/root/search-report.ts +1 -1
  104. package/src/components/command-bar/routes/root/selection.ts +7 -1
  105. package/src/components/command-bar/routes/ticker-search/results.ts +1 -1
  106. package/src/components/command-bar/surface/environment.ts +0 -4
  107. package/src/components/command-bar/surface/index.tsx +3 -4
  108. package/src/components/command-bar/workflow/collection-actions.ts +9 -9
  109. package/src/components/command-bar/workflow/fields.ts +35 -13
  110. package/src/components/command-bar/workflow/ops.ts +6 -5
  111. package/src/components/command-bar/workflow/route-actions.ts +2 -3
  112. package/src/components/command-bar/workflow/submit.ts +2 -2
  113. package/src/components/feedback-dialog.tsx +1 -1
  114. package/src/components/layout/detached-pane-shell.tsx +4 -10
  115. package/src/components/layout/pane/cycle-order.ts +1 -1
  116. package/src/components/layout/pane/footer/index.tsx +0 -3
  117. package/src/components/layout/pane/footer/registration.tsx +0 -12
  118. package/src/components/layout/pane/header.tsx +1 -1
  119. package/src/components/layout/pane/sidebar.tsx +0 -1
  120. package/src/components/layout/shell/active-drag.ts +1 -1
  121. package/src/components/layout/shell/chrome.ts +1 -1
  122. package/src/components/layout/shell/cursor-occlusion.ts +1 -1
  123. package/src/components/layout/shell/drag/index.ts +1 -1
  124. package/src/components/layout/shell/drag/overlays.tsx +1 -1
  125. package/src/components/layout/shell/drag/runtime.ts +1 -1
  126. package/src/components/layout/shell/fullscreen.ts +1 -1
  127. package/src/components/layout/shell/index.tsx +7 -18
  128. package/src/components/layout/shell/layout-state.ts +1 -1
  129. package/src/components/layout/shell/menu.ts +1 -1
  130. package/src/components/layout/shell/native/pointer-runtime.ts +1 -1
  131. package/src/components/layout/shell/native/surfaces.ts +1 -1
  132. package/src/components/layout/shell/native/window-state.ts +1 -1
  133. package/src/components/layout/shell/pane/actions.ts +3 -3
  134. package/src/components/layout/shell/pane/layers.tsx +1 -1
  135. package/src/components/layout/shell/pane-occlusion.ts +1 -1
  136. package/src/components/layout/shell/terminal-pointer-runtime.ts +1 -1
  137. package/src/components/layout/shell/ticker-link-menu.ts +1 -1
  138. package/src/components/layout/shell/visible-layout.ts +1 -1
  139. package/src/components/layout/shell/window-mode/index.ts +2 -9
  140. package/src/components/layout/shell/window-mode/overlays.tsx +1 -1
  141. package/src/components/layout/status-bar-groups.ts +1 -1
  142. package/src/components/layout/status-bar.tsx +5 -6
  143. package/src/components/layout/titlebar-overlay.ts +1 -1
  144. package/src/components/layout/window-edit/mode.ts +1 -1
  145. package/src/components/layout/window-edit/presentation.ts +1 -1
  146. package/src/components/layout/window-edit/status.tsx +1 -1
  147. package/src/components/layout/window-fullscreen.ts +1 -1
  148. package/src/components/onboarding/first-run-workspace.ts +2 -2
  149. package/src/components/onboarding/onboarding-wizard.tsx +1 -1
  150. package/src/components/onboarding/wizard-account.ts +43 -132
  151. package/src/components/onboarding/wizard-broker-sync.ts +1 -1
  152. package/src/components/onboarding/wizard-positions.ts +1 -1
  153. package/src/components/quote-flash.ts +2 -2
  154. package/src/components/ticker/badge/index.tsx +2 -2
  155. package/src/components/ui/data-table/stable-columns.ts +1 -1
  156. package/src/components/ui/data-table/types.ts +1 -1
  157. package/src/components/ui/external-link.tsx +6 -2
  158. package/src/components/ui/index.ts +0 -1
  159. package/src/components/ui/multi-select/dialog.tsx +18 -8
  160. package/src/components/ui/number-prompt-dialog.tsx +1 -1
  161. package/src/components/ui/split-bar.tsx +1 -1
  162. package/src/components/ui/table-layout.ts +1 -1
  163. package/src/components/ui/text-prompt-dialog.tsx +4 -1
  164. package/src/core/app-runtime.ts +8 -6
  165. package/src/core/connection-health.ts +2 -2
  166. package/src/core/state/app/layout-reducer.ts +0 -12
  167. package/src/core/state/app/layout.ts +7 -19
  168. package/src/core/state/app/state.ts +6 -13
  169. package/src/core/state/app/types.ts +10 -2
  170. package/src/core/state/session-persistence.ts +3 -5
  171. package/src/data/config/chart-settings.ts +1 -1
  172. package/src/data/config/home.ts +1 -1
  173. package/src/data/config/store/node.ts +1 -1
  174. package/src/data/config/store/normalize.ts +0 -3
  175. package/src/i18n/es.ts +11 -0
  176. package/src/i18n/index.ts +0 -2
  177. package/src/i18n/ja.ts +11 -0
  178. package/src/i18n/ko.ts +11 -0
  179. package/src/i18n/languages.ts +1 -1
  180. package/src/i18n/zh-cn.ts +11 -0
  181. package/src/i18n/zh-tw.ts +11 -0
  182. package/src/{plugins → layout}/launch-layout.ts +0 -1
  183. package/src/{plugins/pane-manager.ts → layout/pane-manager/index.ts} +8 -9
  184. package/src/layout-marketplace/api.ts +1 -1
  185. package/src/layout-marketplace/cloud.ts +3 -3
  186. package/src/layout-marketplace/gallery.tsx +1 -1
  187. package/src/layout-marketplace/geometry.ts +1 -1
  188. package/src/layout-marketplace/linked-sync.ts +1 -1
  189. package/src/layout-marketplace/linked.ts +2 -2
  190. package/src/layout-marketplace/model.ts +2 -2
  191. package/src/layout-marketplace/use-marketplace.ts +3 -3
  192. package/src/market-data/coordinator/index.ts +0 -1
  193. package/src/market-data/coordinator/quotes.ts +3 -3
  194. package/src/market-data/frame-scheduler.ts +1 -1
  195. package/src/market-data/history-session.ts +1 -1
  196. package/src/market-data/market/freshness.ts +64 -0
  197. package/src/market-data/market/trading-sessions.ts +72 -0
  198. package/src/market-data/realized-volatility.ts +2 -2
  199. package/src/market-data/snapshot-provider.ts +1 -1
  200. package/src/news/hooks.ts +1 -1
  201. package/src/news/news-model.ts +1 -1
  202. package/src/news/types.ts +1 -1
  203. package/src/plugins/auto-update-node.ts +2 -1
  204. package/src/plugins/auto-update.ts +2 -2
  205. package/src/plugins/builtin/alerts/levels.ts +60 -0
  206. package/src/plugins/builtin/alerts/research-rules.ts +2 -2
  207. package/src/plugins/builtin/analytics/index.tsx +0 -1
  208. package/src/plugins/builtin/analytics/pane-model.ts +1 -1
  209. package/src/plugins/builtin/analytics/risk-client.ts +2 -2
  210. package/src/plugins/builtin/analytics/risk-evidence.ts +4 -4
  211. package/src/plugins/builtin/analytics/risk-math.ts +3 -3
  212. package/src/plugins/builtin/analytics/risk-model.ts +2 -2
  213. package/src/plugins/builtin/analytics/risk-test-data.ts +1 -0
  214. package/src/plugins/builtin/analytics/sharpe-cadence.ts +1 -1
  215. package/src/plugins/builtin/backtest/client.ts +1 -1
  216. package/src/plugins/builtin/backtest/engine.ts +1 -1
  217. package/src/plugins/builtin/backtest/rules.ts +5 -5
  218. package/src/plugins/builtin/bond-calculator/math.ts +3 -3
  219. package/src/plugins/builtin/buildout/detail/company.tsx +1 -1
  220. package/src/plugins/builtin/buildout/format.ts +1 -1
  221. package/src/plugins/builtin/cds/client.ts +1 -1
  222. package/src/plugins/builtin/cds/headless.ts +1 -1
  223. package/src/plugins/builtin/chart-composer/catalog-inventory.ts +2 -2
  224. package/src/plugins/builtin/chart-composer/chart-spec-edit.ts +502 -0
  225. package/src/plugins/builtin/chart-composer/editor/controller.ts +6 -7
  226. package/src/plugins/builtin/chart-composer/editor/model.ts +2 -2
  227. package/src/plugins/builtin/chart-composer/follow-binding.ts +1 -1
  228. package/src/plugins/builtin/chart-composer/headless.ts +5 -3
  229. package/src/plugins/builtin/chart-composer/pane.tsx +272 -25
  230. package/src/plugins/builtin/chart-composer/presets.ts +7 -836
  231. package/src/plugins/builtin/chart-composer/price-levels.ts +80 -0
  232. package/src/plugins/builtin/chart-composer/quick-add.tsx +4 -4
  233. package/src/plugins/builtin/chart-composer/series-catalog.ts +1 -4
  234. package/src/plugins/builtin/chart-composer/series-expression.ts +189 -0
  235. package/src/{time-series → plugins/builtin/chart-composer}/session-history.ts +14 -14
  236. package/src/plugins/builtin/chart-composer/settings.ts +35 -14
  237. package/src/plugins/builtin/chart-composer/studies.ts +242 -0
  238. package/src/plugins/builtin/chat/channel-labels.ts +1 -1
  239. package/src/plugins/builtin/chat/channels.ts +1 -1
  240. package/src/plugins/builtin/chat/content/transcript.tsx +0 -1
  241. package/src/plugins/builtin/chat/layout.ts +2 -2
  242. package/src/plugins/builtin/chat/message/profile-popover.tsx +1 -1
  243. package/src/plugins/builtin/chat/pane.tsx +0 -2
  244. package/src/plugins/builtin/chat/profile-popover.ts +1 -1
  245. package/src/plugins/builtin/chat/sidebar-store.ts +2 -2
  246. package/src/plugins/builtin/cloud/askg/executor.ts +3 -3
  247. package/src/plugins/builtin/cloud/askg/manifest.ts +3 -3
  248. package/src/plugins/builtin/cloud/askg/model.ts +5 -5
  249. package/src/plugins/builtin/cloud/askg/pane.tsx +1 -1
  250. package/src/plugins/builtin/cloud/askg/protocol.ts +14 -14
  251. package/src/plugins/builtin/cloud/auth-dialog.tsx +1 -1
  252. package/src/plugins/builtin/cloud/auth-form.tsx +31 -94
  253. package/src/plugins/builtin/cloud/auth-model.ts +1 -1
  254. package/src/plugins/builtin/cloud/device-signin-dialog.tsx +1 -1
  255. package/src/plugins/builtin/cloud/email-auth-attempt.ts +173 -0
  256. package/src/plugins/builtin/cloud/team/capability.ts +1 -1
  257. package/src/plugins/builtin/cloud/team/collections.ts +1 -1
  258. package/src/plugins/builtin/cloud/team/command.ts +2 -2
  259. package/src/plugins/builtin/cloud/team/model.ts +1 -1
  260. package/src/plugins/builtin/cloud/team/pane-sections.tsx +1 -1
  261. package/src/plugins/builtin/cloud/team/pane-ui.tsx +1 -1
  262. package/src/plugins/builtin/cloud/team/pane.tsx +1 -1
  263. package/src/plugins/builtin/cloud/team/views.ts +2 -2
  264. package/src/plugins/builtin/cloud/thesis/exposure.ts +2 -2
  265. package/src/plugins/builtin/cloud/thesis/ticker-tab.tsx +0 -1
  266. package/src/plugins/builtin/cloud/upgrade-dialog.tsx +2 -2
  267. package/src/plugins/builtin/cloud-tweets/model.ts +1 -1
  268. package/src/{utils → plugins/builtin/cloud-tweets}/tweet-text.ts +1 -1
  269. package/src/plugins/builtin/composite-plugins.ts +4 -0
  270. package/src/plugins/builtin/congress-trades/detail.tsx +1 -1
  271. package/src/plugins/builtin/congress-trades/model.ts +1 -1
  272. package/src/plugins/builtin/congress-trades/table.tsx +1 -1
  273. package/src/plugins/builtin/connections/pane.tsx +1 -1
  274. package/src/plugins/builtin/correlation/index.tsx +2 -2
  275. package/src/plugins/builtin/correlation/relationship/pane.tsx +1 -1
  276. package/src/plugins/builtin/correlation/relationship/view-model.ts +1 -1
  277. package/src/plugins/builtin/cot/client.ts +1 -1
  278. package/src/plugins/builtin/credit-boards/client.ts +2 -2
  279. package/src/plugins/builtin/credit-boards/model.ts +5 -11
  280. package/src/plugins/builtin/credit-conditions/client.ts +1 -1
  281. package/src/plugins/builtin/credit-conditions/headless.ts +2 -2
  282. package/src/plugins/builtin/crypto-board/model.ts +4 -4
  283. package/src/plugins/builtin/crypto-board/pane.tsx +1 -1
  284. package/src/plugins/builtin/custom-view/live-quotes.ts +1 -1
  285. package/src/plugins/builtin/custom-view/pane.tsx +35 -23
  286. package/src/plugins/builtin/custom-view/view-spec.ts +9 -9
  287. package/src/plugins/builtin/debt-maturities/model.ts +2 -18
  288. package/src/plugins/builtin/debt-maturities/pane.tsx +2 -2
  289. package/src/plugins/builtin/earnings/board-model.ts +1 -1
  290. package/src/plugins/builtin/earnings/client.ts +2 -2
  291. package/src/plugins/builtin/earnings/data/cache.ts +1 -1
  292. package/src/plugins/builtin/earnings/estimate-basis.ts +2 -7
  293. package/src/plugins/builtin/earnings/headless.ts +3 -3
  294. package/src/plugins/builtin/earnings/history-model.ts +1 -1
  295. package/src/plugins/builtin/earnings-calls/headless.ts +1 -1
  296. package/src/plugins/builtin/econ/detail-view.tsx +1 -1
  297. package/src/plugins/builtin/econ/index.tsx +1 -1
  298. package/src/plugins/builtin/econ-statistics/detail.tsx +1 -1
  299. package/src/plugins/builtin/econ-statistics/pane.tsx +1 -1
  300. package/src/plugins/builtin/econ-statistics/view.ts +3 -3
  301. package/src/plugins/builtin/fear-greed/headless.ts +1 -1
  302. package/src/plugins/builtin/fear-greed/index.tsx +0 -2
  303. package/src/plugins/builtin/futures/index.tsx +1 -1
  304. package/src/plugins/builtin/futures/returns.ts +1 -1
  305. package/src/plugins/builtin/futures/use-front-returns.ts +1 -1
  306. package/src/plugins/builtin/futures-curve/model.ts +2 -2
  307. package/src/plugins/builtin/help/function-card.tsx +202 -0
  308. package/src/plugins/builtin/help/function-index.ts +193 -0
  309. package/src/plugins/builtin/help/index.tsx +31 -1
  310. package/src/plugins/builtin/help/shortcut-model.ts +1 -1
  311. package/src/plugins/builtin/help/table-cells.tsx +1 -1
  312. package/src/plugins/builtin/insider/client.ts +1 -1
  313. package/src/plugins/builtin/insider/model.ts +1 -1
  314. package/src/plugins/builtin/ipo-calendar/headless.ts +1 -1
  315. package/src/plugins/builtin/ipo-calendar/model.ts +1 -1
  316. package/src/plugins/builtin/iv-history/charts.tsx +1 -1
  317. package/src/plugins/builtin/iv-history/client.ts +2 -2
  318. package/src/plugins/builtin/iv-history/model.ts +4 -4
  319. package/src/plugins/builtin/jobs/client.ts +1 -1
  320. package/src/plugins/builtin/jobs/model.ts +3 -3
  321. package/src/plugins/builtin/jobs/pane.tsx +2 -2
  322. package/src/plugins/builtin/kelly-sizer/model.ts +1 -1
  323. package/src/plugins/builtin/kelly-sizer/test-support.tsx +1 -1
  324. package/src/plugins/builtin/kelly-sizer/types.ts +1 -1
  325. package/src/plugins/builtin/layout-manager/index.tsx +1 -1
  326. package/src/plugins/builtin/macro-resources.ts +1 -1
  327. package/src/plugins/builtin/market-halts/pane.tsx +5 -1
  328. package/src/plugins/builtin/market-heatmap/data.ts +4 -4
  329. package/src/plugins/builtin/market-movers/screener.ts +1 -1
  330. package/src/plugins/builtin/market-valuation/align.ts +1 -1
  331. package/src/plugins/builtin/market-valuation/chart-projection.ts +1 -1
  332. package/src/plugins/builtin/market-valuation/defs.ts +3 -3
  333. package/src/plugins/builtin/market-valuation/headless.ts +1 -1
  334. package/src/plugins/builtin/market-valuation/indicators.ts +4 -4
  335. package/src/plugins/builtin/market-valuation/series.ts +1 -1
  336. package/src/plugins/builtin/market-valuation/settings.ts +1 -1
  337. package/src/plugins/builtin/market-valuation/sources.ts +1 -1
  338. package/src/plugins/builtin/market-valuation/view.ts +1 -1
  339. package/src/plugins/builtin/market-valuation/zone-scale/model.ts +1 -1
  340. package/src/plugins/builtin/mna/client.ts +3 -3
  341. package/src/plugins/builtin/mna/detail.tsx +1 -1
  342. package/src/plugins/builtin/mna/model.ts +2 -7
  343. package/src/plugins/builtin/mna/pane.tsx +2 -2
  344. package/src/plugins/builtin/news/headless.ts +1 -1
  345. package/src/plugins/builtin/news/wire/breaking/filters.ts +5 -5
  346. package/src/plugins/builtin/notes/store.ts +1 -1
  347. package/src/plugins/builtin/options/enrichment.ts +1 -1
  348. package/src/plugins/builtin/options/footer.ts +2 -2
  349. package/src/plugins/builtin/options/live-quotes.ts +4 -4
  350. package/src/plugins/builtin/options/types.ts +1 -1
  351. package/src/plugins/builtin/options-positioning/client.ts +100 -0
  352. package/src/plugins/builtin/options-positioning/headless.ts +112 -0
  353. package/src/plugins/builtin/options-positioning/index.tsx +69 -0
  354. package/src/plugins/builtin/options-positioning/model.ts +158 -0
  355. package/src/plugins/builtin/options-positioning/pane.tsx +582 -0
  356. package/src/plugins/builtin/options-scenario/model.ts +3 -3
  357. package/src/plugins/builtin/plugin-marketplace/model.ts +1 -1
  358. package/src/plugins/builtin/plugin-marketplace/store.ts +1 -1
  359. package/src/plugins/builtin/portfolio-list/account-metrics.ts +1 -1
  360. package/src/plugins/builtin/portfolio-list/pane/index.tsx +0 -1
  361. package/src/plugins/builtin/portfolio-list/position-metrics.ts +1 -1
  362. package/src/plugins/builtin/portfolio-list/summary/index.tsx +1 -1
  363. package/src/plugins/builtin/portfolio-list/summary/live-accounts.ts +1 -1
  364. package/src/plugins/builtin/portfolio-list/summary/totals.ts +1 -1
  365. package/src/plugins/builtin/rate-path/model.ts +1 -1
  366. package/src/plugins/builtin/realized-vol/chart-model.ts +1 -1
  367. package/src/plugins/builtin/realized-vol/evidence.ts +1 -1
  368. package/src/plugins/builtin/realized-vol/model.ts +2 -2
  369. package/src/plugins/builtin/relative-rotation/model.ts +3 -3
  370. package/src/plugins/builtin/research/corporate-actions-pane.tsx +1 -1
  371. package/src/plugins/builtin/research/events-headless.ts +1 -1
  372. package/src/plugins/builtin/research/headless.ts +1 -1
  373. package/src/plugins/builtin/research-search/model.ts +1 -1
  374. package/src/plugins/builtin/revenue-breakdown/bars.tsx +1 -1
  375. package/src/plugins/builtin/revenue-breakdown/client.ts +1 -1
  376. package/src/plugins/builtin/revenue-breakdown/model.ts +1 -1
  377. package/src/plugins/builtin/revenue-breakdown/pane.tsx +1 -1
  378. package/src/plugins/builtin/scanner/flow-model.ts +3 -3
  379. package/src/plugins/builtin/scanner/flow-pane.tsx +1 -1
  380. package/src/plugins/builtin/scanner/headless.ts +5 -5
  381. package/src/plugins/builtin/scanner/hilo-model.ts +3 -3
  382. package/src/plugins/builtin/seasonality/client.ts +41 -0
  383. package/src/plugins/builtin/seasonality/headless.ts +38 -0
  384. package/src/plugins/builtin/seasonality/index.tsx +20 -0
  385. package/src/plugins/builtin/seasonality/model.ts +124 -0
  386. package/src/plugins/builtin/seasonality/pane.tsx +156 -0
  387. package/src/plugins/builtin/sec/model.ts +1 -1
  388. package/src/plugins/builtin/shared/cloud-upgrade.ts +2 -2
  389. package/src/plugins/builtin/shared/mine-tickers.ts +1 -1
  390. package/src/plugins/builtin/shared/series-cache.ts +2 -2
  391. package/src/plugins/builtin/shared/use-quote-board.ts +1 -1
  392. package/src/plugins/builtin/shared/volatility/options.ts +1 -1
  393. package/src/plugins/builtin/short-interest/model.ts +1 -1
  394. package/src/plugins/builtin/short-volume/model.ts +1 -1
  395. package/src/plugins/builtin/social-mentions/index.tsx +1 -1
  396. package/src/plugins/builtin/social-mentions/model.ts +1 -1
  397. package/src/plugins/builtin/thirteenf/model.ts +1 -1
  398. package/src/plugins/builtin/thirteenf/signals.ts +1 -1
  399. package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.tsx +1 -1
  400. package/src/plugins/builtin/ticker-detail/financials/ratios.ts +1 -1
  401. package/src/plugins/builtin/ticker-detail/financials/schema.ts +0 -1
  402. package/src/plugins/builtin/ticker-detail/overview/components.tsx +95 -16
  403. package/src/plugins/builtin/ticker-detail/overview/model.ts +108 -2
  404. package/src/plugins/builtin/ticker-detail/overview/pane.tsx +12 -0
  405. package/src/plugins/builtin/ticker-detail/overview/types.ts +21 -0
  406. package/src/plugins/builtin/ticker-detail/overview-tab.tsx +27 -34
  407. package/src/plugins/builtin/ticker-detail/pane.tsx +15 -6
  408. package/src/plugins/builtin/ticker-detail/research-tab-navigation.tsx +14 -0
  409. package/src/plugins/builtin/time-sales/model.ts +1 -1
  410. package/src/plugins/builtin/treasury-auctions/headless.ts +2 -2
  411. package/src/plugins/builtin/treasury-auctions/model.ts +1 -1
  412. package/src/plugins/builtin/vol-surface/client.ts +4 -4
  413. package/src/plugins/builtin/vol-surface/live.ts +1 -1
  414. package/src/plugins/builtin/vol-surface/model.ts +7 -7
  415. package/src/plugins/builtin/vol-surface/pane.tsx +1 -1
  416. package/src/plugins/builtin/vol-surface/stored.ts +1 -1
  417. package/src/plugins/builtin/volatility/client.ts +4 -4
  418. package/src/plugins/builtin/volatility/headless.ts +1 -1
  419. package/src/plugins/builtin/volatility/model.ts +5 -5
  420. package/src/plugins/builtin/world-indices/headless.ts +3 -3
  421. package/src/plugins/builtin/yield-curve/chart.ts +61 -16
  422. package/src/plugins/builtin/yield-curve/curves.ts +171 -0
  423. package/src/plugins/builtin/yield-curve/forward.ts +102 -0
  424. package/src/plugins/builtin/yield-curve/headless.ts +96 -41
  425. package/src/plugins/builtin/yield-curve/index.tsx +331 -120
  426. package/src/plugins/builtin/yield-curve/world.ts +53 -0
  427. package/src/plugins/bundle.ts +1 -1
  428. package/src/plugins/catalog-browser.ts +4 -0
  429. package/src/plugins/catalog-manifest.ts +1 -1
  430. package/src/plugins/compat.ts +7 -3
  431. package/src/plugins/dependencies.ts +76 -0
  432. package/src/plugins/external-runtime.ts +1 -1
  433. package/src/plugins/host-link.ts +48 -10
  434. package/src/plugins/host-modules.ts +4 -1
  435. package/src/plugins/host-resolver.ts +4 -1
  436. package/src/plugins/installer.ts +16 -3
  437. package/src/plugins/loader.ts +12 -1
  438. package/src/plugins/ownership.ts +1 -1
  439. package/src/plugins/plugin-names.ts +1 -1
  440. package/src/plugins/registry/host-actions.ts +237 -0
  441. package/src/plugins/registry/index.ts +79 -146
  442. package/src/plugins/registry/plugin-state.ts +1 -1
  443. package/src/plugins/runtime/context.tsx +2 -25
  444. package/src/plugins/runtime/state.ts +2 -2
  445. package/src/public/__snapshots__/public-api.test.ts.snap +1 -0
  446. package/src/public/layout.ts +2 -2
  447. package/src/public/test-support.ts +9 -1
  448. package/src/react/ticker-source.ts +1 -1
  449. package/src/remote/controller-utils.ts +2 -3
  450. package/src/remote/controller.ts +14 -14
  451. package/src/remote/resources.ts +10 -4
  452. package/src/remote/schema.ts +2 -2
  453. package/src/remote/semantic-helpers.ts +1 -1
  454. package/src/remote/types.ts +3 -3
  455. package/src/renderers/browser/bundled-plugins.ts +31 -1
  456. package/src/renderers/browser/main.tsx +4 -4
  457. package/src/renderers/browser/ui-host.tsx +1 -1
  458. package/src/renderers/{electrobun/view → dom}/build-assets.ts +3 -2
  459. package/src/renderers/{electrobun/view → dom}/data-frames.ts +2 -2
  460. package/src/renderers/{electrobun/view → dom}/data-table/dom.ts +3 -3
  461. package/src/renderers/{electrobun/view → dom}/data-table/index.tsx +9 -9
  462. package/src/renderers/{electrobun/view → dom}/data-table/row.tsx +5 -5
  463. package/src/renderers/{electrobun/view → dom}/desktop/control-styles.ts +2 -2
  464. package/src/renderers/{electrobun/view → dom}/desktop/controls.tsx +16 -16
  465. package/src/renderers/{electrobun/view → dom}/desktop/icons.tsx +1 -1
  466. package/src/renderers/{electrobun/view → dom}/desktop/list-view.tsx +5 -5
  467. package/src/renderers/{electrobun/view → dom}/desktop/menu.tsx +1 -1
  468. package/src/renderers/{electrobun/view → dom}/desktop/popover.tsx +3 -3
  469. package/src/renderers/{electrobun/view → dom}/desktop/query-bar.tsx +1 -1
  470. package/src/renderers/{electrobun/view → dom}/desktop/select-field.tsx +6 -6
  471. package/src/renderers/{electrobun/view → dom}/dialog-host.tsx +4 -4
  472. package/src/renderers/{electrobun/view → dom}/dom-host-providers.tsx +2 -2
  473. package/src/renderers/{electrobun/view → dom}/dom-ui-host.tsx +3 -3
  474. package/src/renderers/{electrobun/view → dom}/host/ascii-text.ts +2 -2
  475. package/src/renderers/{electrobun/view → dom}/host/chart-surface.tsx +1 -1
  476. package/src/renderers/{electrobun/view → dom}/host/input.tsx +3 -3
  477. package/src/renderers/{electrobun/view → dom}/host/media-surface.tsx +1 -1
  478. package/src/renderers/{electrobun/view → dom}/host/mouse.ts +2 -2
  479. package/src/renderers/{electrobun/view → dom}/host/scroll-box.tsx +2 -2
  480. package/src/renderers/{electrobun/view → dom}/host/style.ts +2 -2
  481. package/src/renderers/{electrobun/view → dom}/host/surface-3d.tsx +4 -4
  482. package/src/renderers/{electrobun/view → dom}/host/tabs.tsx +2 -2
  483. package/src/renderers/{electrobun/view → dom}/host/text.tsx +3 -3
  484. package/src/renderers/{electrobun/view → dom}/input-host.tsx +3 -3
  485. package/src/renderers/{electrobun/view → dom}/native-renderer.ts +2 -2
  486. package/src/renderers/{electrobun/view → dom}/test-utils.tsx +3 -3
  487. package/src/renderers/{electrobun/view → dom}/toast-host.tsx +2 -2
  488. package/src/{theme → renderers/electrobun/bun/desktop}/app-icon.ts +5 -5
  489. package/src/renderers/electrobun/bun/desktop/backend-requests.ts +45 -93
  490. package/src/renderers/electrobun/bun/desktop/backend.ts +514 -0
  491. package/src/renderers/electrobun/bun/desktop/capability-bridge.ts +1 -1
  492. package/src/renderers/electrobun/bun/desktop/detached-windows.ts +36 -54
  493. package/src/renderers/electrobun/bun/desktop/host-requests.ts +62 -53
  494. package/src/renderers/electrobun/bun/desktop/initialization.ts +25 -78
  495. package/src/renderers/electrobun/bun/desktop/macos-dock-icon.ts +1 -1
  496. package/src/renderers/electrobun/bun/desktop/state-broadcaster.ts +1 -1
  497. package/src/renderers/electrobun/bun/desktop/workspace/index.ts +2 -10
  498. package/src/renderers/electrobun/bun/desktop/workspace/requests.ts +20 -47
  499. package/src/renderers/electrobun/bun/index.ts +14 -648
  500. package/src/renderers/electrobun/bun/window/frame.ts +1 -1
  501. package/src/renderers/electrobun/shared/protocol.ts +11 -11
  502. package/src/renderers/electrobun/view/backend-rpc.ts +1 -1
  503. package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +3 -4
  504. package/src/renderers/electrobun/view/main.tsx +3 -3
  505. package/src/renderers/electrobun/view/ui-host.tsx +1 -1
  506. package/src/renderers/opentui/host.tsx +12 -6
  507. package/src/renderers/opentui/test-utils.tsx +104 -3
  508. package/src/renderers/share/layout-view.tsx +1 -1
  509. package/src/renderers/share/main.tsx +1 -1
  510. package/src/shares/pane.ts +3 -3
  511. package/src/shares/payload.ts +7 -7
  512. package/src/{layout-marketplace/payload.ts → shares/portable-layout.ts} +3 -3
  513. package/src/{data → sources/gloomberb-cloud}/fred-series.ts +4 -4
  514. package/src/sources/gloomberb-cloud/normalizers.ts +16 -1
  515. package/src/sources/history-retention.ts +2 -2
  516. package/src/sources/provider-router/financial-routes.ts +0 -1
  517. package/src/sources/provider-router/financials.ts +2 -0
  518. package/src/sources/yahoo-finance/mappers.ts +1 -1
  519. package/src/state/app/bootstrap.ts +1 -1
  520. package/src/state/app/context/index.tsx +1 -5
  521. package/src/state/hooks/inline-tickers.ts +1 -1
  522. package/src/state/hooks/live-ticker-financials.ts +2 -2
  523. package/src/state/hooks/quote-streaming.ts +1 -1
  524. package/src/state/hooks/session-snapshot.ts +0 -2
  525. package/src/sync/controller.ts +1 -1
  526. package/src/sync/core-contributors.ts +40 -2
  527. package/src/sync/types.ts +4 -4
  528. package/src/telemetry/crash-reports-node.ts +5 -5
  529. package/src/test-support/broker.ts +4 -3
  530. package/src/test-support/plugin-runtime.ts +2 -18
  531. package/src/theme/font-scale.ts +2 -2
  532. package/src/{plugins/builtin/correlation/colors.ts → theme/heat-colors.ts} +26 -13
  533. package/src/time-series/alignment.ts +1 -1
  534. package/src/time-series/fundamentals.ts +2 -2
  535. package/src/time-series/hooks.ts +2 -2
  536. package/src/time-series/live-bars.ts +1 -1
  537. package/src/time-series/price-comparison.ts +1 -1
  538. package/src/time-series/resolve.ts +12 -4
  539. package/src/time-series/spec.ts +5 -1
  540. package/src/time-series/studies.ts +330 -2
  541. package/src/time-series/trader-studies.ts +188 -0
  542. package/src/time-series/types.ts +18 -0
  543. package/src/types/config.ts +4 -0
  544. package/src/types/desktop-deeplink.ts +1 -0
  545. package/src/types/desktop-window.ts +2 -1
  546. package/src/types/financials.ts +31 -0
  547. package/src/types/plugin.ts +1 -0
  548. package/src/ui/context-menu.tsx +1 -1
  549. package/src/ui/host.tsx +5 -1
  550. package/src/ui/toast.tsx +2 -0
  551. package/src/utils/back-navigation.ts +1 -1
  552. package/src/utils/futures-generic.ts +23 -2
  553. package/src/utils/http-proxy-response.ts +1 -1
  554. package/src/utils/sec-eps-basis.ts +1 -1
  555. /package/src/{plugins → layout}/pane-manager/dock-tree.ts +0 -0
  556. /package/src/{plugins → layout}/pane-manager/docking.ts +0 -0
  557. /package/src/{plugins → layout}/pane-manager/floating-actions.ts +0 -0
  558. /package/src/{plugins → layout}/pane-manager/floating.ts +0 -0
  559. /package/src/{plugins → layout}/pane-manager/gridlock-inference.ts +0 -0
  560. /package/src/{plugins → layout}/pane-manager/gridlock.ts +0 -0
  561. /package/src/{plugins → layout}/pane-manager/layout-state.ts +0 -0
  562. /package/src/{plugins → layout}/pane-manager/queries.ts +0 -0
  563. /package/src/{plugins → layout}/pane-manager/types.ts +0 -0
  564. /package/src/{plugins → layout}/pane-state.ts +0 -0
  565. /package/src/{plugins → layout}/ticker-navigation.ts +0 -0
  566. /package/src/plugins/{seed.ts → extracted-plugins.ts} +0 -0
  567. /package/src/renderers/{electrobun/view → dom}/data-table/frozen-column.ts +0 -0
  568. /package/src/renderers/{electrobun/view → dom}/desktop/stack-header.ts +0 -0
  569. /package/src/renderers/{electrobun/view → dom}/host/block-glyph-canvas.tsx +0 -0
  570. /package/src/renderers/{electrobun/view → dom}/host/box.tsx +0 -0
  571. /package/src/renderers/{electrobun/view → dom}/host/focus-scope.ts +0 -0
  572. /package/src/renderers/{electrobun/view → dom}/host/overflow-fade.ts +0 -0
  573. /package/src/renderers/{electrobun/view → dom}/host/top-surface.ts +0 -0
  574. /package/src/renderers/{electrobun/view → dom}/key-event.ts +0 -0
  575. /package/src/renderers/{electrobun/view → dom}/scrollbar-activity.ts +0 -0
  576. /package/src/renderers/{electrobun/view → dom}/styles.css +0 -0
  577. /package/src/renderers/electrobun/{view → shared}/rpc-codec.ts +0 -0
  578. /package/src/{utils → renderers/opentui}/terminal-input-reset.ts +0 -0
package/README.md CHANGED
@@ -72,7 +72,9 @@ Press `Ctrl+P` to open the command bar, or press `` ` `` to search for a ticker.
72
72
  | `DES AAPL` | Company details |
73
73
  | `GP NVDA` | Price chart |
74
74
  | `OVDV AAPL` | Implied-volatility surface and options term structure |
75
+ | `OPX SPY` / `GEX SPY` | Open interest by strike and expiry, max pain and dealer gamma ([method](docs/options-positioning.md)) |
75
76
  | `HVG AAPL` / `HVT AAPL` | Realized volatility and volatility cones |
77
+ | `SEAS AAPL` | Seasonality: monthly returns by year and year overlays |
76
78
  | `COT [code or root]` | CFTC positioning and cross-market extremes |
77
79
  | `TOP` | Market stories |
78
80
  | `WIRP` / `FFIP` | US rate path and conditional FOMC probabilities |
@@ -117,7 +119,7 @@ The app also counts how often you open each function, from the command bar, a me
117
119
 
118
120
  Neither contains anything from your workspace: no tickers, arguments, portfolios, watchlists, layouts, settings or queries. Both carry a random install id stored in `~/.gloomberb/install-id` (in the browser, in local storage).
119
121
 
120
- The usage setting also covers command bar searches. When you are signed in, a search you finish in the command bar (you pause typing or run something, never each keystroke) is stored with your account to improve search: its text, the AI suggestions it got and the result you picked. Searches are kept for 12 months and deleted with your account.
122
+ The usage setting also covers command bar searches. When you are signed in, a search you finish in the command bar (you pause typing or run something, never each keystroke) is stored with your account to improve search: its text, the AI suggestions it got and the result you picked. Searches are deleted with your account.
121
123
 
122
124
  To turn either off, run `Crash Reports` or `Usage Counts` from the command bar, or:
123
125
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gloomberb",
3
- "version": "0.15.3",
3
+ "version": "0.15.5",
4
4
  "packageManager": "bun@1.3.11",
5
5
  "description": "Market research and portfolio tracker for the terminal",
6
6
  "module": "src/public/index.ts",
@@ -67,11 +67,13 @@
67
67
  "plugins:registry:check": "bun run scripts/check-registry-plugins.ts",
68
68
  "web:proxy-hosts": "bun run scripts/generate-web-proxy-hosts.ts",
69
69
  "web:proxy-hosts:check": "bun run scripts/generate-web-proxy-hosts.ts --check",
70
- "typecheck": "bun run typecheck:opentui && bun run typecheck:dom && bun run typecheck:cloudflare && bun run typecheck:scripts",
70
+ "typecheck": "bun run typecheck:opentui && bun run typecheck:dom && bun run typecheck:cloudflare && bun run typecheck:scripts && bun run typecheck:plugin-tests",
71
71
  "typecheck:opentui": "tsc --project tsconfig.opentui.json",
72
72
  "typecheck:dom": "tsc --project tsconfig.dom.json",
73
73
  "typecheck:cloudflare": "tsc --project tsconfig.cloudflare.json",
74
74
  "typecheck:scripts": "tsc --project tsconfig.scripts.json",
75
+ "typecheck:plugin-tests": "tsc --project tsconfig.plugin-tests.json",
76
+ "knip": "bunx knip@6.39.0",
75
77
  "test": "bun test",
76
78
  "benchmark:tui:navigation": "bun run scripts/benchmark-tui-navigation.ts",
77
79
  "benchmark:tui:compare": "bun run scripts/benchmark-tui-compare.ts",
@@ -108,7 +110,6 @@
108
110
  "@opentui/core": "^0.3.2",
109
111
  "@opentui/react": "^0.3.2",
110
112
  "@tanstack/react-virtual": "^3.14.2",
111
- "fast-xml-parser": "5.7.3",
112
113
  "hls.js": "1.6.13",
113
114
  "jimp": "1.6.1",
114
115
  "qrcode-generator": "^2.0.4",
@@ -83,7 +83,7 @@ export interface ASKGConversationTool {
83
83
  note?: string;
84
84
  }
85
85
 
86
- export interface ASKGConversationMessage {
86
+ interface ASKGConversationMessage {
87
87
  seq: number;
88
88
  role: "user" | "assistant";
89
89
  text: string;
@@ -224,7 +224,7 @@ function isAskgEvent(value: unknown): value is ASKGSseEvent {
224
224
  }
225
225
 
226
226
  /** Parses one frame payload, ignoring keep-alives and unknown shapes. */
227
- export function parseASKGFrame(frame: SseFrame): ASKGSseEvent | null {
227
+ function parseASKGFrame(frame: SseFrame): ASKGSseEvent | null {
228
228
  const data = frame.data.trim();
229
229
  if (!data || data === "[DONE]") return null;
230
230
  try {
@@ -1,7 +1,7 @@
1
1
  export type CotFamily = "legacy" | "disaggregated"
2
2
  export type CotClass = "noncommercial" | "commercial" | "producer" | "swap" | "managed-money" | "other-reportable" | "nonreportable"
3
- export interface CotPosition { long: number | null; short: number | null; spreading: number | null }
4
- export interface CotPercentile {
3
+ interface CotPosition { long: number | null; short: number | null; spreading: number | null }
4
+ interface CotPercentile {
5
5
  value: number | null
6
6
  rank: number | null
7
7
  sampleCount: number
@@ -24,7 +24,7 @@ export interface CotClassSummary extends CotPosition {
24
24
  percentile1Y: CotPercentile
25
25
  percentile3Y: CotPercentile
26
26
  }
27
- export interface CotMarket {
27
+ interface CotMarket {
28
28
  contractCode: string
29
29
  marketName: string
30
30
  exchangeCode: string
@@ -1,5 +1,5 @@
1
1
  /** Completed UTC daily closes, oldest first, one slot per calendar day. */
2
- export interface CryptoDailyCloses {
2
+ interface CryptoDailyCloses {
3
3
  start: string;
4
4
  closes: Array<number | null>;
5
5
  }
@@ -6,6 +6,7 @@ import type { CryptoMarketsPayload } from "./crypto-markets";
6
6
  import type { CentralBankRatesPayload } from "./central-bank-rates";
7
7
  import type { EstimateRevisionsPayload } from "./estimate-revisions";
8
8
  import type { MoneyMarketsPayload } from "./money-markets";
9
+ import type { CloudCurveId, CloudCurveView, CloudWorldCurves } from "./yield-curves";
9
10
  import type { CdxBoardPayload, CloudCreditBoardParams, SovrBoardPayload } from "./credit-boards";
10
11
  import type { ShortVolumePayload, ShortVolumeScope } from "./short-volume";
11
12
  import type { SocialMentionDayPosts, SocialMentionsPayload, SocialMentionsRange } from "./social-mentions";
@@ -159,6 +160,11 @@ export class CloudDataApi {
159
160
  return this.request<T>(`/cloud/iv/${path}`, init);
160
161
  }
161
162
 
163
+ /** Options positioning (OPX): open interest by strike and expiry, max pain, dealer gamma. */
164
+ optionsPositioning<T>(path: string, init?: RequestInit) {
165
+ return this.request<T>(`/cloud/options/${path}`, init);
166
+ }
167
+
162
168
  async searchInstruments(
163
169
  query: string,
164
170
  limit = 10,
@@ -360,6 +366,17 @@ export class CloudDataApi {
360
366
  return this.request<CloudYieldPointPayload[]>("/cloud/econ/yield-curve");
361
367
  }
362
368
 
369
+ /** A curve's session on or before `date` (latest without one), with look-backs and spreads. */
370
+ async getCloudCurve(curve: CloudCurveId, date?: string | null): Promise<CloudCurveView> {
371
+ const query = date ? `?${new URLSearchParams({ date })}` : "";
372
+ return this.request<CloudCurveView>(`/cloud/econ/curves/${encodeURIComponent(curve)}${query}`, { signal: AbortSignal.timeout(30_000) });
373
+ }
374
+
375
+ /** Each market's latest curve and the session before, each on its own date. */
376
+ async getCloudWorldCurves(): Promise<CloudWorldCurves> {
377
+ return this.request<CloudWorldCurves>("/cloud/econ/curves", { signal: AbortSignal.timeout(30_000) });
378
+ }
379
+
363
380
  async getCloudCryptoMarkets(): Promise<CryptoMarketsPayload> {
364
381
  return this.request<CryptoMarketsPayload>("/cloud/crypto/markets", { signal: AbortSignal.timeout(45_000) });
365
382
  }
@@ -8,7 +8,7 @@ export interface DebtFact {
8
8
  filed: string;
9
9
  form: string;
10
10
  }
11
- export interface DebtBorrowingCost {
11
+ interface DebtBorrowingCost {
12
12
  value: number;
13
13
  interest: DebtFact;
14
14
  opening: DebtFact[];
@@ -16,7 +16,7 @@ export interface DebtBorrowingCost {
16
16
  periodStart: string;
17
17
  periodEnd: string;
18
18
  }
19
- export interface DebtPercentile {
19
+ interface DebtPercentile {
20
20
  value: number | null;
21
21
  rank: number | null;
22
22
  sampleCount: number;
@@ -1,7 +1,7 @@
1
1
  /** Before the open, during the session, after the close. */
2
2
  export type EarningsTiming = "bmo" | "dmh" | "amc";
3
3
 
4
- export interface EarningsImpliedMove {
4
+ interface EarningsImpliedMove {
5
5
  /** Straddle over spot, the move priced in either direction. */
6
6
  move: number;
7
7
  straddle: number;
@@ -16,7 +16,7 @@ export interface EarningsImpliedMove {
16
16
  at: string;
17
17
  }
18
18
 
19
- export interface EarningsRealizedMove {
19
+ interface EarningsRealizedMove {
20
20
  /** Signed: the close after the report over the close before it, minus one. */
21
21
  move: number;
22
22
  baseSession: string;
@@ -59,7 +59,7 @@ export interface EarningsCalendarPayload {
59
59
  reports: EarningsCalendarReport[];
60
60
  }
61
61
 
62
- export interface EarningsHistoryReport extends EarningsReport {
62
+ interface EarningsHistoryReport extends EarningsReport {
63
63
  revenueActual: number | null;
64
64
  }
65
65
 
@@ -56,7 +56,7 @@ export const CATEGORY_FIELDS = [
56
56
  "industry",
57
57
  ] as const;
58
58
  export type NumericField = (typeof NUMERIC_FIELDS)[number];
59
- export type CategoryField = (typeof CATEGORY_FIELDS)[number];
59
+ type CategoryField = (typeof CATEGORY_FIELDS)[number];
60
60
  export type ScreenField = NumericField | CategoryField;
61
61
  export type ScreenOperator =
62
62
  "gte" | "lte" | "gt" | "lt" | "eq" | "between" | "in" | "present" | "missing";
@@ -110,7 +110,7 @@ export interface ScreenRow {
110
110
  metrics: Record<NumericField, ScreenMetric>;
111
111
  warnings: string[];
112
112
  }
113
- export interface ScreenCoverage {
113
+ interface ScreenCoverage {
114
114
  covered: number;
115
115
  skipped: number;
116
116
  knownByField: Record<NumericField, number>;
@@ -1,4 +1,4 @@
1
- export interface PercentileStatistics {
1
+ interface PercentileStatistics {
2
2
  percentile: number | null;
3
3
  rank: number | null;
4
4
  samples: number;
@@ -6,8 +6,8 @@ export interface PercentileStatistics {
6
6
  max: number | null;
7
7
  mean: number | null;
8
8
  }
9
- export type EstimateStatus = "available" | "partial" | "unavailable";
10
- export interface EstimateSourceState {
9
+ type EstimateStatus = "available" | "partial" | "unavailable";
10
+ interface EstimateSourceState {
11
11
  status: EstimateStatus;
12
12
  fetchedAt: string | null;
13
13
  stale: boolean;
@@ -24,7 +24,7 @@ export interface EstimateObservation {
24
24
  relativeRange: number | null;
25
25
  source: "yahoo" | "yahoo-eps-trend";
26
26
  }
27
- export interface RevisionBreadth {
27
+ interface RevisionBreadth {
28
28
  days: 7 | 30;
29
29
  up: number | null;
30
30
  down: number | null;
@@ -76,7 +76,7 @@ export interface EstimateSurprise {
76
76
  samples: number;
77
77
  source: string;
78
78
  }
79
- export interface EstimateGuidance {
79
+ interface EstimateGuidance {
80
80
  callDate: string | null;
81
81
  fiscalYear: number;
82
82
  fiscalQuarter: number;
@@ -4,7 +4,7 @@ import {
4
4
  parseMarketplaceLayoutList,
5
5
  type LayoutMarketplaceEntry,
6
6
  type LayoutMarketplacePayload,
7
- } from "../layout-marketplace/payload";
7
+ } from "../shares/portable-layout";
8
8
  import {
9
9
  type CloudLayoutEntry,
10
10
  type LayoutRequirement,
@@ -38,18 +38,14 @@ import type {
38
38
  PersistedAuthUser
39
39
  } from "./types";
40
40
 
41
- export { ASKGTransportError } from "./askg";
42
- export type { ASKGToolResultOutcome, ASKGTransport } from "./askg";
43
41
  export { setCloudApiFetchTransport } from "./request";
44
42
  export { NoteConflictError } from "./notes";
45
43
  export { ThesisConflictError, ThesisGoalpostError } from "./theses";
46
44
  export { TeamRevisionConflictError } from "./views";
47
- export { TEAM_ACCENT_COLORS } from "./types";
48
45
  export type * from "./types";
49
46
  export type {
50
47
  CommandSearchChoice,
51
48
  CommandSearchOutcome,
52
- CommandSearchReport,
53
49
  CrashReportError,
54
50
  CrashReportKind,
55
51
  CrashReportSurface,
@@ -542,8 +538,9 @@ class GloomApiClient {
542
538
  * Resolves a natural-language command-bar query into runnable command-bar
543
539
  * inputs. Requires a verified session; free accounts are included. The
544
540
  * request is bounded client-side so a stalled upstream cannot hold the
545
- * command bar in its loading state. The server keeps the query, and
546
- * answers with a `searchId`, only when asked with `log: true`.
541
+ * command bar in its loading state. The server keeps the query and answers
542
+ * with a `searchId` unless told `log: false`, so an opt-out has to be sent
543
+ * explicitly.
547
544
  */
548
545
  async assistCommand(
549
546
  query: string,
@@ -565,7 +562,7 @@ class GloomApiClient {
565
562
  body: JSON.stringify({
566
563
  query: query.trim().slice(0, ASSIST_QUERY_MAX_LENGTH),
567
564
  commands: commands.slice(0, ASSIST_COMMAND_LIMIT).map(capAssistArgOptions),
568
- ...(options?.log === true ? { log: true } : {}),
565
+ ...(options?.log !== undefined ? { log: options.log } : {}),
569
566
  }),
570
567
  signal: controller.signal,
571
568
  });
@@ -700,6 +697,7 @@ class GloomApiClient {
700
697
  getCloudMoneyMarkets = this.data.getCloudMoneyMarkets.bind(this.data);
701
698
  equityScreener = this.data.equityScreener.bind(this.data);
702
699
  impliedVolatility = this.data.impliedVolatility.bind(this.data);
700
+ optionsPositioning = this.data.optionsPositioning.bind(this.data);
703
701
  getCloudDebtMaturities = this.data.getCloudDebtMaturities.bind(this.data);
704
702
  getCloudRevenueBreakdown = this.data.getCloudRevenueBreakdown.bind(this.data);
705
703
  getCloudMnaDeals = this.data.getCloudMnaDeals.bind(this.data);
@@ -716,6 +714,8 @@ class GloomApiClient {
716
714
  getCloudCotContract = this.data.getCloudCotContract.bind(this.data);
717
715
  getCloudTape = this.data.getCloudTape.bind(this.data);
718
716
  getCloudYieldCurve = this.data.getCloudYieldCurve.bind(this.data);
717
+ getCloudCurve = this.data.getCloudCurve.bind(this.data);
718
+ getCloudWorldCurves = this.data.getCloudWorldCurves.bind(this.data);
719
719
  getCloudCds = this.data.getCloudCds.bind(this.data);
720
720
  getCloudCdsHistory = this.data.getCloudCdsHistory.bind(this.data);
721
721
  getCloudCdxBoard = this.data.getCloudCdxBoard.bind(this.data);
@@ -748,5 +748,3 @@ class GloomApiClient {
748
748
  }
749
749
 
750
750
  export const apiClient = new GloomApiClient();
751
-
752
- export type { FuturesCurveAsOfPayload, FuturesCurvePayload, FuturesContract } from "./futures-curve";
@@ -6,10 +6,10 @@
6
6
  /** Where a deal is in its life. A deal moves forward, except to postponed or withdrawn. */
7
7
  export type IpoStatus = "filed" | "upcoming" | "priced" | "listed" | "postponed" | "withdrawn";
8
8
 
9
- export type IpoListingType = "ipo" | "spac" | "direct" | "reit" | "introduction" | "dual" | "other";
9
+ type IpoListingType = "ipo" | "spac" | "direct" | "reit" | "introduction" | "dual" | "other";
10
10
 
11
11
  /** How sure the listing date is: a target, a date the venue has set, or the day it traded. */
12
- export type IpoDateKind = "expected" | "confirmed" | "actual";
12
+ type IpoDateKind = "expected" | "confirmed" | "actual";
13
13
 
14
14
  export type IpoRegion = "us" | "apac" | "europe" | "other";
15
15
 
@@ -17,9 +17,9 @@ export type IpoRegion = "us" | "apac" | "europe" | "other";
17
17
  * ISO 10383 MIC of a listing venue, such as `XNAS`, `XHKG` or `XTKS`. The
18
18
  * server adds venues over time, so any code may arrive.
19
19
  */
20
- export type IpoMic = string;
20
+ type IpoMic = string;
21
21
 
22
- export interface IpoFirstDay {
22
+ interface IpoFirstDay {
23
23
  /** The first session's venue-local date. */
24
24
  session: string;
25
25
  open: number | null;
@@ -13,7 +13,7 @@ export type CloudSessionMoversSide = "up" | "down" | "active";
13
13
  export type CloudSessionPhase = "pre" | "regular" | "post" | "closed";
14
14
 
15
15
  /** A trading halt, an 8-K, or a news story in the list's own window (see docs/quote-board-data.md). */
16
- export type CloudSessionCatalyst = "halt" | "filing" | "news";
16
+ type CloudSessionCatalyst = "halt" | "filing" | "news";
17
17
 
18
18
  export interface CloudSessionMoverItem {
19
19
  rank: number;
@@ -7,7 +7,7 @@
7
7
  /** Reported talks, a signed or launched deal, or its end. */
8
8
  export type MnaStatus = "talks" | "pending" | "completed" | "terminated";
9
9
 
10
- export type MnaConsideration = "cash" | "stock" | "mixed" | "undisclosed";
10
+ type MnaConsideration = "cash" | "stock" | "mixed" | "undisclosed";
11
11
 
12
12
  export interface MnaParty {
13
13
  name: string;
@@ -88,7 +88,7 @@ export interface MnaDealsPayload {
88
88
  asOf: string;
89
89
  }
90
90
 
91
- export type MnaEventKind =
91
+ type MnaEventKind =
92
92
  | "talks"
93
93
  | "announced"
94
94
  | "amended"
@@ -38,7 +38,7 @@ export function normalizeSavedSearchResponse(
38
38
  * join it into search text, and hand it to a badge, and a null reaches each of
39
39
  * those as an empty chip, the literal "null", or a crash.
40
40
  */
41
- export function normalizeSearchHit(hit: CloudSearchHit): CloudSearchHit {
41
+ function normalizeSearchHit(hit: CloudSearchHit): CloudSearchHit {
42
42
  return hit.ticker ? hit : { ...hit, ticker: "" };
43
43
  }
44
44
 
@@ -35,7 +35,7 @@ export type CloudCdsHistoryParams = {
35
35
  days?: number;
36
36
  };
37
37
 
38
- export type CloudCongressChamber = "all" | "house" | "senate";
38
+ type CloudCongressChamber = "all" | "house" | "senate";
39
39
 
40
40
  export type CloudCongressHouseParams = {
41
41
  /** Which feed to read; House when omitted. */
@@ -104,7 +104,7 @@ const CRYPTO_QUOTE = /[-/](USD|USDT|USDC|EUR|GBP|BTC)$/;
104
104
 
105
105
  export type CloudLogoKind = "ticker" | "crypto";
106
106
 
107
- export function normalizeCloudLogoSymbol(
107
+ function normalizeCloudLogoSymbol(
108
108
  kind: CloudLogoKind,
109
109
  symbol: string,
110
110
  ): string | null {
@@ -41,7 +41,7 @@ export function resolveTrialEndsAt(user: PlanAccessUser | null | undefined): Dat
41
41
  return Number.isNaN(endsAt.getTime()) ? null : endsAt;
42
42
  }
43
43
 
44
- export function isTrialActive(user: PlanAccessUser | null | undefined, now = Date.now()): boolean {
44
+ function isTrialActive(user: PlanAccessUser | null | undefined, now = Date.now()): boolean {
45
45
  if (user?.emailVerified !== true) return false;
46
46
  // Card-backed trials run as plan "pro" with a trialing subscription; the server
47
47
  // only sends `trialEndsAt` while the subscription is actually in its trial.
@@ -49,7 +49,7 @@ export function isTrialActive(user: PlanAccessUser | null | undefined, now = Dat
49
49
  return !!endsAt && endsAt.getTime() > now;
50
50
  }
51
51
 
52
- export function trialDaysLeft(user: PlanAccessUser | null | undefined, now = Date.now()): number {
52
+ function trialDaysLeft(user: PlanAccessUser | null | undefined, now = Date.now()): number {
53
53
  const endsAt = resolveTrialEndsAt(user);
54
54
  if (!endsAt) return 0;
55
55
  const remainingMs = endsAt.getTime() - now;
@@ -1,5 +1,5 @@
1
1
  /** Gloom Cloud rate-path contract. Rates are percentage points; probabilities are fractions. */
2
- export interface RateMetric {
2
+ interface RateMetric {
3
3
  value: number | null;
4
4
  asOf: string | null;
5
5
  percentile: number | null;
@@ -66,7 +66,7 @@ export function setCloudApiFetchTransport(
66
66
  * The fetch to use for a response that must be read while it arrives, or null
67
67
  * when the installed transport buffers whole responses.
68
68
  */
69
- export function getCloudApiStreamFetch(): CloudApiStreamFetch | null {
69
+ function getCloudApiStreamFetch(): CloudApiStreamFetch | null {
70
70
  if (cloudApiTransportInstalled) {
71
71
  if (cloudApiStreamFetch) return cloudApiStreamFetch;
72
72
  // A transport that declares streaming returns a real Response.
@@ -1,6 +1,6 @@
1
1
  export type SocialMentionsRange = "1y" | "5y" | "max";
2
2
 
3
- export interface SocialMentionDay {
3
+ interface SocialMentionDay {
4
4
  /** UTC day. */
5
5
  day: string;
6
6
  mentions: number;