@gloom-sh/terminal 0.18.5 → 0.19.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/package.json +1 -1
- package/patches/electrobun@1.18.1.patch +140 -7
- package/src/api-client/cot.ts +6 -2
- package/src/api-client/credit-documents.ts +6 -0
- package/src/api-client/data.ts +17 -6
- package/src/api-client/equity-screener.ts +24 -0
- package/src/api-client/fund-facts.ts +45 -4
- package/src/api-client/index.ts +11 -0
- package/src/api-client/market-discovery.ts +10 -0
- package/src/api-client/market-movers.ts +7 -0
- package/src/api-client/members.ts +1 -1
- package/src/api-client/perps.ts +43 -0
- package/src/api-client/research-activity.ts +3 -2
- package/src/api-client/types.ts +70 -2
- package/src/app/pane-runtime/plugin-bindings.ts +9 -5
- package/src/app/runtime/broker-import.ts +0 -2
- package/src/app/runtime/plugin-bindings.ts +73 -56
- package/src/architecture/pane-tabs-allowlist.json +3 -0
- package/src/architecture/ttl-caches-allowlist.json +19 -0
- package/src/brokers/sync-broker-instance.ts +2 -8
- package/src/capabilities/chart-series.ts +1 -1
- package/src/cli/commands/crypto-hints.ts +40 -24
- package/src/cli/commands/market.ts +72 -26
- package/src/cli/commands/options-chain.ts +48 -7
- package/src/cli/commands/options-leaps.ts +9 -3
- package/src/cli/commands/overview.ts +61 -12
- package/src/cli/commands/search.ts +21 -1
- package/src/cli/commands/themes.ts +11 -2
- package/src/cli/commands/ticker.ts +55 -34
- package/src/cli/company-name-hint.ts +41 -0
- package/src/cli/earnings-calendar.ts +1 -1
- package/src/cli/errors.ts +8 -0
- package/src/cli/glossary.ts +25 -2
- package/src/cli/history-rows.ts +57 -9
- package/src/cli/index.ts +2 -0
- package/src/cli/listing-arg.ts +180 -52
- package/src/cli/output-file.ts +68 -0
- package/src/cli/pane-functions/capabilities.ts +3 -0
- package/src/cli/pane-functions/catalog.ts +80 -7
- package/src/cli/pane-functions/dom.ts +13 -3
- package/src/cli/pane-functions/freshness.ts +86 -3
- package/src/cli/pane-functions/function-help.ts +13 -10
- package/src/cli/pane-functions/headless.ts +17 -7
- package/src/cli/pane-functions/index.ts +49 -14
- package/src/cli/pane-functions/market-session.ts +66 -4
- package/src/cli/pane-functions/options.ts +19 -1
- package/src/cli/pane-functions/resolver.ts +19 -8
- package/src/cli/pane-functions/screenshot-assessment.ts +6 -4
- package/src/cli/pane-functions/screenshot-types.ts +5 -0
- package/src/cli/quote-answer.ts +22 -11
- package/src/cli/ticker-resolution.ts +3 -2
- package/src/components/chart/composite/composite-chart.tsx +4 -0
- package/src/components/chart/composite/interactions.ts +6 -0
- package/src/components/chart/composite/legend.tsx +45 -7
- package/src/components/chart/composite/panel-gestures.ts +33 -0
- package/src/components/chart/composite/panel-surface.tsx +52 -3
- package/src/components/chart/composite/rasterizer.ts +24 -13
- package/src/components/chart/composite/scene.ts +39 -4
- package/src/components/chart/composite/series-cues.ts +14 -0
- package/src/components/chart/composite/text-renderer.ts +9 -2
- package/src/components/chart/composite/tool-catalog.ts +36 -0
- package/src/components/chart/composite/tools.ts +203 -44
- package/src/components/chart/composite/use-composite-chart-keyboard.ts +11 -4
- package/src/components/command-bar/assist/inventory.ts +2 -1
- package/src/components/command-bar/commands/direct/index.ts +28 -13
- package/src/components/command-bar/pane-templates/items.ts +3 -2
- package/src/components/command-bar/workflow/collection-actions.ts +3 -3
- package/src/components/onboarding/onboarding-wizard.tsx +4 -1
- package/src/components/onboarding/portfolio-step/positions-panel.tsx +12 -7
- package/src/components/onboarding/wizard-broker-sync.ts +0 -1
- package/src/components/onboarding/wizard-positions.ts +3 -3
- package/src/components/ticker/list-table-view.tsx +4 -1
- package/src/components/ui/choice-dialog.tsx +23 -18
- package/src/components/ui/choice-groups.ts +18 -0
- package/src/components/ui/data-table/opentui/index.tsx +9 -7
- package/src/components/ui/data-table/opentui/model.ts +26 -1
- package/src/components/ui/data-table/types.ts +2 -0
- package/src/components/ui/list-view.tsx +8 -4
- package/src/components/ui/query-bar-keys.tsx +2 -0
- package/src/components/ui/query-bar.tsx +1 -0
- package/src/components/ui/select-button.tsx +5 -1
- package/src/components/ui/select-field.tsx +1 -0
- package/src/components/ui/table-layout.ts +8 -5
- package/src/core/app-runtime.ts +2 -0
- package/src/core/app-services.ts +2 -2
- package/src/data/config/chart-settings.ts +1 -1
- package/src/data/json-ticker-repository.ts +17 -8
- package/src/data/ticker-repository.ts +16 -9
- package/src/data/ticker-writes.ts +81 -0
- package/src/data/ttl-cache.ts +165 -0
- package/src/docs/snapshot.json +71 -137
- package/src/i18n/es.ts +18 -2
- package/src/i18n/ja.ts +18 -2
- package/src/i18n/ko.ts +18 -2
- package/src/i18n/zh-cn.ts +18 -2
- package/src/i18n/zh-tw.ts +18 -2
- package/src/market-data/depositary-pair.ts +2 -2
- package/src/market-data/fund-facts.ts +50 -0
- package/src/market-data/market/change-basis.ts +16 -3
- package/src/market-data/market/format.ts +25 -0
- package/src/market-data/market/freshness.ts +2 -1
- package/src/market-data/options-alternatives.ts +81 -4
- package/src/news/aggregator.ts +113 -9
- package/src/news/cloud-session.ts +21 -0
- package/src/news/hooks.ts +1 -0
- package/src/news/news-model.ts +1 -0
- package/src/news/types.ts +11 -0
- package/src/plugins/builtin/alerts/alert-engine.ts +20 -1
- package/src/plugins/builtin/alerts/alert-log.ts +33 -0
- package/src/plugins/builtin/alerts/cli-forms.ts +216 -0
- package/src/plugins/builtin/alerts/cli.ts +336 -77
- package/src/plugins/builtin/alerts/command.ts +25 -1
- package/src/plugins/builtin/alerts/events-pane.tsx +19 -4
- package/src/plugins/builtin/alerts/fired-log.ts +73 -9
- package/src/plugins/builtin/alerts/format.ts +75 -5
- package/src/plugins/builtin/alerts/headless.ts +24 -6
- package/src/plugins/builtin/alerts/history-rows.ts +3 -2
- package/src/plugins/builtin/alerts/history.ts +1 -1
- package/src/plugins/builtin/alerts/index.tsx +79 -16
- package/src/plugins/builtin/alerts/metric-command.ts +77 -4
- package/src/plugins/builtin/alerts/metric-data.ts +54 -13
- package/src/plugins/builtin/alerts/metric-model.ts +163 -14
- package/src/plugins/builtin/alerts/metric-parity-fixture.json +1 -1
- package/src/plugins/builtin/alerts/pane.tsx +61 -23
- package/src/plugins/builtin/alerts/quotes.ts +6 -0
- package/src/plugins/builtin/alerts/storage.ts +12 -8
- package/src/plugins/builtin/alerts/types.ts +4 -0
- package/src/plugins/builtin/analytics/index.tsx +2 -1
- package/src/plugins/builtin/analytics/risk-client.ts +16 -5
- package/src/plugins/builtin/analytics/risk-fx.ts +70 -15
- package/src/plugins/builtin/analytics/risk-headless.ts +27 -0
- package/src/plugins/builtin/analytics/risk-model.ts +55 -9
- package/src/plugins/builtin/analytics/risk-pane.tsx +8 -2
- package/src/plugins/builtin/attention/index.tsx +2 -1
- package/src/plugins/builtin/attention/listing.ts +14 -0
- package/src/plugins/builtin/broker-manager/index.tsx +7 -3
- package/src/plugins/builtin/buildout/cells.tsx +12 -4
- package/src/plugins/builtin/buildout/format.ts +38 -0
- package/src/plugins/builtin/buildout/model/normalizers.ts +36 -1
- package/src/plugins/builtin/buildout/pane/index.tsx +4 -1
- package/src/plugins/builtin/buildout/table-model.ts +23 -2
- package/src/plugins/builtin/builtin-plugin-meta.ts +6 -2
- package/src/plugins/builtin/changelog/index.tsx +9 -6
- package/src/plugins/builtin/chart-composer/catalog-inventory.ts +3 -0
- package/src/plugins/builtin/chart-composer/cli-options.ts +4 -0
- package/src/plugins/builtin/chart-composer/data-catalog-pane.tsx +7 -0
- package/src/plugins/builtin/chart-composer/editor/controller.ts +2 -2
- package/src/plugins/builtin/chart-composer/headless-schema.ts +7 -1
- package/src/plugins/builtin/chart-composer/headless.ts +6 -1
- package/src/plugins/builtin/chart-composer/index.tsx +1 -1
- package/src/plugins/builtin/chart-composer/pane.tsx +37 -8
- package/src/plugins/builtin/chart-composer/settings.ts +27 -0
- package/src/plugins/builtin/chat/content/command-suggestions.ts +1 -0
- package/src/plugins/builtin/chat/pane-links/commands.ts +7 -1
- package/src/plugins/builtin/clinical-trials/model.ts +0 -9
- package/src/plugins/builtin/clinical-trials/pane.tsx +15 -22
- package/src/plugins/builtin/clinical-trials/sponsor-tickers.ts +8 -6
- package/src/plugins/builtin/cloud/askg/manifest.ts +2 -0
- package/src/plugins/builtin/company-attention/building.tsx +5 -1
- package/src/plugins/builtin/company-attention/client.ts +8 -9
- package/src/plugins/builtin/company-attention/evidence.ts +4 -1
- package/src/plugins/builtin/company-attention/moves.tsx +5 -1
- package/src/plugins/builtin/company-attention/pane.tsx +9 -2
- package/src/plugins/builtin/company-attention/signals.tsx +5 -1
- package/src/plugins/builtin/correlation/headless.ts +13 -5
- package/src/plugins/builtin/correlation/history.ts +22 -0
- package/src/plugins/builtin/cot/client.ts +22 -18
- package/src/plugins/builtin/cot/headless.ts +15 -10
- package/src/plugins/builtin/cot/model.ts +14 -1
- package/src/plugins/builtin/cot/pane.tsx +22 -14
- package/src/plugins/builtin/credit-boards/client.ts +6 -10
- package/src/plugins/builtin/credit-conditions/headless.ts +8 -2
- package/src/plugins/builtin/credit-conditions/index.tsx +5 -1
- package/src/plugins/builtin/credit-conditions/model.ts +4 -0
- package/src/plugins/builtin/credit-conditions/series.ts +3 -1
- package/src/plugins/builtin/credit-documents/detail.tsx +2 -2
- package/src/plugins/builtin/credit-documents/export.ts +173 -0
- package/src/plugins/builtin/credit-documents/headless.ts +7 -7
- package/src/plugins/builtin/credit-documents/model.ts +104 -14
- package/src/plugins/builtin/credit-documents/pane.tsx +12 -5
- package/src/plugins/builtin/custom-view/sources.ts +2 -0
- package/src/plugins/builtin/dividend-yield/client.ts +131 -23
- package/src/plugins/builtin/dividend-yield/headless.ts +44 -16
- package/src/plugins/builtin/dividend-yield/model.ts +8 -5
- package/src/plugins/builtin/dividend-yield/pane.tsx +38 -13
- package/src/plugins/builtin/dividend-yield/ranking.ts +37 -14
- package/src/plugins/builtin/dividend-yield/types.ts +20 -2
- package/src/plugins/builtin/dividend-yield/view.ts +30 -2
- package/src/plugins/builtin/docs/targets.ts +5 -1
- package/src/plugins/builtin/earnings/board-model.ts +16 -15
- package/src/plugins/builtin/earnings/board.tsx +62 -71
- package/src/plugins/builtin/earnings/headless.ts +40 -4
- package/src/plugins/builtin/earnings/scope.ts +31 -43
- package/src/plugins/builtin/earnings-calls/calendar.tsx +2 -2
- package/src/plugins/builtin/earnings-calls/format.ts +31 -2
- package/src/plugins/builtin/earnings-calls/headless.ts +7 -2
- package/src/plugins/builtin/earnings-calls/model.ts +6 -1
- package/src/plugins/builtin/earnings-calls/pane.tsx +5 -4
- package/src/plugins/builtin/econ/types.ts +2 -0
- package/src/plugins/builtin/econ-statistics/defs.ts +6 -0
- package/src/plugins/builtin/econ-statistics/headless.ts +6 -4
- package/src/plugins/builtin/econ-statistics/stats.ts +36 -9
- package/src/plugins/builtin/equity-screener/categories.ts +179 -0
- package/src/plugins/builtin/equity-screener/client.ts +4 -2
- package/src/plugins/builtin/equity-screener/headless.ts +144 -13
- package/src/plugins/builtin/equity-screener/ideas.ts +49 -0
- package/src/plugins/builtin/equity-screener/model.ts +99 -10
- package/src/plugins/builtin/equity-screener/pane.tsx +68 -13
- package/src/plugins/builtin/fixed-income/pane.tsx +2 -1
- package/src/plugins/builtin/futures/use-board-terms.ts +42 -28
- package/src/plugins/builtin/futures/use-front-returns.ts +45 -28
- package/src/plugins/builtin/fx-matrix/client.ts +6 -3
- package/src/plugins/builtin/fx-matrix/headless.ts +1 -1
- package/src/plugins/builtin/fx-matrix/index.tsx +4 -2
- package/src/plugins/builtin/fx-matrix/live-legs.ts +42 -3
- package/src/plugins/builtin/gpu/headless.ts +8 -2
- package/src/plugins/builtin/help/function-index.ts +4 -1
- package/src/plugins/builtin/help/index.tsx +1 -0
- package/src/plugins/builtin/help/shortcut-model.ts +1 -1
- package/src/plugins/builtin/holders/fund-holders.ts +51 -0
- package/src/plugins/builtin/holders/headless.ts +18 -1
- package/src/plugins/builtin/iv-history/client.ts +52 -11
- package/src/plugins/builtin/iv-history/format.ts +36 -23
- package/src/plugins/builtin/iv-history/headless.ts +33 -18
- package/src/plugins/builtin/iv-history/index.tsx +2 -2
- package/src/plugins/builtin/iv-history/model.ts +163 -27
- package/src/plugins/builtin/iv-history/pane.tsx +10 -6
- package/src/plugins/builtin/iv-history/screen-pane.tsx +22 -15
- package/src/plugins/builtin/iv-history/universe.ts +5 -1
- package/src/plugins/builtin/jobs/client.ts +25 -29
- package/src/plugins/builtin/kelly-sizer/model.ts +12 -8
- package/src/plugins/builtin/kelly-sizer/pane.tsx +9 -9
- package/src/plugins/builtin/kelly-sizer/sections.tsx +19 -10
- package/src/plugins/builtin/kelly-sizer/types.ts +10 -4
- package/src/plugins/builtin/macro-day/release-table.ts +2 -2
- package/src/plugins/builtin/market-heatmap/data.ts +8 -33
- package/src/plugins/builtin/market-movers/client.ts +25 -7
- package/src/plugins/builtin/market-movers/headless.ts +32 -12
- package/src/plugins/builtin/market-movers/index.tsx +26 -14
- package/src/plugins/builtin/market-movers/min-float.ts +74 -0
- package/src/plugins/builtin/market-movers/model.ts +4 -1
- package/src/plugins/builtin/market-movers/screener.ts +14 -0
- package/src/plugins/builtin/market-movers/session-body.tsx +13 -8
- package/src/plugins/builtin/market-movers/session-table.ts +4 -3
- package/src/plugins/builtin/market-movers/table.ts +17 -5
- package/src/plugins/builtin/members/breadth-pane.tsx +2 -1
- package/src/plugins/builtin/news/index.tsx +1 -0
- package/src/plugins/builtin/news/wire/categories.ts +19 -3
- package/src/plugins/builtin/news/wire/industry-pane.tsx +1 -0
- package/src/plugins/builtin/news/wire/news/footer.ts +31 -5
- package/src/plugins/builtin/news/wire/news/preset-pane.tsx +6 -1
- package/src/plugins/builtin/news/wire/news/table.tsx +2 -2
- package/src/plugins/builtin/openfda/client.ts +14 -2
- package/src/plugins/builtin/openfda/index.tsx +3 -2
- package/src/plugins/builtin/openfda/model.ts +9 -0
- package/src/plugins/builtin/openfda/pane.tsx +42 -6
- package/src/plugins/builtin/options/analytics.ts +29 -5
- package/src/plugins/builtin/options/enrichment.ts +17 -5
- package/src/plugins/builtin/options/table.ts +5 -2
- package/src/plugins/builtin/options/types.ts +2 -0
- package/src/plugins/builtin/options/view.tsx +17 -4
- package/src/plugins/builtin/options-positioning/client.ts +11 -0
- package/src/plugins/builtin/options-positioning/headless.ts +21 -8
- package/src/plugins/builtin/options-positioning/index.tsx +1 -1
- package/src/plugins/builtin/options-positioning/model.ts +78 -9
- package/src/plugins/builtin/options-positioning/pane.tsx +21 -6
- package/src/plugins/builtin/options-scenario/client.ts +116 -47
- package/src/plugins/builtin/options-scenario/csp-screen-headless.ts +142 -10
- package/src/plugins/builtin/options-scenario/csp-screen-pane.tsx +206 -55
- package/src/plugins/builtin/options-scenario/csp-screen.ts +63 -23
- package/src/plugins/builtin/options-scenario/csp.ts +8 -2
- package/src/plugins/builtin/options-scenario/index.tsx +9 -7
- package/src/plugins/builtin/options-scenario/strategy-screen.ts +532 -0
- package/src/plugins/builtin/pe-band/model.ts +12 -49
- package/src/plugins/builtin/perps/cascade-tabs.tsx +161 -0
- package/src/plugins/builtin/perps/cascade.ts +236 -0
- package/src/plugins/builtin/perps/client.ts +56 -2
- package/src/plugins/builtin/perps/headless.ts +65 -9
- package/src/plugins/builtin/perps/index.tsx +7 -5
- package/src/plugins/builtin/perps/model.ts +18 -4
- package/src/plugins/builtin/perps/pane.tsx +19 -22
- package/src/plugins/builtin/perps/status-line.ts +25 -0
- package/src/plugins/builtin/plugin-module.ts +5 -1
- package/src/plugins/builtin/portfolio-list/cached-account.ts +3 -1
- package/src/plugins/builtin/portfolio-list/cli/bulk-symbols.ts +2 -8
- package/src/plugins/builtin/portfolio-list/cli/portfolio-command.ts +4 -4
- package/src/plugins/builtin/portfolio-list/cli/render.ts +7 -5
- package/src/plugins/builtin/portfolio-list/pane/futures-front.ts +40 -0
- package/src/plugins/builtin/portfolio-list/pane/index.tsx +4 -1
- package/src/plugins/builtin/portfolio-list/pane/streaming.ts +5 -2
- package/src/plugins/builtin/portfolio-list/pane/supplemental.ts +3 -2
- package/src/plugins/builtin/portfolio-list/quick-add/resolution.ts +3 -1
- package/src/plugins/builtin/portfolio-list/table.tsx +11 -3
- package/src/plugins/builtin/primary-dealers/client.ts +13 -38
- package/src/plugins/builtin/realized-vol/index.tsx +2 -2
- package/src/plugins/builtin/realized-vol/pane.tsx +3 -3
- package/src/plugins/builtin/relative-rotation/client.ts +18 -4
- package/src/plugins/builtin/relative-rotation/headless.ts +3 -3
- package/src/plugins/builtin/relative-rotation/index.tsx +2 -1
- package/src/plugins/builtin/relative-rotation/model.ts +16 -40
- package/src/plugins/builtin/relative-rotation/pane.tsx +3 -2
- package/src/plugins/builtin/research/corporate-actions-pane.tsx +3 -2
- package/src/plugins/builtin/research/event-model.ts +10 -8
- package/src/plugins/builtin/research/headless.ts +1 -1
- package/src/plugins/builtin/research/relative-valuation-headless.ts +5 -1
- package/src/plugins/builtin/research/relative-valuation-model.ts +31 -3
- package/src/plugins/builtin/research/relative-valuation-pane.tsx +7 -5
- package/src/plugins/builtin/reverse-dcf/headless.ts +5 -3
- package/src/plugins/builtin/reverse-dcf/model.ts +61 -6
- package/src/plugins/builtin/reverse-dcf/pane.tsx +7 -4
- package/src/plugins/builtin/scanner/flow-model.ts +50 -4
- package/src/plugins/builtin/scanner/flow-pane.tsx +367 -65
- package/src/plugins/builtin/scanner/flow-session.ts +146 -0
- package/src/plugins/builtin/scanner/headless.ts +204 -35
- package/src/plugins/builtin/scanner/index.ts +16 -5
- package/src/plugins/builtin/scanner/live-headless.ts +27 -3
- package/src/plugins/builtin/scanner/live-model.ts +11 -0
- package/src/plugins/builtin/scanner/live-pane.tsx +3 -3
- package/src/plugins/builtin/scanner/lock-note.ts +3 -2
- package/src/plugins/builtin/seasonality/headless.ts +10 -1
- package/src/plugins/builtin/sec/fund-facts-view.tsx +5 -2
- package/src/plugins/builtin/sec/fund-facts.ts +116 -34
- package/src/plugins/builtin/sec/headless.ts +2 -1
- package/src/plugins/builtin/series-inventory.ts +2 -0
- package/src/plugins/builtin/shared/cloud-resource.ts +3 -2
- package/src/plugins/builtin/shared/cloud-upgrade.ts +4 -3
- package/src/plugins/builtin/shared/earnings-calendar.ts +6 -2
- package/src/plugins/builtin/shared/earnings-report.ts +2 -2
- package/src/plugins/builtin/shared/job-posting.ts +1 -0
- package/src/plugins/builtin/shared/members-menu.tsx +3 -2
- package/src/plugins/builtin/shared/pro-lock-note.ts +12 -12
- package/src/plugins/builtin/shared/report-freshness.ts +3 -2
- package/src/plugins/builtin/shared/ticker-choice.tsx +2 -1
- package/src/plugins/builtin/shared/ticker-company.ts +77 -0
- package/src/plugins/builtin/shared/use-quote-board.ts +2 -1
- package/src/plugins/builtin/shared/volatility/live-session.ts +34 -8
- package/src/plugins/builtin/shared/volatility/pricing.ts +19 -0
- package/src/plugins/builtin/shared/wall-view-lifecycle.ts +3 -1
- package/src/plugins/builtin/themes/model.ts +16 -7
- package/src/plugins/builtin/themes/pane.tsx +5 -5
- package/src/plugins/builtin/ticker-detail/data-panes/historical-prices.tsx +43 -18
- package/src/plugins/builtin/ticker-detail/data-panes/returns-history.ts +3 -2
- package/src/plugins/builtin/ticker-detail/data-panes/returns-model.ts +62 -0
- package/src/plugins/builtin/ticker-detail/data-panes/returns-pane.tsx +83 -46
- package/src/plugins/builtin/ticker-detail/headless.ts +31 -16
- package/src/plugins/builtin/ticker-detail/overview/model.ts +1 -1
- package/src/plugins/builtin/ticker-detail/pane.tsx +3 -2
- package/src/plugins/builtin/ticker-detail/quote-monitor/index.tsx +2 -1
- package/src/plugins/builtin/ticker-detail/settings.ts +1 -0
- package/src/plugins/builtin/time-sales/pane.tsx +31 -19
- package/src/plugins/builtin/treasury-daily/client.ts +41 -5
- package/src/plugins/builtin/treasury-daily/headless.ts +2 -2
- package/src/plugins/builtin/treasury-daily/index.tsx +1 -1
- package/src/plugins/builtin/treasury-daily/model.ts +50 -3
- package/src/plugins/builtin/treasury-daily/pane.tsx +81 -2
- package/src/plugins/builtin/vol-surface/client.ts +3 -13
- package/src/plugins/builtin/vol-surface/headless.ts +3 -3
- package/src/plugins/builtin/vol-surface/index.tsx +1 -1
- package/src/plugins/builtin/vol-surface/pane.tsx +7 -5
- package/src/plugins/builtin/volatility/index.tsx +2 -2
- package/src/plugins/builtin/volatility/pane.tsx +2 -2
- package/src/plugins/builtin/world-venue-map/headless.ts +3 -3
- package/src/plugins/catalog-manifest.ts +2 -1
- package/src/plugins/marketplace/model.ts +18 -5
- package/src/portfolio/futures-positions.ts +6 -3
- package/src/portfolio/position-quantity.ts +15 -9
- package/src/remote/resources.ts +2 -1
- package/src/renderers/dom/data-table/row.tsx +26 -0
- package/src/renderers/dom/desktop/list-view.tsx +13 -10
- package/src/renderers/dom/desktop/query-bar.tsx +4 -2
- package/src/renderers/dom/desktop/select-field.tsx +4 -2
- package/src/renderers/dom/host/chart-surface.tsx +21 -0
- package/src/renderers/electrobun/bun/desktop/app-name.ts +3 -3
- package/src/renderers/electrobun/bun/desktop/backend.ts +12 -0
- package/src/renderers/electrobun/bun/desktop/host-requests.ts +7 -0
- package/src/renderers/electrobun/bun/desktop/initialization.ts +2 -0
- package/src/renderers/electrobun/bun/desktop/update.ts +115 -14
- package/src/renderers/electrobun/bun/desktop/view-ids.ts +52 -0
- package/src/renderers/electrobun/shared/app-name.ts +13 -0
- package/src/renderers/electrobun/shared/protocol.ts +10 -0
- package/src/renderers/electrobun/view/backend-rpc.ts +6 -0
- package/src/renderers/electrobun/view/main.tsx +24 -1
- package/src/renderers/electrobun/view/news-source.ts +3 -1
- package/src/renderers/electrobun/view/remote/ticker-repository.ts +14 -7
- package/src/renderers/electrobun/view/view-ids.ts +85 -0
- package/src/renderers/opentui/start.tsx +5 -0
- package/src/series/registry.ts +1 -0
- package/src/series/types.ts +6 -0
- package/src/series/validate.ts +1 -0
- package/src/sources/gloomberb-cloud/index.ts +1 -0
- package/src/sources/gloomberb-cloud/news.ts +47 -7
- package/src/sources/provider-router/financials.ts +15 -3
- package/src/sources/provider-router/index.ts +8 -5
- package/src/state/ticker-cleanup.ts +50 -0
- package/src/sync/controller.ts +4 -3
- package/src/sync/core-contributors.ts +90 -31
- package/src/telemetry/stall-reports-dom.ts +38 -0
- package/src/telemetry/stall-reports-node.ts +75 -0
- package/src/telemetry/stall-reports.ts +214 -0
- package/src/test-support/preload.ts +14 -0
- package/src/theme/themes.ts +10 -0
- package/src/tickers/company-name.ts +44 -3
- package/src/tickers/listing-venues.ts +15 -3
- package/src/tickers/terminal-codes.ts +19 -0
- package/src/time-series/alignment.ts +1 -1
- package/src/time-series/economic.ts +18 -4
- package/src/time-series/field-catalog.ts +1 -1
- package/src/time-series/filed-trailing-eps.ts +197 -0
- package/src/time-series/fundamentals.ts +44 -1
- package/src/time-series/ice-credit.ts +3 -0
- package/src/time-series/price-comparison.ts +30 -2
- package/src/time-series/resolve-context.ts +3 -1
- package/src/time-series/resolve.ts +56 -4
- package/src/time-series/session-bar.ts +11 -0
- package/src/time-series/spec.ts +3 -2
- package/src/time-series/studies.ts +8 -2
- package/src/time-series/total-return.ts +160 -0
- package/src/time-series/transforms.ts +2 -3
- package/src/time-series/types.ts +22 -1
- package/src/types/financials.ts +32 -1
- package/src/types/headless.ts +21 -3
- package/src/types/news-source.ts +1 -0
- package/src/types/plugin.ts +9 -0
- package/src/ui/host.tsx +3 -0
- package/src/updater/failure.ts +4 -1
- package/src/utils/cli-output.ts +42 -1
- package/src/utils/crypto-pair.ts +44 -0
- package/src/utils/forward-dividend.ts +2 -0
- package/src/utils/fundamentals.ts +24 -3
- package/src/utils/fx-market-hours.ts +26 -3
- package/src/utils/main-thread-stall.ts +35 -2
- package/src/utils/market-capitalization.ts +24 -1
- package/src/utils/price-history.ts +7 -1
- package/src/utils/shell-word.ts +8 -0
- package/src/utils/trailing-dividend.ts +53 -4
- package/src/plugins/builtin/clinical-trials/ticker-sponsor.ts +0 -17
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A keyed in-memory cache that serves a loaded value for a while and shares a
|
|
3
|
+
* load that is still out. It is what a plugin reaches for instead of keeping
|
|
4
|
+
* its own `Map<key, { at, value }>` with a TTL constant and `Date.now() - at`
|
|
5
|
+
* checks, each copy with its own rule for a concurrent call, a forced reload
|
|
6
|
+
* and a failed load.
|
|
7
|
+
*
|
|
8
|
+
* It holds nothing across a restart, and `load` never answers with an expired
|
|
9
|
+
* value. A pane whose data must outlive a restart, or fall back to the saved
|
|
10
|
+
* copy when a refresh fails, wants `createPluginCache` (src/data/plugin-cache.ts).
|
|
11
|
+
*
|
|
12
|
+
* The rules, for every key:
|
|
13
|
+
* - A fresh value is served as it is; a load that is still out is shared, so
|
|
14
|
+
* two callers never start two requests for one key. A load is shared for
|
|
15
|
+
* no longer than `ttlMs` (a number), so one that hangs cannot hold the key.
|
|
16
|
+
* - `force` skips a fresh value and starts a load, except that it joins one
|
|
17
|
+
* that is already out when that load began after the value it would
|
|
18
|
+
* replace: panes that refresh together make one request, not one each.
|
|
19
|
+
* - The last good value stays until a load brings a newer one. A forced
|
|
20
|
+
* load that fails, or brings a value `keep` refuses, leaves it in place,
|
|
21
|
+
* and `peek(key, { stale: true })` reads it past its TTL while a reload is
|
|
22
|
+
* out, for a view that keeps drawing the last copy.
|
|
23
|
+
* - A load that rejects reaches every caller waiting on it. By default
|
|
24
|
+
* nothing is kept, so the next call asks again; `rejectionMs` keeps the
|
|
25
|
+
* rejection that long, for a load a poll would otherwise repeat each tick.
|
|
26
|
+
* - A load runs as soon as `load` is called, not on a later tick.
|
|
27
|
+
*/
|
|
28
|
+
export interface TtlCacheOptions<V> {
|
|
29
|
+
/** How long a loaded value is served, from when it arrives; a function sets it per value. */
|
|
30
|
+
ttlMs: number | ((value: V) => number);
|
|
31
|
+
/**
|
|
32
|
+
* Whether a loaded value is kept. One that is not still answers the callers
|
|
33
|
+
* waiting on it, and the next call loads again. Default: every value.
|
|
34
|
+
*/
|
|
35
|
+
keep?: (value: V) => boolean;
|
|
36
|
+
/** How long a rejected load is kept and served again. Default 0: it is dropped. */
|
|
37
|
+
rejectionMs?: number;
|
|
38
|
+
/** The oldest keys go first past this many. Default: unbounded. */
|
|
39
|
+
maxEntries?: number;
|
|
40
|
+
/** The clock, for tests. */
|
|
41
|
+
now?: () => number;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface TtlCache<V> {
|
|
45
|
+
/** The key's fresh value or the load already out for it; otherwise starts `load`. */
|
|
46
|
+
load(key: string, load: () => V | PromiseLike<V>, options?: { force?: boolean }): Promise<V>;
|
|
47
|
+
/**
|
|
48
|
+
* The key's fresh value, `undefined` when it has none. `stale` also reads
|
|
49
|
+
* the last good value past its TTL, for a view that keeps drawing it until
|
|
50
|
+
* the next load lands.
|
|
51
|
+
*/
|
|
52
|
+
peek(key: string, options?: { stale?: boolean }): V | undefined;
|
|
53
|
+
/** Whether the key's last load was rejected and `rejectionMs` still keeps that rejection. */
|
|
54
|
+
failed(key: string): boolean;
|
|
55
|
+
/** Keeps a value that arrived by another road, for the TTL. */
|
|
56
|
+
set(key: string, value: V): void;
|
|
57
|
+
/**
|
|
58
|
+
* Forgets the key. With `only`, a promise `load` returned, forgets just the
|
|
59
|
+
* load or kept rejection it stands for, and only while it is still the
|
|
60
|
+
* key's: a caller that gives up on a load cannot drop a newer one.
|
|
61
|
+
*/
|
|
62
|
+
delete(key: string, only?: Promise<V>): void;
|
|
63
|
+
clear(): void;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
interface Slot<V> {
|
|
67
|
+
/** The last good value: fresh until `expiresAt`, readable as stale after. */
|
|
68
|
+
held?: { value: V; arrivedAt: number; expiresAt: number };
|
|
69
|
+
/** The load that is out. */
|
|
70
|
+
loading?: { promise: Promise<V>; startedAt: number };
|
|
71
|
+
/** A rejected load kept for `rejectionMs`. */
|
|
72
|
+
failed?: { promise: Promise<V>; expiresAt: number };
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function createTtlCache<V>(options: TtlCacheOptions<V>): TtlCache<V> {
|
|
76
|
+
const { keep = () => true, rejectionMs = 0, maxEntries = Infinity, now: clock = () => Date.now() } = options;
|
|
77
|
+
const ttlFor = (value: V) => typeof options.ttlMs === "function" ? options.ttlMs(value) : options.ttlMs;
|
|
78
|
+
const shareMs = typeof options.ttlMs === "number" ? options.ttlMs : Infinity;
|
|
79
|
+
const slots = new Map<string, Slot<V>>();
|
|
80
|
+
|
|
81
|
+
const store = (key: string, slot: Slot<V>) => {
|
|
82
|
+
slots.delete(key);
|
|
83
|
+
slots.set(key, slot);
|
|
84
|
+
while (slots.size > maxEntries) slots.delete(slots.keys().next().value!);
|
|
85
|
+
};
|
|
86
|
+
/** A slot with nothing in it is not kept. */
|
|
87
|
+
const tidy = (key: string, slot: Slot<V>) => {
|
|
88
|
+
if (!slot.held && !slot.loading && !slot.failed && slots.get(key) === slot) slots.delete(key);
|
|
89
|
+
};
|
|
90
|
+
const hold = (slot: Slot<V>, value: V) => {
|
|
91
|
+
const arrivedAt = clock();
|
|
92
|
+
slot.held = { value, arrivedAt, expiresAt: arrivedAt + ttlFor(value) };
|
|
93
|
+
slot.failed = undefined;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
return {
|
|
97
|
+
load(key, load, { force = false } = {}) {
|
|
98
|
+
const at = clock();
|
|
99
|
+
const slot = slots.get(key) ?? {};
|
|
100
|
+
const { held, loading, failed } = slot;
|
|
101
|
+
if (!force) {
|
|
102
|
+
if (held && held.expiresAt > at) return Promise.resolve(held.value);
|
|
103
|
+
if (failed && failed.expiresAt > at) return failed.promise;
|
|
104
|
+
}
|
|
105
|
+
if (loading && at - loading.startedAt < shareMs && (!force || !held || loading.startedAt >= held.arrivedAt)) return loading.promise;
|
|
106
|
+
|
|
107
|
+
const run: NonNullable<Slot<V>["loading"]> = { promise: undefined as unknown as Promise<V>, startedAt: at };
|
|
108
|
+
const current = () => slots.get(key)?.loading === run;
|
|
109
|
+
run.promise = new Promise<V>((resolve) => resolve(load())).then((value) => {
|
|
110
|
+
if (current()) {
|
|
111
|
+
slot.loading = undefined;
|
|
112
|
+
try {
|
|
113
|
+
// A `keep` or TTL function that throws rejects for the callers, like the load.
|
|
114
|
+
if (keep(value)) hold(slot, value);
|
|
115
|
+
} finally {
|
|
116
|
+
tidy(key, slot);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return value;
|
|
120
|
+
}, (error: unknown) => {
|
|
121
|
+
if (current()) {
|
|
122
|
+
slot.loading = undefined;
|
|
123
|
+
const fresh = slot.held && slot.held.expiresAt > clock();
|
|
124
|
+
if (rejectionMs > 0 && !fresh) slot.failed = { promise: run.promise, expiresAt: clock() + rejectionMs };
|
|
125
|
+
tidy(key, slot);
|
|
126
|
+
}
|
|
127
|
+
throw error;
|
|
128
|
+
});
|
|
129
|
+
// A caller that drops the promise must not raise an unhandled rejection.
|
|
130
|
+
run.promise.then(undefined, () => { /* Intentional ignore: every caller holds this promise and sees the rejection. */ });
|
|
131
|
+
slot.loading = run;
|
|
132
|
+
slot.failed = undefined;
|
|
133
|
+
store(key, slot);
|
|
134
|
+
return run.promise;
|
|
135
|
+
},
|
|
136
|
+
peek(key, { stale = false } = {}) {
|
|
137
|
+
const held = slots.get(key)?.held;
|
|
138
|
+
return held && (stale || held.expiresAt > clock()) ? held.value : undefined;
|
|
139
|
+
},
|
|
140
|
+
failed(key) {
|
|
141
|
+
const failed = slots.get(key)?.failed;
|
|
142
|
+
return !!failed && failed.expiresAt > clock();
|
|
143
|
+
},
|
|
144
|
+
set(key, value) {
|
|
145
|
+
if (!keep(value)) return;
|
|
146
|
+
const slot = slots.get(key) ?? {};
|
|
147
|
+
hold(slot, value);
|
|
148
|
+
store(key, slot);
|
|
149
|
+
},
|
|
150
|
+
delete(key, only) {
|
|
151
|
+
const slot = slots.get(key);
|
|
152
|
+
if (!slot) return;
|
|
153
|
+
if (!only) {
|
|
154
|
+
slots.delete(key);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (slot.loading?.promise === only) slot.loading = undefined;
|
|
158
|
+
if (slot.failed?.promise === only) slot.failed = undefined;
|
|
159
|
+
tidy(key, slot);
|
|
160
|
+
},
|
|
161
|
+
clear() {
|
|
162
|
+
slots.clear();
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
}
|
package/src/docs/snapshot.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": 1,
|
|
3
3
|
"site": "https://gloom.sh",
|
|
4
|
-
"updatedAt": "2026-10-
|
|
4
|
+
"updatedAt": "2026-10-28",
|
|
5
5
|
"categories": [
|
|
6
6
|
{
|
|
7
7
|
"id": "research",
|
|
@@ -37,16 +37,6 @@
|
|
|
37
37
|
}
|
|
38
38
|
],
|
|
39
39
|
"functions": [
|
|
40
|
-
{
|
|
41
|
-
"code": "ATTN",
|
|
42
|
-
"name": "Research attention",
|
|
43
|
-
"description": "What Gloom users are researching",
|
|
44
|
-
"detail": "Which tickers opted-in Gloom users are researching, by hour, day and week, with sector and country totals and abnormal attention. Delayed at least an hour. Pro shows the full board; Free shows three rows per section.",
|
|
45
|
-
"category": "research",
|
|
46
|
-
"arg": "NVDA",
|
|
47
|
-
"access": "pro",
|
|
48
|
-
"lesson": "/academy/compare-screen-follow-money/filings-and-attention/attention"
|
|
49
|
-
},
|
|
50
40
|
{
|
|
51
41
|
"code": "DES",
|
|
52
42
|
"name": "Security overview",
|
|
@@ -295,9 +285,9 @@
|
|
|
295
285
|
},
|
|
296
286
|
{
|
|
297
287
|
"code": "CSP",
|
|
298
|
-
"name": "
|
|
299
|
-
"description": "
|
|
300
|
-
"detail": "
|
|
288
|
+
"name": "Options strategy screen",
|
|
289
|
+
"description": "Puts, covered calls, spreads, condors, straddles and calendars across a list",
|
|
290
|
+
"detail": "One tab per strategy: cash-secured put, covered call, vertical, iron condor, straddle, strangle and calendar. For each ticker it picks the legs by delta and expiry, then shows credit or debit, max gain and loss, break-evens, probability of profit, IV rank, wide spreads and earnings before expiry. Income trades rank by yearly return, debit trades by reward to risk.",
|
|
301
291
|
"category": "research",
|
|
302
292
|
"arg": "JPM, GS, KO"
|
|
303
293
|
},
|
|
@@ -1043,8 +1033,9 @@
|
|
|
1043
1033
|
"code": "FLOW",
|
|
1044
1034
|
"name": "Options flow",
|
|
1045
1035
|
"description": "Unusual options activity",
|
|
1046
|
-
"detail": "Sweeps, blocks, and large premium prints
|
|
1036
|
+
"detail": "Sweeps, blocks, and large premium prints, plus the session's net premium tide.",
|
|
1047
1037
|
"category": "markets",
|
|
1038
|
+
"arg": "NVDA",
|
|
1048
1039
|
"access": "pro",
|
|
1049
1040
|
"lesson": "/academy/options-and-volatility/positioning-and-flow/options-flow"
|
|
1050
1041
|
},
|
|
@@ -1870,6 +1861,10 @@
|
|
|
1870
1861
|
"type": "paragraph",
|
|
1871
1862
|
"text": "Installed before 0.18.4, when the command was `gloomberb`? Updating adds `gloom` beside it and `gloomberb` keeps working, with nothing to reinstall."
|
|
1872
1863
|
},
|
|
1864
|
+
{
|
|
1865
|
+
"type": "paragraph",
|
|
1866
|
+
"text": "Had `Gloomberb.app`? Its next update renames it to `Gloom.app`; settings and data stay."
|
|
1867
|
+
},
|
|
1873
1868
|
{
|
|
1874
1869
|
"type": "heading",
|
|
1875
1870
|
"level": 3,
|
|
@@ -2930,7 +2925,7 @@
|
|
|
2930
2925
|
"troubleshooting",
|
|
2931
2926
|
"diagnostics"
|
|
2932
2927
|
],
|
|
2933
|
-
"updatedAt": "2026-10-
|
|
2928
|
+
"updatedAt": "2026-10-25",
|
|
2934
2929
|
"blocks": [
|
|
2935
2930
|
{
|
|
2936
2931
|
"type": "heading",
|
|
@@ -2980,7 +2975,7 @@
|
|
|
2980
2975
|
{
|
|
2981
2976
|
"type": "list",
|
|
2982
2977
|
"items": [
|
|
2983
|
-
"`Bad CPU type in executable` on macOS: an Intel Mac running the Apple Silicon app. Delete `/Applications/Gloomberb.app` and rerun `curl -fsSL gloom.sh/install | bash` for the Intel terminal build.",
|
|
2978
|
+
"`Bad CPU type in executable` on macOS: an Intel Mac running the Apple Silicon app. Delete `/Applications/Gloom.app` (`Gloomberb.app` before the app was renamed) and rerun `curl -fsSL gloom.sh/install | bash` for the Intel terminal build.",
|
|
2984
2979
|
"`gloom doctor` shows runtime errors.",
|
|
2985
2980
|
"Update with the same method you installed with. See [Install and update](/docs/getting-started)."
|
|
2986
2981
|
]
|
|
@@ -3306,7 +3301,7 @@
|
|
|
3306
3301
|
},
|
|
3307
3302
|
{
|
|
3308
3303
|
"type": "paragraph",
|
|
3309
|
-
"text": "When signed in, searches you finish in the command bar are saved to improve search, shown to no one, and deleted with your account.
|
|
3304
|
+
"text": "When signed in, searches you finish in the command bar are saved to improve search, shown to no one, and deleted with your account. Attention Counts, the research attention contribution, is a separate opt-in, off by default."
|
|
3310
3305
|
},
|
|
3311
3306
|
{
|
|
3312
3307
|
"type": "paragraph",
|
|
@@ -4048,115 +4043,7 @@
|
|
|
4048
4043
|
},
|
|
4049
4044
|
{
|
|
4050
4045
|
"type": "paragraph",
|
|
4051
|
-
"text": "CLI `gloom fn JOBS NVDA`. MCP `company.hiring`, `market.hiring_movers`, `hiring.momentum`, `apps.attention`, `apps.rank_history`.
|
|
4052
|
-
}
|
|
4053
|
-
]
|
|
4054
|
-
},
|
|
4055
|
-
{
|
|
4056
|
-
"slug": "attention",
|
|
4057
|
-
"title": "Research attention",
|
|
4058
|
-
"lead": "ATTN shows which tickers other Gloom users are researching, and which are getting unusual attention",
|
|
4059
|
-
"category": "Understand the data",
|
|
4060
|
-
"tags": [
|
|
4061
|
-
"ATTN",
|
|
4062
|
-
"attention",
|
|
4063
|
-
"research",
|
|
4064
|
-
"privacy"
|
|
4065
|
-
],
|
|
4066
|
-
"updatedAt": "2026-10-07",
|
|
4067
|
-
"blocks": [
|
|
4068
|
-
{
|
|
4069
|
-
"type": "heading",
|
|
4070
|
-
"level": 2,
|
|
4071
|
-
"text": "Open it"
|
|
4072
|
-
},
|
|
4073
|
-
{
|
|
4074
|
-
"type": "table",
|
|
4075
|
-
"headers": [
|
|
4076
|
-
"Command",
|
|
4077
|
-
"Opens"
|
|
4078
|
-
],
|
|
4079
|
-
"rows": [
|
|
4080
|
-
[
|
|
4081
|
-
"`ATTN`",
|
|
4082
|
-
"The board"
|
|
4083
|
-
],
|
|
4084
|
-
[
|
|
4085
|
-
"`ATTN NVDA`",
|
|
4086
|
-
"One ticker"
|
|
4087
|
-
],
|
|
4088
|
-
[
|
|
4089
|
-
"`ATTN 6758:JPX`",
|
|
4090
|
-
"An international listing"
|
|
4091
|
-
]
|
|
4092
|
-
]
|
|
4093
|
-
},
|
|
4094
|
-
{
|
|
4095
|
-
"type": "heading",
|
|
4096
|
-
"level": 2,
|
|
4097
|
-
"text": "What you see"
|
|
4098
|
-
},
|
|
4099
|
-
{
|
|
4100
|
-
"type": "table",
|
|
4101
|
-
"headers": [
|
|
4102
|
-
"Tab",
|
|
4103
|
-
"Shows"
|
|
4104
|
-
],
|
|
4105
|
-
"rows": [
|
|
4106
|
-
[
|
|
4107
|
-
"Ranking",
|
|
4108
|
-
"Tickers by research hours, with share, price move and relative volume"
|
|
4109
|
-
],
|
|
4110
|
-
[
|
|
4111
|
-
"Abnormal",
|
|
4112
|
-
"Tickers well above their own usual level"
|
|
4113
|
-
],
|
|
4114
|
-
[
|
|
4115
|
-
"Sectors, Countries",
|
|
4116
|
-
"Totals by sector and country"
|
|
4117
|
-
],
|
|
4118
|
-
[
|
|
4119
|
-
"History",
|
|
4120
|
-
"Hourly research hours for one ticker"
|
|
4121
|
-
],
|
|
4122
|
-
[
|
|
4123
|
-
"Evidence",
|
|
4124
|
-
"The window and rules behind each figure"
|
|
4125
|
-
]
|
|
4126
|
-
]
|
|
4127
|
-
},
|
|
4128
|
-
{
|
|
4129
|
-
"type": "paragraph",
|
|
4130
|
-
"text": "Switch the window between Now, Today and Week. Enter opens a ticker, `e` shows evidence."
|
|
4131
|
-
},
|
|
4132
|
-
{
|
|
4133
|
-
"type": "heading",
|
|
4134
|
-
"level": 2,
|
|
4135
|
-
"text": "Free and Pro"
|
|
4136
|
-
},
|
|
4137
|
-
{
|
|
4138
|
-
"type": "paragraph",
|
|
4139
|
-
"text": "Pro shows the full board and 29 days of hourly history. Free shows three rows per section and the latest point. Data lags by at least an hour."
|
|
4140
|
-
},
|
|
4141
|
-
{
|
|
4142
|
-
"type": "heading",
|
|
4143
|
-
"level": 2,
|
|
4144
|
-
"text": "Keep in mind"
|
|
4145
|
-
},
|
|
4146
|
-
{
|
|
4147
|
-
"type": "list",
|
|
4148
|
-
"items": [
|
|
4149
|
-
"Counts come only from users who opted in, so they are a sample, not the market. A ticker appears only when enough people looked at it, and hidden hours are unavailable, not zero."
|
|
4150
|
-
]
|
|
4151
|
-
},
|
|
4152
|
-
{
|
|
4153
|
-
"type": "heading",
|
|
4154
|
-
"level": 2,
|
|
4155
|
-
"text": "Your choice"
|
|
4156
|
-
},
|
|
4157
|
-
{
|
|
4158
|
-
"type": "paragraph",
|
|
4159
|
-
"text": "Contributing is a separate opt-in setting, off by default. Toggle **Attention Counts** in Settings or with `gloom config set telemetry.attention true`. See the [Privacy Policy](/privacy). MCP `market.attention`."
|
|
4046
|
+
"text": "CLI `gloom fn JOBS NVDA`. MCP `company.hiring`, `market.hiring_movers`, `hiring.momentum`, `apps.attention`, `apps.rank_history`."
|
|
4160
4047
|
}
|
|
4161
4048
|
]
|
|
4162
4049
|
},
|
|
@@ -4385,7 +4272,7 @@
|
|
|
4385
4272
|
"perpetuals",
|
|
4386
4273
|
"history"
|
|
4387
4274
|
],
|
|
4388
|
-
"updatedAt": "2026-10-
|
|
4275
|
+
"updatedAt": "2026-10-26",
|
|
4389
4276
|
"blocks": [
|
|
4390
4277
|
{
|
|
4391
4278
|
"type": "heading",
|
|
@@ -4425,6 +4312,18 @@
|
|
|
4425
4312
|
"Shows"
|
|
4426
4313
|
],
|
|
4427
4314
|
"rows": [
|
|
4315
|
+
[
|
|
4316
|
+
"Compare",
|
|
4317
|
+
"One asset's contracts across the venues: mark, funding, premium and when each was observed"
|
|
4318
|
+
],
|
|
4319
|
+
[
|
|
4320
|
+
"Liquidations",
|
|
4321
|
+
"One asset's liquidated longs and shorts across the venues: 24-hour and 7-day totals, the hourly series and the largest prints"
|
|
4322
|
+
],
|
|
4323
|
+
[
|
|
4324
|
+
"Depth",
|
|
4325
|
+
"One asset's resting bids and asks within 0.5%, 1% and 2% of mid on each venue, from each venue's order book every hour"
|
|
4326
|
+
],
|
|
4428
4327
|
[
|
|
4429
4328
|
"History",
|
|
4430
4329
|
"Funding, open interest and mark premium, with price candles and settled funding where available"
|
|
@@ -4448,6 +4347,37 @@
|
|
|
4448
4347
|
"type": "paragraph",
|
|
4449
4348
|
"text": "Pro shows the stored history. Free shows a limited preview of the latest values. History starts when Gloom first collected a market."
|
|
4450
4349
|
},
|
|
4350
|
+
{
|
|
4351
|
+
"type": "heading",
|
|
4352
|
+
"level": 2,
|
|
4353
|
+
"text": "Liquidations"
|
|
4354
|
+
},
|
|
4355
|
+
{
|
|
4356
|
+
"type": "paragraph",
|
|
4357
|
+
"text": "Each venue's public liquidation stream, kept event by event with the time it arrived. A long liquidated is a forced sell, a short a forced buy, valued at the price the venue reports: the average fill on Binance and Hyperliquid, the bankruptcy price on Bybit and OKX. What the streams leave out:"
|
|
4358
|
+
},
|
|
4359
|
+
{
|
|
4360
|
+
"type": "list",
|
|
4361
|
+
"items": [
|
|
4362
|
+
"Binance and OKX send at most one liquidation per contract each second, so a burst on one contract is undercounted.",
|
|
4363
|
+
"Bybit sends every liquidation.",
|
|
4364
|
+
"Hyperliquid publishes only the positions its liquidity vault takes over (backstop liquidations). Liquidations closed on the order book are not published venue-wide and are missing.",
|
|
4365
|
+
"Venues publish no liquidation history, so time the collector was not connected is missing, not zero, and history starts at first collection."
|
|
4366
|
+
]
|
|
4367
|
+
},
|
|
4368
|
+
{
|
|
4369
|
+
"type": "paragraph",
|
|
4370
|
+
"text": "Free shows each contract's 24-hour and 7-day totals and the three largest prints; Pro adds the hourly series and the twenty largest prints."
|
|
4371
|
+
},
|
|
4372
|
+
{
|
|
4373
|
+
"type": "heading",
|
|
4374
|
+
"level": 2,
|
|
4375
|
+
"text": "Order book depth"
|
|
4376
|
+
},
|
|
4377
|
+
{
|
|
4378
|
+
"type": "paragraph",
|
|
4379
|
+
"text": "The quote notional resting within 0.5%, 1% and 2% of mid, read once an hour from each venue's public order book for its 50 largest markets by open interest. Binance and Bybit return the nearest 1,000 price levels a side and OKX 5,000; on the deepest markets the book ends inside a band, which then shows at least (≥) what it holds. Hyperliquid returns 20 levels a side, so wider bands are read from its grouped book and a band's edge falls within one price group. A book not read for 2.5 hours (it left its venue's 50 largest, or the venue is failing) is marked stale and left out of the band totals; after a week it is no longer listed. Free shows the latest reading; Pro the hourly history."
|
|
4380
|
+
},
|
|
4451
4381
|
{
|
|
4452
4382
|
"type": "heading",
|
|
4453
4383
|
"level": 2,
|
|
@@ -4465,7 +4395,7 @@
|
|
|
4465
4395
|
{
|
|
4466
4396
|
"type": "list",
|
|
4467
4397
|
"items": [
|
|
4468
|
-
"Stored readings cover Hyperliquid, Binance, Bybit and OKX.",
|
|
4398
|
+
"Stored readings cover Hyperliquid, Binance, Bybit and OKX. Compare shows each venue's leading contract free; Pro lists every contract.",
|
|
4469
4399
|
"Positive funding means longs pay shorts. Open interest in contracts and in USD differ, because a price rise adds USD open interest without new contracts.",
|
|
4470
4400
|
"A stock perpetual's premium is blank while the stock market is closed. The live board and trading are in the Hyperliquid plugin."
|
|
4471
4401
|
]
|
|
@@ -4736,7 +4666,7 @@
|
|
|
4736
4666
|
"call wall",
|
|
4737
4667
|
"put wall"
|
|
4738
4668
|
],
|
|
4739
|
-
"updatedAt": "2026-10-
|
|
4669
|
+
"updatedAt": "2026-10-28",
|
|
4740
4670
|
"blocks": [
|
|
4741
4671
|
{
|
|
4742
4672
|
"type": "heading",
|
|
@@ -4855,7 +4785,7 @@
|
|
|
4855
4785
|
{
|
|
4856
4786
|
"type": "list",
|
|
4857
4787
|
"items": [
|
|
4858
|
-
"Gamma per contract is Black-Scholes gamma with the forward at spot, times the 100-share multiplier. Time runs to 16:00 New York on the expiry date, at least one hour.",
|
|
4788
|
+
"Gamma per contract is Black-Scholes gamma with the forward at spot, times the 100-share multiplier. Time runs to 16:00 New York on the expiry date, at least one hour, from now, or outside the session from the spot's time: before the open, a same-day expiry has the hours from the pre-market print to the close, with the volatility the last session's quotes imply. A cash index (SPX, XSP) outside its session is spot at that session's close.",
|
|
4859
4789
|
"Each strike's volatility comes from its expiry's out-of-the-money quotes, linear between quoted strikes and flat beyond. An expiry without usable quotes is left out and named.",
|
|
4860
4790
|
"GEX at a strike is gamma × 100 × spot × 1% of spot × open interest.",
|
|
4861
4791
|
"The flip reprices net GEX from 15% below to 15% above spot in 0.25% steps, each strike keeping its volatility, and takes the sign change nearest spot.",
|
|
@@ -4953,7 +4883,7 @@
|
|
|
4953
4883
|
},
|
|
4954
4884
|
{
|
|
4955
4885
|
"type": "paragraph",
|
|
4956
|
-
"text": "`gloom fn GEX SPY --csv` opens with a summary: spot and
|
|
4886
|
+
"text": "`gloom fn GEX SPY --csv` opens with a summary: spot, when gamma is evaluated and when its quotes were taken (`Gamma at ..., vols from ...`), the open interest session, the unit, net GEX, the dealer range, the flip and both walls. Puts export negative, so call and put GEX add up to net. `--json` has the same under `metadata.gamma`."
|
|
4957
4887
|
},
|
|
4958
4888
|
{
|
|
4959
4889
|
"type": "heading",
|
|
@@ -6928,6 +6858,10 @@
|
|
|
6928
6858
|
"type": "paragraph",
|
|
6929
6859
|
"text": "The [financial news API](/news) page shows the live wire and has the Get API key button."
|
|
6930
6860
|
},
|
|
6861
|
+
{
|
|
6862
|
+
"type": "paragraph",
|
|
6863
|
+
"text": "Comparing news APIs? See [the best financial news APIs](/alternatives/financial-news-apis), or Gloom side by side with [NewsAPI.org](/alternatives/newsapi-org) and [newsfilter.io](/alternatives/newsfilter-io)."
|
|
6864
|
+
},
|
|
6931
6865
|
{
|
|
6932
6866
|
"type": "paragraph",
|
|
6933
6867
|
"text": "See also: [Gloom Datasets](/docs/datasets), a separate paid API for alternative signals, filings, macro, news and market data, with its own `gds_` keys."
|
|
@@ -7206,7 +7140,7 @@
|
|
|
7206
7140
|
{
|
|
7207
7141
|
"type": "list",
|
|
7208
7142
|
"items": [
|
|
7209
|
-
"**Alternative data:** GPU rental prices, supply chain, hiring postings and momentum, social mentions, app attention, power and grid, perpetuals, catalysts and litigation,
|
|
7143
|
+
"**Alternative data:** GPU rental prices, supply chain, hiring postings and momentum, social mentions, app attention, power and grid, perpetuals, catalysts and litigation, congressional trades, operating exposure.",
|
|
7210
7144
|
"**Filings and company text:** KPIs and guidance, executive pay, risk factors, 8-K events, transcripts, credit documents, debt maturities, revenue breakdown, SEC filings, insiders and 13F, document search.",
|
|
7211
7145
|
"**News:** Real-time stories, sources and topics.",
|
|
7212
7146
|
"**Macro and positioning:** CPI, EIA inventories, COT, yield curves and macro series, central bank rates, short volume and interest, CDS, government awards.",
|
|
@@ -7732,7 +7666,7 @@
|
|
|
7732
7666
|
"title": "Screening the market (EQS)",
|
|
7733
7667
|
"summary": "EQS keeps only the stocks in its stored universe that meet all your rules (valuation, growth, margins, liquidity, ownership and more) and ranks the matches.",
|
|
7734
7668
|
"chapter": "Compare, screen and follow the money",
|
|
7735
|
-
"minutes":
|
|
7669
|
+
"minutes": 5
|
|
7736
7670
|
},
|
|
7737
7671
|
{
|
|
7738
7672
|
"url": "/academy/compare-screen-follow-money/who-owns-it/holders-and-13f",
|
|
@@ -7785,10 +7719,10 @@
|
|
|
7785
7719
|
},
|
|
7786
7720
|
{
|
|
7787
7721
|
"url": "/academy/compare-screen-follow-money/filings-and-attention/attention",
|
|
7788
|
-
"title": "
|
|
7789
|
-
"summary": "
|
|
7722
|
+
"title": "Social buzz (BUZZ)",
|
|
7723
|
+
"summary": "BUZZ counts the day's posts on X naming a ticker against its usual level, with the top posts and their stance.",
|
|
7790
7724
|
"chapter": "Compare, screen and follow the money",
|
|
7791
|
-
"minutes":
|
|
7725
|
+
"minutes": 3
|
|
7792
7726
|
},
|
|
7793
7727
|
{
|
|
7794
7728
|
"url": "/academy/options-and-volatility/options-from-zero/what-is-an-option",
|
package/src/i18n/es.ts
CHANGED
|
@@ -1115,6 +1115,19 @@ export const es: Record<string, string> = {
|
|
|
1115
1115
|
"{symbol}'s figures are not collected yet; the next read stores them.": "Aún no se han recopilado las cifras de {symbol}; la próxima lectura las guardará.",
|
|
1116
1116
|
"{symbol} files with the SEC as a trust or pool, not as an open-end fund, and its sponsor's site is not one Gloom reads.": "{symbol} está registrado ante la SEC como fideicomiso o pool, no como fondo abierto, y Gloom no lee el sitio de su patrocinador.",
|
|
1117
1117
|
"No figures for {symbol}: its sponsor's site is not one Gloom reads, and the SEC's prospectus and N-PORT data sets list none for it yet.": "No hay cifras para {symbol}: Gloom no lee el sitio de su patrocinador y los conjuntos de datos de folletos y N-PORT de la SEC aún no incluyen ninguna.",
|
|
1118
|
+
"est. {range}": "est. {range}",
|
|
1119
|
+
"Shares outstanding": "Acciones en circulación",
|
|
1120
|
+
"1M flows": "Flujos 1M",
|
|
1121
|
+
"Structure": "Estructura",
|
|
1122
|
+
"Closed-end fund": "Fondo cerrado",
|
|
1123
|
+
"BDC": "BDC",
|
|
1124
|
+
"est.": "est.",
|
|
1125
|
+
"{count} shares": "{count} acciones",
|
|
1126
|
+
"No figures for {symbol}: it files with the SEC as a closed-end fund or BDC, but neither the filings Gloom reads nor its sponsor's site state any for it yet.": "No hay cifras para {symbol}: está registrado ante la SEC como fondo cerrado o BDC, pero ni las presentaciones que lee Gloom ni el sitio de su patrocinador indican ninguna todavía.",
|
|
1127
|
+
"No NAV for {symbol}: {publisher} publishes figures for it, but no NAV.": "No hay valor liquidativo para {symbol}: {publisher} publica cifras del fondo, pero no su valor liquidativo.",
|
|
1128
|
+
"No NAV for {symbol}: its SEC filings state net assets but no NAV per share, and its sponsor's NAV is not one Gloom reads.": "No hay valor liquidativo para {symbol}: sus presentaciones ante la SEC indican el patrimonio neto pero no el valor liquidativo por acción, y Gloom no lee el de su patrocinador.",
|
|
1129
|
+
"No NAV for {symbol}: its sponsor's site is not one Gloom reads, and a trust files no NAV with the SEC's fund data sets.": "No hay valor liquidativo para {symbol}: Gloom no lee el sitio de su patrocinador, y un fideicomiso no presenta valor liquidativo en los conjuntos de datos de fondos de la SEC.",
|
|
1130
|
+
"No NAV for {symbol}: its sponsor's site is not one Gloom reads, and the SEC's prospectus and N-PORT data sets state no NAV.": "No hay valor liquidativo para {symbol}: Gloom no lee el sitio de su patrocinador, y los conjuntos de datos de folletos y N-PORT de la SEC no indican ninguno.",
|
|
1118
1131
|
"No figures for {symbol}: it lists as a fund, but the SEC's lists do not name it yet and its sponsor's site is not one Gloom reads.": "No hay cifras para {symbol}: cotiza como fondo, pero las listas de la SEC aún no lo incluyen y Gloom no lee el sitio de su patrocinador.",
|
|
1119
1132
|
"No fund facts for {symbol}: it is not on the SEC's lists of US-listed funds.": "No hay datos del fondo para {symbol}: no figura en las listas de fondos cotizados en EE. UU. de la SEC.",
|
|
1120
1133
|
"No fund facts for {symbol} yet.": "Aún no hay datos del fondo para {symbol}.",
|
|
@@ -1478,8 +1491,11 @@ export const es: Record<string, string> = {
|
|
|
1478
1491
|
"Answers cite filings, calls and news.": "Las respuestas citan informes, llamadas y noticias.",
|
|
1479
1492
|
"{ticker} is open. {shortcut}, then AP, adds more.": "{ticker} está abierto. {shortcut} y luego AP añade más.",
|
|
1480
1493
|
"Later: {shortcut}, then AP.": "Más tarde: {shortcut} y luego AP.",
|
|
1481
|
-
"Enter: next field, then add
|
|
1482
|
-
"
|
|
1494
|
+
"Enter: next field, then add": "Enter: siguiente campo, luego añade",
|
|
1495
|
+
"Add one ticker to continue": "Añade un ticker para continuar",
|
|
1496
|
+
"Add one ticker to continue.": "Añade un ticker para continuar.",
|
|
1497
|
+
"Esc, then Enter: continue": "Esc y luego Enter: continuar",
|
|
1498
|
+
"Enter to add a ticker": "Enter para añadir un ticker",
|
|
1483
1499
|
" already added": " ya añadido",
|
|
1484
1500
|
"Credentials stay on this device.": "Las credenciales se quedan en este dispositivo.",
|
|
1485
1501
|
"Ask Gloom": "Ask Gloom",
|
package/src/i18n/ja.ts
CHANGED
|
@@ -1129,6 +1129,19 @@ export const ja: Record<string, string> = {
|
|
|
1129
1129
|
"{symbol}'s figures are not collected yet; the next read stores them.": "{symbol} の数値はまだ収集していません。次回の読み込みで保存されます。",
|
|
1130
1130
|
"{symbol} files with the SEC as a trust or pool, not as an open-end fund, and its sponsor's site is not one Gloom reads.": "{symbol} はオープンエンド型ファンドではなく、信託またはプールとして SEC に届け出ており、Gloom はそのスポンサーのサイトを読み込んでいません。",
|
|
1131
1131
|
"No figures for {symbol}: its sponsor's site is not one Gloom reads, and the SEC's prospectus and N-PORT data sets list none for it yet.": "{symbol} の数値はありません。Gloom はスポンサーのサイトを読み込んでおらず、SEC の目論見書データセットと N-PORT データセットにもまだ掲載がありません。",
|
|
1132
|
+
"est. {range}": "推定 {range}",
|
|
1133
|
+
"Shares outstanding": "発行済口数",
|
|
1134
|
+
"1M flows": "1か月の資金流出入",
|
|
1135
|
+
"Structure": "形態",
|
|
1136
|
+
"Closed-end fund": "クローズドエンド型ファンド",
|
|
1137
|
+
"BDC": "BDC",
|
|
1138
|
+
"est.": "推定",
|
|
1139
|
+
"{count} shares": "{count} 口",
|
|
1140
|
+
"No figures for {symbol}: it files with the SEC as a closed-end fund or BDC, but neither the filings Gloom reads nor its sponsor's site state any for it yet.": "{symbol} の数値はありません。SEC にクローズドエンド型ファンドまたは BDC として届け出ていますが、Gloom が読み込む提出書類にもスポンサーのサイトにもまだ掲載がありません。",
|
|
1141
|
+
"No NAV for {symbol}: {publisher} publishes figures for it, but no NAV.": "{symbol} の基準価額はありません。{publisher} は数値を公表していますが、基準価額は公表していません。",
|
|
1142
|
+
"No NAV for {symbol}: its SEC filings state net assets but no NAV per share, and its sponsor's NAV is not one Gloom reads.": "{symbol} の基準価額はありません。SEC への提出書類には純資産が記載されていますが 1 株あたり基準価額はなく、Gloom はスポンサーの基準価額を読み込んでいません。",
|
|
1143
|
+
"No NAV for {symbol}: its sponsor's site is not one Gloom reads, and a trust files no NAV with the SEC's fund data sets.": "{symbol} の基準価額はありません。Gloom はスポンサーのサイトを読み込んでおらず、信託は SEC のファンドデータセットに基準価額を届け出ていません。",
|
|
1144
|
+
"No NAV for {symbol}: its sponsor's site is not one Gloom reads, and the SEC's prospectus and N-PORT data sets state no NAV.": "{symbol} の基準価額はありません。Gloom はスポンサーのサイトを読み込んでおらず、SEC の目論見書データセットと N-PORT データセットにも基準価額は記載されていません。",
|
|
1132
1145
|
"No figures for {symbol}: it lists as a fund, but the SEC's lists do not name it yet and its sponsor's site is not one Gloom reads.": "{symbol} の数値はありません。ファンドとして上場していますが、SEC のリストにはまだ掲載されておらず、Gloom はスポンサーのサイトを読み込んでいません。",
|
|
1133
1146
|
"No fund facts for {symbol}: it is not on the SEC's lists of US-listed funds.": "{symbol} のファンド概要はありません: SEC の米国上場ファンドの一覧に含まれていません。",
|
|
1134
1147
|
"No fund facts for {symbol} yet.": "{symbol} のファンド概要はまだありません。",
|
|
@@ -1474,8 +1487,11 @@ export const ja: Record<string, string> = {
|
|
|
1474
1487
|
"Answers cite filings, calls and news.": "回答は開示、決算説明会、ニュースを引用します。",
|
|
1475
1488
|
"{ticker} is open. {shortcut}, then AP, adds more.": "{ticker} を開きました。{shortcut} のあと AP で追加できます。",
|
|
1476
1489
|
"Later: {shortcut}, then AP.": "後で: {shortcut} のあと AP。",
|
|
1477
|
-
"Enter: next field, then add
|
|
1478
|
-
"
|
|
1490
|
+
"Enter: next field, then add": "Enter: 次の項目へ、最後に追加",
|
|
1491
|
+
"Add one ticker to continue": "ティッカーを1つ追加すると続行できます",
|
|
1492
|
+
"Add one ticker to continue.": "ティッカーを1つ追加すると続行できます。",
|
|
1493
|
+
"Esc, then Enter: continue": "Esc のあと Enter: 続行",
|
|
1494
|
+
"Enter to add a ticker": "Enter でティッカーを追加",
|
|
1479
1495
|
" already added": " 追加済み",
|
|
1480
1496
|
"Credentials stay on this device.": "認証情報はこの端末にのみ保存されます。",
|
|
1481
1497
|
"Ask Gloom": "Ask Gloom",
|
package/src/i18n/ko.ts
CHANGED
|
@@ -1127,6 +1127,19 @@ export const ko: Record<string, string> = {
|
|
|
1127
1127
|
"{symbol}'s figures are not collected yet; the next read stores them.": "{symbol}의 수치는 아직 수집되지 않았습니다. 다음 읽기에서 저장됩니다.",
|
|
1128
1128
|
"{symbol} files with the SEC as a trust or pool, not as an open-end fund, and its sponsor's site is not one Gloom reads.": "{symbol}은(는) SEC에 개방형 펀드가 아닌 신탁 또는 풀로 등록되어 있으며, Gloom은 스폰서의 사이트를 읽지 않습니다.",
|
|
1129
1129
|
"No figures for {symbol}: its sponsor's site is not one Gloom reads, and the SEC's prospectus and N-PORT data sets list none for it yet.": "{symbol}의 수치가 없습니다. Gloom은 스폰서의 사이트를 읽지 않으며, SEC의 투자설명서 및 N-PORT 데이터 세트에도 아직 없습니다.",
|
|
1130
|
+
"est. {range}": "추정 {range}",
|
|
1131
|
+
"Shares outstanding": "발행 주식 수",
|
|
1132
|
+
"1M flows": "1개월 자금 유출입",
|
|
1133
|
+
"Structure": "구조",
|
|
1134
|
+
"Closed-end fund": "폐쇄형 펀드",
|
|
1135
|
+
"BDC": "BDC",
|
|
1136
|
+
"est.": "추정",
|
|
1137
|
+
"{count} shares": "{count}주",
|
|
1138
|
+
"No figures for {symbol}: it files with the SEC as a closed-end fund or BDC, but neither the filings Gloom reads nor its sponsor's site state any for it yet.": "{symbol}의 수치가 없습니다. SEC에 폐쇄형 펀드 또는 BDC로 신고하지만, Gloom이 읽는 공시와 스폰서 사이트 어디에도 아직 수치가 없습니다.",
|
|
1139
|
+
"No NAV for {symbol}: {publisher} publishes figures for it, but no NAV.": "{symbol}의 순자산가치가 없습니다. {publisher}는 수치를 공시하지만 순자산가치는 공시하지 않습니다.",
|
|
1140
|
+
"No NAV for {symbol}: its SEC filings state net assets but no NAV per share, and its sponsor's NAV is not one Gloom reads.": "{symbol}의 순자산가치가 없습니다. SEC 공시에는 순자산은 있지만 주당 순자산가치는 없으며, Gloom은 스폰서의 순자산가치를 읽지 않습니다.",
|
|
1141
|
+
"No NAV for {symbol}: its sponsor's site is not one Gloom reads, and a trust files no NAV with the SEC's fund data sets.": "{symbol}의 순자산가치가 없습니다. Gloom은 스폰서의 사이트를 읽지 않으며, 신탁은 SEC 펀드 데이터 세트에 순자산가치를 신고하지 않습니다.",
|
|
1142
|
+
"No NAV for {symbol}: its sponsor's site is not one Gloom reads, and the SEC's prospectus and N-PORT data sets state no NAV.": "{symbol}의 순자산가치가 없습니다. Gloom은 스폰서의 사이트를 읽지 않으며, SEC의 투자설명서 및 N-PORT 데이터 세트에도 순자산가치가 없습니다.",
|
|
1130
1143
|
"No figures for {symbol}: it lists as a fund, but the SEC's lists do not name it yet and its sponsor's site is not one Gloom reads.": "{symbol}의 수치가 없습니다. 펀드로 상장되어 있지만 SEC 목록에는 아직 없으며, Gloom은 스폰서의 사이트를 읽지 않습니다.",
|
|
1131
1144
|
"No fund facts for {symbol}: it is not on the SEC's lists of US-listed funds.": "{symbol}의 펀드 정보가 없습니다: SEC의 미국 상장 펀드 목록에 없습니다.",
|
|
1132
1145
|
"No fund facts for {symbol} yet.": "{symbol}의 펀드 정보가 아직 없습니다.",
|
|
@@ -1472,8 +1485,11 @@ export const ko: Record<string, string> = {
|
|
|
1472
1485
|
"Answers cite filings, calls and news.": "답변은 공시, 실적 발표, 뉴스를 인용합니다.",
|
|
1473
1486
|
"{ticker} is open. {shortcut}, then AP, adds more.": "{ticker}이(가) 열렸습니다. {shortcut} 다음 AP로 더 추가하세요.",
|
|
1474
1487
|
"Later: {shortcut}, then AP.": "나중에: {shortcut} 다음 AP.",
|
|
1475
|
-
"Enter: next field, then add
|
|
1476
|
-
"
|
|
1488
|
+
"Enter: next field, then add": "Enter: 다음 필드, 마지막에 추가",
|
|
1489
|
+
"Add one ticker to continue": "티커를 하나 추가하면 계속할 수 있습니다",
|
|
1490
|
+
"Add one ticker to continue.": "티커를 하나 추가하면 계속할 수 있습니다.",
|
|
1491
|
+
"Esc, then Enter: continue": "Esc 후 Enter: 계속",
|
|
1492
|
+
"Enter to add a ticker": "Enter로 티커 추가",
|
|
1477
1493
|
" already added": " 이미 추가됨",
|
|
1478
1494
|
"Credentials stay on this device.": "자격 증명은 이 기기에만 저장됩니다.",
|
|
1479
1495
|
"Ask Gloom": "Ask Gloom",
|