@deepseek-harness-tui/dsh-tui 0.11.0 → 0.11.2
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 +55 -20
- package/assets/whale-girl/whale-girl-dark.png +0 -0
- package/assets/whale-girl/whale-girl-happy.png +0 -0
- package/assets/whale-girl/whale-girl.png +0 -0
- package/bin/dsh-tui.js +63 -3
- package/cordis.patch.yml +43 -20
- package/cordis.yml +6 -4
- package/lib/settings.json +1272 -0
- package/lib/types/activityPrefs.d.ts +24 -0
- package/lib/types/activityPrefs.d.ts.map +1 -1
- package/lib/types/activityPrefs.js +50 -1
- package/lib/types/adapter/channel/state.d.ts.map +1 -1
- package/lib/types/adapter/channel/state.js +3 -1
- package/lib/types/adapter/channel/ui-policy.d.ts +9 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +14 -1
- package/lib/types/adapter/kernel/replay.d.ts.map +1 -1
- package/lib/types/adapter/kernel/replay.js +2 -0
- package/lib/types/adapter/ports/channel-display.d.ts +12 -0
- package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-session.d.ts +38 -0
- package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +12 -0
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +53 -7
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +43 -12
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel.d.ts +4 -1
- package/lib/types/adapter/ports/channel.d.ts.map +1 -1
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +2 -0
- package/lib/types/components/ActivityLine.d.ts +7 -2
- package/lib/types/components/ActivityLine.d.ts.map +1 -1
- package/lib/types/components/ActivityLine.js +0 -8
- package/lib/types/components/BalanceReportRow.d.ts +10 -2
- package/lib/types/components/BalanceReportRow.d.ts.map +1 -1
- package/lib/types/components/BalanceReportRow.js +18 -4
- package/lib/types/components/CompactionStatusRow.d.ts +24 -0
- package/lib/types/components/CompactionStatusRow.d.ts.map +1 -0
- package/lib/types/components/CompactionStatusRow.js +72 -0
- package/lib/types/components/GoalTodoPanel.js +2 -2
- package/lib/types/components/HelpMenu.d.ts +2 -2
- package/lib/types/components/HelpMenu.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.js +5 -4
- package/lib/types/components/InlineMathParagraph.d.ts +22 -0
- package/lib/types/components/InlineMathParagraph.d.ts.map +1 -0
- package/lib/types/components/InlineMathParagraph.js +178 -0
- package/lib/types/components/LogoV2.d.ts +41 -3
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +148 -24
- package/lib/types/components/Markdown.d.ts +10 -3
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +47 -14
- package/lib/types/components/MathBlock.d.ts +13 -0
- package/lib/types/components/MathBlock.d.ts.map +1 -0
- package/lib/types/components/MathBlock.js +136 -0
- package/lib/types/components/MessageList.d.ts +10 -1
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +15 -5
- package/lib/types/components/MigratePicker.d.ts +30 -0
- package/lib/types/components/MigratePicker.d.ts.map +1 -0
- package/lib/types/components/MigratePicker.js +38 -0
- package/lib/types/components/PromptInput.d.ts +17 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +96 -9
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +3 -1
- package/lib/types/components/StarPrompt.d.ts +53 -0
- package/lib/types/components/StarPrompt.d.ts.map +1 -0
- package/lib/types/components/StarPrompt.js +281 -0
- package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
- package/lib/types/components/StreamingMarkdown.js +20 -3
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +12 -6
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +8 -3
- package/lib/types/components/TimelineRail.d.ts.map +1 -1
- package/lib/types/components/TimelineRail.js +9 -1
- package/lib/types/components/Whale.d.ts +17 -8
- package/lib/types/components/Whale.d.ts.map +1 -1
- package/lib/types/components/Whale.js +25 -15
- package/lib/types/components/WhaleGirl.d.ts +29 -0
- package/lib/types/components/WhaleGirl.d.ts.map +1 -0
- package/lib/types/components/WhaleGirl.js +32 -0
- package/lib/types/components/WorkingSpinner.d.ts +4 -1
- package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
- package/lib/types/components/WorkingSpinner.js +2 -2
- package/lib/types/components/bigfont.d.ts +47 -18
- package/lib/types/components/bigfont.d.ts.map +1 -1
- package/lib/types/components/bigfont.js +55 -40
- package/lib/types/components/design-system/HintLine.d.ts +1 -2
- package/lib/types/components/design-system/HintLine.d.ts.map +1 -1
- package/lib/types/components/design-system/HintLine.js +1 -2
- package/lib/types/components/design-system/ThemeProvider.d.ts +6 -0
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +40 -1
- package/lib/types/components/maidPortrait.d.ts +44 -0
- package/lib/types/components/maidPortrait.d.ts.map +1 -0
- package/lib/types/components/maidPortrait.js +178 -0
- package/lib/types/components/mathPreview.d.ts +25 -0
- package/lib/types/components/mathPreview.d.ts.map +1 -0
- package/lib/types/components/mathPreview.js +48 -0
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +2 -1
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +4 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +2 -2
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +31 -26
- package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -1
- package/lib/types/components/messages/TranscriptImages.js +11 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +14 -2
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +80 -38
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +3 -3
- package/lib/types/components/sessions/ForeignSessionRow.d.ts +34 -0
- package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -0
- package/lib/types/components/sessions/ForeignSessionRow.js +43 -0
- package/lib/types/components/sessions/SourceTabs.d.ts +52 -0
- package/lib/types/components/sessions/SourceTabs.d.ts.map +1 -0
- package/lib/types/components/sessions/SourceTabs.js +70 -0
- package/lib/types/components/splashEggs.d.ts +56 -0
- package/lib/types/components/splashEggs.d.ts.map +1 -0
- package/lib/types/components/splashEggs.js +67 -0
- package/lib/types/components/splashFonts.d.ts +119 -0
- package/lib/types/components/splashFonts.d.ts.map +1 -0
- package/lib/types/components/splashFonts.js +267 -0
- package/lib/types/components/splashLayout.d.ts +41 -0
- package/lib/types/components/splashLayout.d.ts.map +1 -0
- package/lib/types/components/splashLayout.js +40 -0
- package/lib/types/components/whaleGirlSprite.d.ts +17 -0
- package/lib/types/components/whaleGirlSprite.d.ts.map +1 -0
- package/lib/types/components/whaleGirlSprite.js +47 -0
- package/lib/types/deepseekPricing.d.ts +74 -0
- package/lib/types/deepseekPricing.d.ts.map +1 -1
- package/lib/types/deepseekPricing.js +110 -11
- package/lib/types/dsh-adapter/activity-store.d.ts +221 -0
- package/lib/types/dsh-adapter/activity-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/activity-store.js +359 -0
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/action-readiness.js +6 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -1
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +2 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +15 -14
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +70 -21
- package/lib/types/dsh-adapter/channel/compaction.d.ts +2 -2
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +35 -4
- package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/local-actions.js +6 -1
- package/lib/types/dsh-adapter/channel/model-switch.d.ts +1 -2
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +6 -2
- package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/paths.js +7 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/preferences.js +16 -0
- package/lib/types/dsh-adapter/channel/projection.d.ts +1 -2
- package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection.js +127 -17
- package/lib/types/dsh-adapter/channel/question-record.d.ts +76 -0
- package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/question-record.js +107 -0
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-adoption.js +1 -0
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts +42 -0
- package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/channel/session-lineage.js +51 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +3 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +10 -3
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -1
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +43 -9
- package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-reset.js +7 -1
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +2 -1
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +5 -2
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
- package/lib/types/dsh-adapter/channel/state.d.ts +19 -1
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +8 -3
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +32 -17
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +309 -8
- package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
- package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.d.ts +1 -1
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel.js +34 -18
- package/lib/types/dsh-adapter/compat/index.d.ts +1 -1
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/index.js +1 -1
- package/lib/types/dsh-adapter/compat/messages.d.ts +6 -0
- package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/messages.js +9 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +18 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/sessionLog.js +18 -3
- package/lib/types/dsh-adapter/compat/settings.d.ts +2 -0
- package/lib/types/dsh-adapter/compat/settings.d.ts.map +1 -1
- package/lib/types/dsh-adapter/compat/settings.js +14 -0
- package/lib/types/dsh-adapter/contract.d.ts +5 -4
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +9 -5
- package/lib/types/dsh-adapter/index.d.ts +36 -1
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +22 -6
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +131 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts +17 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.js +329 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.js +102 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts +16 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/codex.parse.js +289 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +117 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts +13 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.js +178 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/omp.js +133 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts +60 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan-fs.js +178 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +8 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/scan.js +40 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.js +93 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts +9 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.js +89 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
- package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
- package/lib/types/dsh-adapter/migrate/browse.d.ts +42 -0
- package/lib/types/dsh-adapter/migrate/browse.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/browse.js +90 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
- package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/cli.js +106 -0
- package/lib/types/dsh-adapter/migrate/import-one.d.ts +89 -0
- package/lib/types/dsh-adapter/migrate/import-one.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/import-one.js +133 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts +35 -0
- package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/index.js +107 -0
- package/lib/types/dsh-adapter/migrate/parse/injection.d.ts +40 -0
- package/lib/types/dsh-adapter/migrate/parse/injection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/injection.js +127 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +28 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/jsonl.js +40 -0
- package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts +28 -0
- package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/role-turns.js +50 -0
- package/lib/types/dsh-adapter/migrate/parse/title.d.ts +18 -0
- package/lib/types/dsh-adapter/migrate/parse/title.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/title.js +29 -0
- package/lib/types/dsh-adapter/migrate/parse/tools.d.ts +62 -0
- package/lib/types/dsh-adapter/migrate/parse/tools.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/parse/tools.js +110 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
- package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/picker.js +86 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts +39 -0
- package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/sessionize.js +271 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts +176 -0
- package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/types.js +11 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
- package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
- package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
- package/lib/types/dsh-adapter/plugin.d.ts +5 -3
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +168 -372
- package/lib/types/dsh-adapter/providerWizard.d.ts +17 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
- package/lib/types/dsh-adapter/providerWizard.js +254 -66
- package/lib/types/dsh-adapter/questions.d.ts +22 -15
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/questions.js +47 -45
- package/lib/types/dsh-adapter/sessions/digest.d.ts +11 -6
- package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/digest.js +20 -13
- package/lib/types/dsh-adapter/sessions/frames.d.ts +3 -1
- package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/frames.js +5 -4
- package/lib/types/dsh-adapter/sessions/list.d.ts +6 -1
- package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/list.js +188 -164
- package/lib/types/dsh-adapter/sessions/recovery.d.ts +16 -0
- package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/recovery.js +108 -0
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts +7 -0
- package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sessions/snapshot.js +90 -0
- package/lib/types/dsh-adapter/sessions/store.d.ts +10 -4
- package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sessions/store.js +62 -25
- package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
- package/lib/types/dsh-adapter/settings-sections.js +7 -4
- package/lib/types/dsh-adapter/sideQuestion.d.ts +41 -2
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +98 -2
- package/lib/types/dsh-adapter/subagents.d.ts +44 -6
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +163 -26
- package/lib/types/herdr.d.ts +2 -0
- package/lib/types/herdr.d.ts.map +1 -1
- package/lib/types/herdr.js +9 -3
- package/lib/types/history.d.ts +13 -1
- package/lib/types/history.d.ts.map +1 -1
- package/lib/types/history.js +15 -2
- package/lib/types/i18n.d.ts +512 -41
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +199 -20
- package/lib/types/ink/components/App.d.ts +2 -2
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +5 -1
- package/lib/types/ink/components/Image.d.ts +14 -1
- package/lib/types/ink/components/Image.d.ts.map +1 -1
- package/lib/types/ink/components/Image.js +2 -2
- package/lib/types/ink/events/input-event.js +3 -3
- package/lib/types/ink/hooks/use-terminal-images.d.ts +12 -0
- package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-terminal-images.js +13 -0
- package/lib/types/ink/ink.d.ts +6 -0
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +16 -1
- package/lib/types/ink/kitty-graphics.d.ts +44 -3
- package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
- package/lib/types/ink/kitty-graphics.js +184 -23
- package/lib/types/ink/log-update.d.ts.map +1 -1
- package/lib/types/ink/log-update.js +19 -1
- package/lib/types/ink/output.d.ts +24 -2
- package/lib/types/ink/output.d.ts.map +1 -1
- package/lib/types/ink/output.js +83 -5
- package/lib/types/ink/parse-keypress.d.ts +26 -1
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +156 -13
- package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
- package/lib/types/ink/render-node-to-output.js +8 -1
- package/lib/types/ink/screen.d.ts +24 -0
- package/lib/types/ink/screen.d.ts.map +1 -1
- package/lib/types/ink/screen.js +89 -0
- package/lib/types/ink/selection.d.ts +68 -18
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +178 -31
- package/lib/types/ink/sixel-codec.d.ts +12 -1
- package/lib/types/ink/sixel-codec.d.ts.map +1 -1
- package/lib/types/ink/sixel-codec.js +29 -5
- package/lib/types/ink/sixel-graphics.d.ts.map +1 -1
- package/lib/types/ink/sixel-graphics.js +5 -3
- package/lib/types/ink/styles.d.ts +9 -0
- package/lib/types/ink/styles.d.ts.map +1 -1
- package/lib/types/ink/terminal-image.d.ts +8 -0
- package/lib/types/ink/terminal-image.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.d.ts +7 -1
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +12 -2
- package/lib/types/ink/timeline-rail.d.ts +5 -0
- package/lib/types/ink/timeline-rail.d.ts.map +1 -1
- package/lib/types/math/inline-layout.d.ts +29 -0
- package/lib/types/math/inline-layout.d.ts.map +1 -0
- package/lib/types/math/inline-layout.js +106 -0
- package/lib/types/math/layout.d.ts +58 -0
- package/lib/types/math/layout.d.ts.map +1 -0
- package/lib/types/math/layout.js +59 -0
- package/lib/types/math/renderer.d.ts +64 -0
- package/lib/types/math/renderer.d.ts.map +1 -0
- package/lib/types/math/renderer.js +256 -0
- package/lib/types/screens/Chat.d.ts +17 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +618 -57
- package/lib/types/screens/SessionSupervisor.d.ts +2 -1
- package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/SessionSupervisor.js +156 -19
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +49 -11
- package/lib/types/screens/StatusLine.d.ts +5 -1
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +47 -17
- package/lib/types/screens/chatOverlay.d.ts +5 -0
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/screens/chatOverlay.js +1 -0
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +47 -0
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +65 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts +12 -0
- package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/model.js +26 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts +107 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -0
- package/lib/types/screens/sessionSupervisor/useForeignSessions.js +312 -0
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +4 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
- package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -14
- package/lib/types/sessionHistory.d.ts +2 -2
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +31 -5
- package/lib/types/settings/definitions.d.ts +681 -0
- package/lib/types/settings/definitions.d.ts.map +1 -0
- package/lib/types/settings/definitions.js +511 -0
- package/lib/types/starAction.d.ts +44 -0
- package/lib/types/starAction.d.ts.map +1 -0
- package/lib/types/starAction.js +52 -0
- package/lib/types/terminal-utils/latex.d.ts +10 -0
- package/lib/types/terminal-utils/latex.d.ts.map +1 -0
- package/lib/types/terminal-utils/latex.js +1417 -0
- package/lib/types/terminal-utils/markdown.d.ts +3 -1
- package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
- package/lib/types/terminal-utils/markdown.js +26 -1
- package/lib/types/terminal-utils/math.d.ts +66 -0
- package/lib/types/terminal-utils/math.d.ts.map +1 -0
- package/lib/types/terminal-utils/math.js +337 -0
- package/lib/types/tips.d.ts.map +1 -1
- package/lib/types/tips.js +6 -0
- package/lib/types/tuiDisplayPrefs.d.ts +67 -0
- package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
- package/lib/types/tuiDisplayPrefs.js +59 -0
- package/lib/types/ui.d.ts +1 -1
- package/lib/types/ui.d.ts.map +1 -1
- package/lib/types/ui.js +1 -1
- package/lib/types/usageStats.d.ts +98 -0
- package/lib/types/usageStats.d.ts.map +1 -0
- package/lib/types/usageStats.js +169 -0
- package/lib/types/utils/bmp.d.ts +17 -0
- package/lib/types/utils/bmp.d.ts.map +1 -0
- package/lib/types/utils/bmp.js +154 -0
- package/lib/types/utils/clipboard.d.ts +14 -2
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +143 -8
- package/lib/types/utils/fold-long-lines.d.ts +1 -1
- package/lib/types/utils/fold-long-lines.d.ts.map +1 -1
- package/lib/types/utils/fold-long-lines.js +3 -2
- package/lib/types/utils/keymap.d.ts +4 -1
- package/lib/types/utils/keymap.d.ts.map +1 -1
- package/lib/types/utils/keymap.js +8 -0
- package/lib/types/utils/modifiers.d.ts +4 -3
- package/lib/types/utils/modifiers.d.ts.map +1 -1
- package/lib/types/utils/modifiers.js +4 -3
- package/lib/types/working-activity.d.ts +10 -9
- package/lib/types/working-activity.d.ts.map +1 -1
- package/lib/types/working-activity.js +17 -10
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/LICENSE +202 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/NOTICE +20 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/index.d.ts +16 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/bundled-packages.json +4 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs +20 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs.LEGAL.txt +35 -0
- package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/package.json +29 -0
- package/package.json +117 -99
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +0 -19
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts.map +0 -1
- package/lib/types/components/design-system/KeyboardShortcutHint.js +0 -14
- package/lib/types/dsh-adapter/channel/activity.d.ts +0 -20
- package/lib/types/dsh-adapter/channel/activity.d.ts.map +0 -1
- package/lib/types/dsh-adapter/channel/activity.js +0 -113
- package/lib/types/terminal-utils/terminal.d.ts +0 -18
- package/lib/types/terminal-utils/terminal.d.ts.map +0 -1
- package/lib/types/terminal-utils/terminal.js +0 -96
|
@@ -80,4 +80,78 @@ export declare function estimateSessionCostSplitCny(tokens: CostTokenBuckets, mo
|
|
|
80
80
|
* 估算本会话花费(人民币,元)——estimateSessionCostSplitCny 的总价捷径。
|
|
81
81
|
*/
|
|
82
82
|
export declare function estimateSessionCostCny(tokens: CostTokenBuckets, model: string): number | undefined;
|
|
83
|
+
/** 一笔增量 usage(durable assistant/message.usage 的计价字段)。 */
|
|
84
|
+
export type CostUsageDelta = Partial<CostTokenTotals>;
|
|
85
|
+
/** 空的峰谷分桶(新模型 / 新会话累计起点)。 */
|
|
86
|
+
export declare function emptyCostBuckets(): CostTokenBuckets;
|
|
87
|
+
/** 深拷贝分桶,供快照镜像(调用方拿到后修改不得影响累计源)。 */
|
|
88
|
+
export declare function cloneCostBuckets(buckets: CostTokenBuckets): CostTokenBuckets;
|
|
89
|
+
/**
|
|
90
|
+
* 把一笔 usage 按计价时段累加进分桶(in-place)。durable 事件按发生时刻
|
|
91
|
+
* 落桶,峰/谷单价不同;cacheRead/cacheWrite 作为分项保留(cacheRead 计价
|
|
92
|
+
* 时按命中价,见 costSplit)。
|
|
93
|
+
*/
|
|
94
|
+
export declare function addUsageToCostBuckets(buckets: CostTokenBuckets, usage: CostUsageDelta, peak: boolean): void;
|
|
95
|
+
/** 一笔待计价用量:provider 决定官方与否,model 查价目,buckets 为峰谷分桶。 */
|
|
96
|
+
export interface CostBucketEntry {
|
|
97
|
+
readonly provider: string;
|
|
98
|
+
readonly model: string;
|
|
99
|
+
readonly buckets: CostTokenBuckets;
|
|
100
|
+
/** 展示分侧(主会话 / 子代理);缺省按主会话处理(兼容旧调用)。 */
|
|
101
|
+
readonly scope?: 'main' | 'subagent';
|
|
102
|
+
}
|
|
103
|
+
/** 多模型桶计价选项。 */
|
|
104
|
+
export interface EstimateCostOptions {
|
|
105
|
+
/** 默认 true:非官方 provider 一律不估价(只计入 unpriced)。false 时
|
|
106
|
+
* 非官方 provider 也按 model 价目估算(调用方自担口径)。 */
|
|
107
|
+
readonly officialOnly?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/** 多模型桶计价结果:金额按展示分侧拆解,未计价 token 单独上报。 */
|
|
110
|
+
export interface SessionCostEstimate {
|
|
111
|
+
/** 已计价总额(元)= main + subagent。 */
|
|
112
|
+
readonly total: number;
|
|
113
|
+
/** 主会话部分(元)。 */
|
|
114
|
+
readonly main: number;
|
|
115
|
+
/** 子代理部分(元)。 */
|
|
116
|
+
readonly subagent: number;
|
|
117
|
+
/** 高峰时段部分(元)。 */
|
|
118
|
+
readonly peak: number;
|
|
119
|
+
/** 空闲时段部分(元)。 */
|
|
120
|
+
readonly idle: number;
|
|
121
|
+
/** 未能计价的用量 token(非官方 provider / 价目未收录):只展示,不计金额。 */
|
|
122
|
+
readonly unpricedTokens: number;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* 多模型桶计价纯函数:逐条目查价求和,金额按 scope 拆成主会话/子代理,
|
|
126
|
+
* 非官方 provider 或未收录模型计入 unpriced(只上报 token,不给金额)。
|
|
127
|
+
* 所有条目都是零 token 时返回 undefined(调用方不显示金额)。
|
|
128
|
+
* 空 provider 表示旧快照/测试桩(生产契约里 provider 恒有)——不武断视为
|
|
129
|
+
* 非官方,按 model 价目估算,避免既有展示静默少算。
|
|
130
|
+
*/
|
|
131
|
+
export declare function estimateCostFromBucketsCny(entries: readonly CostBucketEntry[], options?: EstimateCostOptions): SessionCostEstimate | undefined;
|
|
132
|
+
/** 费用估算输入:主会话按模型桶 + 子代理按 (provider, model) 桶。 */
|
|
133
|
+
export interface SessionCostInput {
|
|
134
|
+
/** 主会话当前 provider(主会话条目的官方判定;空串 = 旧快照)。 */
|
|
135
|
+
readonly provider: string;
|
|
136
|
+
/** 主会话按模型分桶(ChannelState.mainCost)。 */
|
|
137
|
+
readonly main?: Readonly<Record<string, CostTokenBuckets>> | undefined;
|
|
138
|
+
/** 子代理按 (provider, model) 分桶(ChannelState.subagentCost)。 */
|
|
139
|
+
readonly subagents?: readonly {
|
|
140
|
+
readonly provider: string;
|
|
141
|
+
readonly model: string;
|
|
142
|
+
readonly buckets: CostTokenBuckets;
|
|
143
|
+
}[] | undefined;
|
|
144
|
+
/** main 缺失/为空时的回退 token(旧快照/测试桩没有 mainCost 时用
|
|
145
|
+
* channel.tokens + 当前模型,保持既有展示不消失)。 */
|
|
146
|
+
readonly fallbackTokens?: CostTokenBuckets | undefined;
|
|
147
|
+
readonly fallbackModel?: string | undefined;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* 汇总一次费用估算的输入条目:主会话按模型分桶优先;没有分桶的旧快照
|
|
151
|
+
* 回退到 `channel.tokens` + 当前模型(不叠加,避免双计);子代理条目
|
|
152
|
+
* 追加在后。纯函数,不修改入参。
|
|
153
|
+
*/
|
|
154
|
+
export declare function collectSessionCostEntries(input: SessionCostInput): CostBucketEntry[];
|
|
155
|
+
/** collectSessionCostEntries + estimateCostFromBucketsCny 的展示侧捷径。 */
|
|
156
|
+
export declare function estimateSessionCostSnapshotCny(input: SessionCostInput, options?: EstimateCostOptions): SessionCostEstimate | undefined;
|
|
83
157
|
//# sourceMappingURL=deepseekPricing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deepseekPricing.d.ts","sourceRoot":"","sources":["../../src/deepseekPricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,uCAAuC;AACvC,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAErD,kCAAkC;AAClC,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,SAAS,EAAE,aAAa,CAAA;IACxB,gBAAgB;IAChB,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU;IACV,MAAM,EAAE,aAAa,CAAA;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"deepseekPricing.d.ts","sourceRoot":"","sources":["../../src/deepseekPricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,20 +25,18 @@ export const DEEPSEEK_MODEL_PRICES = {
|
|
|
25
25
|
inputHit: [0.02, 0.04],
|
|
26
26
|
output: [4.0, 8.0],
|
|
27
27
|
},
|
|
28
|
+
// issue #857:官方已按 Flash 价计费 V4.1-Flash 的正式 id 与 vision 实验 id;
|
|
29
|
+
// V4-Pro 已下线,不再保留价目行(未收录 → priceForModel 返回 undefined,
|
|
30
|
+
// 界面只展示 token、不给金额)。
|
|
28
31
|
'deepseek-v4-flash': {
|
|
29
|
-
inputMiss: [1.
|
|
30
|
-
inputHit: [0.
|
|
31
|
-
output: [4.
|
|
32
|
-
},
|
|
33
|
-
'deepseek-v4-pro': {
|
|
34
|
-
inputMiss: [4.5, 9.0],
|
|
35
|
-
inputHit: [0.15, 0.30],
|
|
36
|
-
output: [13.5, 27.0],
|
|
32
|
+
inputMiss: [1.0, 2.0],
|
|
33
|
+
inputHit: [0.02, 0.04],
|
|
34
|
+
output: [4.0, 8.0],
|
|
37
35
|
},
|
|
38
36
|
'deepseek-v4-flash-vision-exp': {
|
|
39
|
-
inputMiss: [1.
|
|
40
|
-
inputHit: [0.
|
|
41
|
-
output: [4.
|
|
37
|
+
inputMiss: [1.0, 2.0],
|
|
38
|
+
inputHit: [0.02, 0.04],
|
|
39
|
+
output: [4.0, 8.0],
|
|
42
40
|
},
|
|
43
41
|
};
|
|
44
42
|
/**
|
|
@@ -138,3 +136,104 @@ export function estimateSessionCostSplitCny(tokens, model) {
|
|
|
138
136
|
export function estimateSessionCostCny(tokens, model) {
|
|
139
137
|
return estimateSessionCostSplitCny(tokens, model)?.total;
|
|
140
138
|
}
|
|
139
|
+
/** 空的峰谷分桶(新模型 / 新会话累计起点)。 */
|
|
140
|
+
export function emptyCostBuckets() {
|
|
141
|
+
return {
|
|
142
|
+
peak: { ...EMPTY_TOTALS },
|
|
143
|
+
idle: { ...EMPTY_TOTALS },
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** 深拷贝分桶,供快照镜像(调用方拿到后修改不得影响累计源)。 */
|
|
147
|
+
export function cloneCostBuckets(buckets) {
|
|
148
|
+
return {
|
|
149
|
+
peak: { ...(buckets.peak ?? EMPTY_TOTALS) },
|
|
150
|
+
idle: { ...(buckets.idle ?? EMPTY_TOTALS) },
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 把一笔 usage 按计价时段累加进分桶(in-place)。durable 事件按发生时刻
|
|
155
|
+
* 落桶,峰/谷单价不同;cacheRead/cacheWrite 作为分项保留(cacheRead 计价
|
|
156
|
+
* 时按命中价,见 costSplit)。
|
|
157
|
+
*/
|
|
158
|
+
export function addUsageToCostBuckets(buckets, usage, peak) {
|
|
159
|
+
const bucket = peak ? buckets.peak : buckets.idle;
|
|
160
|
+
bucket.input += usage.input ?? 0;
|
|
161
|
+
bucket.output += usage.output ?? 0;
|
|
162
|
+
bucket.cacheRead += usage.cacheRead ?? 0;
|
|
163
|
+
bucket.cacheWrite += usage.cacheWrite ?? 0;
|
|
164
|
+
}
|
|
165
|
+
/** 分桶里的计价 token 总数(input 含 cacheRead,与既有显示口径一致)。 */
|
|
166
|
+
function bucketTokenTotal(buckets) {
|
|
167
|
+
const peak = buckets.peak ?? EMPTY_TOTALS;
|
|
168
|
+
const idle = buckets.idle ?? EMPTY_TOTALS;
|
|
169
|
+
return peak.input + peak.output + idle.input + idle.output;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* 多模型桶计价纯函数:逐条目查价求和,金额按 scope 拆成主会话/子代理,
|
|
173
|
+
* 非官方 provider 或未收录模型计入 unpriced(只上报 token,不给金额)。
|
|
174
|
+
* 所有条目都是零 token 时返回 undefined(调用方不显示金额)。
|
|
175
|
+
* 空 provider 表示旧快照/测试桩(生产契约里 provider 恒有)——不武断视为
|
|
176
|
+
* 非官方,按 model 价目估算,避免既有展示静默少算。
|
|
177
|
+
*/
|
|
178
|
+
export function estimateCostFromBucketsCny(entries, options = {}) {
|
|
179
|
+
const officialOnly = options.officialOnly !== false;
|
|
180
|
+
let total = 0;
|
|
181
|
+
let main = 0;
|
|
182
|
+
let subagent = 0;
|
|
183
|
+
let peak = 0;
|
|
184
|
+
let idle = 0;
|
|
185
|
+
let unpricedTokens = 0;
|
|
186
|
+
let tokenCount = 0;
|
|
187
|
+
for (const entry of entries) {
|
|
188
|
+
const tokens = bucketTokenTotal(entry.buckets);
|
|
189
|
+
tokenCount += tokens;
|
|
190
|
+
const priceable = !officialOnly
|
|
191
|
+
|| entry.provider === ''
|
|
192
|
+
|| isDeepSeekOfficialProvider(entry.provider);
|
|
193
|
+
const price = priceable ? priceForModel(entry.model) : undefined;
|
|
194
|
+
if (price === undefined) {
|
|
195
|
+
unpricedTokens += tokens;
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const split = costSplit(entry.buckets, price);
|
|
199
|
+
const amount = (split.peak + split.idle) / 1_000_000;
|
|
200
|
+
total += amount;
|
|
201
|
+
peak += split.peak / 1_000_000;
|
|
202
|
+
idle += split.idle / 1_000_000;
|
|
203
|
+
if (entry.scope === 'subagent')
|
|
204
|
+
subagent += amount;
|
|
205
|
+
else
|
|
206
|
+
main += amount;
|
|
207
|
+
}
|
|
208
|
+
if (tokenCount <= 0)
|
|
209
|
+
return undefined;
|
|
210
|
+
return { total, main, subagent, peak, idle, unpricedTokens };
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* 汇总一次费用估算的输入条目:主会话按模型分桶优先;没有分桶的旧快照
|
|
214
|
+
* 回退到 `channel.tokens` + 当前模型(不叠加,避免双计);子代理条目
|
|
215
|
+
* 追加在后。纯函数,不修改入参。
|
|
216
|
+
*/
|
|
217
|
+
export function collectSessionCostEntries(input) {
|
|
218
|
+
const entries = [];
|
|
219
|
+
const main = input.main ?? {};
|
|
220
|
+
const mainModels = Object.keys(main);
|
|
221
|
+
if (mainModels.length > 0) {
|
|
222
|
+
for (const model of mainModels) {
|
|
223
|
+
const buckets = main[model];
|
|
224
|
+
if (buckets !== undefined)
|
|
225
|
+
entries.push({ provider: input.provider, model, buckets, scope: 'main' });
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
else if (input.fallbackTokens !== undefined && input.fallbackModel !== undefined && input.fallbackModel !== '') {
|
|
229
|
+
entries.push({ provider: input.provider, model: input.fallbackModel, buckets: input.fallbackTokens, scope: 'main' });
|
|
230
|
+
}
|
|
231
|
+
for (const subagent of input.subagents ?? []) {
|
|
232
|
+
entries.push({ provider: subagent.provider, model: subagent.model, buckets: subagent.buckets, scope: 'subagent' });
|
|
233
|
+
}
|
|
234
|
+
return entries;
|
|
235
|
+
}
|
|
236
|
+
/** collectSessionCostEntries + estimateCostFromBucketsCny 的展示侧捷径。 */
|
|
237
|
+
export function estimateSessionCostSnapshotCny(input, options = {}) {
|
|
238
|
+
return estimateCostFromBucketsCny(collectSessionCostEntries(input), options);
|
|
239
|
+
}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session-scoped activity snapshots for the working-status line.
|
|
3
|
+
*
|
|
4
|
+
* The line's *semantics* belong to the `dsh-working-activity` plugin: it folds
|
|
5
|
+
* durable session events and live model frames into a **session projection**
|
|
6
|
+
* (`workingActivity`) that any client can read — the browser reads it, and so
|
|
7
|
+
* does this TUI. Consuming the projection is what removes the second tracker
|
|
8
|
+
* this app used to run: one semantic owner, and a value that arrives already
|
|
9
|
+
* scoped to a session, so a background session can no longer overwrite the line
|
|
10
|
+
* of the session on screen.
|
|
11
|
+
*
|
|
12
|
+
* Two properties of the transport shape this module:
|
|
13
|
+
*
|
|
14
|
+
* 1. **It is event-driven.** A value changes when a committed event folds, never
|
|
15
|
+
* on its own. `updatedAt` is the timestamp of the last folded event (session
|
|
16
|
+
* time, so it survives a restart) and `live` says whether `line` counts
|
|
17
|
+
* elapsed time. A renderer that wants the counter to move must derive it from
|
|
18
|
+
* `turnStartedAt` / `phaseStartedAt` instead of re-rendering `line`.
|
|
19
|
+
* 2. **The value is host data, not plugin API.** The shape below is a local
|
|
20
|
+
* structural copy of the plugin's wire value, the same discipline the channel
|
|
21
|
+
* port already applies to the activity state: this app must not import the
|
|
22
|
+
* plugin's internals to display a line.
|
|
23
|
+
* @module dsh-tui/dsh-adapter/activity-store
|
|
24
|
+
*/
|
|
25
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
26
|
+
/** The projection key the activity plugin publishes. */
|
|
27
|
+
export declare const ACTIVITY_PROJECTION_KEY = "workingActivity";
|
|
28
|
+
/** Phases the plugin's line can be in (`idle` renders nothing). */
|
|
29
|
+
export type ActivityPhase = 'idle' | 'waiting' | 'thinking' | 'tool' | 'done';
|
|
30
|
+
/**
|
|
31
|
+
* One session's activity value, as the plugin publishes it.
|
|
32
|
+
*
|
|
33
|
+
* Structural copy of `dsh-working-activity`'s `WorkingActivityView`.
|
|
34
|
+
*/
|
|
35
|
+
export interface ActivityView {
|
|
36
|
+
readonly phase: ActivityPhase;
|
|
37
|
+
/** The line as the host rendered it at `updatedAt`. */
|
|
38
|
+
readonly line: string;
|
|
39
|
+
/** Whether `line` counts elapsed time (a renderer ticks it from the stamps). */
|
|
40
|
+
readonly live: boolean;
|
|
41
|
+
/** Tool action verb, when the line describes a running tool. */
|
|
42
|
+
readonly label?: string;
|
|
43
|
+
/** Tool detail fragment (path / command / pattern), when there is one. */
|
|
44
|
+
readonly detail?: string;
|
|
45
|
+
/** The playful phrase or `⏵` self-narration currently shown, when any. */
|
|
46
|
+
readonly phrase?: string;
|
|
47
|
+
/** Tools completed in the current turn. */
|
|
48
|
+
readonly toolCount: number;
|
|
49
|
+
/** Wall clock the current phase began. */
|
|
50
|
+
readonly phaseStartedAt: number;
|
|
51
|
+
/** Wall clock the current turn began (0 when no turn has started). */
|
|
52
|
+
readonly turnStartedAt: number;
|
|
53
|
+
/** Timestamp of the last folded event — the value's freshness signal. */
|
|
54
|
+
readonly updatedAt: number;
|
|
55
|
+
/** Language the line was rendered in. */
|
|
56
|
+
readonly lang: 'zh' | 'en';
|
|
57
|
+
}
|
|
58
|
+
/** The slice of the host projection registry this module uses. */
|
|
59
|
+
export interface ProjectionRegistryLike {
|
|
60
|
+
onChanged(listener: (session: {
|
|
61
|
+
readonly id: unknown;
|
|
62
|
+
}, key: string, value: unknown, seq: number) => void): () => void;
|
|
63
|
+
snapshot(session: unknown, keys?: readonly string[]): {
|
|
64
|
+
readonly values: Record<string, unknown>;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Narrow one projection value: anything that is not an activity view is
|
|
69
|
+
* dropped rather than rendered half-formed.
|
|
70
|
+
* @param value - Raw projection value.
|
|
71
|
+
* @returns the value as an activity view, or `undefined`.
|
|
72
|
+
*/
|
|
73
|
+
export declare function asActivityView(value: unknown): ActivityView | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* The latest activity value for the session on screen, with a subscription
|
|
76
|
+
* for renderers.
|
|
77
|
+
*
|
|
78
|
+
* The store is effectively single-current: binding a session ({@link
|
|
79
|
+
* ActivityStore.seed}) names the session the UI is showing, and every other
|
|
80
|
+
* id is dropped — values, session objects and read-failure counts alike. A
|
|
81
|
+
* registry-less store (the UI's fallback, test rigs) has no current session
|
|
82
|
+
* and keeps today's accept-all behavior.
|
|
83
|
+
*/
|
|
84
|
+
export declare class ActivityStore {
|
|
85
|
+
private readonly values;
|
|
86
|
+
/** Session objects seen for each id, so a live value can be re-read. */
|
|
87
|
+
private readonly sessions;
|
|
88
|
+
/** Consecutive failed reads per session id; reset by a successful read. */
|
|
89
|
+
private readonly readFailures;
|
|
90
|
+
/** Sessions already warned about (see {@link noteReadFailure}): once each. */
|
|
91
|
+
private readonly warned;
|
|
92
|
+
private readonly listeners;
|
|
93
|
+
/** The session the UI is showing (the last {@link seed}); the only id kept. */
|
|
94
|
+
private currentId;
|
|
95
|
+
/** Host registry, remembered so a bind can read a baseline on demand. */
|
|
96
|
+
private registry;
|
|
97
|
+
/** Warn sink (see {@link noteReadFailure}); injected by the composition root. */
|
|
98
|
+
private readonly warn;
|
|
99
|
+
constructor(warn?: (message: string) => void);
|
|
100
|
+
/** Remember the host registry (see {@link seed} and {@link refreshLive}). */
|
|
101
|
+
attachRegistry(registry: ProjectionRegistryLike): void;
|
|
102
|
+
/**
|
|
103
|
+
* Seed one session from the registry's current snapshot and make it the
|
|
104
|
+
* current one.
|
|
105
|
+
*
|
|
106
|
+
* A value only *arrives* when it changes, so a session opened after its last
|
|
107
|
+
* change — a resume, or a window reattached to a running agent — would show
|
|
108
|
+
* nothing until the next event without this read. The bind also defines the
|
|
109
|
+
* session on screen: every other id is pruned, so a later event — or the
|
|
110
|
+
* tick — for a session the user switched away from can no longer fill this
|
|
111
|
+
* store or keep a timer armed.
|
|
112
|
+
* @param session - Session being bound.
|
|
113
|
+
*/
|
|
114
|
+
seed(session: unknown): void;
|
|
115
|
+
/**
|
|
116
|
+
* Note the session object behind an id, so a live value can be re-read.
|
|
117
|
+
* Dropped for any id other than the current one (see {@link seed}). */
|
|
118
|
+
remember(sessionId: string, session: unknown): void;
|
|
119
|
+
/**
|
|
120
|
+
* Re-read the current session's value while it is still counting time.
|
|
121
|
+
*
|
|
122
|
+
* The host renders the value when it is *read*, so this is what makes the
|
|
123
|
+
* elapsed seconds advance between committed events — with the host's own copy
|
|
124
|
+
* and language, since nothing is re-rendered here. A value that has settled
|
|
125
|
+
* (`live` false: idle, or a finished turn) is deliberately skipped: its text
|
|
126
|
+
* cannot change on its own. Only the current session can be live (see
|
|
127
|
+
* {@link seed}), so the tick never polls a session the user left.
|
|
128
|
+
*/
|
|
129
|
+
refreshLive(): void;
|
|
130
|
+
/** Whether the current session's value is still counting time (see {@link refreshLive}). */
|
|
131
|
+
hasLive(): boolean;
|
|
132
|
+
/** The current value for one session, stable between updates. */
|
|
133
|
+
get(sessionId: string | undefined): ActivityView | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Record one projection value. Dropped for any id other than the current
|
|
136
|
+
* one (see {@link seed}).
|
|
137
|
+
* @param sessionId - Session the value belongs to.
|
|
138
|
+
* @param view - The published value.
|
|
139
|
+
*/
|
|
140
|
+
update(sessionId: string, view: ActivityView): void;
|
|
141
|
+
/** Forget one session (disposed, or left behind by a reset). */
|
|
142
|
+
clear(sessionId: string): void;
|
|
143
|
+
/** A read succeeded: this session's consecutive-failure count restarts. */
|
|
144
|
+
noteReadSuccess(sessionId: string): void;
|
|
145
|
+
/**
|
|
146
|
+
* A read failed. The failure is reported to the warn sink ONCE per session
|
|
147
|
+
* (the sink is the composition root's logger — this module stays free of
|
|
148
|
+
* cordis types), and after {@link MAX_READ_FAILURES} consecutive failures
|
|
149
|
+
* the value is cleared so the tick disarms instead of polling a registry
|
|
150
|
+
* that will never answer.
|
|
151
|
+
* @param sessionId - Session whose read failed.
|
|
152
|
+
* @param detail - What the failed read threw.
|
|
153
|
+
*/
|
|
154
|
+
noteReadFailure(sessionId: string, detail: string): void;
|
|
155
|
+
/** Drop every id that is not the current one; emit when a value went. */
|
|
156
|
+
private pruneToCurrent;
|
|
157
|
+
/** Subscribe to value changes; returns the unsubscribe function. */
|
|
158
|
+
subscribe(listener: () => void): () => void;
|
|
159
|
+
private emit;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* The change-feed listener for one store.
|
|
163
|
+
*
|
|
164
|
+
* Only this plugin's key is read, and only values that narrow to an activity
|
|
165
|
+
* view are accepted: the feed is host-wide, so every other unit's change and
|
|
166
|
+
* every malformed value must be dropped here rather than inside a renderer.
|
|
167
|
+
* @param store - Store to fill.
|
|
168
|
+
* @returns the listener to hand to `ProjectionRegistry.onChanged`.
|
|
169
|
+
*/
|
|
170
|
+
export declare function createActivityFeed(store: ActivityStore): (session: {
|
|
171
|
+
readonly id: unknown;
|
|
172
|
+
}, key: string, value: unknown) => void;
|
|
173
|
+
/** How often a value that is still counting time is re-read from the host. */
|
|
174
|
+
export declare const LIVE_TICK_MS = 500;
|
|
175
|
+
/**
|
|
176
|
+
* Wire one store to the host's projection registry.
|
|
177
|
+
*
|
|
178
|
+
* Registration is deferred through `inject` because the plugin that *publishes*
|
|
179
|
+
* the unit is mounted alongside this one: the registry may not exist yet, and
|
|
180
|
+
* the unit may not be registered until later still. Both absences are normal —
|
|
181
|
+
* a composition without the activity plugin simply never fills the store, and
|
|
182
|
+
* the line falls back to whatever else the UI has.
|
|
183
|
+
*
|
|
184
|
+
* The feed is event-driven, so a value only lands when a committed event folds;
|
|
185
|
+
* its elapsed text would therefore freeze for the length of a long tool. The
|
|
186
|
+
* host renders a value when it is READ, so a timer re-reads the live ones: the
|
|
187
|
+
* seconds advance, the copy and language stay the plugin's, and a settled value
|
|
188
|
+
* (idle, or a finished turn) stops the timer instead of being polled forever.
|
|
189
|
+
* @param ctx - Host context of the composition root.
|
|
190
|
+
* @param store - Store to fill.
|
|
191
|
+
*/
|
|
192
|
+
export declare function attachActivityProjection(ctx: Context, store: ActivityStore): void;
|
|
193
|
+
/**
|
|
194
|
+
* Create the composition root's activity store and wire it to the host.
|
|
195
|
+
* @param ctx - Host context of the composition root.
|
|
196
|
+
* @param enabled - Whether the working line is shown at all (cordis.yml
|
|
197
|
+
* `activity`; a static, config-time switch — the runtime `/activity` command
|
|
198
|
+
* only changes the preset). With the line off, nothing attaches: no feed,
|
|
199
|
+
* no registry, and therefore no 500ms tick for a line nobody renders.
|
|
200
|
+
* @returns the store the UI reads from.
|
|
201
|
+
*/
|
|
202
|
+
export declare function createActivityStore(ctx: Context, enabled: boolean): ActivityStore;
|
|
203
|
+
/**
|
|
204
|
+
* Read one session's activity value in a component.
|
|
205
|
+
* @param store - Store to read.
|
|
206
|
+
* @param sessionId - Session the UI is showing.
|
|
207
|
+
* @returns the current value, or `undefined` when there is none.
|
|
208
|
+
*/
|
|
209
|
+
export declare function useActivity(store: ActivityStore, sessionId: string | undefined): ActivityView | undefined;
|
|
210
|
+
/**
|
|
211
|
+
* Seed one session's value from the registry's current snapshot.
|
|
212
|
+
*
|
|
213
|
+
* A value only *arrives* when it changes, so a session opened after its last
|
|
214
|
+
* change — a resume, or a window reattached to a running agent — would show
|
|
215
|
+
* nothing until the next event without this read.
|
|
216
|
+
* @param registry - Host projection registry.
|
|
217
|
+
* @param store - Store to fill.
|
|
218
|
+
* @param session - Session to read.
|
|
219
|
+
*/
|
|
220
|
+
export declare function seedActivity(registry: ProjectionRegistryLike | undefined, store: ActivityStore, session: unknown): void;
|
|
221
|
+
//# sourceMappingURL=activity-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-store.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/activity-store.ts"],"names":[],"mappings":"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"}
|