@deepseek-harness-tui/dsh-tui 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -24
- 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 +93 -6
- package/cordis.patch.yml +63 -22
- package/cordis.yml +3 -2
- package/guide/dsh-tui-guide/SKILL.md +37 -0
- package/guide/dsh-tui-guide/configuration.en.md +410 -0
- package/guide/dsh-tui-guide/configuration.md +349 -0
- package/guide/dsh-tui-guide/getting-started.en.md +398 -0
- package/guide/dsh-tui-guide/getting-started.md +397 -0
- package/guide/dsh-tui-guide/interaction.en.md +674 -0
- package/guide/dsh-tui-guide/interaction.md +747 -0
- package/guide/dsh-tui-guide/migrate.en.md +166 -0
- package/guide/dsh-tui-guide/migrate.md +132 -0
- package/guide/dsh-tui-guide/plugins.en.md +68 -0
- package/guide/dsh-tui-guide/plugins.md +56 -0
- package/guide/dsh-tui-guide/themes.en.md +192 -0
- package/guide/dsh-tui-guide/themes.md +185 -0
- package/guide/dsh-tui-guide/user-guide.en.md +608 -0
- package/guide/dsh-tui-guide/user-guide.md +586 -0
- package/guide/dsh-tui-guide/vscode.en.md +301 -0
- package/guide/dsh-tui-guide/vscode.md +272 -0
- package/lib/settings.json +1272 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +10 -2
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +17 -0
- 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 +14 -1
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +75 -6
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +86 -9
- package/lib/types/adapter/ports/channel-view.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/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/Chat/JobCard.d.ts +9 -0
- package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
- package/lib/types/components/Chat/JobCard.js +42 -15
- package/lib/types/components/Chat/SubagentMessage.js +6 -6
- 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/JobsPanel.d.ts.map +1 -1
- package/lib/types/components/JobsPanel.js +80 -33
- 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 +16 -7
- 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/PresetPicker.d.ts +4 -0
- package/lib/types/components/PresetPicker.d.ts.map +1 -1
- package/lib/types/components/PresetPicker.js +5 -1
- 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 +60 -8
- package/lib/types/components/SplitDiffView.d.ts.map +1 -1
- package/lib/types/components/SplitDiffView.js +2 -1
- package/lib/types/components/StarPrompt.d.ts +59 -0
- package/lib/types/components/StarPrompt.d.ts.map +1 -0
- package/lib/types/components/StarPrompt.js +326 -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 +8 -8
- package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
- package/lib/types/components/SubagentDetailScene.js +108 -10
- 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 +35 -0
- package/lib/types/components/WhaleGirl.d.ts.map +1 -0
- package/lib/types/components/WhaleGirl.js +50 -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/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.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +6 -5
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +3 -2
- 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/trajectory/MiniWake.d.ts +11 -1
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -1
- package/lib/types/components/trajectory/MiniWake.js +9 -3
- 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/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 +1 -0
- package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/background-action.js +1 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +8 -9
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +69 -21
- package/lib/types/dsh-adapter/channel/compaction.d.ts +2 -1
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +35 -2
- package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/external-commands.js +8 -2
- package/lib/types/dsh-adapter/channel/job-projection.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/job-projection.js +88 -3
- 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/mode-actions.d.ts +13 -0
- package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-actions.js +48 -7
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +25 -9
- package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-switch.js +5 -1
- 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 +31 -5
- 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-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 +2 -0
- package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-live-adoption.js +9 -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 +39 -7
- 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 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +4 -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 +17 -2
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/state.js +6 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +30 -35
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +143 -4
- 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.map +1 -1
- package/lib/types/dsh-adapter/channel.js +35 -5
- 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/contract.d.ts +6 -5
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +14 -6
- 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/jobs.d.ts +82 -16
- package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
- package/lib/types/dsh-adapter/jobs.js +104 -9
- 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/oauth/bonus.d.ts +27 -0
- package/lib/types/dsh-adapter/oauth/bonus.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/bonus.js +69 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.d.ts +2 -1
- package/lib/types/dsh-adapter/oauth/command.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.js +7 -4
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.d.ts +13 -10
- package/lib/types/dsh-adapter/oauth/credentials.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.js +61 -23
- package/lib/types/dsh-adapter/oauth/deepseek.d.ts +39 -0
- package/lib/types/dsh-adapter/oauth/deepseek.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/deepseek.js +189 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.d.ts +24 -16
- package/lib/types/dsh-adapter/oauth/index.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.js +34 -20
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/interaction.d.ts +14 -12
- package/lib/types/dsh-adapter/oauth/interaction.d.ts.map +1 -0
- package/lib/types/dsh-adapter/oauth/interaction.js +283 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.d.ts +2 -1
- package/lib/types/dsh-adapter/oauth/opener.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.js +1 -1
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.d.ts +10 -3
- package/lib/types/dsh-adapter/oauth/pi-ai.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.js +8 -3
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.d.ts +6 -3
- package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.js +11 -3
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.d.ts +14 -7
- package/lib/types/dsh-adapter/oauth/service.d.ts.map +1 -0
- package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.js +82 -17
- package/lib/types/dsh-adapter/plugin.d.ts +12 -3
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +215 -376
- package/lib/types/dsh-adapter/presets.d.ts +6 -4
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/presets.js +6 -4
- 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 +260 -68
- 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/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 +29 -3
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +87 -3
- 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/i18n.d.ts +598 -60
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +198 -31
- 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 +15 -2
- 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/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 +61 -1
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +764 -93
- 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 +40 -18
- package/lib/types/ink/selection.d.ts.map +1 -1
- package/lib/types/ink/selection.js +142 -30
- 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 +32 -1
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +54 -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/ink/update-overflow-guard.d.ts +24 -0
- package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
- package/lib/types/ink/update-overflow-guard.js +25 -3
- 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/minimalUiMode.d.ts +19 -0
- package/lib/types/minimalUiMode.d.ts.map +1 -0
- package/lib/types/minimalUiMode.js +23 -0
- package/lib/types/oauth.d.ts +5 -10
- package/lib/types/oauth.d.ts.map +1 -1
- package/lib/types/oauth.js +5 -10
- 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 +627 -54
- 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 +4 -0
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +57 -27
- 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 +16 -4
- 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/update.js +2 -2
- 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.map +1 -1
- package/lib/types/utils/fold-long-lines.js +2 -1
- 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/utils/pastedImagePath.d.ts +8 -0
- package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
- package/lib/types/utils/pastedImagePath.js +29 -5
- 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 +127 -102
- package/presets/liangshen/agent.cordis.yml +4 -1
- package/presets/liangshen/preset.yml +1 -1
- package/lib/types/minimalMode.d.ts +0 -13
- package/lib/types/minimalMode.d.ts.map +0 -1
- package/lib/types/minimalMode.js +0 -17
- package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +0 -21
- package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +0 -143
- package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +0 -11
- package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +0 -44
- package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +0 -193
- package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +0 -69
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* Queue semantics mirror the official dsh-tui chat/questions machine: asks
|
|
11
11
|
* arrive one at a time in practice (the tool blocks until answered), but
|
|
12
12
|
* concurrent asks from subagents are drained FIFO.
|
|
13
|
+
*
|
|
14
|
+
* This store owns the INTERACTION only. The answered-questionnaire transcript
|
|
15
|
+
* record is a projection fact: it is folded from the persisted
|
|
16
|
+
* `tool/result` (`channel/question-record.ts`, issue #1009), never pushed from
|
|
17
|
+
* here, so it survives `/resume`, rewind and replay.
|
|
13
18
|
*/
|
|
14
19
|
import { compositionRoot } from './host-access.js';
|
|
15
20
|
import { type AdapterRuntimeOptions } from '../adapter/kernel/runtime.js';
|
|
@@ -39,13 +44,10 @@ export interface QuestionSnapshot {
|
|
|
39
44
|
readonly answered: number;
|
|
40
45
|
/** Previously saved answer or draft for the current question. */
|
|
41
46
|
readonly draft?: QuestionDraft;
|
|
42
|
-
/** Whether Esc should navigate to the previous question. */
|
|
47
|
+
/** Whether Esc / ← should navigate to the previous question. */
|
|
43
48
|
readonly canGoBack: boolean;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export interface QuestionSummary {
|
|
47
|
-
readonly title: string;
|
|
48
|
-
readonly lines: readonly string[];
|
|
49
|
+
/** Whether → should navigate to the next question without submitting. */
|
|
50
|
+
readonly canGoForward: boolean;
|
|
49
51
|
}
|
|
50
52
|
/** Host-only registration used by the TUI plugin bootstrap. */
|
|
51
53
|
export declare function bindQuestionStore(ctx: Parameters<typeof compositionRoot>[0], store: QuestionStore): void;
|
|
@@ -64,8 +66,6 @@ export declare class QuestionStore {
|
|
|
64
66
|
private active;
|
|
65
67
|
private readonly listeners;
|
|
66
68
|
private batchSeq;
|
|
67
|
-
/** Completed batch summaries, drained by the TUI into the transcript. */
|
|
68
|
-
private summaries;
|
|
69
69
|
/**
|
|
70
70
|
* Cached snapshot: useSyncExternalStore requires a stable reference while
|
|
71
71
|
* nothing changed (a fresh object per call would loop re-renders).
|
|
@@ -83,10 +83,11 @@ export declare class QuestionStore {
|
|
|
83
83
|
*/
|
|
84
84
|
getSnapshot(): QuestionSnapshot | null;
|
|
85
85
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
86
|
+
* Whether a panel callback still belongs to the question it was rendered
|
|
87
|
+
* for. One stdin batch can deliver → and then Enter to the panel that
|
|
88
|
+
* was mounted for the first key, after the store has already moved.
|
|
88
89
|
*/
|
|
89
|
-
|
|
90
|
+
stillCurrent(key: string): boolean;
|
|
90
91
|
private emit;
|
|
91
92
|
/** Rebuild the cached snapshot after any mutation of active/index. */
|
|
92
93
|
private rebuildSnapshot;
|
|
@@ -95,8 +96,8 @@ export declare class QuestionStore {
|
|
|
95
96
|
* model runs the `ask_user_question` tool, and by local wizards (e.g.
|
|
96
97
|
* `/provider`) driving the same panel.
|
|
97
98
|
* @param request - The ask request: questions plus optional abort signal.
|
|
98
|
-
* @param options - `redact` hides answer text from the
|
|
99
|
-
* (use for batches that collect secrets such as API keys).
|
|
99
|
+
* @param options - `redact` hides answer text from the answered-questionnaire
|
|
100
|
+
* transcript record (use for batches that collect secrets such as API keys).
|
|
100
101
|
* @returns A promise settling with the collected answers when the user
|
|
101
102
|
* submits the batch, or rejecting when the ask is interrupted.
|
|
102
103
|
*/
|
|
@@ -107,11 +108,17 @@ export declare class QuestionStore {
|
|
|
107
108
|
private startNext;
|
|
108
109
|
/**
|
|
109
110
|
* The user submitted an answer for the current question; replaces any
|
|
110
|
-
* previous answer at that position, advances the
|
|
111
|
-
* every question is answered.
|
|
111
|
+
* previous answer at that position, advances to the next unanswered
|
|
112
|
+
* question, and settles the batch once every question is answered.
|
|
112
113
|
* @param selection - Selected option labels plus optional custom text.
|
|
113
114
|
*/
|
|
114
115
|
answerCurrent(selection: QuestionSelection): void;
|
|
116
|
+
/**
|
|
117
|
+
* Navigate to the next question without committing the current one. The
|
|
118
|
+
* caller supplies the panel's draft so a peek forward does not discard
|
|
119
|
+
* in-progress text. No-op on the last question — Enter still owns submit.
|
|
120
|
+
*/
|
|
121
|
+
forwardCurrent(draft?: QuestionDraft): void;
|
|
115
122
|
/**
|
|
116
123
|
* Navigate to the previous question without cancelling the batch. The
|
|
117
124
|
* caller supplies the panel's current draft so partially typed text can be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/questions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/questions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAEL,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC5B,MAAM,iCAAiC,CAAA;AAExC;mEACmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAA;AAyB7C,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;IACtC,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAA;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;CAC/B;AAID,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAGxG;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAGtG;AA0BD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;gBAEnC,OAAO,GAAE,qBAA+C;IAGpE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAI;IACpB;;;OAGG;IACH,OAAO,CAAC,aAAa,CAAgC;IAErD;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAO3C;;;OAGG;IACH,WAAW,IAAI,gBAAgB,GAAG,IAAI;IAItC;;;;OAIG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIlC,OAAO,CAAC,IAAI;IAIZ,sEAAsE;IACtE,OAAO,CAAC,eAAe;IAyBvB;;;;;;;;;OASG;IACH,GAAG,CAAC,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgCnE,8CAA8C;IAC9C,OAAO,CAAC,SAAS;IAOjB;;;;;OAKG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAqCjD;;;;OAIG;IACH,cAAc,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IAW3C;;;;OAIG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI;IAWxC,6DAA6D;IAC7D,aAAa,IAAI,IAAI;IAUrB,+DAA+D;IAC/D,SAAS,IAAI,IAAI;IASjB,wEAAwE;IACxE,OAAO,CAAC,MAAM;IAOd,yEAAyE;IACzE,OAAO,CAAC,IAAI;CAMb"}
|
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
* Queue semantics mirror the official dsh-tui chat/questions machine: asks
|
|
11
11
|
* arrive one at a time in practice (the tool blocks until answered), but
|
|
12
12
|
* concurrent asks from subagents are drained FIFO.
|
|
13
|
+
*
|
|
14
|
+
* This store owns the INTERACTION only. The answered-questionnaire transcript
|
|
15
|
+
* record is a projection fact: it is folded from the persisted
|
|
16
|
+
* `tool/result` (`channel/question-record.ts`, issue #1009), never pushed from
|
|
17
|
+
* here, so it survives `/resume`, rewind and replay.
|
|
13
18
|
*/
|
|
14
|
-
import { t } from '../i18n.js';
|
|
15
19
|
import { compositionRoot } from './host-access.js';
|
|
16
20
|
import { assertCapabilityShadowPolicy, defaultAdapterRuntime, } from '../adapter/kernel/runtime.js';
|
|
17
21
|
import { UserQuestionError, } from '@deepseek-ai/dsh-user-questions';
|
|
@@ -34,12 +38,6 @@ const ASK_ABORTED = 'ASK_ABORTED';
|
|
|
34
38
|
* from harness aborts (signal fired) and teardown rejects.
|
|
35
39
|
*/
|
|
36
40
|
const ASK_CANCELLED = 'ASK_CANCELLED';
|
|
37
|
-
/** Truncate a long answer line for the transcript summary. */
|
|
38
|
-
function clip(text, max = 140) {
|
|
39
|
-
if (text.length <= max)
|
|
40
|
-
return text;
|
|
41
|
-
return `${text.slice(0, max)}…`;
|
|
42
|
-
}
|
|
43
41
|
function isDefined(value) {
|
|
44
42
|
return value !== undefined;
|
|
45
43
|
}
|
|
@@ -52,27 +50,6 @@ function copyDraft(draft) {
|
|
|
52
50
|
function selectionFromAnswer(answer) {
|
|
53
51
|
return copyDraft(answer);
|
|
54
52
|
}
|
|
55
|
-
function buildSummary(pending) {
|
|
56
|
-
const lines = pending.request.questions.flatMap((question, index) => {
|
|
57
|
-
const answer = pending.answers[index];
|
|
58
|
-
if (answer === undefined)
|
|
59
|
-
return [];
|
|
60
|
-
const text = pending.redact
|
|
61
|
-
? '••••••'
|
|
62
|
-
: (() => {
|
|
63
|
-
const labels = answer.selected.join('、');
|
|
64
|
-
return answer.custom !== undefined && answer.custom !== ''
|
|
65
|
-
? labels === '' ? answer.custom : `${labels}:${answer.custom}`
|
|
66
|
-
: labels;
|
|
67
|
-
})();
|
|
68
|
-
return `· ${question.question} → ${clip(text)}`;
|
|
69
|
-
});
|
|
70
|
-
const total = pending.request.questions.length;
|
|
71
|
-
return {
|
|
72
|
-
title: t('questionnaire-answered', { total }),
|
|
73
|
-
lines,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
53
|
/**
|
|
77
54
|
* Ask-user-question store: parks asks from the harness's user-interaction
|
|
78
55
|
* seam, surfaces one question at a time to the TUI, and settles each ask
|
|
@@ -88,8 +65,6 @@ export class QuestionStore {
|
|
|
88
65
|
active;
|
|
89
66
|
listeners = new Set();
|
|
90
67
|
batchSeq = 0;
|
|
91
|
-
/** Completed batch summaries, drained by the TUI into the transcript. */
|
|
92
|
-
summaries = [];
|
|
93
68
|
/**
|
|
94
69
|
* Cached snapshot: useSyncExternalStore requires a stable reference while
|
|
95
70
|
* nothing changed (a fresh object per call would loop re-renders).
|
|
@@ -114,13 +89,12 @@ export class QuestionStore {
|
|
|
114
89
|
return this.snapshotCache;
|
|
115
90
|
}
|
|
116
91
|
/**
|
|
117
|
-
*
|
|
118
|
-
*
|
|
92
|
+
* Whether a panel callback still belongs to the question it was rendered
|
|
93
|
+
* for. One stdin batch can deliver → and then Enter to the panel that
|
|
94
|
+
* was mounted for the first key, after the store has already moved.
|
|
119
95
|
*/
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
this.summaries = [];
|
|
123
|
-
return summaries;
|
|
96
|
+
stillCurrent(key) {
|
|
97
|
+
return this.snapshotCache?.key === key;
|
|
124
98
|
}
|
|
125
99
|
emit() {
|
|
126
100
|
for (const listener of this.listeners)
|
|
@@ -148,6 +122,7 @@ export class QuestionStore {
|
|
|
148
122
|
? { draft: selectionFromAnswer(savedAnswer) }
|
|
149
123
|
: {}),
|
|
150
124
|
canGoBack: pending.index > 0,
|
|
125
|
+
canGoForward: pending.index + 1 < pending.request.questions.length,
|
|
151
126
|
};
|
|
152
127
|
}
|
|
153
128
|
/**
|
|
@@ -155,8 +130,8 @@ export class QuestionStore {
|
|
|
155
130
|
* model runs the `ask_user_question` tool, and by local wizards (e.g.
|
|
156
131
|
* `/provider`) driving the same panel.
|
|
157
132
|
* @param request - The ask request: questions plus optional abort signal.
|
|
158
|
-
* @param options - `redact` hides answer text from the
|
|
159
|
-
* (use for batches that collect secrets such as API keys).
|
|
133
|
+
* @param options - `redact` hides answer text from the answered-questionnaire
|
|
134
|
+
* transcript record (use for batches that collect secrets such as API keys).
|
|
160
135
|
* @returns A promise settling with the collected answers when the user
|
|
161
136
|
* submits the batch, or rejecting when the ask is interrupted.
|
|
162
137
|
*/
|
|
@@ -202,8 +177,8 @@ export class QuestionStore {
|
|
|
202
177
|
}
|
|
203
178
|
/**
|
|
204
179
|
* The user submitted an answer for the current question; replaces any
|
|
205
|
-
* previous answer at that position, advances the
|
|
206
|
-
* every question is answered.
|
|
180
|
+
* previous answer at that position, advances to the next unanswered
|
|
181
|
+
* question, and settles the batch once every question is answered.
|
|
207
182
|
* @param selection - Selected option labels plus optional custom text.
|
|
208
183
|
*/
|
|
209
184
|
answerCurrent(selection) {
|
|
@@ -220,16 +195,43 @@ export class QuestionStore {
|
|
|
220
195
|
};
|
|
221
196
|
pending.answers[pending.index] = answer;
|
|
222
197
|
pending.drafts[pending.index] = copyDraft(selection);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
198
|
+
// The answers array is sparse until each question is committed. `every`
|
|
199
|
+
// skips holes, so a peek-ahead answer would look complete and settle
|
|
200
|
+
// early. Read every index explicitly.
|
|
201
|
+
const complete = pending.request.questions.every((_, index) => pending.answers[index] !== undefined);
|
|
202
|
+
if (complete) {
|
|
203
|
+
// Batch complete: settle the harness promise and drain the next queued
|
|
204
|
+
// ask if any. Filling the last gap after a → peek counts — the user
|
|
205
|
+
// should not have to walk onto an already-answered tail just to submit.
|
|
206
|
+
// The transcript record is NOT written here — it is projected from the
|
|
207
|
+
// persisted `tool/result` (issue #1009), so it survives `/resume`,
|
|
208
|
+
// rewind and every replay.
|
|
227
209
|
const answers = pending.answers.filter(isDefined);
|
|
228
210
|
this.active = undefined;
|
|
229
211
|
pending.resolve({ answers });
|
|
230
|
-
this.summaries.push(buildSummary(pending));
|
|
231
212
|
this.startNext();
|
|
232
213
|
}
|
|
214
|
+
else {
|
|
215
|
+
const after = pending.request.questions.findIndex((_, index) => index > pending.index && pending.answers[index] === undefined);
|
|
216
|
+
const firstGap = pending.request.questions.findIndex((_, index) => pending.answers[index] === undefined);
|
|
217
|
+
pending.index = after >= 0 ? after : firstGap;
|
|
218
|
+
}
|
|
219
|
+
this.rebuildSnapshot();
|
|
220
|
+
this.emit();
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Navigate to the next question without committing the current one. The
|
|
224
|
+
* caller supplies the panel's draft so a peek forward does not discard
|
|
225
|
+
* in-progress text. No-op on the last question — Enter still owns submit.
|
|
226
|
+
*/
|
|
227
|
+
forwardCurrent(draft) {
|
|
228
|
+
const pending = this.active;
|
|
229
|
+
if (pending === undefined || pending.index + 1 >= pending.request.questions.length)
|
|
230
|
+
return;
|
|
231
|
+
if (draft !== undefined) {
|
|
232
|
+
pending.drafts[pending.index] = copyDraft(draft);
|
|
233
|
+
}
|
|
234
|
+
pending.index += 1;
|
|
233
235
|
this.rebuildSnapshot();
|
|
234
236
|
this.emit();
|
|
235
237
|
}
|
|
@@ -21,18 +21,23 @@ export interface SessionTitleRecovery {
|
|
|
21
21
|
/** Known only when a full no-title scan then reached/ruled out the prompt. */
|
|
22
22
|
readonly hasPrompt?: boolean;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
export interface AppendedDigest {
|
|
25
|
+
readonly title: SessionTitle | undefined;
|
|
26
|
+
readonly model: string | undefined;
|
|
27
|
+
readonly label: string | undefined;
|
|
28
|
+
readonly hasHumanPrompt: boolean;
|
|
29
|
+
/** Only a fully decoded suffix may be folded onto cached prefix facts. */
|
|
30
|
+
readonly complete: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** Scan all newly appended frames from the previous EOF frame boundary. */
|
|
33
|
+
export declare function digestAppendedSuffix(path: string, start: number, end: number, signal?: AbortSignal): Promise<AppendedDigest>;
|
|
29
34
|
/**
|
|
30
35
|
* Recover the authoritative display title for one immutable file snapshot:
|
|
31
36
|
* reverse scan for the LAST title, then (only when none exists) forward scan
|
|
32
37
|
* for the FIRST human prompt. Both directions page on verified frame boundaries.
|
|
33
38
|
*/
|
|
34
39
|
export declare function recoverSessionTitle(path: string, bytes: number, signal?: AbortSignal): Promise<SessionTitleRecovery>;
|
|
35
|
-
/** Hash the previous EOF neighborhood
|
|
40
|
+
/** Hash the previous EOF neighborhood; this detects replacement near the old tail. */
|
|
36
41
|
export declare function sessionTitleAnchor(path: string, bytes: number, signal?: AbortSignal): Promise<string | undefined>;
|
|
37
42
|
/**
|
|
38
43
|
* The last exchanges of a session, for the browser's preview pane.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/sessions/digest.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,QAAY,CAAA;AAC1C,+EAA+E;AAC/E,eAAO,MAAM,eAAe,MAAM,CAAA;AAClC,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAwG3C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAyDtE;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AA2GD,
|
|
1
|
+
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/sessions/digest.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE3E,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,QAAY,CAAA;AAC1C,+EAA+E;AAC/E,eAAO,MAAM,eAAe,MAAM,CAAA;AAClC,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,QAAa,CAAA;AAwG3C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAyDtE;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AA2GD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAED,2EAA2E;AAC3E,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,cAAc,CAAC,CAuCzB;AA8CD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAED,sFAAsF;AACtF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAyB1E"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* opening prompt. Measured across a real corpus, the first user prompt lands
|
|
8
8
|
* within 8,107 bytes of the start (524 in its `agent/inbox/spliced` form),
|
|
9
9
|
* so a 64 KB window is the cheap path. A larger modern context prefix can
|
|
10
|
-
* exceed it; listSummaries
|
|
11
|
-
*
|
|
10
|
+
* exceed it; listSummaries schedules the progressive opening scan below
|
|
11
|
+
* after returning the immediately usable session list.
|
|
12
12
|
* - The TAIL holds whatever was appended most recently: the current title
|
|
13
13
|
* (titles are re-emitted, and the last one wins), the model of the last
|
|
14
14
|
* request, and the last exchanges for the preview.
|
|
@@ -36,7 +36,7 @@ export const TAIL_WINDOW_BYTES = 128 * 1024;
|
|
|
36
36
|
const TITLE_SCAN_PAGE_BYTES = 128 * 1024;
|
|
37
37
|
/** Largest compressed frame the fallback scanner will materialize. */
|
|
38
38
|
const TITLE_SCAN_MAX_FRAME_BYTES = 16 * 1024 * 1024;
|
|
39
|
-
/**
|
|
39
|
+
/** Old EOF neighborhood hashed for the JSONL backend's append-only contract. */
|
|
40
40
|
const TITLE_ANCHOR_BYTES = 256;
|
|
41
41
|
/** Longest preview excerpt kept per message, in characters. */
|
|
42
42
|
const PREVIEW_CHARS = 400;
|
|
@@ -305,8 +305,8 @@ async function recoverLatestTitle(path, bytes, signal) {
|
|
|
305
305
|
await handle.close().catch(() => { });
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
|
-
/** Scan
|
|
309
|
-
export async function
|
|
308
|
+
/** Scan all newly appended frames from the previous EOF frame boundary. */
|
|
309
|
+
export async function digestAppendedSuffix(path, start, end, signal) {
|
|
310
310
|
signal?.throwIfAborted();
|
|
311
311
|
let handle;
|
|
312
312
|
try {
|
|
@@ -314,31 +314,38 @@ export async function recoverAppendedTitle(path, start, end, signal) {
|
|
|
314
314
|
}
|
|
315
315
|
catch {
|
|
316
316
|
signal?.throwIfAborted();
|
|
317
|
-
return { title: undefined, complete: false };
|
|
317
|
+
return { title: undefined, model: undefined, label: undefined, hasHumanPrompt: false, complete: false };
|
|
318
318
|
}
|
|
319
|
-
let
|
|
319
|
+
let title;
|
|
320
|
+
let model;
|
|
321
|
+
let label;
|
|
322
|
+
let hasHumanPrompt = false;
|
|
323
|
+
const result = (complete) => ({ title, model, label, hasHumanPrompt, complete });
|
|
320
324
|
try {
|
|
321
325
|
let position = start;
|
|
322
326
|
while (position < end) {
|
|
323
327
|
signal?.throwIfAborted();
|
|
324
328
|
const page = await forwardPage(handle, position, end, signal);
|
|
325
329
|
if (page === undefined)
|
|
326
|
-
return
|
|
330
|
+
return result(false);
|
|
327
331
|
for (const frame of page.frames) {
|
|
328
332
|
const lines = decodeFrame(page.buffer, frame);
|
|
329
333
|
if (lines === undefined)
|
|
330
|
-
return
|
|
334
|
+
return result(false);
|
|
331
335
|
for (const line of lines) {
|
|
332
|
-
|
|
336
|
+
title = titleOf(line) ?? title;
|
|
337
|
+
model = modelOf(line) ?? model;
|
|
338
|
+
label = labelOf(line) ?? label;
|
|
339
|
+
hasHumanPrompt ||= humanPrompt(line) !== undefined;
|
|
333
340
|
}
|
|
334
341
|
}
|
|
335
342
|
const consumed = page.frames[page.frames.length - 1].end;
|
|
336
343
|
if (consumed <= 0)
|
|
337
|
-
return
|
|
344
|
+
return result(false);
|
|
338
345
|
position += consumed;
|
|
339
346
|
await scheduler.yield();
|
|
340
347
|
}
|
|
341
|
-
return
|
|
348
|
+
return result(true);
|
|
342
349
|
}
|
|
343
350
|
finally {
|
|
344
351
|
await handle.close().catch(() => { });
|
|
@@ -405,7 +412,7 @@ export async function recoverSessionTitle(path, bytes, signal) {
|
|
|
405
412
|
...(opening.hasPrompt === undefined ? {} : { hasPrompt: opening.hasPrompt }),
|
|
406
413
|
};
|
|
407
414
|
}
|
|
408
|
-
/** Hash the previous EOF neighborhood
|
|
415
|
+
/** Hash the previous EOF neighborhood; this detects replacement near the old tail. */
|
|
409
416
|
export async function sessionTitleAnchor(path, bytes, signal) {
|
|
410
417
|
signal?.throwIfAborted();
|
|
411
418
|
let handle;
|
|
@@ -61,12 +61,14 @@ export type LogLine = Record<string, unknown>;
|
|
|
61
61
|
*/
|
|
62
62
|
export declare function decodeFrame(buffer: Buffer, frame: FrameRange): LogLine[] | undefined;
|
|
63
63
|
export declare function decodeFrames(buffer: Buffer, frames: readonly FrameRange[]): LogLine[];
|
|
64
|
-
/**
|
|
64
|
+
/** File metadata and physical generation from one stat observation. */
|
|
65
65
|
export interface FileFacts {
|
|
66
66
|
readonly bytes: number;
|
|
67
67
|
readonly modifiedAt: number;
|
|
68
68
|
/** Physical file identity; replacement must not inherit append-only evidence. */
|
|
69
69
|
readonly identity: string;
|
|
70
|
+
/** Physical generation of the bytes, independent of the backend logical revision. */
|
|
71
|
+
readonly stamp: string;
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
72
74
|
* Size and mtime of a log, or undefined when it is gone.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/sessions/frames.ts"],"names":[],"mappings":"AAyCA,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAsC9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,SAAI,EACR,SAAS,SAA2B,GACnC,UAAU,EAAE,CAUd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAQzD;AAED,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,EAAE,GAAG,SAAS,CAsBpF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,EAAE,CAOrF;AAED,
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/sessions/frames.ts"],"names":[],"mappings":"AAyCA,yEAAyE;AACzE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAsC9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,SAAI,EACR,SAAS,SAA2B,GACnC,UAAU,EAAE,CAUd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CAQzD;AAED,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE7C;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,EAAE,GAAG,SAAS,CAsBpF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,EAAE,CAOrF;AAED,uEAAuE;AACvE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,qFAAqF;IACrF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAY7D;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,UAAQ,GACV;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAwBhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,EAAE,CAKhF"}
|
|
@@ -198,11 +198,12 @@ export function decodeFrames(buffer, frames) {
|
|
|
198
198
|
*/
|
|
199
199
|
export function fileFacts(path) {
|
|
200
200
|
try {
|
|
201
|
-
const stats = statSync(path);
|
|
201
|
+
const stats = statSync(path, { bigint: true });
|
|
202
202
|
return {
|
|
203
|
-
bytes: stats.size,
|
|
204
|
-
modifiedAt: stats.
|
|
205
|
-
identity: `${stats.dev}:${stats.ino}:${stats.
|
|
203
|
+
bytes: Number(stats.size),
|
|
204
|
+
modifiedAt: Number(stats.mtimeNs) / 1e6,
|
|
205
|
+
identity: `${stats.dev}:${stats.ino}:${stats.birthtimeNs}`,
|
|
206
|
+
stamp: `${stats.dev}:${stats.ino}:${stats.birthtimeNs}:${stats.size}:${stats.mtimeNs}:${stats.ctimeNs}`,
|
|
206
207
|
};
|
|
207
208
|
}
|
|
208
209
|
catch {
|
|
@@ -8,6 +8,11 @@ import type { SessionSummary } from './types.js';
|
|
|
8
8
|
* degrades is worth more than one that throws.
|
|
9
9
|
*/
|
|
10
10
|
export interface SessionSource {
|
|
11
|
+
/** Public provider configuration scopes optional disk snapshots. */
|
|
12
|
+
readonly name?: string;
|
|
13
|
+
readonly config?: unknown;
|
|
14
|
+
/** Stable through Context proxies, unlike the service wrapper object. */
|
|
15
|
+
readonly identity?: symbol;
|
|
11
16
|
/** Headers plus per-log change tokens — the contract built for this. */
|
|
12
17
|
listSnapshots?: (signal?: AbortSignal) => Promise<readonly unknown[]>;
|
|
13
18
|
/** Headers alone, for a backend or version without snapshots. */
|
|
@@ -45,7 +50,7 @@ export declare function enumerateSessions(source: SessionSource, signal?: AbortS
|
|
|
45
50
|
* filtering of any kind is applied — sub-agent runs and sessions with no
|
|
46
51
|
* conversation are present and labelled as such.
|
|
47
52
|
*/
|
|
48
|
-
export declare function listSummaries(source: SessionSource, signal?: AbortSignal): Promise<readonly SessionSummary[]>;
|
|
53
|
+
export declare function listSummaries(source: SessionSource, signal?: AbortSignal, onEnriched?: (summary: SessionSummary) => void, onPartial?: (summaries: readonly SessionSummary[]) => void): Promise<readonly SessionSummary[]>;
|
|
49
54
|
/**
|
|
50
55
|
* Resolve one session's artifact path.
|
|
51
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/sessions/list.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/sessions/list.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;IACrE,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,SAAS,OAAO,EAAE,CAAC,CAAA;IAC5D,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAA;CACpC;AAED,4EAA4E;AAC5E,UAAU,MAAM;IACd,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAA;IACjC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;CACtC;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBtG;AAwCD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,EAC9C,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,KAAK,IAAI,GACzD,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAkOpC;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7B"}
|