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.
- package/README.md +3 -1
- package/package.json +4 -3
- package/src/api-client/askg.ts +2 -2
- package/src/api-client/cot.ts +3 -3
- package/src/api-client/crypto-markets.ts +1 -1
- package/src/api-client/data.ts +17 -0
- package/src/api-client/debt-maturities.ts +2 -2
- package/src/api-client/earnings.ts +3 -3
- package/src/api-client/equity-screener.ts +2 -2
- package/src/api-client/estimate-revisions.ts +5 -5
- package/src/api-client/index.ts +8 -10
- package/src/api-client/ipo.ts +4 -4
- package/src/api-client/market-movers.ts +1 -1
- package/src/api-client/mna.ts +2 -2
- package/src/api-client/normalizers.ts +1 -1
- package/src/api-client/paths.ts +2 -2
- package/src/api-client/plan-rules.ts +2 -2
- package/src/api-client/rates.ts +1 -1
- package/src/api-client/request.ts +1 -1
- package/src/api-client/social-mentions.ts +1 -1
- package/src/api-client/types.ts +32 -32
- package/src/api-client/yield-curves.ts +47 -0
- package/src/app/app-bootstrap-state.ts +0 -2
- package/src/app/global-shortcuts.ts +21 -0
- package/src/app/keybindings/actions.ts +9 -1
- package/src/app/keybindings/chord.ts +1 -1
- package/src/app/keybindings/index.ts +0 -14
- package/src/app/keybindings/labels.ts +1 -1
- package/src/app/keybindings/resolve.ts +1 -8
- package/src/app/pane-runtime/index.tsx +7 -14
- package/src/app/pane-runtime/layout-placement.ts +1 -30
- package/src/app/pane-runtime/plugin-bindings.ts +184 -180
- package/src/app/pane-runtime/ticker-inspector-runtime.ts +5 -5
- package/src/app/pane-runtime/ticker-open-runtime.ts +5 -5
- package/src/app/pane-template-dialog-wizard.tsx +13 -5
- package/src/app/runtime/broker-import.ts +1 -1
- package/src/app/runtime/desktop-deeplink.ts +4 -4
- package/src/app/runtime/desktop-menu.ts +4 -4
- package/src/app/runtime/layout-warmup.ts +1 -1
- package/src/app/runtime/plugin-bindings.ts +187 -188
- package/src/app/runtime/update.ts +1 -1
- package/src/app.tsx +3 -3
- package/src/brokers/signed-in/adapter.ts +1 -1
- package/src/brokers/signed-in/client.ts +1 -1
- package/src/brokers/signed-in/connect.ts +1 -1
- package/src/brokers/signed-in/sign-in.ts +1 -1
- package/src/cli/commands/plugins.ts +3 -3
- package/src/cli/desktop-pane-shot.ts +3 -3
- package/src/cli/errors.ts +3 -3
- package/src/cli/pane-functions/capabilities.ts +2 -2
- package/src/cli/pane-functions/dom.ts +1 -1
- package/src/cli/pane-functions/function-help.ts +1031 -0
- package/src/cli/pane-functions/headless.ts +1 -1
- package/src/cli/pane-functions/options.ts +1 -1
- package/src/cli/pane-functions/report.ts +1 -1
- package/src/cli/pane-functions/screenshot-evidence.ts +3 -3
- package/src/cli/pane-functions/screenshot.ts +5 -6
- package/src/cli/restore-plugins.ts +1 -1
- package/src/components/chart/composite/column-layout.ts +1 -1
- package/src/components/chart/composite/composite-chart.tsx +298 -24
- package/src/components/chart/composite/downsample.ts +1 -1
- package/src/components/chart/composite/index.ts +0 -1
- package/src/components/chart/composite/interactions.ts +2 -0
- package/src/components/chart/composite/levels.ts +154 -0
- package/src/components/chart/composite/rasterizer.ts +9 -1
- package/src/components/chart/composite/scene.ts +60 -1
- package/src/components/chart/composite/session-shading.ts +99 -0
- package/src/components/chart/composite/text-renderer.ts +5 -0
- package/src/components/chart/composite/time-axis.ts +1 -1
- package/src/components/chart/composite/tools.ts +1 -1
- package/src/components/chart/composite/types.ts +42 -3
- package/src/components/chart/composite/volume-profile-paint.ts +77 -0
- package/src/components/chart/curve/index.ts +2 -2
- package/src/components/chart/curve/model.ts +7 -4
- package/src/components/chart/native/kitty/support.ts +1 -1
- package/src/components/chart/static/index.ts +0 -2
- package/src/components/chart/static/series.ts +3 -0
- package/src/components/chart/static/trail-chart-surface.tsx +1 -1
- package/src/components/chart/surface3d/model.ts +4 -4
- package/src/components/chart/surface3d/software.ts +1 -1
- package/src/components/chart-table/axis.ts +20 -0
- package/src/components/chart-table/index.ts +4 -8
- package/src/components/chart-table/layout.ts +3 -3
- package/src/components/chart-table/selection.ts +1 -1
- package/src/components/command-bar/assist/model.ts +1 -1
- package/src/components/command-bar/commands/registry.ts +4 -1
- package/src/components/command-bar/keyboard-handlers.ts +1 -1
- package/src/components/command-bar/keyboard-shortcuts.ts +1 -1
- package/src/components/command-bar/layout-items/current-layout.ts +2 -2
- package/src/components/command-bar/layout-items/focused-pane.ts +3 -3
- package/src/components/command-bar/layout-items.ts +1 -1
- package/src/components/command-bar/list/badge.ts +1 -1
- package/src/components/command-bar/multi-select-picker.tsx +1 -1
- package/src/components/command-bar/pane-actions.ts +3 -3
- package/src/components/command-bar/pane-settings.ts +1 -1
- package/src/components/command-bar/pane-templates/workflow.ts +1 -1
- package/src/components/command-bar/panel/layout.ts +1 -1
- package/src/components/command-bar/panel/runtime.ts +1 -1
- package/src/components/command-bar/panel/types.ts +1 -1
- package/src/components/command-bar/picker-activation.ts +3 -3
- package/src/components/command-bar/routes/root/help-items.ts +66 -0
- package/src/components/command-bar/routes/root/results.ts +9 -0
- package/src/components/command-bar/routes/root/search-report.ts +1 -1
- package/src/components/command-bar/routes/root/selection.ts +7 -1
- package/src/components/command-bar/routes/ticker-search/results.ts +1 -1
- package/src/components/command-bar/surface/environment.ts +0 -4
- package/src/components/command-bar/surface/index.tsx +3 -4
- package/src/components/command-bar/workflow/collection-actions.ts +9 -9
- package/src/components/command-bar/workflow/fields.ts +35 -13
- package/src/components/command-bar/workflow/ops.ts +6 -5
- package/src/components/command-bar/workflow/route-actions.ts +2 -3
- package/src/components/command-bar/workflow/submit.ts +2 -2
- package/src/components/feedback-dialog.tsx +1 -1
- package/src/components/layout/detached-pane-shell.tsx +4 -10
- package/src/components/layout/pane/cycle-order.ts +1 -1
- package/src/components/layout/pane/footer/index.tsx +0 -3
- package/src/components/layout/pane/footer/registration.tsx +0 -12
- package/src/components/layout/pane/header.tsx +1 -1
- package/src/components/layout/pane/sidebar.tsx +0 -1
- package/src/components/layout/shell/active-drag.ts +1 -1
- package/src/components/layout/shell/chrome.ts +1 -1
- package/src/components/layout/shell/cursor-occlusion.ts +1 -1
- package/src/components/layout/shell/drag/index.ts +1 -1
- package/src/components/layout/shell/drag/overlays.tsx +1 -1
- package/src/components/layout/shell/drag/runtime.ts +1 -1
- package/src/components/layout/shell/fullscreen.ts +1 -1
- package/src/components/layout/shell/index.tsx +7 -18
- package/src/components/layout/shell/layout-state.ts +1 -1
- package/src/components/layout/shell/menu.ts +1 -1
- package/src/components/layout/shell/native/pointer-runtime.ts +1 -1
- package/src/components/layout/shell/native/surfaces.ts +1 -1
- package/src/components/layout/shell/native/window-state.ts +1 -1
- package/src/components/layout/shell/pane/actions.ts +3 -3
- package/src/components/layout/shell/pane/layers.tsx +1 -1
- package/src/components/layout/shell/pane-occlusion.ts +1 -1
- package/src/components/layout/shell/terminal-pointer-runtime.ts +1 -1
- package/src/components/layout/shell/ticker-link-menu.ts +1 -1
- package/src/components/layout/shell/visible-layout.ts +1 -1
- package/src/components/layout/shell/window-mode/index.ts +2 -9
- package/src/components/layout/shell/window-mode/overlays.tsx +1 -1
- package/src/components/layout/status-bar-groups.ts +1 -1
- package/src/components/layout/status-bar.tsx +5 -6
- package/src/components/layout/titlebar-overlay.ts +1 -1
- package/src/components/layout/window-edit/mode.ts +1 -1
- package/src/components/layout/window-edit/presentation.ts +1 -1
- package/src/components/layout/window-edit/status.tsx +1 -1
- package/src/components/layout/window-fullscreen.ts +1 -1
- package/src/components/onboarding/first-run-workspace.ts +2 -2
- package/src/components/onboarding/onboarding-wizard.tsx +1 -1
- package/src/components/onboarding/wizard-account.ts +43 -132
- package/src/components/onboarding/wizard-broker-sync.ts +1 -1
- package/src/components/onboarding/wizard-positions.ts +1 -1
- package/src/components/quote-flash.ts +2 -2
- package/src/components/ticker/badge/index.tsx +2 -2
- package/src/components/ui/data-table/stable-columns.ts +1 -1
- package/src/components/ui/data-table/types.ts +1 -1
- package/src/components/ui/external-link.tsx +6 -2
- package/src/components/ui/index.ts +0 -1
- package/src/components/ui/multi-select/dialog.tsx +18 -8
- package/src/components/ui/number-prompt-dialog.tsx +1 -1
- package/src/components/ui/split-bar.tsx +1 -1
- package/src/components/ui/table-layout.ts +1 -1
- package/src/components/ui/text-prompt-dialog.tsx +4 -1
- package/src/core/app-runtime.ts +8 -6
- package/src/core/connection-health.ts +2 -2
- package/src/core/state/app/layout-reducer.ts +0 -12
- package/src/core/state/app/layout.ts +7 -19
- package/src/core/state/app/state.ts +6 -13
- package/src/core/state/app/types.ts +10 -2
- package/src/core/state/session-persistence.ts +3 -5
- package/src/data/config/chart-settings.ts +1 -1
- package/src/data/config/home.ts +1 -1
- package/src/data/config/store/node.ts +1 -1
- package/src/data/config/store/normalize.ts +0 -3
- package/src/i18n/es.ts +11 -0
- package/src/i18n/index.ts +0 -2
- package/src/i18n/ja.ts +11 -0
- package/src/i18n/ko.ts +11 -0
- package/src/i18n/languages.ts +1 -1
- package/src/i18n/zh-cn.ts +11 -0
- package/src/i18n/zh-tw.ts +11 -0
- package/src/{plugins → layout}/launch-layout.ts +0 -1
- package/src/{plugins/pane-manager.ts → layout/pane-manager/index.ts} +8 -9
- package/src/layout-marketplace/api.ts +1 -1
- package/src/layout-marketplace/cloud.ts +3 -3
- package/src/layout-marketplace/gallery.tsx +1 -1
- package/src/layout-marketplace/geometry.ts +1 -1
- package/src/layout-marketplace/linked-sync.ts +1 -1
- package/src/layout-marketplace/linked.ts +2 -2
- package/src/layout-marketplace/model.ts +2 -2
- package/src/layout-marketplace/use-marketplace.ts +3 -3
- package/src/market-data/coordinator/index.ts +0 -1
- package/src/market-data/coordinator/quotes.ts +3 -3
- package/src/market-data/frame-scheduler.ts +1 -1
- package/src/market-data/history-session.ts +1 -1
- package/src/market-data/market/freshness.ts +64 -0
- package/src/market-data/market/trading-sessions.ts +72 -0
- package/src/market-data/realized-volatility.ts +2 -2
- package/src/market-data/snapshot-provider.ts +1 -1
- package/src/news/hooks.ts +1 -1
- package/src/news/news-model.ts +1 -1
- package/src/news/types.ts +1 -1
- package/src/plugins/auto-update-node.ts +2 -1
- package/src/plugins/auto-update.ts +2 -2
- package/src/plugins/builtin/alerts/levels.ts +60 -0
- package/src/plugins/builtin/alerts/research-rules.ts +2 -2
- package/src/plugins/builtin/analytics/index.tsx +0 -1
- package/src/plugins/builtin/analytics/pane-model.ts +1 -1
- package/src/plugins/builtin/analytics/risk-client.ts +2 -2
- package/src/plugins/builtin/analytics/risk-evidence.ts +4 -4
- package/src/plugins/builtin/analytics/risk-math.ts +3 -3
- package/src/plugins/builtin/analytics/risk-model.ts +2 -2
- package/src/plugins/builtin/analytics/risk-test-data.ts +1 -0
- package/src/plugins/builtin/analytics/sharpe-cadence.ts +1 -1
- package/src/plugins/builtin/backtest/client.ts +1 -1
- package/src/plugins/builtin/backtest/engine.ts +1 -1
- package/src/plugins/builtin/backtest/rules.ts +5 -5
- package/src/plugins/builtin/bond-calculator/math.ts +3 -3
- package/src/plugins/builtin/buildout/detail/company.tsx +1 -1
- package/src/plugins/builtin/buildout/format.ts +1 -1
- package/src/plugins/builtin/cds/client.ts +1 -1
- package/src/plugins/builtin/cds/headless.ts +1 -1
- package/src/plugins/builtin/chart-composer/catalog-inventory.ts +2 -2
- package/src/plugins/builtin/chart-composer/chart-spec-edit.ts +502 -0
- package/src/plugins/builtin/chart-composer/editor/controller.ts +6 -7
- package/src/plugins/builtin/chart-composer/editor/model.ts +2 -2
- package/src/plugins/builtin/chart-composer/follow-binding.ts +1 -1
- package/src/plugins/builtin/chart-composer/headless.ts +5 -3
- package/src/plugins/builtin/chart-composer/pane.tsx +272 -25
- package/src/plugins/builtin/chart-composer/presets.ts +7 -836
- package/src/plugins/builtin/chart-composer/price-levels.ts +80 -0
- package/src/plugins/builtin/chart-composer/quick-add.tsx +4 -4
- package/src/plugins/builtin/chart-composer/series-catalog.ts +1 -4
- package/src/plugins/builtin/chart-composer/series-expression.ts +189 -0
- package/src/{time-series → plugins/builtin/chart-composer}/session-history.ts +14 -14
- package/src/plugins/builtin/chart-composer/settings.ts +35 -14
- package/src/plugins/builtin/chart-composer/studies.ts +242 -0
- package/src/plugins/builtin/chat/channel-labels.ts +1 -1
- package/src/plugins/builtin/chat/channels.ts +1 -1
- package/src/plugins/builtin/chat/content/transcript.tsx +0 -1
- package/src/plugins/builtin/chat/layout.ts +2 -2
- package/src/plugins/builtin/chat/message/profile-popover.tsx +1 -1
- package/src/plugins/builtin/chat/pane.tsx +0 -2
- package/src/plugins/builtin/chat/profile-popover.ts +1 -1
- package/src/plugins/builtin/chat/sidebar-store.ts +2 -2
- package/src/plugins/builtin/cloud/askg/executor.ts +3 -3
- package/src/plugins/builtin/cloud/askg/manifest.ts +3 -3
- package/src/plugins/builtin/cloud/askg/model.ts +5 -5
- package/src/plugins/builtin/cloud/askg/pane.tsx +1 -1
- package/src/plugins/builtin/cloud/askg/protocol.ts +14 -14
- package/src/plugins/builtin/cloud/auth-dialog.tsx +1 -1
- package/src/plugins/builtin/cloud/auth-form.tsx +31 -94
- package/src/plugins/builtin/cloud/auth-model.ts +1 -1
- package/src/plugins/builtin/cloud/device-signin-dialog.tsx +1 -1
- package/src/plugins/builtin/cloud/email-auth-attempt.ts +173 -0
- package/src/plugins/builtin/cloud/team/capability.ts +1 -1
- package/src/plugins/builtin/cloud/team/collections.ts +1 -1
- package/src/plugins/builtin/cloud/team/command.ts +2 -2
- package/src/plugins/builtin/cloud/team/model.ts +1 -1
- package/src/plugins/builtin/cloud/team/pane-sections.tsx +1 -1
- package/src/plugins/builtin/cloud/team/pane-ui.tsx +1 -1
- package/src/plugins/builtin/cloud/team/pane.tsx +1 -1
- package/src/plugins/builtin/cloud/team/views.ts +2 -2
- package/src/plugins/builtin/cloud/thesis/exposure.ts +2 -2
- package/src/plugins/builtin/cloud/thesis/ticker-tab.tsx +0 -1
- package/src/plugins/builtin/cloud/upgrade-dialog.tsx +2 -2
- package/src/plugins/builtin/cloud-tweets/model.ts +1 -1
- package/src/{utils → plugins/builtin/cloud-tweets}/tweet-text.ts +1 -1
- package/src/plugins/builtin/composite-plugins.ts +4 -0
- package/src/plugins/builtin/congress-trades/detail.tsx +1 -1
- package/src/plugins/builtin/congress-trades/model.ts +1 -1
- package/src/plugins/builtin/congress-trades/table.tsx +1 -1
- package/src/plugins/builtin/connections/pane.tsx +1 -1
- package/src/plugins/builtin/correlation/index.tsx +2 -2
- package/src/plugins/builtin/correlation/relationship/pane.tsx +1 -1
- package/src/plugins/builtin/correlation/relationship/view-model.ts +1 -1
- package/src/plugins/builtin/cot/client.ts +1 -1
- package/src/plugins/builtin/credit-boards/client.ts +2 -2
- package/src/plugins/builtin/credit-boards/model.ts +5 -11
- package/src/plugins/builtin/credit-conditions/client.ts +1 -1
- package/src/plugins/builtin/credit-conditions/headless.ts +2 -2
- package/src/plugins/builtin/crypto-board/model.ts +4 -4
- package/src/plugins/builtin/crypto-board/pane.tsx +1 -1
- package/src/plugins/builtin/custom-view/live-quotes.ts +1 -1
- package/src/plugins/builtin/custom-view/pane.tsx +35 -23
- package/src/plugins/builtin/custom-view/view-spec.ts +9 -9
- package/src/plugins/builtin/debt-maturities/model.ts +2 -18
- package/src/plugins/builtin/debt-maturities/pane.tsx +2 -2
- package/src/plugins/builtin/earnings/board-model.ts +1 -1
- package/src/plugins/builtin/earnings/client.ts +2 -2
- package/src/plugins/builtin/earnings/data/cache.ts +1 -1
- package/src/plugins/builtin/earnings/estimate-basis.ts +2 -7
- package/src/plugins/builtin/earnings/headless.ts +3 -3
- package/src/plugins/builtin/earnings/history-model.ts +1 -1
- package/src/plugins/builtin/earnings-calls/headless.ts +1 -1
- package/src/plugins/builtin/econ/detail-view.tsx +1 -1
- package/src/plugins/builtin/econ/index.tsx +1 -1
- package/src/plugins/builtin/econ-statistics/detail.tsx +1 -1
- package/src/plugins/builtin/econ-statistics/pane.tsx +1 -1
- package/src/plugins/builtin/econ-statistics/view.ts +3 -3
- package/src/plugins/builtin/fear-greed/headless.ts +1 -1
- package/src/plugins/builtin/fear-greed/index.tsx +0 -2
- package/src/plugins/builtin/futures/index.tsx +1 -1
- package/src/plugins/builtin/futures/returns.ts +1 -1
- package/src/plugins/builtin/futures/use-front-returns.ts +1 -1
- package/src/plugins/builtin/futures-curve/model.ts +2 -2
- package/src/plugins/builtin/help/function-card.tsx +202 -0
- package/src/plugins/builtin/help/function-index.ts +193 -0
- package/src/plugins/builtin/help/index.tsx +31 -1
- package/src/plugins/builtin/help/shortcut-model.ts +1 -1
- package/src/plugins/builtin/help/table-cells.tsx +1 -1
- package/src/plugins/builtin/insider/client.ts +1 -1
- package/src/plugins/builtin/insider/model.ts +1 -1
- package/src/plugins/builtin/ipo-calendar/headless.ts +1 -1
- package/src/plugins/builtin/ipo-calendar/model.ts +1 -1
- package/src/plugins/builtin/iv-history/charts.tsx +1 -1
- package/src/plugins/builtin/iv-history/client.ts +2 -2
- package/src/plugins/builtin/iv-history/model.ts +4 -4
- package/src/plugins/builtin/jobs/client.ts +1 -1
- package/src/plugins/builtin/jobs/model.ts +3 -3
- package/src/plugins/builtin/jobs/pane.tsx +2 -2
- package/src/plugins/builtin/kelly-sizer/model.ts +1 -1
- package/src/plugins/builtin/kelly-sizer/test-support.tsx +1 -1
- package/src/plugins/builtin/kelly-sizer/types.ts +1 -1
- package/src/plugins/builtin/layout-manager/index.tsx +1 -1
- package/src/plugins/builtin/macro-resources.ts +1 -1
- package/src/plugins/builtin/market-halts/pane.tsx +5 -1
- package/src/plugins/builtin/market-heatmap/data.ts +4 -4
- package/src/plugins/builtin/market-movers/screener.ts +1 -1
- package/src/plugins/builtin/market-valuation/align.ts +1 -1
- package/src/plugins/builtin/market-valuation/chart-projection.ts +1 -1
- package/src/plugins/builtin/market-valuation/defs.ts +3 -3
- package/src/plugins/builtin/market-valuation/headless.ts +1 -1
- package/src/plugins/builtin/market-valuation/indicators.ts +4 -4
- package/src/plugins/builtin/market-valuation/series.ts +1 -1
- package/src/plugins/builtin/market-valuation/settings.ts +1 -1
- package/src/plugins/builtin/market-valuation/sources.ts +1 -1
- package/src/plugins/builtin/market-valuation/view.ts +1 -1
- package/src/plugins/builtin/market-valuation/zone-scale/model.ts +1 -1
- package/src/plugins/builtin/mna/client.ts +3 -3
- package/src/plugins/builtin/mna/detail.tsx +1 -1
- package/src/plugins/builtin/mna/model.ts +2 -7
- package/src/plugins/builtin/mna/pane.tsx +2 -2
- package/src/plugins/builtin/news/headless.ts +1 -1
- package/src/plugins/builtin/news/wire/breaking/filters.ts +5 -5
- package/src/plugins/builtin/notes/store.ts +1 -1
- package/src/plugins/builtin/options/enrichment.ts +1 -1
- package/src/plugins/builtin/options/footer.ts +2 -2
- package/src/plugins/builtin/options/live-quotes.ts +4 -4
- package/src/plugins/builtin/options/types.ts +1 -1
- package/src/plugins/builtin/options-positioning/client.ts +100 -0
- package/src/plugins/builtin/options-positioning/headless.ts +112 -0
- package/src/plugins/builtin/options-positioning/index.tsx +69 -0
- package/src/plugins/builtin/options-positioning/model.ts +158 -0
- package/src/plugins/builtin/options-positioning/pane.tsx +582 -0
- package/src/plugins/builtin/options-scenario/model.ts +3 -3
- package/src/plugins/builtin/plugin-marketplace/model.ts +1 -1
- package/src/plugins/builtin/plugin-marketplace/store.ts +1 -1
- package/src/plugins/builtin/portfolio-list/account-metrics.ts +1 -1
- package/src/plugins/builtin/portfolio-list/pane/index.tsx +0 -1
- package/src/plugins/builtin/portfolio-list/position-metrics.ts +1 -1
- package/src/plugins/builtin/portfolio-list/summary/index.tsx +1 -1
- package/src/plugins/builtin/portfolio-list/summary/live-accounts.ts +1 -1
- package/src/plugins/builtin/portfolio-list/summary/totals.ts +1 -1
- package/src/plugins/builtin/rate-path/model.ts +1 -1
- package/src/plugins/builtin/realized-vol/chart-model.ts +1 -1
- package/src/plugins/builtin/realized-vol/evidence.ts +1 -1
- package/src/plugins/builtin/realized-vol/model.ts +2 -2
- package/src/plugins/builtin/relative-rotation/model.ts +3 -3
- package/src/plugins/builtin/research/corporate-actions-pane.tsx +1 -1
- package/src/plugins/builtin/research/events-headless.ts +1 -1
- package/src/plugins/builtin/research/headless.ts +1 -1
- package/src/plugins/builtin/research-search/model.ts +1 -1
- package/src/plugins/builtin/revenue-breakdown/bars.tsx +1 -1
- package/src/plugins/builtin/revenue-breakdown/client.ts +1 -1
- package/src/plugins/builtin/revenue-breakdown/model.ts +1 -1
- package/src/plugins/builtin/revenue-breakdown/pane.tsx +1 -1
- package/src/plugins/builtin/scanner/flow-model.ts +3 -3
- package/src/plugins/builtin/scanner/flow-pane.tsx +1 -1
- package/src/plugins/builtin/scanner/headless.ts +5 -5
- package/src/plugins/builtin/scanner/hilo-model.ts +3 -3
- package/src/plugins/builtin/seasonality/client.ts +41 -0
- package/src/plugins/builtin/seasonality/headless.ts +38 -0
- package/src/plugins/builtin/seasonality/index.tsx +20 -0
- package/src/plugins/builtin/seasonality/model.ts +124 -0
- package/src/plugins/builtin/seasonality/pane.tsx +156 -0
- package/src/plugins/builtin/sec/model.ts +1 -1
- package/src/plugins/builtin/shared/cloud-upgrade.ts +2 -2
- package/src/plugins/builtin/shared/mine-tickers.ts +1 -1
- package/src/plugins/builtin/shared/series-cache.ts +2 -2
- package/src/plugins/builtin/shared/use-quote-board.ts +1 -1
- package/src/plugins/builtin/shared/volatility/options.ts +1 -1
- package/src/plugins/builtin/short-interest/model.ts +1 -1
- package/src/plugins/builtin/short-volume/model.ts +1 -1
- package/src/plugins/builtin/social-mentions/index.tsx +1 -1
- package/src/plugins/builtin/social-mentions/model.ts +1 -1
- package/src/plugins/builtin/thirteenf/model.ts +1 -1
- package/src/plugins/builtin/thirteenf/signals.ts +1 -1
- package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.tsx +1 -1
- package/src/plugins/builtin/ticker-detail/financials/ratios.ts +1 -1
- package/src/plugins/builtin/ticker-detail/financials/schema.ts +0 -1
- package/src/plugins/builtin/ticker-detail/overview/components.tsx +95 -16
- package/src/plugins/builtin/ticker-detail/overview/model.ts +108 -2
- package/src/plugins/builtin/ticker-detail/overview/pane.tsx +12 -0
- package/src/plugins/builtin/ticker-detail/overview/types.ts +21 -0
- package/src/plugins/builtin/ticker-detail/overview-tab.tsx +27 -34
- package/src/plugins/builtin/ticker-detail/pane.tsx +15 -6
- package/src/plugins/builtin/ticker-detail/research-tab-navigation.tsx +14 -0
- package/src/plugins/builtin/time-sales/model.ts +1 -1
- package/src/plugins/builtin/treasury-auctions/headless.ts +2 -2
- package/src/plugins/builtin/treasury-auctions/model.ts +1 -1
- package/src/plugins/builtin/vol-surface/client.ts +4 -4
- package/src/plugins/builtin/vol-surface/live.ts +1 -1
- package/src/plugins/builtin/vol-surface/model.ts +7 -7
- package/src/plugins/builtin/vol-surface/pane.tsx +1 -1
- package/src/plugins/builtin/vol-surface/stored.ts +1 -1
- package/src/plugins/builtin/volatility/client.ts +4 -4
- package/src/plugins/builtin/volatility/headless.ts +1 -1
- package/src/plugins/builtin/volatility/model.ts +5 -5
- package/src/plugins/builtin/world-indices/headless.ts +3 -3
- package/src/plugins/builtin/yield-curve/chart.ts +61 -16
- package/src/plugins/builtin/yield-curve/curves.ts +171 -0
- package/src/plugins/builtin/yield-curve/forward.ts +102 -0
- package/src/plugins/builtin/yield-curve/headless.ts +96 -41
- package/src/plugins/builtin/yield-curve/index.tsx +331 -120
- package/src/plugins/builtin/yield-curve/world.ts +53 -0
- package/src/plugins/bundle.ts +1 -1
- package/src/plugins/catalog-browser.ts +4 -0
- package/src/plugins/catalog-manifest.ts +1 -1
- package/src/plugins/compat.ts +7 -3
- package/src/plugins/dependencies.ts +76 -0
- package/src/plugins/external-runtime.ts +1 -1
- package/src/plugins/host-link.ts +48 -10
- package/src/plugins/host-modules.ts +4 -1
- package/src/plugins/host-resolver.ts +4 -1
- package/src/plugins/installer.ts +16 -3
- package/src/plugins/loader.ts +12 -1
- package/src/plugins/ownership.ts +1 -1
- package/src/plugins/plugin-names.ts +1 -1
- package/src/plugins/registry/host-actions.ts +237 -0
- package/src/plugins/registry/index.ts +79 -146
- package/src/plugins/registry/plugin-state.ts +1 -1
- package/src/plugins/runtime/context.tsx +2 -25
- package/src/plugins/runtime/state.ts +2 -2
- package/src/public/__snapshots__/public-api.test.ts.snap +1 -0
- package/src/public/layout.ts +2 -2
- package/src/public/test-support.ts +9 -1
- package/src/react/ticker-source.ts +1 -1
- package/src/remote/controller-utils.ts +2 -3
- package/src/remote/controller.ts +14 -14
- package/src/remote/resources.ts +10 -4
- package/src/remote/schema.ts +2 -2
- package/src/remote/semantic-helpers.ts +1 -1
- package/src/remote/types.ts +3 -3
- package/src/renderers/browser/bundled-plugins.ts +31 -1
- package/src/renderers/browser/main.tsx +4 -4
- package/src/renderers/browser/ui-host.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/build-assets.ts +3 -2
- package/src/renderers/{electrobun/view → dom}/data-frames.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/data-table/dom.ts +3 -3
- package/src/renderers/{electrobun/view → dom}/data-table/index.tsx +9 -9
- package/src/renderers/{electrobun/view → dom}/data-table/row.tsx +5 -5
- package/src/renderers/{electrobun/view → dom}/desktop/control-styles.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/desktop/controls.tsx +16 -16
- package/src/renderers/{electrobun/view → dom}/desktop/icons.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/desktop/list-view.tsx +5 -5
- package/src/renderers/{electrobun/view → dom}/desktop/menu.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/desktop/popover.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/desktop/query-bar.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/desktop/select-field.tsx +6 -6
- package/src/renderers/{electrobun/view → dom}/dialog-host.tsx +4 -4
- package/src/renderers/{electrobun/view → dom}/dom-host-providers.tsx +2 -2
- package/src/renderers/{electrobun/view → dom}/dom-ui-host.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/host/ascii-text.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/host/chart-surface.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/host/input.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/host/media-surface.tsx +1 -1
- package/src/renderers/{electrobun/view → dom}/host/mouse.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/host/scroll-box.tsx +2 -2
- package/src/renderers/{electrobun/view → dom}/host/style.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/host/surface-3d.tsx +4 -4
- package/src/renderers/{electrobun/view → dom}/host/tabs.tsx +2 -2
- package/src/renderers/{electrobun/view → dom}/host/text.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/input-host.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/native-renderer.ts +2 -2
- package/src/renderers/{electrobun/view → dom}/test-utils.tsx +3 -3
- package/src/renderers/{electrobun/view → dom}/toast-host.tsx +2 -2
- package/src/{theme → renderers/electrobun/bun/desktop}/app-icon.ts +5 -5
- package/src/renderers/electrobun/bun/desktop/backend-requests.ts +45 -93
- package/src/renderers/electrobun/bun/desktop/backend.ts +514 -0
- package/src/renderers/electrobun/bun/desktop/capability-bridge.ts +1 -1
- package/src/renderers/electrobun/bun/desktop/detached-windows.ts +36 -54
- package/src/renderers/electrobun/bun/desktop/host-requests.ts +62 -53
- package/src/renderers/electrobun/bun/desktop/initialization.ts +25 -78
- package/src/renderers/electrobun/bun/desktop/macos-dock-icon.ts +1 -1
- package/src/renderers/electrobun/bun/desktop/state-broadcaster.ts +1 -1
- package/src/renderers/electrobun/bun/desktop/workspace/index.ts +2 -10
- package/src/renderers/electrobun/bun/desktop/workspace/requests.ts +20 -47
- package/src/renderers/electrobun/bun/index.ts +14 -648
- package/src/renderers/electrobun/bun/window/frame.ts +1 -1
- package/src/renderers/electrobun/shared/protocol.ts +11 -11
- package/src/renderers/electrobun/view/backend-rpc.ts +1 -1
- package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +3 -4
- package/src/renderers/electrobun/view/main.tsx +3 -3
- package/src/renderers/electrobun/view/ui-host.tsx +1 -1
- package/src/renderers/opentui/host.tsx +12 -6
- package/src/renderers/opentui/test-utils.tsx +104 -3
- package/src/renderers/share/layout-view.tsx +1 -1
- package/src/renderers/share/main.tsx +1 -1
- package/src/shares/pane.ts +3 -3
- package/src/shares/payload.ts +7 -7
- package/src/{layout-marketplace/payload.ts → shares/portable-layout.ts} +3 -3
- package/src/{data → sources/gloomberb-cloud}/fred-series.ts +4 -4
- package/src/sources/gloomberb-cloud/normalizers.ts +16 -1
- package/src/sources/history-retention.ts +2 -2
- package/src/sources/provider-router/financial-routes.ts +0 -1
- package/src/sources/provider-router/financials.ts +2 -0
- package/src/sources/yahoo-finance/mappers.ts +1 -1
- package/src/state/app/bootstrap.ts +1 -1
- package/src/state/app/context/index.tsx +1 -5
- package/src/state/hooks/inline-tickers.ts +1 -1
- package/src/state/hooks/live-ticker-financials.ts +2 -2
- package/src/state/hooks/quote-streaming.ts +1 -1
- package/src/state/hooks/session-snapshot.ts +0 -2
- package/src/sync/controller.ts +1 -1
- package/src/sync/core-contributors.ts +40 -2
- package/src/sync/types.ts +4 -4
- package/src/telemetry/crash-reports-node.ts +5 -5
- package/src/test-support/broker.ts +4 -3
- package/src/test-support/plugin-runtime.ts +2 -18
- package/src/theme/font-scale.ts +2 -2
- package/src/{plugins/builtin/correlation/colors.ts → theme/heat-colors.ts} +26 -13
- package/src/time-series/alignment.ts +1 -1
- package/src/time-series/fundamentals.ts +2 -2
- package/src/time-series/hooks.ts +2 -2
- package/src/time-series/live-bars.ts +1 -1
- package/src/time-series/price-comparison.ts +1 -1
- package/src/time-series/resolve.ts +12 -4
- package/src/time-series/spec.ts +5 -1
- package/src/time-series/studies.ts +330 -2
- package/src/time-series/trader-studies.ts +188 -0
- package/src/time-series/types.ts +18 -0
- package/src/types/config.ts +4 -0
- package/src/types/desktop-deeplink.ts +1 -0
- package/src/types/desktop-window.ts +2 -1
- package/src/types/financials.ts +31 -0
- package/src/types/plugin.ts +1 -0
- package/src/ui/context-menu.tsx +1 -1
- package/src/ui/host.tsx +5 -1
- package/src/ui/toast.tsx +2 -0
- package/src/utils/back-navigation.ts +1 -1
- package/src/utils/futures-generic.ts +23 -2
- package/src/utils/http-proxy-response.ts +1 -1
- package/src/utils/sec-eps-basis.ts +1 -1
- /package/src/{plugins → layout}/pane-manager/dock-tree.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/docking.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/floating-actions.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/floating.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/gridlock-inference.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/gridlock.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/layout-state.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/queries.ts +0 -0
- /package/src/{plugins → layout}/pane-manager/types.ts +0 -0
- /package/src/{plugins → layout}/pane-state.ts +0 -0
- /package/src/{plugins → layout}/ticker-navigation.ts +0 -0
- /package/src/plugins/{seed.ts → extracted-plugins.ts} +0 -0
- /package/src/renderers/{electrobun/view → dom}/data-table/frozen-column.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/desktop/stack-header.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/block-glyph-canvas.tsx +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/box.tsx +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/focus-scope.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/overflow-fade.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/host/top-surface.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/key-event.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/scrollbar-activity.ts +0 -0
- /package/src/renderers/{electrobun/view → dom}/styles.css +0 -0
- /package/src/renderers/electrobun/{view → shared}/rpc-codec.ts +0 -0
- /package/src/{utils → renderers/opentui}/terminal-input-reset.ts +0 -0
package/src/api-client/types.ts
CHANGED
|
@@ -171,7 +171,7 @@ export interface BuildoutTokenResponse {
|
|
|
171
171
|
expiresAt: string;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
interface CloudPricingTier {
|
|
175
175
|
/** Charged amount, in integer cents. */
|
|
176
176
|
amount: number;
|
|
177
177
|
}
|
|
@@ -370,7 +370,7 @@ export interface CloudFredSeriesPayload {
|
|
|
370
370
|
* One month of Robert Shiller's dataset. FRED carries no long-run S&P earnings,
|
|
371
371
|
* so this is what every earnings-based valuation ratio is built from.
|
|
372
372
|
*/
|
|
373
|
-
|
|
373
|
+
interface CloudShillerObservationPayload {
|
|
374
374
|
date: string;
|
|
375
375
|
price: number | null;
|
|
376
376
|
dividend: number | null;
|
|
@@ -444,7 +444,7 @@ export interface CloudCdsHistoryResponse {
|
|
|
444
444
|
points: CloudCdsHistoryPointPayload[];
|
|
445
445
|
}
|
|
446
446
|
|
|
447
|
-
|
|
447
|
+
interface CloudShortInterestPointPayload {
|
|
448
448
|
settlementDate: string;
|
|
449
449
|
sharesShort: number;
|
|
450
450
|
previousSharesShort: number | null;
|
|
@@ -585,7 +585,7 @@ export interface CloudEarningsCallPayload {
|
|
|
585
585
|
webcastUrl?: string | null;
|
|
586
586
|
}
|
|
587
587
|
|
|
588
|
-
|
|
588
|
+
interface CloudJobsSeriesPoint {
|
|
589
589
|
day: string;
|
|
590
590
|
open: number;
|
|
591
591
|
/** Null on the first observed day, when the whole board is seen for the first time. */
|
|
@@ -687,7 +687,7 @@ export interface CloudJobsSummaryPayload {
|
|
|
687
687
|
recent: CloudJobsPosting[];
|
|
688
688
|
}
|
|
689
689
|
|
|
690
|
-
|
|
690
|
+
interface CloudJobsPendingPayload {
|
|
691
691
|
status: "pending";
|
|
692
692
|
ticker: string;
|
|
693
693
|
queued: boolean;
|
|
@@ -744,7 +744,7 @@ export interface CloudExecutiveRowPayload {
|
|
|
744
744
|
total: number | null;
|
|
745
745
|
}
|
|
746
746
|
|
|
747
|
-
|
|
747
|
+
interface CloudProxyStatementSummaryPayload {
|
|
748
748
|
id: string;
|
|
749
749
|
ticker: string;
|
|
750
750
|
company: {
|
|
@@ -778,7 +778,7 @@ export interface CloudProxyStatementPayload extends CloudProxyStatementSummaryPa
|
|
|
778
778
|
otherYears: CloudProxyStatementSummaryPayload[];
|
|
779
779
|
}
|
|
780
780
|
|
|
781
|
-
|
|
781
|
+
interface CloudRiskFactorPayload {
|
|
782
782
|
heading: string;
|
|
783
783
|
group: string | null;
|
|
784
784
|
excerpt: string;
|
|
@@ -791,7 +791,7 @@ export interface CloudRiskNotePayload {
|
|
|
791
791
|
text: string;
|
|
792
792
|
}
|
|
793
793
|
|
|
794
|
-
|
|
794
|
+
interface CloudRiskReportSummaryPayload {
|
|
795
795
|
id: string;
|
|
796
796
|
ticker: string;
|
|
797
797
|
company: {
|
|
@@ -848,7 +848,7 @@ export interface CloudRiskReportListPayload {
|
|
|
848
848
|
reports: CloudRiskReportSummaryPayload[];
|
|
849
849
|
}
|
|
850
850
|
|
|
851
|
-
|
|
851
|
+
interface CloudFilingPersonPayload {
|
|
852
852
|
name: string;
|
|
853
853
|
role: string;
|
|
854
854
|
action: string;
|
|
@@ -904,7 +904,7 @@ export interface CloudTranscriptTurnPayload {
|
|
|
904
904
|
startSeconds: number | null;
|
|
905
905
|
}
|
|
906
906
|
|
|
907
|
-
|
|
907
|
+
interface CloudTranscriptKeyFigurePayload {
|
|
908
908
|
/** What the number is, e.g. "Q3 revenue guidance". */
|
|
909
909
|
label: string;
|
|
910
910
|
/** As management said it, e.g. "$108B ± 2%". */
|
|
@@ -913,7 +913,7 @@ export interface CloudTranscriptKeyFigurePayload {
|
|
|
913
913
|
note?: string;
|
|
914
914
|
}
|
|
915
915
|
|
|
916
|
-
|
|
916
|
+
interface CloudTranscriptParticipantPayload {
|
|
917
917
|
name: string;
|
|
918
918
|
role?: string;
|
|
919
919
|
company?: string;
|
|
@@ -1056,7 +1056,7 @@ export interface CloudSavedSearchInput {
|
|
|
1056
1056
|
alertChannels?: string[];
|
|
1057
1057
|
}
|
|
1058
1058
|
|
|
1059
|
-
|
|
1059
|
+
interface CloudSecFilingPayload {
|
|
1060
1060
|
accessionNumber: string;
|
|
1061
1061
|
form: string;
|
|
1062
1062
|
filingDate: string;
|
|
@@ -1072,7 +1072,7 @@ export interface CloudSecFilingPayload {
|
|
|
1072
1072
|
primaryDocumentUrl?: string;
|
|
1073
1073
|
}
|
|
1074
1074
|
|
|
1075
|
-
|
|
1075
|
+
interface CloudSecDocumentPayload {
|
|
1076
1076
|
sequence?: string;
|
|
1077
1077
|
type: string;
|
|
1078
1078
|
description?: string;
|
|
@@ -1092,7 +1092,7 @@ export interface CloudSecDocumentsResponse {
|
|
|
1092
1092
|
documents: CloudSecDocumentPayload[];
|
|
1093
1093
|
}
|
|
1094
1094
|
|
|
1095
|
-
|
|
1095
|
+
interface CloudSecForm4Payload {
|
|
1096
1096
|
filingDate: string;
|
|
1097
1097
|
reportedName: string;
|
|
1098
1098
|
title: string;
|
|
@@ -1359,7 +1359,7 @@ export type CloudEquityDiagnosticFindingKind =
|
|
|
1359
1359
|
"red_flag" | "green_flag" | "anomaly";
|
|
1360
1360
|
|
|
1361
1361
|
/** 3 is the most severe. */
|
|
1362
|
-
|
|
1362
|
+
type CloudEquityDiagnosticSeverity = 1 | 2 | 3;
|
|
1363
1363
|
|
|
1364
1364
|
export interface CloudEquityDiagnosticFinding {
|
|
1365
1365
|
id: string;
|
|
@@ -1393,7 +1393,7 @@ export interface CloudEquityDiagnosticEvidence {
|
|
|
1393
1393
|
url?: string;
|
|
1394
1394
|
}
|
|
1395
1395
|
|
|
1396
|
-
|
|
1396
|
+
interface CloudEquityDiagnosticPending {
|
|
1397
1397
|
status: "generating";
|
|
1398
1398
|
retryAfterMs: number;
|
|
1399
1399
|
}
|
|
@@ -1459,7 +1459,7 @@ export type ScannerKind = "hilo" | "flow";
|
|
|
1459
1459
|
|
|
1460
1460
|
export type ScannerStatus = "live" | "starting" | "closed" | "degraded";
|
|
1461
1461
|
|
|
1462
|
-
|
|
1462
|
+
interface ScannerWindowCounts {
|
|
1463
1463
|
highs: number;
|
|
1464
1464
|
lows: number;
|
|
1465
1465
|
}
|
|
@@ -1474,7 +1474,7 @@ export interface ScannerHiloExtreme {
|
|
|
1474
1474
|
}
|
|
1475
1475
|
|
|
1476
1476
|
/** Which entitlement tier produced the payload: free accounts get a delayed instance. */
|
|
1477
|
-
|
|
1477
|
+
interface ScannerAccessInfo {
|
|
1478
1478
|
access: "realtime" | "delayed";
|
|
1479
1479
|
/** 0 on the realtime instance, 15 on the delayed one. */
|
|
1480
1480
|
delayMinutes: number;
|
|
@@ -1559,7 +1559,7 @@ export interface QuoteStreamTarget {
|
|
|
1559
1559
|
weight?: number;
|
|
1560
1560
|
}
|
|
1561
1561
|
|
|
1562
|
-
|
|
1562
|
+
const TEAM_ACCENT_COLORS = [
|
|
1563
1563
|
"amber",
|
|
1564
1564
|
"blue",
|
|
1565
1565
|
"cyan",
|
|
@@ -1667,7 +1667,7 @@ interface TeamNotificationTeam {
|
|
|
1667
1667
|
shortName: string;
|
|
1668
1668
|
}
|
|
1669
1669
|
|
|
1670
|
-
|
|
1670
|
+
type TeamNotificationData =
|
|
1671
1671
|
| {
|
|
1672
1672
|
kind: "team-invite";
|
|
1673
1673
|
team: TeamNotificationTeam;
|
|
@@ -1685,7 +1685,7 @@ export type TeamNotificationData =
|
|
|
1685
1685
|
author: TeamActor;
|
|
1686
1686
|
};
|
|
1687
1687
|
|
|
1688
|
-
|
|
1688
|
+
type TeamNotificationType = TeamNotificationData["kind"];
|
|
1689
1689
|
|
|
1690
1690
|
export interface TeamNotification {
|
|
1691
1691
|
id: string;
|
|
@@ -1697,10 +1697,10 @@ export interface TeamNotification {
|
|
|
1697
1697
|
|
|
1698
1698
|
// Cloud notes
|
|
1699
1699
|
|
|
1700
|
-
|
|
1700
|
+
type NoteOwnerKind = "user" | "team";
|
|
1701
1701
|
export type NoteKind = "ticker" | "quick";
|
|
1702
1702
|
|
|
1703
|
-
|
|
1703
|
+
interface CloudNoteOwner {
|
|
1704
1704
|
kind: NoteOwnerKind;
|
|
1705
1705
|
id: string;
|
|
1706
1706
|
}
|
|
@@ -1733,14 +1733,14 @@ export type ThesisStatus = "watching" | "active" | "closed";
|
|
|
1733
1733
|
export type ThesisHealth = "unverified" | "intact" | "weakening" | "broken";
|
|
1734
1734
|
export type ThesisPillarStatus = ThesisHealth;
|
|
1735
1735
|
|
|
1736
|
-
|
|
1736
|
+
interface ThesisInstrument {
|
|
1737
1737
|
symbol: string;
|
|
1738
1738
|
exchange?: string;
|
|
1739
1739
|
side: "long" | "short";
|
|
1740
1740
|
role: "core" | "hedge";
|
|
1741
1741
|
}
|
|
1742
1742
|
|
|
1743
|
-
|
|
1743
|
+
interface ThesisMetricBound {
|
|
1744
1744
|
key: string;
|
|
1745
1745
|
op: ">=" | "<=";
|
|
1746
1746
|
value: number;
|
|
@@ -1783,13 +1783,13 @@ export interface ThesisDocument {
|
|
|
1783
1783
|
entry?: { date?: string; price?: number };
|
|
1784
1784
|
}
|
|
1785
1785
|
|
|
1786
|
-
|
|
1786
|
+
interface ThesisOutcome {
|
|
1787
1787
|
verdict: "right" | "wrong" | "lucky" | "unlucky";
|
|
1788
1788
|
returnPct?: number;
|
|
1789
1789
|
lesson?: string;
|
|
1790
1790
|
}
|
|
1791
1791
|
|
|
1792
|
-
|
|
1792
|
+
interface ThesisEditor {
|
|
1793
1793
|
id: string;
|
|
1794
1794
|
username: string | null;
|
|
1795
1795
|
displayName: string;
|
|
@@ -1817,11 +1817,11 @@ export interface CloudThesis {
|
|
|
1817
1817
|
closedAt: string | null;
|
|
1818
1818
|
}
|
|
1819
1819
|
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1820
|
+
type ThesisSignalTargetKind = "pillar" | "kill" | "catalyst" | "thesis";
|
|
1821
|
+
type ThesisSignalVerdict = "supports" | "challenges" | "breaks" | "neutral";
|
|
1822
|
+
type ThesisSignalStatus = "open" | "accepted" | "dismissed" | "snoozed" | "noted";
|
|
1823
1823
|
|
|
1824
|
-
|
|
1824
|
+
interface ThesisSignalSource {
|
|
1825
1825
|
kind: "news" | "filing" | "transcript" | "metric" | "review" | "user";
|
|
1826
1826
|
id?: string;
|
|
1827
1827
|
title?: string;
|
|
@@ -1893,7 +1893,7 @@ export interface TeamCollectionItem {
|
|
|
1893
1893
|
updatedAt: string;
|
|
1894
1894
|
}
|
|
1895
1895
|
|
|
1896
|
-
|
|
1896
|
+
type TeamCollectionChange =
|
|
1897
1897
|
| { change: "created"; collection: TeamCollection }
|
|
1898
1898
|
| { change: "updated"; collection: TeamCollection }
|
|
1899
1899
|
| { change: "deleted"; collectionId: string }
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Government bond curves stored from their official publishers, in percent. */
|
|
2
|
+
export type CloudCurveId = "us" | "us-real" | "us-breakeven" | "eu-aaa" | "de" | "gb" | "jp" | "ca";
|
|
3
|
+
|
|
4
|
+
export interface CloudCurvePoint {
|
|
5
|
+
tenor: string;
|
|
6
|
+
years: number;
|
|
7
|
+
yield: number | null;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface CloudCurveHeader {
|
|
11
|
+
id: CloudCurveId;
|
|
12
|
+
label: string;
|
|
13
|
+
country: string;
|
|
14
|
+
/** par: bonds priced at par; zero: spot rates; benchmark: named benchmark bonds; spread: nominal minus real. */
|
|
15
|
+
basis: "par" | "zero" | "benchmark" | "spread";
|
|
16
|
+
couponsPerYear: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface CloudCurveView {
|
|
20
|
+
curve: CloudCurveHeader;
|
|
21
|
+
requestedDate: string | null;
|
|
22
|
+
/** The session the publisher dates the curve. */
|
|
23
|
+
asOf: string;
|
|
24
|
+
points: CloudCurvePoint[];
|
|
25
|
+
lookbacks: Array<{ id: "1D" | "1W" | "1M"; requestedDate: string; asOf: string | null; points: CloudCurvePoint[] | null }>;
|
|
26
|
+
spreads: Array<{
|
|
27
|
+
id: string;
|
|
28
|
+
short: string;
|
|
29
|
+
long: string;
|
|
30
|
+
/** Long minus short, percentage points. */
|
|
31
|
+
value: number | null;
|
|
32
|
+
change1d: number | null;
|
|
33
|
+
percentile1y: number | null;
|
|
34
|
+
observations1y: number;
|
|
35
|
+
}>;
|
|
36
|
+
checkedAt: string | null;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface CloudWorldCurves {
|
|
40
|
+
curves: Array<{
|
|
41
|
+
curve: CloudCurveHeader;
|
|
42
|
+
asOf: string;
|
|
43
|
+
points: CloudCurvePoint[];
|
|
44
|
+
previous: { asOf: string; points: CloudCurvePoint[] } | null;
|
|
45
|
+
checkedAt: string | null;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
@@ -73,7 +73,6 @@ function createDetachedSessionSnapshotFallback(): AppSessionSnapshot {
|
|
|
73
73
|
return {
|
|
74
74
|
paneState: {},
|
|
75
75
|
focusedPaneId: null,
|
|
76
|
-
activePanel: "left",
|
|
77
76
|
statusBarVisible: true,
|
|
78
77
|
openPaneIds: [],
|
|
79
78
|
hydrationTargets: [],
|
|
@@ -97,7 +96,6 @@ function resolveDetachedAppSessionSnapshot(
|
|
|
97
96
|
...baseSessionSnapshot,
|
|
98
97
|
paneState: desktopSnapshot.paneState,
|
|
99
98
|
focusedPaneId: desktopSnapshot.focusedPaneId,
|
|
100
|
-
activePanel: desktopSnapshot.activePanel,
|
|
101
99
|
statusBarVisible: desktopSnapshot.statusBarVisible,
|
|
102
100
|
}
|
|
103
101
|
: null;
|
|
@@ -6,9 +6,13 @@ import { useToastHost } from "../ui/toast";
|
|
|
6
6
|
import type { PluginRegistry } from "../plugins/registry";
|
|
7
7
|
import type { AppAction, AppState } from "../state/app/context";
|
|
8
8
|
import type { TickerRecord } from "../types/ticker";
|
|
9
|
+
import { findPaneInstance } from "../types/config";
|
|
9
10
|
import type { ReleaseInfo } from "../updater";
|
|
10
11
|
import { canSelfUpdate } from "../updater";
|
|
11
12
|
import { getVisiblePaneCycleOrder } from "../components/layout/pane/cycle-order";
|
|
13
|
+
import { requestFunctionHelp, useFunctionHelpHost } from "../plugins/builtin/help/function-card";
|
|
14
|
+
import { buildRegistryHelpIndex, helpFunctionForPane } from "../plugins/builtin/help/function-index";
|
|
15
|
+
import { recordFunctionOpen } from "../telemetry/usage-counts";
|
|
12
16
|
import { isMoveDownShortcut, isMoveUpShortcut } from "../components/command-bar/keyboard-handlers";
|
|
13
17
|
import {
|
|
14
18
|
copyActiveSelection,
|
|
@@ -106,6 +110,11 @@ export function useAppGlobalShortcuts({
|
|
|
106
110
|
const uiKind = useUiHost().kind;
|
|
107
111
|
const toastHost = useToastHost();
|
|
108
112
|
useKeybindingIssueNotice(keybindings, pluginRegistry, state.initialized);
|
|
113
|
+
useFunctionHelpHost({
|
|
114
|
+
closeCommandBar: () => {
|
|
115
|
+
if (state.commandBarOpen) dispatch({ type: "SET_COMMAND_BAR", open: false });
|
|
116
|
+
},
|
|
117
|
+
});
|
|
109
118
|
|
|
110
119
|
useShortcut((event) => {
|
|
111
120
|
if (isCopyShortcut(event) && copyActiveSelection(nativeRenderer)) {
|
|
@@ -207,6 +216,18 @@ export function useAppGlobalShortcuts({
|
|
|
207
216
|
return;
|
|
208
217
|
}
|
|
209
218
|
|
|
219
|
+
// A function key is never text, so the card opens from a focused field too.
|
|
220
|
+
if (action === "function-help") {
|
|
221
|
+
event.preventDefault();
|
|
222
|
+
event.stopPropagation();
|
|
223
|
+
recordFunctionOpen({ shortcut: "HELP", externalPluginId: null });
|
|
224
|
+
const instance = state.focusedPaneId ? findPaneInstance(state.config.layout, state.focusedPaneId) : undefined;
|
|
225
|
+
const fn = instance ? helpFunctionForPane(buildRegistryHelpIndex(pluginRegistry), pluginRegistry, instance) : null;
|
|
226
|
+
if (fn && requestFunctionHelp({ kind: "function", fn })) return;
|
|
227
|
+
if (!isDetachedWindow) pluginRegistry.showPane("help");
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
|
|
210
231
|
if (state.inputCaptured) return;
|
|
211
232
|
|
|
212
233
|
if (!isDetachedWindow && action === "help") {
|
|
@@ -7,6 +7,7 @@ export type CoreKeybindingActionId =
|
|
|
7
7
|
| "command-bar"
|
|
8
8
|
| "ticker-search"
|
|
9
9
|
| "help"
|
|
10
|
+
| "function-help"
|
|
10
11
|
| "switch-layout"
|
|
11
12
|
| "focus-next-pane"
|
|
12
13
|
| "focus-prev-pane"
|
|
@@ -31,7 +32,7 @@ export type CoreKeybindingActionId =
|
|
|
31
32
|
| "window-move-mode"
|
|
32
33
|
| "window-resize-mode";
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
type KeybindingActionCategory = "Global Keys" | "Pane Management";
|
|
35
36
|
|
|
36
37
|
export interface KeybindingActionDef {
|
|
37
38
|
id: CoreKeybindingActionId;
|
|
@@ -88,6 +89,13 @@ export const KEYBINDING_ACTIONS: readonly KeybindingActionDef[] = [
|
|
|
88
89
|
description: "Open help.",
|
|
89
90
|
defaults: ["?"],
|
|
90
91
|
},
|
|
92
|
+
{
|
|
93
|
+
id: "function-help",
|
|
94
|
+
category: "Global Keys",
|
|
95
|
+
description: "Open the focused pane's help card: what it shows, its keys and how fresh its data is.",
|
|
96
|
+
// F1 is help on every platform and nothing in the app used it.
|
|
97
|
+
defaults: ["F1"],
|
|
98
|
+
},
|
|
91
99
|
{
|
|
92
100
|
id: "switch-layout",
|
|
93
101
|
category: "Global Keys",
|
|
@@ -113,7 +113,7 @@ const MODIFIER_ONLY_EVENT_NAMES = new Set([
|
|
|
113
113
|
"", "shift", "ctrl", "control", "alt", "option", "meta", "super", "cmd", "command", "capslock", "fn",
|
|
114
114
|
]);
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
function isNamedKey(key: string): boolean {
|
|
117
117
|
return NAMED_KEY_BY_ALIAS.get(key)?.key === key;
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -1,45 +1,32 @@
|
|
|
1
1
|
export {
|
|
2
|
-
KEYBINDING_ACTIONS,
|
|
3
2
|
PLUGIN_ACTION_PREFIX,
|
|
4
|
-
getKeybindingAction,
|
|
5
3
|
isCoreKeybindingActionId,
|
|
6
|
-
pluginShortcutActionId,
|
|
7
4
|
type CoreKeybindingActionId,
|
|
8
|
-
type KeybindingActionCategory,
|
|
9
|
-
type KeybindingActionDef,
|
|
10
5
|
} from "./actions";
|
|
11
6
|
export {
|
|
12
7
|
formatKeyChord,
|
|
13
8
|
isTypingChord,
|
|
14
|
-
keyChordDigit,
|
|
15
9
|
keyChordFromEvent,
|
|
16
|
-
keyChordsEqual,
|
|
17
10
|
matchesKeyChord,
|
|
18
11
|
parseKeyChord,
|
|
19
12
|
serializeKeyChord,
|
|
20
13
|
type KeyChord,
|
|
21
14
|
type KeyChordEventLike,
|
|
22
|
-
type PrimaryModifier,
|
|
23
15
|
} from "./chord";
|
|
24
16
|
export {
|
|
25
17
|
describeKeybindingIssue,
|
|
26
18
|
isPaneKeybindingAction,
|
|
27
19
|
keyChordsOverlap,
|
|
28
|
-
keybindingActionLabel,
|
|
29
20
|
matchKeybinding,
|
|
30
21
|
matchesKeybindingAction,
|
|
31
|
-
pluginShortcutDefaultChord,
|
|
32
22
|
resolveKeybindings,
|
|
33
23
|
resolvePluginShortcutChords,
|
|
34
24
|
type KeybindingCommand,
|
|
35
|
-
type KeybindingIssue,
|
|
36
|
-
type KeybindingMatch,
|
|
37
25
|
type ResolvedKeybindingAction,
|
|
38
26
|
type ResolvedKeybindings,
|
|
39
27
|
} from "./resolve";
|
|
40
28
|
export {
|
|
41
29
|
advertisedChord,
|
|
42
|
-
chordsForHost,
|
|
43
30
|
formatActionChords,
|
|
44
31
|
formatAdvertisedChord,
|
|
45
32
|
formatChordForHost,
|
|
@@ -58,5 +45,4 @@ export {
|
|
|
58
45
|
requestKeybindingCapture,
|
|
59
46
|
subscribeKeybindingCapture,
|
|
60
47
|
takeKeybindingCaptureRequest,
|
|
61
|
-
type KeybindingCaptureRequest,
|
|
62
48
|
} from "./capture-request";
|
|
@@ -34,7 +34,7 @@ export function formatChordForHost(
|
|
|
34
34
|
* Chords worth showing on this host. A terminal cannot deliver an explicit
|
|
35
35
|
* Command chord, so those rows stay out of the terminal's help.
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
function chordsForHost(chords: readonly KeyChord[], mode: ShortcutDisplayMode): KeyChord[] {
|
|
38
38
|
return chords.filter((chord) => mode !== "terminal" || !chord.cmd);
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { KeybindingsConfig } from "../../types/config";
|
|
2
2
|
import type { KeyboardShortcut } from "../../types/plugin";
|
|
3
3
|
import {
|
|
4
|
-
getKeybindingAction,
|
|
5
4
|
isCoreKeybindingActionId,
|
|
6
5
|
KEYBINDING_ACTIONS,
|
|
7
6
|
PANE_ACTION_IDS,
|
|
@@ -66,7 +65,7 @@ export interface ResolveKeybindingsOptions {
|
|
|
66
65
|
host?: "terminal" | "desktop";
|
|
67
66
|
}
|
|
68
67
|
|
|
69
|
-
|
|
68
|
+
function pluginShortcutDefaultChord(shortcut: KeyboardShortcut): KeyChord {
|
|
70
69
|
return {
|
|
71
70
|
key: shortcut.key.toLowerCase(),
|
|
72
71
|
ctrl: shortcut.ctrl === true,
|
|
@@ -280,9 +279,3 @@ export function describeKeybindingIssue(issue: KeybindingIssue): string {
|
|
|
280
279
|
return `${serializeKeyChord(issue.chord)} is bound to ${issue.targets.join(" and ")}.`;
|
|
281
280
|
}
|
|
282
281
|
}
|
|
283
|
-
|
|
284
|
-
export function keybindingActionLabel(action: ResolvedKeybindingAction): string {
|
|
285
|
-
return action.def?.description ?? action.pluginShortcut?.description ?? action.id;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
export { getKeybindingAction };
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
findDockLeaf,
|
|
8
8
|
getDockedPaneIds,
|
|
9
9
|
isPaneInLayout,
|
|
10
|
-
} from "../../
|
|
10
|
+
} from "../../layout/pane-manager";
|
|
11
11
|
import type { PluginRegistry } from "../../plugins/registry";
|
|
12
12
|
import type { LoadedExternalPlugin } from "../../plugins/loader";
|
|
13
13
|
import {
|
|
@@ -35,7 +35,6 @@ import type {
|
|
|
35
35
|
} from "../../types/plugin";
|
|
36
36
|
import type { DialogApi } from "../../ui/dialog";
|
|
37
37
|
import {
|
|
38
|
-
resolvePanelForPane,
|
|
39
38
|
resolvePaneShowTarget,
|
|
40
39
|
resolvePaneTarget as resolvePaneTargetInLayout,
|
|
41
40
|
selectEdgeAnchor,
|
|
@@ -95,18 +94,12 @@ export function useAppPaneRuntime({
|
|
|
95
94
|
{ ...currentState.config, layout: normalizedLayout },
|
|
96
95
|
currentState.paneState,
|
|
97
96
|
hasFocusTarget ? (options.focusedPaneId ?? null) : currentState.focusedPaneId,
|
|
98
|
-
currentState.activePanel,
|
|
99
97
|
));
|
|
100
98
|
}, [dispatch, stateRef]);
|
|
101
99
|
|
|
102
|
-
const activatePane = useCallback((paneId: string
|
|
103
|
-
dispatch({
|
|
104
|
-
type: "SET_ACTIVE_PANEL",
|
|
105
|
-
panel: resolvePanelForPane({ layout, paneId, pluginRegistry }),
|
|
106
|
-
preserveFocus: true,
|
|
107
|
-
});
|
|
100
|
+
const activatePane = useCallback((paneId: string) => {
|
|
108
101
|
dispatch({ type: "FOCUS_PANE", paneId });
|
|
109
|
-
}, [dispatch
|
|
102
|
+
}, [dispatch]);
|
|
110
103
|
|
|
111
104
|
const {
|
|
112
105
|
buildPaneBinding,
|
|
@@ -163,7 +156,7 @@ export function useAppPaneRuntime({
|
|
|
163
156
|
if (nextLayout !== state.config.layout) {
|
|
164
157
|
persistLayout(nextLayout, { pushHistory: false });
|
|
165
158
|
}
|
|
166
|
-
activatePane(paneId
|
|
159
|
+
activatePane(paneId);
|
|
167
160
|
}, [activatePane, persistLayout, state.config.layout]);
|
|
168
161
|
|
|
169
162
|
const placePaneInstance = useCallback((
|
|
@@ -171,7 +164,7 @@ export function useAppPaneRuntime({
|
|
|
171
164
|
paneDef: PaneDef,
|
|
172
165
|
options?: PaneTemplateInstanceConfig,
|
|
173
166
|
) => {
|
|
174
|
-
const { width, height } = pluginRegistry.
|
|
167
|
+
const { width, height } = pluginRegistry.getTermSize();
|
|
175
168
|
// Templates can await ticker resolution before placing their pane, so the
|
|
176
169
|
// layout from the render that started the request may be out of date.
|
|
177
170
|
const { config: { layout }, focusedPaneId } = stateRef.current;
|
|
@@ -201,7 +194,7 @@ export function useAppPaneRuntime({
|
|
|
201
194
|
}
|
|
202
195
|
|
|
203
196
|
persistLayout(nextLayout);
|
|
204
|
-
activatePane(instance.instanceId
|
|
197
|
+
activatePane(instance.instanceId);
|
|
205
198
|
}, [
|
|
206
199
|
activatePane,
|
|
207
200
|
persistLayout,
|
|
@@ -221,7 +214,7 @@ export function useAppPaneRuntime({
|
|
|
221
214
|
}
|
|
222
215
|
|
|
223
216
|
if (target.instance && isPaneInLayout(state.config.layout, target.instance.instanceId)) {
|
|
224
|
-
pluginRegistry.
|
|
217
|
+
pluginRegistry.focusPane(target.instance.instanceId);
|
|
225
218
|
return;
|
|
226
219
|
}
|
|
227
220
|
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import type { PluginRegistry } from "../../plugins/registry";
|
|
2
1
|
import {
|
|
3
2
|
getDockLeafLayouts,
|
|
4
|
-
|
|
5
|
-
} from "../../plugins/pane-manager";
|
|
3
|
+
} from "../../layout/pane-manager";
|
|
6
4
|
import {
|
|
7
5
|
findPaneInstance,
|
|
8
6
|
isTickerPaneId,
|
|
@@ -41,33 +39,6 @@ export function resolvePaneShowTarget(
|
|
|
41
39
|
};
|
|
42
40
|
}
|
|
43
41
|
|
|
44
|
-
export function resolvePanelForPane({
|
|
45
|
-
layout,
|
|
46
|
-
paneId,
|
|
47
|
-
pluginRegistry,
|
|
48
|
-
}: {
|
|
49
|
-
layout: LayoutConfig;
|
|
50
|
-
paneId: string;
|
|
51
|
-
pluginRegistry: PluginRegistry;
|
|
52
|
-
}): "left" | "right" {
|
|
53
|
-
const instanceId = resolvePaneTarget(layout, paneId);
|
|
54
|
-
if (!instanceId) return "right";
|
|
55
|
-
const instance = findPaneInstance(layout, instanceId);
|
|
56
|
-
const paneDef = instance ? pluginRegistry.panes.get(instance.paneId) : pluginRegistry.panes.get(paneId);
|
|
57
|
-
const floating = layout.floating.find((entry) => entry.instanceId === instanceId);
|
|
58
|
-
if (floating) {
|
|
59
|
-
return paneDef?.defaultPosition ?? "right";
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const rect = getLeafRect(layout, instanceId, PANEL_RESOLUTION_BOUNDS);
|
|
63
|
-
if (!rect) {
|
|
64
|
-
return paneDef?.defaultPosition ?? "right";
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const midpoint = PANEL_RESOLUTION_BOUNDS.width / 2;
|
|
68
|
-
return rect.x + (rect.width / 2) <= midpoint ? "left" : "right";
|
|
69
|
-
}
|
|
70
|
-
|
|
71
42
|
export function selectEdgeAnchor(layout: LayoutConfig, edge: "left" | "right"): string | null {
|
|
72
43
|
const leaves = getDockLeafLayouts(layout, PANEL_RESOLUTION_BOUNDS);
|
|
73
44
|
if (leaves.length === 0) return null;
|