gloomberb 0.15.8 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -2
- package/package.json +1 -1
- package/src/api-client/app-attention.ts +147 -0
- package/src/api-client/attention.ts +26 -0
- package/src/api-client/awards.ts +215 -0
- package/src/api-client/catalysts.ts +160 -0
- package/src/api-client/chat.ts +137 -14
- package/src/api-client/company-kpis.ts +153 -0
- package/src/api-client/cpi.ts +52 -0
- package/src/api-client/credit-documents.ts +107 -0
- package/src/api-client/data.ts +187 -3
- package/src/api-client/distress.ts +164 -0
- package/src/api-client/equity-screener.ts +11 -0
- package/src/api-client/exposure.ts +202 -0
- package/src/api-client/gpu.ts +93 -0
- package/src/api-client/hiring.ts +110 -0
- package/src/api-client/index.ts +77 -3
- package/src/api-client/normalizers.ts +31 -1
- package/src/api-client/perps.ts +127 -0
- package/src/api-client/power.ts +148 -0
- package/src/api-client/request.ts +58 -1
- package/src/api-client/research-activity.ts +172 -13
- package/src/api-client/socket.ts +75 -27
- package/src/api-client/supply-chain-graph.ts +40 -0
- package/src/api-client/supply-chain.ts +98 -0
- package/src/api-client/telemetry.ts +29 -0
- package/src/api-client/themes.ts +28 -0
- package/src/api-client/types.ts +31 -1
- package/src/api-client/wall-experiments.ts +100 -0
- package/src/api-client/wall-summary.ts +49 -0
- package/src/api-client/web-experiments.ts +136 -0
- package/src/app/pane-runtime/plugin-bindings.ts +5 -0
- package/src/app/pane-runtime/ticker-open-runtime.ts +8 -2
- package/src/app/runtime/update.ts +13 -1
- package/src/cli/commands/system.ts +2 -0
- package/src/cli/desktop-pane-shot.ts +3 -4
- package/src/cli/pane-functions/data.ts +78 -0
- package/src/cli/pane-functions/financial-ratio-shot.ts +160 -0
- package/src/cli/pane-functions/function-help.ts +205 -8
- package/src/cli/pane-functions/headless.ts +4 -0
- package/src/cli/pane-functions/screenshot-evidence.ts +21 -0
- package/src/cli/pane-functions/screenshot.ts +49 -5
- package/src/components/chart-table/index.ts +1 -0
- package/src/components/chart-table/layout.ts +15 -0
- package/src/components/command-bar/action-runtime.ts +1 -0
- package/src/components/command-bar/commands/direct/index.ts +32 -0
- package/src/components/command-bar/commands/registry.ts +7 -0
- package/src/components/command-bar/pane-templates/items.ts +11 -0
- package/src/components/command-bar/pane-templates/workflow.ts +19 -4
- package/src/components/command-bar/routes/root/command-items.ts +6 -0
- package/src/components/command-bar/routes/root/provider-search.ts +2 -0
- package/src/components/command-bar/routes/root/results.ts +64 -0
- package/src/components/command-bar/routes/root/runtime.ts +8 -0
- package/src/components/command-bar/routes/ticker-search/results.ts +89 -24
- package/src/components/command-bar/routes/ticker-search/route.ts +2 -0
- package/src/components/command-bar/surface/index.tsx +15 -0
- package/src/components/command-bar/view-model.ts +3 -0
- package/src/components/command-bar/workflow/ops.ts +19 -0
- package/src/components/command-bar/workflow/tickers.ts +5 -0
- package/src/components/company-logo.tsx +15 -2
- package/src/components/data-table/table-pane.ts +2 -1
- package/src/components/index.ts +1 -0
- package/src/components/layout/detached-pane-shell.tsx +12 -1
- package/src/components/layout/missing-pane.tsx +87 -23
- package/src/components/layout/pane/footer/index.tsx +64 -18
- package/src/components/layout/pane/footer/model.ts +85 -0
- package/src/components/layout/pane/sidebar.tsx +19 -1
- package/src/components/layout/shell/pane/management-shortcuts.ts +13 -1
- package/src/components/layout/status-bar.tsx +93 -28
- package/src/components/layout/status-widget-space.ts +72 -0
- package/src/components/onboarding/first-run-workspace.ts +8 -2
- package/src/components/onboarding/onboarding-wizard.tsx +35 -16
- package/src/components/price-performance.tsx +31 -34
- package/src/components/ui/data-table/index.tsx +11 -8
- package/src/components/ui/display.tsx +9 -3
- package/src/components/ui/figure.tsx +94 -0
- package/src/components/ui/icon.tsx +3 -1
- package/src/components/ui/message-composer.tsx +8 -1
- package/src/components/ui/ratio-bar.tsx +84 -0
- package/src/components/ui/toggle.tsx +3 -1
- package/src/components/use-scrollbox-layout.ts +17 -0
- package/src/core/state/app/layout.ts +35 -1
- package/src/core/state/app/state.ts +15 -0
- package/src/core/state/app/types.ts +1 -0
- package/src/data/config/store/normalize.ts +24 -0
- package/src/i18n/es.ts +1 -0
- package/src/i18n/ja.ts +1 -0
- package/src/i18n/ko.ts +1 -0
- package/src/i18n/zh-cn.ts +1 -0
- package/src/i18n/zh-tw.ts +1 -0
- package/src/layout-marketplace/pane-imagery.ts +1 -0
- package/src/market-data/coordinator/entries.ts +13 -0
- package/src/market-data/coordinator/financials.ts +33 -8
- package/src/market-data/market/freshness.ts +16 -5
- package/src/market-data/published-cn-sessions.ts +25 -0
- package/src/market-data/published-nse-sessions.ts +20 -0
- package/src/news/aggregator.ts +4 -0
- package/src/plugins/builtin/account-management/model.ts +6 -1
- package/src/plugins/builtin/account-management/pane.tsx +36 -25
- package/src/plugins/builtin/alerts/catalysts.ts +77 -0
- package/src/plugins/builtin/alerts/events-pane.tsx +3 -0
- package/src/plugins/builtin/alerts/events.ts +10 -4
- package/src/plugins/builtin/alerts/history-pane.tsx +1 -1
- package/src/plugins/builtin/alerts/history.ts +1 -0
- package/src/plugins/builtin/alerts/index.tsx +6 -0
- package/src/plugins/builtin/alerts/research-builder.ts +10 -3
- package/src/plugins/builtin/alerts/research-rules.ts +15 -1
- package/src/plugins/builtin/analytics/risk-client.ts +15 -3
- package/src/plugins/builtin/analytics/risk-headless.ts +123 -18
- package/src/plugins/builtin/attention/client.ts +80 -0
- package/src/plugins/builtin/attention/evidence.ts +30 -0
- package/src/plugins/builtin/attention/headless.ts +33 -0
- package/src/plugins/builtin/attention/index.tsx +18 -0
- package/src/plugins/builtin/attention/model.ts +59 -0
- package/src/plugins/builtin/attention/pane.tsx +211 -0
- package/src/plugins/builtin/attention/trending.tsx +59 -0
- package/src/plugins/builtin/awards/alerts.ts +32 -0
- package/src/plugins/builtin/awards/client.ts +82 -0
- package/src/plugins/builtin/awards/detail.tsx +107 -0
- package/src/plugins/builtin/awards/evidence.ts +36 -0
- package/src/plugins/builtin/awards/headless.ts +55 -0
- package/src/plugins/builtin/awards/index.tsx +20 -0
- package/src/plugins/builtin/awards/model.ts +42 -0
- package/src/plugins/builtin/awards/pane.tsx +263 -0
- package/src/plugins/builtin/catalysts/client.ts +28 -0
- package/src/plugins/builtin/catalysts/detail.tsx +88 -0
- package/src/plugins/builtin/catalysts/evidence.ts +47 -0
- package/src/plugins/builtin/catalysts/headless.ts +42 -0
- package/src/plugins/builtin/catalysts/history.ts +26 -0
- package/src/plugins/builtin/catalysts/index.tsx +29 -0
- package/src/plugins/builtin/catalysts/model.ts +135 -0
- package/src/plugins/builtin/catalysts/pane.tsx +159 -0
- package/src/plugins/builtin/chart-composer/index.tsx +8 -1
- package/src/plugins/builtin/chat/attachments/desktop.tsx +610 -0
- package/src/plugins/builtin/chat/attachments/files.ts +45 -0
- package/src/plugins/builtin/chat/attachments/model.ts +164 -0
- package/src/plugins/builtin/chat/attachments/terminal.tsx +72 -0
- package/src/plugins/builtin/chat/attachments/transfer.ts +165 -0
- package/src/plugins/builtin/chat/content/channel-navigation.ts +13 -12
- package/src/plugins/builtin/chat/content/composer-runtime.ts +25 -4
- package/src/plugins/builtin/chat/content/composer.tsx +46 -4
- package/src/plugins/builtin/chat/content/footer.tsx +46 -8
- package/src/plugins/builtin/chat/content/index.tsx +263 -62
- package/src/plugins/builtin/chat/content/layout-metrics.ts +10 -2
- package/src/plugins/builtin/chat/content/open-targets.ts +17 -3
- package/src/plugins/builtin/chat/content/scroll.ts +7 -1
- package/src/plugins/builtin/chat/content/shortcuts.ts +36 -11
- package/src/plugins/builtin/chat/content/snapshot.ts +3 -0
- package/src/plugins/builtin/chat/content/transcript.tsx +17 -1
- package/src/plugins/builtin/chat/content/types.ts +7 -0
- package/src/plugins/builtin/chat/controller/attachments.ts +213 -0
- package/src/plugins/builtin/chat/controller/connections.ts +3 -1
- package/src/plugins/builtin/chat/controller/index.ts +114 -2
- package/src/plugins/builtin/chat/controller/lifecycle.ts +9 -0
- package/src/plugins/builtin/chat/controller/messages.ts +35 -2
- package/src/plugins/builtin/chat/controller/send.ts +128 -25
- package/src/plugins/builtin/chat/controller/state.ts +12 -1
- package/src/plugins/builtin/chat/controller/utils.ts +7 -5
- package/src/plugins/builtin/chat/controller/view.ts +2 -0
- package/src/plugins/builtin/chat/index.tsx +21 -0
- package/src/plugins/builtin/chat/layout.ts +9 -4
- package/src/plugins/builtin/chat/message/desktop.tsx +55 -20
- package/src/plugins/builtin/chat/message/header.tsx +30 -5
- package/src/plugins/builtin/chat/message/inline-tokens.tsx +9 -0
- package/src/plugins/builtin/chat/message/pending-send.ts +35 -0
- package/src/plugins/builtin/chat/message/profile-popover.tsx +5 -1
- package/src/plugins/builtin/chat/message/render-state.ts +12 -2
- package/src/plugins/builtin/chat/message/terminal.tsx +51 -4
- package/src/plugins/builtin/chat/message/types.ts +6 -1
- package/src/plugins/builtin/chat/pane-state.ts +59 -1
- package/src/plugins/builtin/chat/profile-popover.ts +50 -1
- package/src/plugins/builtin/chat/sidebar.tsx +8 -3
- package/src/plugins/builtin/chat/status-widget.tsx +29 -12
- package/src/plugins/builtin/chat/unread-inbox-pane.tsx +143 -0
- package/src/plugins/builtin/chat/unread-inbox.ts +91 -0
- package/src/plugins/builtin/clinical-trials/client.ts +237 -0
- package/src/plugins/builtin/clinical-trials/index.tsx +74 -0
- package/src/plugins/builtin/clinical-trials/pane.tsx +225 -0
- package/src/plugins/builtin/clinical-trials/types.ts +2 -0
- package/src/plugins/builtin/cloud/askg/controller.ts +37 -6
- package/src/plugins/builtin/cloud/askg/executor.ts +59 -44
- package/src/plugins/builtin/cloud/askg/host.ts +8 -1
- package/src/plugins/builtin/cloud/askg/manifest.ts +29 -2
- package/src/plugins/builtin/cloud/askg/model.ts +47 -13
- package/src/plugins/builtin/cloud/askg/notes.ts +100 -0
- package/src/plugins/builtin/cloud/askg/pane.tsx +50 -14
- package/src/plugins/builtin/cloud/askg/protocol.ts +39 -1
- package/src/plugins/builtin/cloud/askg/result-budget.ts +156 -0
- package/src/plugins/builtin/cloud/askg/user-data.ts +89 -0
- package/src/plugins/builtin/cloud/auth-actions.tsx +55 -31
- package/src/plugins/builtin/cloud/plugin.tsx +4 -1
- package/src/plugins/builtin/cloud/team/pane-sections.tsx +10 -1
- package/src/plugins/builtin/cloud/team/pane.tsx +3 -2
- package/src/plugins/builtin/cloud/thesis/board-pane.tsx +2 -2
- package/src/plugins/builtin/cloud/thesis/detail.tsx +1 -1
- package/src/plugins/builtin/cloud/thesis/ticker-tab.tsx +2 -2
- package/src/plugins/builtin/cloud/trial-offer-status-widget.tsx +202 -0
- package/src/plugins/builtin/cloud/upgrade-command.ts +1 -1
- package/src/plugins/builtin/cloud/upgrade-dialog.tsx +29 -3
- package/src/plugins/builtin/cloud/upgrade-status-widget.tsx +1 -1
- package/src/plugins/builtin/cloud-tweets/table.tsx +1 -1
- package/src/plugins/builtin/comment-letters/client.ts +342 -0
- package/src/plugins/builtin/comment-letters/index.tsx +74 -0
- package/src/plugins/builtin/comment-letters/pane.tsx +295 -0
- package/src/plugins/builtin/comment-letters/types.ts +43 -0
- package/src/plugins/builtin/company-attention/app-rank.tsx +79 -0
- package/src/plugins/builtin/company-attention/client.ts +69 -0
- package/src/plugins/builtin/company-attention/evidence.ts +45 -0
- package/src/plugins/builtin/company-attention/headless.ts +47 -0
- package/src/plugins/builtin/company-attention/index.tsx +30 -0
- package/src/plugins/builtin/company-attention/model.ts +129 -0
- package/src/plugins/builtin/company-attention/pane.tsx +183 -0
- package/src/plugins/builtin/company-kpis/client.ts +92 -0
- package/src/plugins/builtin/company-kpis/headless.ts +32 -0
- package/src/plugins/builtin/company-kpis/index.tsx +26 -0
- package/src/plugins/builtin/company-kpis/model.ts +124 -0
- package/src/plugins/builtin/company-kpis/pane.tsx +226 -0
- package/src/plugins/builtin/company-kpis/related.ts +11 -0
- package/src/plugins/builtin/company-kpis/screenshot-evidence.ts +44 -0
- package/src/plugins/builtin/composite-plugins.ts +32 -0
- package/src/plugins/builtin/correlation/history.ts +4 -1
- package/src/plugins/builtin/correlation/index.tsx +139 -80
- package/src/plugins/builtin/correlation/matrix/pair-chart.tsx +48 -0
- package/src/plugins/builtin/correlation/matrix/selection.ts +77 -0
- package/src/plugins/builtin/correlation/relationship/model.ts +2 -2
- package/src/plugins/builtin/cpi/client.ts +66 -0
- package/src/plugins/builtin/cpi/headless.ts +78 -0
- package/src/plugins/builtin/cpi/index.tsx +31 -0
- package/src/plugins/builtin/cpi/model.ts +198 -0
- package/src/plugins/builtin/cpi/pane.tsx +157 -0
- package/src/plugins/builtin/credit-documents/client.ts +99 -0
- package/src/plugins/builtin/credit-documents/detail.tsx +109 -0
- package/src/plugins/builtin/credit-documents/evidence.ts +64 -0
- package/src/plugins/builtin/credit-documents/gauge.tsx +55 -0
- package/src/plugins/builtin/credit-documents/headless.ts +40 -0
- package/src/plugins/builtin/credit-documents/index.tsx +19 -0
- package/src/plugins/builtin/credit-documents/model.ts +336 -0
- package/src/plugins/builtin/credit-documents/pane.tsx +185 -0
- package/src/plugins/builtin/custom-view/view-spec.ts +14 -2
- package/src/plugins/builtin/debt-maturities/pane.tsx +1 -0
- package/src/plugins/builtin/dividend-yield/pane.tsx +1 -1
- package/src/plugins/builtin/earnings/board.tsx +3 -0
- package/src/plugins/builtin/earnings/index.tsx +2 -0
- package/src/plugins/builtin/earnings-calls/pane.tsx +7 -1
- package/src/plugins/builtin/earnings-ripple/client.ts +60 -0
- package/src/plugins/builtin/earnings-ripple/headless.ts +35 -0
- package/src/plugins/builtin/earnings-ripple/index.tsx +35 -0
- package/src/plugins/builtin/earnings-ripple/model.ts +98 -0
- package/src/plugins/builtin/earnings-ripple/pane.tsx +103 -0
- package/src/plugins/builtin/equity-screener/client.ts +1 -1
- package/src/plugins/builtin/equity-screener/criterion-editor.tsx +1 -1
- package/src/plugins/builtin/equity-screener/model.ts +74 -9
- package/src/plugins/builtin/equity-screener/pane.tsx +2 -0
- package/src/plugins/builtin/estimate-revisions/pane.tsx +3 -0
- package/src/plugins/builtin/executives/pane.tsx +3 -1
- package/src/plugins/builtin/exposure/charts.tsx +66 -0
- package/src/plugins/builtin/exposure/client.ts +53 -0
- package/src/plugins/builtin/exposure/drivers.ts +29 -0
- package/src/plugins/builtin/exposure/editor.tsx +61 -0
- package/src/plugins/builtin/exposure/evidence.ts +39 -0
- package/src/plugins/builtin/exposure/headless.ts +51 -0
- package/src/plugins/builtin/exposure/holdings.ts +56 -0
- package/src/plugins/builtin/exposure/index.tsx +13 -0
- package/src/plugins/builtin/exposure/model.ts +104 -0
- package/src/plugins/builtin/exposure/pane.tsx +247 -0
- package/src/plugins/builtin/fear-greed/pane.tsx +2 -9
- package/src/plugins/builtin/filing-events/pane.tsx +2 -1
- package/src/plugins/builtin/gpu/board.tsx +163 -0
- package/src/plugins/builtin/gpu/changes.tsx +94 -0
- package/src/plugins/builtin/gpu/client.ts +130 -0
- package/src/plugins/builtin/gpu/equities.tsx +112 -0
- package/src/plugins/builtin/gpu/headless.ts +67 -0
- package/src/plugins/builtin/gpu/history.tsx +140 -0
- package/src/plugins/builtin/gpu/index.tsx +18 -0
- package/src/plugins/builtin/gpu/ladder.tsx +127 -0
- package/src/plugins/builtin/gpu/model.ts +317 -0
- package/src/plugins/builtin/gpu/pane.tsx +63 -0
- package/src/plugins/builtin/help/index.tsx +19 -2
- package/src/plugins/builtin/holders/pane.tsx +4 -8
- package/src/plugins/builtin/insider/detail.tsx +119 -0
- package/src/plugins/builtin/insider/display.ts +221 -0
- package/src/plugins/builtin/insider/headless.ts +24 -3
- package/src/plugins/builtin/insider/index.tsx +206 -108
- package/src/plugins/builtin/insider/insider-data.ts +31 -3
- package/src/plugins/builtin/insider/model.ts +53 -4
- package/src/plugins/builtin/insider/table-model.ts +226 -0
- package/src/plugins/builtin/insider/table.tsx +79 -0
- package/src/plugins/builtin/iv-history/screen-pane.tsx +1 -1
- package/src/plugins/builtin/jobs/pane.tsx +14 -7
- package/src/plugins/builtin/macro-day/client.ts +50 -0
- package/src/plugins/builtin/macro-day/headless.ts +51 -0
- package/src/plugins/builtin/macro-day/index.tsx +21 -0
- package/src/plugins/builtin/macro-day/model.ts +137 -0
- package/src/plugins/builtin/macro-day/pane.tsx +118 -0
- package/src/plugins/builtin/macro-day/releases.ts +58 -0
- package/src/plugins/builtin/market-halts/model.ts +30 -17
- package/src/plugins/builtin/market-halts/pane.tsx +15 -21
- package/src/plugins/builtin/market-heatmap/data.ts +1 -1
- package/src/plugins/builtin/market-heatmap/index.tsx +198 -50
- package/src/plugins/builtin/market-heatmap/portfolio.ts +220 -0
- package/src/plugins/builtin/market-movers/index.tsx +1 -0
- package/src/plugins/builtin/market-movers/session-body.tsx +5 -2
- package/src/plugins/builtin/mna/distress/client.ts +326 -0
- package/src/plugins/builtin/mna/distress/detail.tsx +247 -0
- package/src/plugins/builtin/mna/distress/headless.ts +257 -0
- package/src/plugins/builtin/mna/distress/model.ts +427 -0
- package/src/plugins/builtin/mna/distress/pane.tsx +606 -0
- package/src/plugins/builtin/mna/index.tsx +15 -0
- package/src/plugins/builtin/mna/pane.tsx +42 -1
- package/src/plugins/builtin/news/index.tsx +62 -16
- package/src/plugins/builtin/news/wire/filter-articles.ts +54 -0
- package/src/plugins/builtin/news/wire/index.tsx +37 -3
- package/src/plugins/builtin/news/wire/industry-pane.tsx +29 -13
- package/src/plugins/builtin/news/wire/mutes.ts +253 -0
- package/src/plugins/builtin/news/wire/news/command-bar-search.ts +117 -0
- package/src/plugins/builtin/news/wire/news/footer.ts +4 -0
- package/src/plugins/builtin/news/wire/news/list-search.ts +34 -0
- package/src/plugins/builtin/news/wire/news/pop-out.tsx +158 -0
- package/src/plugins/builtin/news/wire/news/preset-pane.tsx +64 -19
- package/src/plugins/builtin/openfda/client.ts +300 -0
- package/src/plugins/builtin/openfda/index.tsx +71 -0
- package/src/plugins/builtin/openfda/pane.tsx +382 -0
- package/src/plugins/builtin/openfda/types.ts +76 -0
- package/src/plugins/builtin/options/footer.ts +1 -0
- package/src/plugins/builtin/options-calculator/pane.tsx +0 -1
- package/src/plugins/builtin/options-positioning/index.tsx +4 -2
- package/src/plugins/builtin/options-positioning/pane.tsx +1 -1
- package/src/plugins/builtin/pe-band/client.ts +61 -0
- package/src/plugins/builtin/pe-band/headless.ts +51 -0
- package/src/plugins/builtin/pe-band/index.tsx +20 -0
- package/src/plugins/builtin/pe-band/model.ts +267 -0
- package/src/plugins/builtin/pe-band/pane.tsx +159 -0
- package/src/plugins/builtin/perps/client.ts +66 -0
- package/src/plugins/builtin/perps/equity-row.tsx +28 -0
- package/src/plugins/builtin/perps/headless.ts +34 -0
- package/src/plugins/builtin/perps/index.tsx +14 -0
- package/src/plugins/builtin/perps/model.ts +58 -0
- package/src/plugins/builtin/perps/pane.tsx +185 -0
- package/src/plugins/builtin/plugin-marketplace/pane.tsx +0 -1
- package/src/plugins/builtin/portfolio-list/cli/render.ts +177 -87
- package/src/plugins/builtin/portfolio-list/headless.ts +237 -0
- package/src/plugins/builtin/portfolio-list/index.tsx +2 -0
- package/src/plugins/builtin/portfolio-list/mutations.ts +17 -0
- package/src/plugins/builtin/portfolio-list/pane/data.ts +17 -0
- package/src/plugins/builtin/portfolio-list/pane/index.tsx +88 -5
- package/src/plugins/builtin/portfolio-list/pane/remove-ticker.ts +85 -0
- package/src/plugins/builtin/portfolio-list/pane/streaming.ts +18 -12
- package/src/plugins/builtin/portfolio-list/quick-add/index.tsx +6 -0
- package/src/plugins/builtin/power/client.ts +100 -0
- package/src/plugins/builtin/power/detail.tsx +82 -0
- package/src/plugins/builtin/power/evidence.ts +56 -0
- package/src/plugins/builtin/power/generation.tsx +37 -0
- package/src/plugins/builtin/power/headless.ts +43 -0
- package/src/plugins/builtin/power/index.tsx +16 -0
- package/src/plugins/builtin/power/model.ts +89 -0
- package/src/plugins/builtin/power/pane.tsx +209 -0
- package/src/plugins/builtin/power/query.ts +25 -0
- package/src/plugins/builtin/relative-rotation/pane.tsx +3 -3
- package/src/plugins/builtin/research/analyst-pane.tsx +1 -1
- package/src/plugins/builtin/research/corporate-actions-pane.tsx +13 -4
- package/src/plugins/builtin/research/equity-diagnostic-pane.tsx +5 -3
- package/src/plugins/builtin/research-search/pane.tsx +21 -7
- package/src/plugins/builtin/revenue-breakdown/pane.tsx +1 -1
- package/src/plugins/builtin/reverse-dcf/client.ts +35 -0
- package/src/plugins/builtin/reverse-dcf/headless.ts +44 -0
- package/src/plugins/builtin/reverse-dcf/index.tsx +20 -0
- package/src/plugins/builtin/reverse-dcf/model.ts +87 -0
- package/src/plugins/builtin/reverse-dcf/pane.tsx +107 -0
- package/src/plugins/builtin/risk-factors/pane.tsx +2 -1
- package/src/plugins/builtin/scanner/denied.tsx +4 -2
- package/src/plugins/builtin/scanner/feed.ts +1 -0
- package/src/plugins/builtin/scanner/flow-pane.tsx +3 -2
- package/src/plugins/builtin/scanner/hilo-pane.tsx +1 -1
- package/src/plugins/builtin/seasonality/client.ts +4 -1
- package/src/plugins/builtin/sec/command-bar-search.ts +217 -0
- package/src/plugins/builtin/sec/forms.ts +54 -0
- package/src/plugins/builtin/sec/headless.ts +31 -5
- package/src/plugins/builtin/sec/index.tsx +67 -11
- package/src/plugins/builtin/sec/model.ts +35 -5
- package/src/plugins/builtin/sectors/headless.ts +1 -0
- package/src/plugins/builtin/sectors/index.tsx +72 -26
- package/src/plugins/builtin/shared/cloud-upgrade.ts +143 -39
- package/src/plugins/builtin/shared/pro-feature-wall.tsx +8 -4
- package/src/plugins/builtin/shared/research-cells.tsx +107 -0
- package/src/plugins/builtin/shared/series-list-detail.tsx +5 -1
- package/src/plugins/builtin/shared/wall-teaser-catalog.ts +80 -0
- package/src/plugins/builtin/shared/wall-teaser.tsx +192 -0
- package/src/plugins/builtin/shared/wall-view-lifecycle.ts +43 -0
- package/src/plugins/builtin/short-interest/index.tsx +31 -0
- package/src/plugins/builtin/short-interest/watch-client.ts +70 -0
- package/src/plugins/builtin/short-interest/watch-headless.ts +49 -0
- package/src/plugins/builtin/short-interest/watch-model.ts +185 -0
- package/src/plugins/builtin/short-interest/watch-pane.tsx +169 -0
- package/src/plugins/builtin/short-volume/pane.tsx +1 -1
- package/src/plugins/builtin/social-mentions/pane.tsx +1 -1
- package/src/plugins/builtin/supply-chain/client.ts +104 -0
- package/src/plugins/builtin/supply-chain/disclosure-quote.tsx +17 -0
- package/src/plugins/builtin/supply-chain/evidence.ts +88 -0
- package/src/plugins/builtin/supply-chain/flow-layout.ts +133 -0
- package/src/plugins/builtin/supply-chain/flow.tsx +323 -0
- package/src/plugins/builtin/supply-chain/graph-client.ts +83 -0
- package/src/plugins/builtin/supply-chain/graph-evidence.ts +25 -0
- package/src/plugins/builtin/supply-chain/graph-model.ts +45 -0
- package/src/plugins/builtin/supply-chain/graph-pane.tsx +218 -0
- package/src/plugins/builtin/supply-chain/graph.tsx +163 -0
- package/src/plugins/builtin/supply-chain/headless.ts +105 -0
- package/src/plugins/builtin/supply-chain/index.tsx +17 -0
- package/src/plugins/builtin/supply-chain/model.ts +145 -0
- package/src/plugins/builtin/supply-chain/pane.tsx +276 -0
- package/src/plugins/builtin/supply-chain/row-evidence.tsx +96 -0
- package/src/plugins/builtin/supply-chain/trust.ts +34 -0
- package/src/plugins/builtin/themes/client.ts +39 -0
- package/src/plugins/builtin/themes/headless.ts +38 -0
- package/src/plugins/builtin/themes/model.ts +92 -0
- package/src/plugins/builtin/themes/pane.tsx +125 -0
- package/src/plugins/builtin/thirteenf/pane.tsx +6 -15
- package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.tsx +5 -6
- package/src/plugins/builtin/ticker-detail/data-panes/returns-model.ts +201 -0
- package/src/plugins/builtin/ticker-detail/data-panes/returns-pane.tsx +327 -0
- package/src/plugins/builtin/ticker-detail/financials/period-end-history.ts +5 -2
- package/src/plugins/builtin/ticker-detail/financials/ratios.ts +18 -2
- package/src/plugins/builtin/ticker-detail/financials/tab.tsx +2 -1
- package/src/plugins/builtin/ticker-detail/headless.ts +7 -2
- package/src/plugins/builtin/ticker-detail/index.tsx +22 -0
- package/src/plugins/builtin/ticker-detail/overview/components.tsx +53 -30
- package/src/plugins/builtin/ticker-detail/overview/pane.tsx +2 -0
- package/src/plugins/builtin/ticker-detail/overview-tab.tsx +111 -46
- package/src/plugins/builtin/ticker-detail/pane.tsx +50 -6
- package/src/plugins/builtin/ticker-detail/quote-monitor/card.tsx +20 -41
- package/src/plugins/builtin/ticker-detail/quote-monitor/index.tsx +3 -0
- package/src/plugins/builtin/time-sales/pane.tsx +1 -1
- package/src/plugins/builtin/world-indices/indices.ts +1 -0
- package/src/plugins/catalog-browser.ts +38 -0
- package/src/plugins/catalog-manifest.ts +3 -0
- package/src/plugins/catalog-ui.ts +6 -0
- package/src/plugins/current-target.ts +0 -9
- package/src/public/__snapshots__/public-api.test.ts.snap +1 -0
- package/src/renderers/browser/cloud-transport.ts +66 -1
- package/src/renderers/browser/main.tsx +2 -0
- package/src/renderers/dom/data-table/row.tsx +2 -0
- package/src/renderers/dom/desktop/controls.tsx +38 -25
- package/src/renderers/dom/desktop/icons.tsx +8 -0
- package/src/renderers/dom/host/chart-surface.tsx +36 -2
- package/src/renderers/dom/host/focus-scope.ts +11 -1
- package/src/renderers/dom/styles.css +28 -0
- package/src/renderers/electrobun/view/backend-rpc.ts +3 -2
- package/src/renderers/electrobun/view/cli-pane-shot-entry.tsx +1 -1
- package/src/renderers/electrobun/view/http-fetch.ts +2 -0
- package/src/renderers/electrobun/view/main.tsx +3 -1
- package/src/renderers/electrobun/view/rpc-timeout.ts +59 -0
- package/src/renderers/opentui/start.tsx +3 -0
- package/src/shares/api.ts +3 -1
- package/src/sources/sec-edgar/identity.ts +36 -0
- package/src/sources/sec-edgar.ts +1 -34
- package/src/state/app/context/index.tsx +8 -0
- package/src/sync/core-contributors.ts +2 -0
- package/src/telemetry/attention-counts.ts +164 -0
- package/src/telemetry/live-config.ts +7 -0
- package/src/test-support/rpc-loopback.ts +7 -3
- package/src/test-support/shell-pane-keys.tsx +34 -0
- package/src/tickers/instrument-kind.ts +12 -6
- package/src/tickers/search/asset-classes.ts +91 -0
- package/src/tickers/search/index.ts +18 -4
- package/src/tickers/search/ranking.ts +22 -3
- package/src/types/config.ts +23 -1
- package/src/types/headless.ts +17 -0
- package/src/ui/host.tsx +6 -0
- package/src/utils/double-escape-close.ts +20 -0
- package/src/utils/html-entities.ts +15 -0
- package/src/utils/http-proxy-response.ts +44 -7
- package/src/utils/plugin-proxy-hosts.json +3 -0
- package/src/utils/sec.ts +19 -1
- package/src/utils/text-wrap.ts +13 -8
package/README.md
CHANGED
|
@@ -75,8 +75,14 @@ Press `Ctrl+P` to open the command bar, or press `` ` `` to search for a ticker.
|
|
|
75
75
|
| `OPX SPY` / `GEX SPY` | Open interest by strike and expiry, max pain and dealer gamma ([method](docs/options-positioning.md)) |
|
|
76
76
|
| `HVG AAPL` / `HVT AAPL` | Realized volatility and volatility cones |
|
|
77
77
|
| `SEAS AAPL` | Seasonality: monthly returns by year and year overlays |
|
|
78
|
+
| `RDCF AAPL` | Reverse DCF: the cash flow growth the price assumes |
|
|
79
|
+
| `PEB AAPL` | P/E band: price against multiples of trailing EPS, and today's P/E in its own history |
|
|
80
|
+
| `SIW` | Short squeeze watch: crowded shorts in your portfolios and watchlists that are moving up |
|
|
81
|
+
| `RIPL` | Earnings Ripple: customers and suppliers of your holdings that report soon |
|
|
82
|
+
| `MDAY SPY` | Macro-day reaction: how a name moves on CPI, jobs and FOMC days against a normal day |
|
|
78
83
|
| `COT [code or root]` | CFTC positioning and cross-market extremes |
|
|
79
84
|
| `DOE` / `NGS` | EIA weekly oil stocks and gas storage, with builds, draws and five-year ranges |
|
|
85
|
+
| `CPI [component]` / `ECAN` | US consumer prices by component, with weights, contributions to the headline and the next release |
|
|
80
86
|
| `TOP` | Market stories |
|
|
81
87
|
| `WIRP` / `FFIP` | US rate path and conditional FOMC probabilities |
|
|
82
88
|
| `BTMM` | Funding rates, bill curves and Federal Reserve liquidity |
|
|
@@ -84,7 +90,7 @@ Press `Ctrl+P` to open the command bar, or press `` ` `` to search for a ticker.
|
|
|
84
90
|
| `PF` | Portfolios and watchlists |
|
|
85
91
|
| `HELP` | Commands and keyboard shortcuts |
|
|
86
92
|
|
|
87
|
-
Use `Tab` to switch panes and `j` / `k` to navigate lists. The [user guide](docs/usage.md) covers charts, broker setup, keyboard shortcuts, and the full command reference. See [research data conventions](docs/research-data.md) for return definitions, financial sources, and model assumptions.
|
|
93
|
+
Use `Tab` to switch panes and `j` / `k` to navigate lists. The [user guide](docs/usage.md) covers charts, broker setup, keyboard shortcuts, and the full command reference. See [research data conventions](docs/research-data.md) for return definitions, financial sources, and model assumptions. [Supply chain evidence](docs/supply-chain.md) explains Pro SPLC trust tiers, source evidence, reverse relationships, flow diagrams and multi-hop graphs and path searches. [Credit documents](docs/credit-documents.md) covers CRDOC/COVN capital structure, covenant headroom and amendment evidence. [Research attention](docs/research-attention.md) covers the Pro ATTN dataset, privacy-qualified counts and Gloom Trending. [Hiring and app attention](docs/hiring-app-attention.md) covers HIRE/APPS observations, evidence and Pro previews. [Government awards](docs/government-awards.md) covers AWARDS, procurement history and source coverage. [Distress records](docs/distress-monitor.md) covers DIST: 8-K filings, going-concern disclosures, listing designations and insolvency notices, with their dates and licences. [Power and grid capacity](docs/power-grid.md) covers POWER queues, large loads, utility exposure and source history. [Perpetual markets](docs/perpetuals.md) covers funding, open interest, premiums and Pro access. [Exposure analysis](docs/exposure.md) covers EXPO scenario estimates, portfolio weights and evidence paths.
|
|
88
94
|
|
|
89
95
|
## CLI
|
|
90
96
|
|
|
@@ -131,10 +137,12 @@ gloomberb config set telemetry.usage false
|
|
|
131
137
|
|
|
132
138
|
Setting `GLOOMBERB_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` in the environment turns all of it off. The browser app also honours Do Not Track and Global Privacy Control.
|
|
133
139
|
|
|
140
|
+
**Attention Counts are separate and off by default.** Run `Attention Counts` in the command bar and review the consent dialog to share ticker research counts for Gloom Trending. This sends ticker symbols and the kind of explicit research action only while signed in with a verified account. It does not send holdings, watchlist names, queries or an install id. Consent stays on this device; cloud sync cannot enable it elsewhere. Turn the setting off to discard unsent counts, or run `gloomberb config set telemetry.attention false`. The environment and browser opt-outs above also disable Attention Counts. See the [attention privacy review](docs/attention-privacy.md) for the authenticated collection boundary, retention, aggregation and remaining risks.
|
|
141
|
+
|
|
134
142
|
## Sponsors
|
|
135
143
|
|
|
136
144
|
<a href="https://adjacent.markets/?ref=gloomberb"><img src="docs/assets/adjacent.svg" alt="Adjacent" width="56" /></a>
|
|
137
145
|
|
|
138
146
|
[Adjacent](https://adjacent.markets/?ref=gloomberb) builds prediction-market indices, reference rates, and data. Thank you for backing Gloomberb's open-source work.
|
|
139
147
|
|
|
140
|
-
To sponsor Gloomberb,
|
|
148
|
+
To sponsor Gloomberb, see [gloom.sh/sponsor](https://gloom.sh/sponsor).
|
package/package.json
CHANGED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
type AppStore = "app-store" | "google-play"
|
|
2
|
+
export type AppChart = "free" | "paid" | "grossing" | "unranked"
|
|
3
|
+
|
|
4
|
+
export interface AppAttentionFilter {
|
|
5
|
+
symbol?: string
|
|
6
|
+
country?: string
|
|
7
|
+
chart?: AppChart
|
|
8
|
+
category?: string
|
|
9
|
+
days?: number
|
|
10
|
+
limit?: number
|
|
11
|
+
offset?: number
|
|
12
|
+
}
|
|
13
|
+
interface AppObservation {
|
|
14
|
+
appId: string
|
|
15
|
+
name: string
|
|
16
|
+
developer: string
|
|
17
|
+
developerId: string | null
|
|
18
|
+
appUrl: string
|
|
19
|
+
genres: string[]
|
|
20
|
+
genreIds: string[]
|
|
21
|
+
rank: number | null
|
|
22
|
+
rating: number | null
|
|
23
|
+
ratingCount: number | null
|
|
24
|
+
reviewCount: number | null
|
|
25
|
+
ratingObservedAt: string | null
|
|
26
|
+
ratingSourceUrl: string | null
|
|
27
|
+
symbol: string | null
|
|
28
|
+
exchange: string | null
|
|
29
|
+
entityId: string | null
|
|
30
|
+
parentEntityId: string | null
|
|
31
|
+
confidence: number
|
|
32
|
+
mappingSourceUrl: string | null
|
|
33
|
+
mappingRevisionId: string | null
|
|
34
|
+
}
|
|
35
|
+
interface AppStoredRow extends AppObservation {
|
|
36
|
+
sourceId: string
|
|
37
|
+
store: AppStore
|
|
38
|
+
country: string
|
|
39
|
+
chart: AppChart
|
|
40
|
+
category: string
|
|
41
|
+
chartLimit: number
|
|
42
|
+
sourceUrl: string
|
|
43
|
+
sourceUpdatedAt: string | null
|
|
44
|
+
observedAt: string
|
|
45
|
+
revisionId: string
|
|
46
|
+
supersedesRevisionId: string | null
|
|
47
|
+
}
|
|
48
|
+
interface AppAttentionRow extends AppStoredRow {
|
|
49
|
+
rankChange1d: number | null
|
|
50
|
+
rankChange7d: number | null
|
|
51
|
+
rankVelocity7d: number | null
|
|
52
|
+
ratingChange7d: number | null
|
|
53
|
+
ratingCountGrowth7d: number | null
|
|
54
|
+
reviewGrowth7d: number | null
|
|
55
|
+
stale: boolean
|
|
56
|
+
}
|
|
57
|
+
export interface AppCompany {
|
|
58
|
+
symbol: string
|
|
59
|
+
name: string
|
|
60
|
+
appCount: number
|
|
61
|
+
countryCount: number
|
|
62
|
+
chartCount: number
|
|
63
|
+
attentionScore: number | null
|
|
64
|
+
rankVelocity7d: number | null
|
|
65
|
+
ratingChange7d: number | null
|
|
66
|
+
ratingCountGrowth7d: number | null
|
|
67
|
+
comparableSeries7d: number
|
|
68
|
+
observedAt: string
|
|
69
|
+
}
|
|
70
|
+
interface AppHistoryPoint {
|
|
71
|
+
date: string
|
|
72
|
+
attentionScore: number | null
|
|
73
|
+
appCount: number
|
|
74
|
+
countryCount: number
|
|
75
|
+
seriesCount: number
|
|
76
|
+
rating: number | null
|
|
77
|
+
ratingCount: number | null
|
|
78
|
+
reviewCount: number | null
|
|
79
|
+
}
|
|
80
|
+
interface AppCountry {
|
|
81
|
+
country: string
|
|
82
|
+
appCount: number
|
|
83
|
+
rankedApps: number
|
|
84
|
+
attentionScore: number | null
|
|
85
|
+
rankVelocity7d: number | null
|
|
86
|
+
observedAt: string
|
|
87
|
+
}
|
|
88
|
+
interface AppSourceState {
|
|
89
|
+
sourceId: string
|
|
90
|
+
lastAttemptAt: string | null
|
|
91
|
+
lastOkAt: string | null
|
|
92
|
+
nextPollAt: string | null
|
|
93
|
+
failures: number
|
|
94
|
+
lastError: string | null
|
|
95
|
+
captures: number
|
|
96
|
+
}
|
|
97
|
+
export interface AppAttentionPayload {
|
|
98
|
+
generatedAt: string
|
|
99
|
+
requestedSymbol?: string
|
|
100
|
+
page?: { offset: number; limit: number; total: number; nextOffset: number | null }
|
|
101
|
+
symbol: string | null
|
|
102
|
+
access: "pro" | "preview"
|
|
103
|
+
status: "ready" | "collecting" | "unavailable"
|
|
104
|
+
summary: {
|
|
105
|
+
appCount: number
|
|
106
|
+
companyCount: number
|
|
107
|
+
countryCount: number
|
|
108
|
+
observationCount: number
|
|
109
|
+
mappedObservationCount: number
|
|
110
|
+
attentionScore: number | null
|
|
111
|
+
rankVelocity7d: number | null
|
|
112
|
+
ratingChange7d: number | null
|
|
113
|
+
ratingCountGrowth7d: number | null
|
|
114
|
+
comparableSeries7d: number
|
|
115
|
+
firstObservedAt: string | null
|
|
116
|
+
lastObservedAt: string | null
|
|
117
|
+
}
|
|
118
|
+
apps: AppAttentionRow[]
|
|
119
|
+
companies: AppCompany[]
|
|
120
|
+
peers: AppCompany[]
|
|
121
|
+
countries: AppCountry[]
|
|
122
|
+
history: AppHistoryPoint[]
|
|
123
|
+
spreads: Array<{ appId: string; name: string; chart: AppChart; category: string; bestCountry: string; bestRank: number; worstCountry: string; worstRank: number; spread: number; countryCount: number }>
|
|
124
|
+
evidence: Array<{ revisionId: string; supersedesRevisionId: string | null; sourceId: string; sourceUrl: string; observedAt: string; sourceUpdatedAt: string | null; appId: string; name: string; country: string; chart: AppChart; rank: number | null; rating: number | null; ratingCount: number | null; reviewCount: number | null; ratingSourceUrl: string | null; mappingSourceUrl: string | null; confidence: number }>
|
|
125
|
+
coverage: {
|
|
126
|
+
configuredCountries: string[]
|
|
127
|
+
observedCountries: string[]
|
|
128
|
+
availableCharts: AppChart[]
|
|
129
|
+
categories: string[]
|
|
130
|
+
sources: AppSourceState[]
|
|
131
|
+
limitations: string[]
|
|
132
|
+
historyDays: number
|
|
133
|
+
staleAfterHours: number
|
|
134
|
+
}
|
|
135
|
+
locked: { apps: number; companies: number; peers: number; countries: number; history: number; spreads: number; evidence: number }
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export interface AppRankPayload {
|
|
139
|
+
generatedAt: string;
|
|
140
|
+
access: "pro" | "preview";
|
|
141
|
+
status: "ready" | "collecting";
|
|
142
|
+
store: AppStore;
|
|
143
|
+
appId: string;
|
|
144
|
+
rankHistory: Array<{ appId: string; name: string; store: AppStore; country: string; chart: AppChart; category: string; date: string; rank: number | null; rating: number | null; ratingCount: number | null; reviewCount: number | null; observedAt: string; sourceUpdatedAt: string | null; ratingSourceUrl: string | null; present: boolean; sourceUrl: string; revisionId: string; chartLimit: number }>;
|
|
145
|
+
page: { offset: number; limit: number; total: number; nextOffset: number | null };
|
|
146
|
+
locked: number;
|
|
147
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export type AttentionWindow = "now" | "today" | "week";
|
|
2
|
+
export interface AttentionPoint {
|
|
3
|
+
bucketStart: string; researchUnits: number; publishedAt?: string; minimumContributors?: number;
|
|
4
|
+
rounding?: number; lagHours?: number; methodologyVersion?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface AttentionRow {
|
|
7
|
+
symbol: string; ticker: string; exchange: string; name: string | null; country: string | null; sector: string | null;
|
|
8
|
+
rank: number; researchUnits: number; sharePct: number; zScore: number | null; baselinePeriods: number;
|
|
9
|
+
priceChangePct: number | null; relativeVolume: number | null; marketAsOf: string | null; relativeVolumeAsOf?: string | null;
|
|
10
|
+
news: Array<{ title: string; url: string; publishedAt: string }>;
|
|
11
|
+
history: AttentionPoint[];
|
|
12
|
+
evidence: { source: string; asOf: string; periodStart: string; periodEnd: string; unit: string; confidence: string; methodologyVersion: number };
|
|
13
|
+
}
|
|
14
|
+
export interface AttentionGroup { name: string; researchUnits: number; sharePct: number; tickers: number }
|
|
15
|
+
export interface AttentionPayload {
|
|
16
|
+
generatedAt: string; asOf: string | null; window: AttentionWindow; periodStart: string; periodEnd: string;
|
|
17
|
+
status: "disabled" | "collecting" | "ready"; stale: boolean;
|
|
18
|
+
rows: AttentionRow[]; sectors: AttentionGroup[]; countries: AttentionGroup[];
|
|
19
|
+
privacy: { minimumContributors: number; rounding: number; lagHours: number; methodologyVersion: number };
|
|
20
|
+
coverage: { publishedHours: number; publishedTickers: number; baselineDays: number };
|
|
21
|
+
history?: AttentionPoint[];
|
|
22
|
+
selectedListing?: Pick<AttentionRow, "symbol" | "ticker" | "exchange" | "name" | "country" | "sector"> | null;
|
|
23
|
+
historyEvidence?: AttentionRow["evidence"] | null;
|
|
24
|
+
methodologyUrl: string; entitlement: "pro" | "preview"; truncated: boolean;
|
|
25
|
+
counts: { rows: number; sectors: number; countries: number };
|
|
26
|
+
}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/** Public-source financial amounts remain decimal strings through persistence and REST. */
|
|
2
|
+
export type AwardType = "prime" | "subaward" | "modification" | "notice"
|
|
3
|
+
interface AwardIdentifier {
|
|
4
|
+
scheme: "uei" | "duns" | "cage" | "lei" | "source" | "cik"
|
|
5
|
+
value: string
|
|
6
|
+
}
|
|
7
|
+
interface AwardRecipient {
|
|
8
|
+
name: string
|
|
9
|
+
identifiers?: AwardIdentifier[]
|
|
10
|
+
country?: string | null
|
|
11
|
+
}
|
|
12
|
+
export interface AwardInput {
|
|
13
|
+
source: string
|
|
14
|
+
sourceAwardId: string
|
|
15
|
+
sourceRevisionId?: string | null
|
|
16
|
+
jurisdiction: string
|
|
17
|
+
awardType: AwardType
|
|
18
|
+
awardStatus?: string | null
|
|
19
|
+
title: string
|
|
20
|
+
description?: string | null
|
|
21
|
+
awardDate: string
|
|
22
|
+
dateBasis?: "award" | "publication" | "period-start"
|
|
23
|
+
dataBasis?:
|
|
24
|
+
| "api-award"
|
|
25
|
+
| "api-search"
|
|
26
|
+
| "api-combined"
|
|
27
|
+
| "bulk-latest-transaction"
|
|
28
|
+
| "bulk-transaction"
|
|
29
|
+
| "api-transaction"
|
|
30
|
+
| "combined-transaction"
|
|
31
|
+
dataEffectiveDate?: string
|
|
32
|
+
fieldAsOf?: Record<string, string>
|
|
33
|
+
fieldSourceUrls?: Record<string, string>
|
|
34
|
+
periodStart?: string | null
|
|
35
|
+
periodEnd?: string | null
|
|
36
|
+
fiscalYear?: number | null
|
|
37
|
+
currency: string
|
|
38
|
+
/** Cumulative award obligation. Never sum this with transaction flows. */
|
|
39
|
+
obligatedAmount?: string | null
|
|
40
|
+
ceilingAmount?: string | null
|
|
41
|
+
/** Face value for awards; action amount for modification records. */
|
|
42
|
+
awardAmount?: string | null
|
|
43
|
+
recipient: AwardRecipient
|
|
44
|
+
agency: { id?: string | null; name: string; parentName?: string | null }
|
|
45
|
+
parentAwardId?: string | null
|
|
46
|
+
parentSource?: string | null
|
|
47
|
+
parentRecipient?: AwardRecipient | null
|
|
48
|
+
transactionId?: string | null
|
|
49
|
+
modificationNumber?: string | null
|
|
50
|
+
actionType?: string | null
|
|
51
|
+
classifications?: { scheme: string; code: string; label?: string }[]
|
|
52
|
+
naics?: string | null
|
|
53
|
+
psc?: string | null
|
|
54
|
+
sector?: string | null
|
|
55
|
+
placeOfPerformance?: {
|
|
56
|
+
country?: string | null
|
|
57
|
+
region?: string | null
|
|
58
|
+
city?: string | null
|
|
59
|
+
} | null
|
|
60
|
+
sourceUrl: string
|
|
61
|
+
publishedAt?: string | null
|
|
62
|
+
sourceUpdatedAt?: string | null
|
|
63
|
+
evidenceQuote?: string | null
|
|
64
|
+
confidence?: number
|
|
65
|
+
rawPayload?: unknown
|
|
66
|
+
}
|
|
67
|
+
interface AwardEntityMatch {
|
|
68
|
+
ticker: string
|
|
69
|
+
exchange: string | null
|
|
70
|
+
legalName: string
|
|
71
|
+
parentName: string | null
|
|
72
|
+
cik: string | null
|
|
73
|
+
method: "identifier" | "legal-name" | "verified-alias"
|
|
74
|
+
evidenceUrl: string
|
|
75
|
+
confidence: number
|
|
76
|
+
}
|
|
77
|
+
export interface AwardRow extends AwardInput {
|
|
78
|
+
id: string
|
|
79
|
+
revisionId: string
|
|
80
|
+
observedAt: string
|
|
81
|
+
entity: AwardEntityMatch | null
|
|
82
|
+
revenueComparison: AwardRevenueComparison | null
|
|
83
|
+
}
|
|
84
|
+
interface AwardRevenueComparison {
|
|
85
|
+
awardAmount: string
|
|
86
|
+
annualRevenue: string
|
|
87
|
+
currency: string
|
|
88
|
+
periodStart: string
|
|
89
|
+
periodEnd: string
|
|
90
|
+
filedAt: string
|
|
91
|
+
sourceUrl: string
|
|
92
|
+
percent: number
|
|
93
|
+
basis: "award-value" | "obligated"
|
|
94
|
+
}
|
|
95
|
+
export interface AwardFilter {
|
|
96
|
+
ticker?: string
|
|
97
|
+
parentId?: string
|
|
98
|
+
jurisdiction?: string
|
|
99
|
+
agency?: string
|
|
100
|
+
sector?: string
|
|
101
|
+
source?: string
|
|
102
|
+
awardType?: AwardType
|
|
103
|
+
currency?: string
|
|
104
|
+
from?: string
|
|
105
|
+
to?: string
|
|
106
|
+
fiscalYear?: number
|
|
107
|
+
query?: string
|
|
108
|
+
minAmount?: string
|
|
109
|
+
cursor?: string
|
|
110
|
+
limit?: number
|
|
111
|
+
}
|
|
112
|
+
export interface AwardAggregate {
|
|
113
|
+
source: string
|
|
114
|
+
key: string
|
|
115
|
+
label: string
|
|
116
|
+
currency: string
|
|
117
|
+
awardType: AwardType
|
|
118
|
+
count: number
|
|
119
|
+
obligatedAmount: string | null
|
|
120
|
+
ceilingAmount: string | null
|
|
121
|
+
awardAmount: string | null
|
|
122
|
+
sharePercent: number | null
|
|
123
|
+
}
|
|
124
|
+
export interface AwardCompanyLeader extends AwardAggregate {
|
|
125
|
+
sector: string
|
|
126
|
+
ticker: string | null
|
|
127
|
+
exchange: string | null
|
|
128
|
+
}
|
|
129
|
+
export interface AwardHistoryPoint {
|
|
130
|
+
source: string
|
|
131
|
+
month: string
|
|
132
|
+
currency: string
|
|
133
|
+
awardType: AwardType
|
|
134
|
+
count: number
|
|
135
|
+
obligatedAmount: string | null
|
|
136
|
+
ceilingAmount: string | null
|
|
137
|
+
awardAmount: string | null
|
|
138
|
+
cumulativeObligatedAmount: string | null
|
|
139
|
+
}
|
|
140
|
+
interface AwardSourceState {
|
|
141
|
+
source: string
|
|
142
|
+
enabled: boolean
|
|
143
|
+
lastAttemptAt: string | null
|
|
144
|
+
lastOkAt: string | null
|
|
145
|
+
nextPollAt: string | null
|
|
146
|
+
failures: number
|
|
147
|
+
lastError: string | null
|
|
148
|
+
cursor: string | null
|
|
149
|
+
coverageStart: string | null
|
|
150
|
+
coverageEnd: string | null
|
|
151
|
+
coverageComplete: boolean
|
|
152
|
+
records: number
|
|
153
|
+
requestsToday: number
|
|
154
|
+
}
|
|
155
|
+
interface AwardCoverage {
|
|
156
|
+
source: string
|
|
157
|
+
startDate: string
|
|
158
|
+
endDate: string
|
|
159
|
+
status: "pending" | "running" | "complete" | "failed"
|
|
160
|
+
records: number
|
|
161
|
+
pages: number
|
|
162
|
+
cursor: string | null
|
|
163
|
+
lastError: string | null
|
|
164
|
+
updatedAt: string
|
|
165
|
+
}
|
|
166
|
+
export interface AwardsPayload {
|
|
167
|
+
generatedAt: string
|
|
168
|
+
asOf: string | null
|
|
169
|
+
status: "available" | "partial" | "unavailable"
|
|
170
|
+
access: "full" | "preview"
|
|
171
|
+
rows: AwardRow[]
|
|
172
|
+
nextCursor: string | null
|
|
173
|
+
agencies: AwardAggregate[]
|
|
174
|
+
sectors: AwardAggregate[]
|
|
175
|
+
leaders: AwardCompanyLeader[]
|
|
176
|
+
history: AwardHistoryPoint[]
|
|
177
|
+
alerts: AwardRow[]
|
|
178
|
+
sources: AwardSourceState[]
|
|
179
|
+
coverage: AwardCoverage[]
|
|
180
|
+
gaps: string[]
|
|
181
|
+
locked: boolean
|
|
182
|
+
truncated?: {
|
|
183
|
+
agencies: boolean
|
|
184
|
+
sectors: boolean
|
|
185
|
+
history: boolean
|
|
186
|
+
leaders: boolean
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
interface AwardRevision {
|
|
190
|
+
id: string
|
|
191
|
+
observedAt: string
|
|
192
|
+
sourceUpdatedAt: string | null
|
|
193
|
+
supersedes: string | null
|
|
194
|
+
award: AwardInput
|
|
195
|
+
}
|
|
196
|
+
interface AwardEdge {
|
|
197
|
+
kind: "government-customer" | "subcontractor"
|
|
198
|
+
from: AwardRecipient
|
|
199
|
+
to: AwardRecipient
|
|
200
|
+
awardId: string
|
|
201
|
+
sourceUrl: string
|
|
202
|
+
amount: string | null
|
|
203
|
+
currency: string
|
|
204
|
+
}
|
|
205
|
+
export interface AwardDetailPayload {
|
|
206
|
+
nextRevisionsCursor?: string | null
|
|
207
|
+
truncated?: { revisions: boolean; subawards: boolean; modifications: boolean }
|
|
208
|
+
row: AwardRow | null
|
|
209
|
+
revisions: AwardRevision[]
|
|
210
|
+
subawards: AwardRow[]
|
|
211
|
+
modifications: AwardRow[]
|
|
212
|
+
edges: AwardEdge[]
|
|
213
|
+
access: "full" | "preview"
|
|
214
|
+
locked: boolean
|
|
215
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
type QuoteMatchMode = "exact" | "whitespace" | "normalized"
|
|
2
|
+
|
|
3
|
+
export const CATALYST_TYPES = ["regulatory", "clinical", "litigation", "antitrust", "recall", "sanctions", "export_control", "tariff", "rulemaking", "approval", "advisory", "pdufa"] as const
|
|
4
|
+
export type CatalystType = (typeof CATALYST_TYPES)[number]
|
|
5
|
+
type DatePrecision = "day" | "month" | "year"
|
|
6
|
+
interface CatalystIdentifiers {
|
|
7
|
+
cik?: string
|
|
8
|
+
lei?: string
|
|
9
|
+
isin?: string
|
|
10
|
+
tickers?: Array<{ ticker: string; exchange?: string | null }>
|
|
11
|
+
[key: string]: unknown
|
|
12
|
+
}
|
|
13
|
+
interface CatalystPartyInput {
|
|
14
|
+
name: string
|
|
15
|
+
role?: string
|
|
16
|
+
identifiers?: CatalystIdentifiers
|
|
17
|
+
}
|
|
18
|
+
interface CatalystParty extends CatalystPartyInput {
|
|
19
|
+
entityId: string | null
|
|
20
|
+
ticker: string | null
|
|
21
|
+
exchange: string | null
|
|
22
|
+
resolution: "identifier" | "alias" | "unresolved"
|
|
23
|
+
confidence: number
|
|
24
|
+
}
|
|
25
|
+
interface CatalystOpinion {
|
|
26
|
+
label: "Model opinion"
|
|
27
|
+
direction: "positive" | "negative" | "mixed" | "uncertain"
|
|
28
|
+
type: CatalystType
|
|
29
|
+
rationale: string
|
|
30
|
+
quote: string
|
|
31
|
+
quoteOffset: number
|
|
32
|
+
quoteSourceLength: number
|
|
33
|
+
quoteMatchMode: QuoteMatchMode
|
|
34
|
+
confidence: number
|
|
35
|
+
model: string
|
|
36
|
+
gateModel: string
|
|
37
|
+
generatedAt: string
|
|
38
|
+
promptVersion: string
|
|
39
|
+
}
|
|
40
|
+
interface CatalystInput {
|
|
41
|
+
source: string
|
|
42
|
+
externalId: string
|
|
43
|
+
type: CatalystType
|
|
44
|
+
agency: string
|
|
45
|
+
jurisdiction: string
|
|
46
|
+
country?: string | null
|
|
47
|
+
title: string
|
|
48
|
+
summary: string
|
|
49
|
+
status: string
|
|
50
|
+
announcedDate?: string | null
|
|
51
|
+
effectiveDate?: string | null
|
|
52
|
+
deadlineDate?: string | null
|
|
53
|
+
datePrecision?: { announced?: DatePrecision; effective?: DatePrecision; deadline?: DatePrecision }
|
|
54
|
+
parties: CatalystPartyInput[]
|
|
55
|
+
sourceUrl: string
|
|
56
|
+
sourceDocumentId?: string | null
|
|
57
|
+
language?: string
|
|
58
|
+
observedAt: string
|
|
59
|
+
sourcePublishedAt?: string | null
|
|
60
|
+
quote?: string | null
|
|
61
|
+
/** Kept privately for evidence validation and repeatable extraction. */
|
|
62
|
+
sourceText?: string
|
|
63
|
+
confidence: number
|
|
64
|
+
metadata?: Record<string, unknown>
|
|
65
|
+
sector?: string | null
|
|
66
|
+
opinion?: CatalystOpinion | null
|
|
67
|
+
}
|
|
68
|
+
interface CatalystChange { field: string; before: unknown; after: unknown }
|
|
69
|
+
export interface CatalystEvent extends Omit<CatalystInput, "parties" | "sourceText"> {
|
|
70
|
+
id: string
|
|
71
|
+
revisionId: string
|
|
72
|
+
revision: number
|
|
73
|
+
parties: CatalystParty[]
|
|
74
|
+
announcedDate: string | null
|
|
75
|
+
effectiveDate: string | null
|
|
76
|
+
deadlineDate: string | null
|
|
77
|
+
datePrecision: NonNullable<CatalystInput["datePrecision"]>
|
|
78
|
+
country: string | null
|
|
79
|
+
sector: string | null
|
|
80
|
+
language: string
|
|
81
|
+
quote: string | null
|
|
82
|
+
quoteOffset: number | null
|
|
83
|
+
quoteSourceLength: number | null
|
|
84
|
+
quoteMatchMode: QuoteMatchMode | null
|
|
85
|
+
opinion: CatalystOpinion | null
|
|
86
|
+
changes: CatalystChange[]
|
|
87
|
+
supersedesRevisionId: string | null
|
|
88
|
+
firstSeenAt: string
|
|
89
|
+
lastSeenAt: string
|
|
90
|
+
}
|
|
91
|
+
export interface CatalystFilters {
|
|
92
|
+
symbol?: string
|
|
93
|
+
type?: CatalystType
|
|
94
|
+
agency?: string
|
|
95
|
+
country?: string
|
|
96
|
+
sector?: string
|
|
97
|
+
status?: string
|
|
98
|
+
source?: string
|
|
99
|
+
search?: string
|
|
100
|
+
from?: string
|
|
101
|
+
to?: string
|
|
102
|
+
dateField?: "announced" | "effective" | "deadline" | "observed" | "any"
|
|
103
|
+
upcoming?: boolean
|
|
104
|
+
changed?: boolean
|
|
105
|
+
litigation?: boolean
|
|
106
|
+
limit?: number
|
|
107
|
+
offset?: number
|
|
108
|
+
}
|
|
109
|
+
interface CatalystSource {
|
|
110
|
+
id: string
|
|
111
|
+
name: string
|
|
112
|
+
agency: string
|
|
113
|
+
jurisdiction: string
|
|
114
|
+
country: string
|
|
115
|
+
enabled: boolean
|
|
116
|
+
disabledReason?: string
|
|
117
|
+
homepage: string
|
|
118
|
+
termsUrl?: string
|
|
119
|
+
cadenceMinutes: number
|
|
120
|
+
coverage: string
|
|
121
|
+
}
|
|
122
|
+
interface CatalystSourceState {
|
|
123
|
+
source: string
|
|
124
|
+
lastOkAt: string | null
|
|
125
|
+
lastAttemptAt: string | null
|
|
126
|
+
nextPollAt: string | null
|
|
127
|
+
failures: number
|
|
128
|
+
lastError: string | null
|
|
129
|
+
cursor: string | null
|
|
130
|
+
etag: string | null
|
|
131
|
+
lastModified: string | null
|
|
132
|
+
eventsSeen: number
|
|
133
|
+
}
|
|
134
|
+
interface CatalystCoverage {
|
|
135
|
+
sources: Array<CatalystSource & { state: CatalystSourceState | null; events: number }>
|
|
136
|
+
totalEvents: number
|
|
137
|
+
linkedEvents: number
|
|
138
|
+
unresolvedParties: number
|
|
139
|
+
jurisdictions: string[]
|
|
140
|
+
firstObservedAt: string | null
|
|
141
|
+
lastObservedAt: string | null
|
|
142
|
+
}
|
|
143
|
+
export interface CatalystResponse {
|
|
144
|
+
events: CatalystEvent[]
|
|
145
|
+
total: number
|
|
146
|
+
limit: number
|
|
147
|
+
offset: number
|
|
148
|
+
asOf: string
|
|
149
|
+
filters: CatalystFilters
|
|
150
|
+
coverage: CatalystCoverage
|
|
151
|
+
facets: { types: string[]; agencies: string[]; countries: string[]; sectors: string[]; statuses: string[] }
|
|
152
|
+
access?: { pro: boolean; lockedRows: number; previewLimit: number }
|
|
153
|
+
}
|
|
154
|
+
export interface CatalystDetail { event: CatalystEvent; history: CatalystEvent[]; historyTotal?: number; historyTruncated?: boolean; historyOffset?: number; historyLimit?: number; historyHasMore?: boolean; asOf: string; access?: { pro: boolean; lockedRows: number; previewLimit: number } }
|
|
155
|
+
export interface CatalystStatus {
|
|
156
|
+
ready: boolean
|
|
157
|
+
coverage: CatalystCoverage
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export interface CatalystChanges extends CatalystResponse { nextCursor: string | null; hasMore: boolean }
|