@deepseek-harness-tui/dsh-tui 0.6.0 → 0.7.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 +74 -21
- package/bin/dsh-tui.js +115 -25
- package/cordis.patch.yml +69 -17
- package/cordis.yml +50 -12
- package/lib/types/activityPrefs.d.ts +1 -1
- package/lib/types/activityPrefs.js +3 -3
- package/lib/types/cc/figures.d.ts +27 -20
- package/lib/types/cc/figures.d.ts.map +1 -1
- package/lib/types/cc/figures.js +43 -34
- package/lib/types/cc/format.d.ts +18 -9
- package/lib/types/cc/format.d.ts.map +1 -1
- package/lib/types/cc/format.js +26 -18
- package/lib/types/cc/markdown.d.ts +31 -16
- package/lib/types/cc/markdown.d.ts.map +1 -1
- package/lib/types/cc/markdown.js +283 -260
- package/lib/types/cc/terminal.d.ts +10 -7
- package/lib/types/cc/terminal.d.ts.map +1 -1
- package/lib/types/cc/terminal.js +62 -50
- package/lib/types/command-trees.d.ts +3 -0
- package/lib/types/command-trees.d.ts.map +1 -0
- package/lib/types/command-trees.js +4 -0
- package/lib/types/commands.d.ts +37 -1
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +68 -3
- package/lib/types/components/ActivityLine.d.ts +1 -1
- package/lib/types/components/ActivityLine.d.ts.map +1 -1
- package/lib/types/components/ActivityPicker.d.ts.map +1 -1
- package/lib/types/components/ActivityPicker.js +3 -4
- package/lib/types/components/BtwPanel.d.ts +16 -0
- package/lib/types/components/BtwPanel.d.ts.map +1 -0
- package/lib/types/components/BtwPanel.js +47 -0
- package/lib/types/components/CommandSuggestions.d.ts +4 -2
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +2 -2
- package/lib/types/components/EffortSlider.d.ts +15 -0
- package/lib/types/components/EffortSlider.d.ts.map +1 -0
- package/lib/types/components/EffortSlider.js +17 -0
- package/lib/types/components/GoalTodoPanel.d.ts +1 -1
- package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.d.ts +5 -2
- package/lib/types/components/HelpMenu.d.ts.map +1 -1
- package/lib/types/components/HelpMenu.js +8 -3
- package/lib/types/components/HistorySearchDialog.d.ts +1 -1
- package/lib/types/components/HistorySearchDialog.d.ts.map +1 -1
- package/lib/types/components/HistorySearchDialog.js +21 -10
- package/lib/types/components/InterruptedByUser.d.ts +2 -2
- package/lib/types/components/InterruptedByUser.d.ts.map +1 -1
- package/lib/types/components/InterruptedByUser.js +4 -3
- package/lib/types/components/LoadedContextPanel.d.ts +1 -1
- package/lib/types/components/LoadedContextPanel.d.ts.map +1 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +2 -1
- package/lib/types/components/Markdown.d.ts +11 -11
- package/lib/types/components/Markdown.d.ts.map +1 -1
- package/lib/types/components/Markdown.js +63 -57
- package/lib/types/components/MarkdownTable.d.ts +1 -1
- package/lib/types/components/MarkdownTable.js +2 -2
- package/lib/types/components/MessageList.d.ts +10 -2
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +17 -10
- package/lib/types/components/ModelPicker.d.ts +4 -1
- package/lib/types/components/ModelPicker.d.ts.map +1 -1
- package/lib/types/components/ModelPicker.js +16 -4
- package/lib/types/components/OverlayAbove.d.ts +20 -0
- package/lib/types/components/OverlayAbove.d.ts.map +1 -0
- package/lib/types/components/OverlayAbove.js +18 -0
- package/lib/types/components/PresetPicker.d.ts +1 -1
- package/lib/types/components/PresetPicker.d.ts.map +1 -1
- package/lib/types/components/PresetPicker.js +2 -3
- package/lib/types/components/PromptInput.d.ts +5 -4
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +186 -39
- package/lib/types/components/ResumePicker.d.ts +15 -4
- package/lib/types/components/ResumePicker.d.ts.map +1 -1
- package/lib/types/components/ResumePicker.js +25 -9
- package/lib/types/components/RewindPicker.d.ts +1 -1
- package/lib/types/components/RewindPicker.d.ts.map +1 -1
- package/lib/types/components/RewindPicker.js +14 -5
- package/lib/types/components/SearchBox.d.ts +1 -1
- package/lib/types/components/SearchBox.js +1 -1
- package/lib/types/components/Spinner/GlimmerMessage.d.ts +1 -2
- package/lib/types/components/Spinner/GlimmerMessage.d.ts.map +1 -1
- package/lib/types/components/Spinner/GlimmerMessage.js +1 -2
- package/lib/types/components/Spinner/SpinnerAnimationRow.d.ts +1 -1
- package/lib/types/components/Spinner/SpinnerAnimationRow.js +2 -2
- package/lib/types/components/Spinner/SpinnerGlyph.d.ts +1 -1
- package/lib/types/components/Spinner/SpinnerGlyph.js +1 -1
- package/lib/types/components/Spinner/spinnerUtils.d.ts +13 -18
- package/lib/types/components/Spinner/spinnerUtils.d.ts.map +1 -1
- package/lib/types/components/Spinner/spinnerUtils.js +67 -71
- package/lib/types/components/Spinner/useStalledAnimation.d.ts +1 -2
- package/lib/types/components/Spinner/useStalledAnimation.d.ts.map +1 -1
- package/lib/types/components/Spinner/useStalledAnimation.js +1 -2
- package/lib/types/components/StreamingMarkdown.d.ts +1 -1
- package/lib/types/components/StreamingMarkdown.js +1 -1
- package/lib/types/components/ThemePicker.d.ts +13 -9
- package/lib/types/components/ThemePicker.d.ts.map +1 -1
- package/lib/types/components/ThemePicker.js +21 -15
- package/lib/types/components/ThinkingToggle.d.ts +1 -1
- package/lib/types/components/ThinkingToggle.d.ts.map +1 -1
- package/lib/types/components/ThinkingToggle.js +8 -8
- package/lib/types/components/ToolUseLoader.d.ts +1 -1
- package/lib/types/components/ToolUseLoader.js +1 -1
- package/lib/types/components/WorkingSpinner.d.ts +2 -2
- package/lib/types/components/WorkingSpinner.js +2 -2
- package/lib/types/components/WorkspaceFlowPicker.d.ts +15 -0
- package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -0
- package/lib/types/components/WorkspaceFlowPicker.js +19 -0
- package/lib/types/components/WorkspacePicker.d.ts +9 -0
- package/lib/types/components/WorkspacePicker.d.ts.map +1 -0
- package/lib/types/components/WorkspacePicker.js +13 -0
- package/lib/types/components/approvals/ApprovalPanel.d.ts +1 -1
- package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
- package/lib/types/components/approvals/ApprovalPanel.js +2 -1
- package/lib/types/components/design-system/Byline.d.ts +1 -1
- package/lib/types/components/design-system/Byline.js +1 -1
- package/lib/types/components/design-system/Divider.d.ts +1 -1
- package/lib/types/components/design-system/Divider.js +1 -1
- package/lib/types/components/design-system/HintLine.d.ts +12 -0
- package/lib/types/components/design-system/HintLine.d.ts.map +1 -0
- package/lib/types/components/design-system/HintLine.js +15 -0
- package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +1 -1
- package/lib/types/components/design-system/KeyboardShortcutHint.js +1 -1
- package/lib/types/components/design-system/ListItem.d.ts +2 -2
- package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
- package/lib/types/components/design-system/ListItem.js +35 -3
- package/lib/types/components/design-system/LoadingState.d.ts +1 -2
- package/lib/types/components/design-system/LoadingState.d.ts.map +1 -1
- package/lib/types/components/design-system/LoadingState.js +1 -2
- package/lib/types/components/design-system/Pane.d.ts +2 -2
- package/lib/types/components/design-system/Pane.js +2 -2
- package/lib/types/components/design-system/ProgressBar.d.ts +1 -2
- package/lib/types/components/design-system/ProgressBar.d.ts.map +1 -1
- package/lib/types/components/design-system/ProgressBar.js +1 -2
- package/lib/types/components/design-system/StatusIcon.d.ts +2 -2
- package/lib/types/components/design-system/StatusIcon.js +2 -2
- package/lib/types/components/design-system/ThemeProvider.d.ts +1 -1
- package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
- package/lib/types/components/design-system/ThemeProvider.js +87 -26
- package/lib/types/components/design-system/ThemedBox.d.ts +1 -1
- package/lib/types/components/design-system/ThemedBox.js +1 -1
- package/lib/types/components/design-system/ThemedText.d.ts +2 -2
- package/lib/types/components/design-system/ThemedText.js +2 -2
- package/lib/types/components/listWindow.d.ts +26 -0
- package/lib/types/components/listWindow.d.ts.map +1 -0
- package/lib/types/components/listWindow.js +47 -0
- package/lib/types/components/messages/AssistantTextMessage.d.ts +1 -2
- package/lib/types/components/messages/AssistantTextMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantTextMessage.js +1 -2
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts +2 -2
- package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantThinkingMessage.js +6 -6
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts +12 -4
- package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
- package/lib/types/components/messages/AssistantToolUseMessage.js +9 -5
- package/lib/types/components/messages/MessageMetadata.d.ts +1 -1
- package/lib/types/components/messages/MessageMetadata.js +1 -1
- package/lib/types/components/messages/UserPromptMessage.d.ts +1 -1
- package/lib/types/components/messages/UserPromptMessage.js +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts +5 -1
- package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
- package/lib/types/components/questions/AskUserQuestionPanel.js +11 -9
- package/lib/types/components/questions/PlanReviewPanel.d.ts +1 -1
- package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
- package/lib/types/components/questions/PlanReviewPanel.js +3 -2
- package/lib/types/components/trajectory/HotspotView.d.ts +14 -0
- package/lib/types/components/trajectory/HotspotView.d.ts.map +1 -0
- package/lib/types/components/trajectory/HotspotView.js +83 -0
- package/lib/types/components/trajectory/Inspector.d.ts +31 -0
- package/lib/types/components/trajectory/Inspector.d.ts.map +1 -0
- package/lib/types/components/trajectory/Inspector.js +67 -0
- package/lib/types/components/trajectory/Ledger.d.ts +20 -0
- package/lib/types/components/trajectory/Ledger.d.ts.map +1 -0
- package/lib/types/components/trajectory/Ledger.js +112 -0
- package/lib/types/components/trajectory/MiniWake.d.ts +24 -0
- package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -0
- package/lib/types/components/trajectory/MiniWake.js +99 -0
- package/lib/types/components/trajectory/WaveBand.d.ts +33 -0
- package/lib/types/components/trajectory/WaveBand.d.ts.map +1 -0
- package/lib/types/components/trajectory/WaveBand.js +145 -0
- package/lib/types/customTheme.d.ts +6 -6
- package/lib/types/customTheme.d.ts.map +1 -1
- package/lib/types/customTheme.js +15 -12
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -0
- package/lib/types/{channel.d.ts → dsh-adapter/channel.d.ts} +184 -43
- package/lib/types/dsh-adapter/channel.d.ts.map +1 -0
- package/lib/types/{channel.js → dsh-adapter/channel.js} +972 -201
- package/lib/types/dsh-adapter/childStderr.d.ts.map +1 -0
- package/lib/types/{childStderr.js → dsh-adapter/childStderr.js} +1 -1
- package/lib/types/dsh-adapter/command-trees.d.ts +27 -0
- package/lib/types/dsh-adapter/command-trees.d.ts.map +1 -0
- package/lib/types/dsh-adapter/command-trees.js +42 -0
- package/lib/types/dsh-adapter/compat/index.d.ts +22 -0
- package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -0
- package/lib/types/{compat → dsh-adapter/compat}/index.js +7 -4
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts +86 -0
- package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/sessionLog.js +347 -0
- package/lib/types/dsh-adapter/contract.d.ts +20 -0
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -0
- package/lib/types/dsh-adapter/contract.js +109 -0
- package/lib/types/dsh-adapter/index.d.ts +80 -0
- package/lib/types/dsh-adapter/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/index.js +45 -0
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -0
- package/lib/types/dsh-adapter/packaged-skills.d.ts.map +1 -0
- package/lib/types/{plugin.d.ts → dsh-adapter/plugin.d.ts} +17 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -0
- package/lib/types/{plugin.js → dsh-adapter/plugin.js} +280 -80
- package/lib/types/dsh-adapter/presets.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts +91 -0
- package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/providerWizard.js +332 -0
- package/lib/types/{questions.d.ts → dsh-adapter/questions.d.ts} +7 -2
- package/lib/types/dsh-adapter/questions.d.ts.map +1 -0
- package/lib/types/{questions.js → dsh-adapter/questions.js} +15 -7
- package/lib/types/dsh-adapter/sideQuestion.d.ts +38 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -0
- package/lib/types/dsh-adapter/sideQuestion.js +69 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts +46 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/aggregate.js +207 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts +177 -0
- package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/guards.js +235 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts +16 -0
- package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/index.js +15 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts +40 -0
- package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/inspect.js +160 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts +128 -0
- package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/projection.js +653 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts +232 -0
- package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/types.js +70 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts +45 -0
- package/lib/types/dsh-adapter/trajectory/wave.d.ts.map +1 -0
- package/lib/types/dsh-adapter/trajectory/wave.js +210 -0
- package/lib/types/dsh-adapter/types.d.ts +23 -0
- package/lib/types/dsh-adapter/types.d.ts.map +1 -0
- package/lib/types/dsh-adapter/types.js +1 -0
- package/lib/types/dsh-adapter/workspace.d.ts +22 -0
- package/lib/types/dsh-adapter/workspace.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspace.js +16 -0
- package/lib/types/dsh-adapter/workspaces.d.ts +118 -0
- package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -0
- package/lib/types/dsh-adapter/workspaces.js +290 -0
- package/lib/types/effortPrefs.d.ts +1 -1
- package/lib/types/effortPrefs.js +3 -3
- package/lib/types/history.js +2 -2
- package/lib/types/hooks/useBlink.d.ts +1 -1
- package/lib/types/hooks/useBlink.js +1 -1
- package/lib/types/i18n.d.ts +977 -36
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +307 -30
- package/lib/types/index.d.ts +1 -69
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +3 -31
- package/lib/types/ink/components/App.d.ts.map +1 -1
- package/lib/types/ink/components/App.js +33 -19
- package/lib/types/ink/dom.d.ts +15 -0
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/ink/dom.js +32 -0
- package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
- package/lib/types/ink/hooks/use-input.js +8 -0
- package/lib/types/ink/hooks/use-terminal-size.d.ts +1 -1
- package/lib/types/ink/hooks/use-terminal-size.js +1 -1
- package/lib/types/ink/ink.d.ts.map +1 -1
- package/lib/types/ink/ink.js +109 -28
- package/lib/types/ink/input-suppression.d.ts +20 -0
- package/lib/types/ink/input-suppression.d.ts.map +1 -0
- package/lib/types/ink/input-suppression.js +26 -0
- package/lib/types/ink/log-update.js +21 -6
- package/lib/types/ink/parse-keypress.d.ts +31 -0
- package/lib/types/ink/parse-keypress.d.ts.map +1 -1
- package/lib/types/ink/parse-keypress.js +442 -8
- package/lib/types/ink/terminal-querier.d.ts +5 -1
- package/lib/types/ink/terminal-querier.d.ts.map +1 -1
- package/lib/types/ink/terminal-querier.js +27 -3
- package/lib/types/ink/terminal.d.ts +18 -0
- package/lib/types/ink/terminal.d.ts.map +1 -1
- package/lib/types/ink/terminal.js +32 -4
- package/lib/types/ink/termio/csi.d.ts +10 -0
- package/lib/types/ink/termio/csi.d.ts.map +1 -1
- package/lib/types/ink/termio/csi.js +20 -0
- package/lib/types/ink/termio/tokenize.js +10 -0
- package/lib/types/modelPrefs.d.ts +1 -1
- package/lib/types/modelPrefs.js +3 -3
- package/lib/types/presetPrefs.d.ts +1 -1
- package/lib/types/presetPrefs.js +3 -3
- package/lib/types/screens/Chat.d.ts +20 -4
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +655 -55
- package/lib/types/screens/StatusLine.d.ts +17 -2
- package/lib/types/screens/StatusLine.d.ts.map +1 -1
- package/lib/types/screens/StatusLine.js +12 -4
- package/lib/types/screens/TrajectoryScene.d.ts +16 -0
- package/lib/types/screens/TrajectoryScene.d.ts.map +1 -0
- package/lib/types/screens/TrajectoryScene.js +305 -0
- package/lib/types/sessionHistory.d.ts +9 -1
- package/lib/types/sessionHistory.d.ts.map +1 -1
- package/lib/types/sessionHistory.js +56 -16
- package/lib/types/sessionModes.d.ts +29 -0
- package/lib/types/sessionModes.d.ts.map +1 -0
- package/lib/types/sessionModes.js +45 -0
- package/lib/types/theme.d.ts +27 -3
- package/lib/types/theme.d.ts.map +1 -1
- package/lib/types/theme.js +48 -4
- package/lib/types/themePrefs.d.ts +3 -3
- package/lib/types/themePrefs.js +5 -5
- package/lib/types/trajectory/format.d.ts +100 -0
- package/lib/types/trajectory/format.d.ts.map +1 -0
- package/lib/types/trajectory/format.js +213 -0
- package/lib/types/trajectory/motion.d.ts +99 -0
- package/lib/types/trajectory/motion.d.ts.map +1 -0
- package/lib/types/trajectory/motion.js +143 -0
- package/lib/types/trajectory/query.d.ts +83 -0
- package/lib/types/trajectory/query.d.ts.map +1 -0
- package/lib/types/trajectory/query.js +187 -0
- package/lib/types/trajectoryPrefs.d.ts +36 -0
- package/lib/types/trajectoryPrefs.d.ts.map +1 -0
- package/lib/types/trajectoryPrefs.js +65 -0
- package/lib/types/update.d.ts +3 -3
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +18 -7
- package/lib/types/utils/clipboard.d.ts +101 -29
- package/lib/types/utils/clipboard.d.ts.map +1 -1
- package/lib/types/utils/clipboard.js +533 -55
- package/lib/types/utils/debug.d.ts +1 -1
- package/lib/types/utils/debug.js +2 -2
- package/lib/types/utils/execFileNoThrow.d.ts.map +1 -1
- package/lib/types/utils/execFileNoThrow.js +16 -6
- package/lib/types/utils/externalEditor.d.ts +115 -0
- package/lib/types/utils/externalEditor.d.ts.map +1 -0
- package/lib/types/utils/externalEditor.js +270 -0
- package/lib/types/utils/fullscreen.d.ts +2 -2
- package/lib/types/utils/fullscreen.js +3 -3
- package/lib/types/utils/loaded-context.d.ts +1 -1
- package/lib/types/utils/loaded-context.d.ts.map +1 -1
- package/lib/types/utils/modifiers.d.ts +24 -0
- package/lib/types/utils/modifiers.d.ts.map +1 -1
- package/lib/types/utils/modifiers.js +27 -0
- package/lib/types/utils/paths.d.ts +45 -0
- package/lib/types/utils/paths.d.ts.map +1 -0
- package/lib/types/utils/paths.js +69 -0
- package/lib/types/utils/shellQuote.d.ts +14 -0
- package/lib/types/utils/shellQuote.d.ts.map +1 -0
- package/lib/types/utils/shellQuote.js +39 -0
- package/lib/types/utils/workspaceRoot.d.ts +21 -0
- package/lib/types/utils/workspaceRoot.d.ts.map +1 -0
- package/lib/types/utils/workspaceRoot.js +47 -0
- package/lib/types/workspaces.d.ts +3 -0
- package/lib/types/workspaces.d.ts.map +1 -0
- package/lib/types/workspaces.js +4 -0
- package/package.json +26 -8
- package/lib/types/approvals.d.ts.map +0 -1
- package/lib/types/channel.d.ts.map +0 -1
- package/lib/types/childStderr.d.ts.map +0 -1
- package/lib/types/compat/index.d.ts +0 -20
- package/lib/types/compat/index.d.ts.map +0 -1
- package/lib/types/compat/sessionLog.d.ts +0 -40
- package/lib/types/compat/sessionLog.d.ts.map +0 -1
- package/lib/types/compat/sessionLog.js +0 -226
- package/lib/types/invariant.d.ts.map +0 -1
- package/lib/types/packaged-skills.d.ts.map +0 -1
- package/lib/types/plugin.d.ts.map +0 -1
- package/lib/types/presets.d.ts.map +0 -1
- package/lib/types/questions.d.ts.map +0 -1
- /package/lib/types/{approvals.d.ts → dsh-adapter/approvals.d.ts} +0 -0
- /package/lib/types/{approvals.js → dsh-adapter/approvals.js} +0 -0
- /package/lib/types/{childStderr.d.ts → dsh-adapter/childStderr.d.ts} +0 -0
- /package/lib/types/{invariant.d.ts → dsh-adapter/invariant.d.ts} +0 -0
- /package/lib/types/{invariant.js → dsh-adapter/invariant.js} +0 -0
- /package/lib/types/{packaged-skills.d.ts → dsh-adapter/packaged-skills.d.ts} +0 -0
- /package/lib/types/{packaged-skills.js → dsh-adapter/packaged-skills.js} +0 -0
- /package/lib/types/{presets.d.ts → dsh-adapter/presets.d.ts} +0 -0
- /package/lib/types/{presets.js → dsh-adapter/presets.js} +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** cmd.exe joins spawn arguments with spaces; quote anything that could split. */
|
|
2
|
+
export declare function shellQuote(args: readonly string[]): string[];
|
|
3
|
+
/** Escape a command path for a cmd.exe line: caret-escape metacharacters. */
|
|
4
|
+
export declare function cmdEscapeCommand(command: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Escape one argument for a cmd.exe line. Backslashes before a quote (or at
|
|
7
|
+
* the end, where our own closing quote will land) are doubled and the quote
|
|
8
|
+
* backslash-escaped so the target's argv parse keeps them literal; the whole
|
|
9
|
+
* argument is then quoted and every cmd metacharacter caret-escaped — twice
|
|
10
|
+
* when the command is a node_modules/.bin shim (those re-invoke node and
|
|
11
|
+
* parse the line a second time).
|
|
12
|
+
*/
|
|
13
|
+
export declare function cmdEscapeArgument(arg: string, doubleEscapeMetaChars?: boolean): string;
|
|
14
|
+
//# sourceMappingURL=shellQuote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shellQuote.d.ts","sourceRoot":"","sources":["../../../src/utils/shellQuote.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAE5D;AAeD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,qBAAqB,UAAQ,GAAG,MAAM,CAUpF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** cmd.exe joins spawn arguments with spaces; quote anything that could split. */
|
|
2
|
+
export function shellQuote(args) {
|
|
3
|
+
return args.map(arg => (/[ \t"^&|<>()]/.test(arg) ? `"${arg.replace(/"/g, '""')}"` : arg));
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* cmd.exe metacharacter escaping, vendored from cross-spawn@7
|
|
7
|
+
* (lib/util/escape.js, MIT © André Cruz et al.) — the ecosystem-standard
|
|
8
|
+
* answer to "run a .cmd/.bat through cmd.exe without the shell mangling
|
|
9
|
+
* paths that contain spaces, quotes, or metacharacters". See
|
|
10
|
+
* http://www.robvanderwoude.com/escapechars.php and https://qntm.org/cmd.
|
|
11
|
+
*
|
|
12
|
+
* The backslash/quote patterns use cross-spawn's post-CVE-2024-21538 forms
|
|
13
|
+
* (lookahead + backreference instead of a greedy star) so a pathological
|
|
14
|
+
* run of backslashes cannot hang the regex engine.
|
|
15
|
+
*/
|
|
16
|
+
const CMD_META_CHARS = /([()\][%!^"`<>&|;, *?])/g;
|
|
17
|
+
/** Escape a command path for a cmd.exe line: caret-escape metacharacters. */
|
|
18
|
+
export function cmdEscapeCommand(command) {
|
|
19
|
+
return command.replace(CMD_META_CHARS, '^$1');
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Escape one argument for a cmd.exe line. Backslashes before a quote (or at
|
|
23
|
+
* the end, where our own closing quote will land) are doubled and the quote
|
|
24
|
+
* backslash-escaped so the target's argv parse keeps them literal; the whole
|
|
25
|
+
* argument is then quoted and every cmd metacharacter caret-escaped — twice
|
|
26
|
+
* when the command is a node_modules/.bin shim (those re-invoke node and
|
|
27
|
+
* parse the line a second time).
|
|
28
|
+
*/
|
|
29
|
+
export function cmdEscapeArgument(arg, doubleEscapeMetaChars = false) {
|
|
30
|
+
let out = `${arg}`;
|
|
31
|
+
out = out.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
|
|
32
|
+
out = out.replace(/(?=(\\+?)?)\1$/, '$1$1');
|
|
33
|
+
out = `"${out}"`;
|
|
34
|
+
out = out.replace(CMD_META_CHARS, '^$1');
|
|
35
|
+
if (doubleEscapeMetaChars) {
|
|
36
|
+
out = out.replace(CMD_META_CHARS, '^$1');
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session working-directory resolution (issue #96, bug 2).
|
|
3
|
+
*
|
|
4
|
+
* The bare `process.cwd()` default made `@` file completion, mention
|
|
5
|
+
* expansion, and the statusline all relative to wherever `dsh` happened to
|
|
6
|
+
* be launched — launching from a repo SUBDIRECTORY listed that subdirectory
|
|
7
|
+
* instead of the repository the user is working in. The default now walks
|
|
8
|
+
* up from the launch directory to the nearest git worktree root (the
|
|
9
|
+
* workspace a coding agent is expected to operate on, Codex-style), falling
|
|
10
|
+
* back to the launch directory itself outside any worktree. An explicit
|
|
11
|
+
* cordis.yml `cwd` always wins.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Resolve the session cwd: an explicit `configured` value wins (resolved
|
|
15
|
+
* against the launch directory); otherwise the nearest ancestor of `start`
|
|
16
|
+
* containing a `.git` entry — a DIRECTORY for a plain clone, a FILE for a
|
|
17
|
+
* linked worktree or submodule — and `start` itself when no worktree
|
|
18
|
+
* encloses it.
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveSessionCwd(configured: string | undefined, start?: string): string;
|
|
21
|
+
//# sourceMappingURL=workspaceRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaceRoot.d.ts","sourceRoot":"","sources":["../../../src/utils/workspaceRoot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,KAAK,GAAE,MAAsB,GAC5B,MAAM,CAGR"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session working-directory resolution (issue #96, bug 2).
|
|
3
|
+
*
|
|
4
|
+
* The bare `process.cwd()` default made `@` file completion, mention
|
|
5
|
+
* expansion, and the statusline all relative to wherever `dsh` happened to
|
|
6
|
+
* be launched — launching from a repo SUBDIRECTORY listed that subdirectory
|
|
7
|
+
* instead of the repository the user is working in. The default now walks
|
|
8
|
+
* up from the launch directory to the nearest git worktree root (the
|
|
9
|
+
* workspace a coding agent is expected to operate on, Codex-style), falling
|
|
10
|
+
* back to the launch directory itself outside any worktree. An explicit
|
|
11
|
+
* cordis.yml `cwd` always wins.
|
|
12
|
+
*/
|
|
13
|
+
import { existsSync } from 'node:fs';
|
|
14
|
+
import { homedir } from 'node:os';
|
|
15
|
+
import { dirname, join, resolve } from 'node:path';
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the session cwd: an explicit `configured` value wins (resolved
|
|
18
|
+
* against the launch directory); otherwise the nearest ancestor of `start`
|
|
19
|
+
* containing a `.git` entry — a DIRECTORY for a plain clone, a FILE for a
|
|
20
|
+
* linked worktree or submodule — and `start` itself when no worktree
|
|
21
|
+
* encloses it.
|
|
22
|
+
*/
|
|
23
|
+
export function resolveSessionCwd(configured, start = process.cwd()) {
|
|
24
|
+
if (configured !== undefined && configured !== '')
|
|
25
|
+
return resolve(configured);
|
|
26
|
+
return gitWorktreeRoot(start) ?? start;
|
|
27
|
+
}
|
|
28
|
+
/** Nearest ancestor of `start` (itself included) that is a git worktree root. */
|
|
29
|
+
function gitWorktreeRoot(start) {
|
|
30
|
+
let dir = resolve(start);
|
|
31
|
+
const home = homedir();
|
|
32
|
+
for (;;) {
|
|
33
|
+
// Dotfiles guard: a ~/.git (dotfiles management repo) must NOT promote
|
|
34
|
+
// the whole home directory to the workspace — /resume would list every
|
|
35
|
+
// session ever recorded under $HOME and @ completion would widen just
|
|
36
|
+
// as far. Stop the climb at home entirely: a worktree above $HOME is
|
|
37
|
+
// never a sensible session root either (review leftover).
|
|
38
|
+
if (dir === home)
|
|
39
|
+
return undefined;
|
|
40
|
+
if (existsSync(join(dir, '.git')))
|
|
41
|
+
return dir;
|
|
42
|
+
const parent = dirname(dir);
|
|
43
|
+
if (parent === dir)
|
|
44
|
+
return undefined;
|
|
45
|
+
dir = parent;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/workspaces.ts"],"names":[],"mappings":"AAEA,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-harness-tui/dsh-tui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Claude Code style interactive TUI front door for DeepSeek Harness agents, built on the ported Ink core.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,8 +29,16 @@
|
|
|
29
29
|
"types": "./lib/types/working-activity.d.ts",
|
|
30
30
|
"import": "./lib/types/working-activity.js"
|
|
31
31
|
},
|
|
32
|
+
"./workspaces": {
|
|
33
|
+
"types": "./lib/types/workspaces.d.ts",
|
|
34
|
+
"import": "./lib/types/workspaces.js"
|
|
35
|
+
},
|
|
36
|
+
"./command-trees": {
|
|
37
|
+
"types": "./lib/types/command-trees.d.ts",
|
|
38
|
+
"import": "./lib/types/command-trees.js"
|
|
39
|
+
},
|
|
32
40
|
"./invariant": {
|
|
33
|
-
"types": "./lib/types/invariant.d.ts",
|
|
41
|
+
"types": "./lib/types/dsh-adapter/invariant.d.ts",
|
|
34
42
|
"default": "./lib/invariant.js"
|
|
35
43
|
},
|
|
36
44
|
"./cordis.patch.yml": "./cordis.patch.yml",
|
|
@@ -63,6 +71,9 @@
|
|
|
63
71
|
"@deepseek-ai/dsh-persona": "^0.1.0-rc.6",
|
|
64
72
|
"@deepseek-ai/dsh-session": "^0.1.0-rc.6",
|
|
65
73
|
"@deepseek-ai/dsh-skill": "^0.1.0-rc.6",
|
|
74
|
+
"@deepseek-ai/dsh-storage": "^0.1.0-rc.6",
|
|
75
|
+
"@deepseek-ai/dsh-storage-domain": "^0.1.0-rc.6",
|
|
76
|
+
"@deepseek-ai/dsh-storage-json": "^0.1.0-rc.6",
|
|
66
77
|
"@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.6",
|
|
67
78
|
"@deepseek-ai/dsh-terminal": "^0.1.0-rc.6",
|
|
68
79
|
"@deepseek-ai/dsh-terminal-bash": "^0.1.0-rc.6",
|
|
@@ -71,6 +82,7 @@
|
|
|
71
82
|
"@deepseek-ai/dsh-tool-cordis": "^0.1.0-rc.6",
|
|
72
83
|
"@deepseek-ai/dsh-user-approval": "^0.1.0-rc.6",
|
|
73
84
|
"@deepseek-ai/dsh-user-questions": "^0.1.0-rc.6",
|
|
85
|
+
"@deepseek-ai/dsh-workspace": "^0.1.0-rc.6",
|
|
74
86
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
75
87
|
"auto-bind": "^4.0.0 || ^5.0.0",
|
|
76
88
|
"bidi-js": "^1.0.0",
|
|
@@ -78,7 +90,7 @@
|
|
|
78
90
|
"cli-boxes": "^3.0.0 || ^4.0.0",
|
|
79
91
|
"cli-highlight": "^2.1.11",
|
|
80
92
|
"code-excerpt": "^3.0.0 || ^4.0.0",
|
|
81
|
-
"dsh-working-activity": "^0.2.
|
|
93
|
+
"dsh-working-activity": "^0.2.4",
|
|
82
94
|
"emoji-regex": "^10.0.0",
|
|
83
95
|
"figures": "^6.1.0",
|
|
84
96
|
"get-east-asian-width": "^1.0.0",
|
|
@@ -108,18 +120,19 @@
|
|
|
108
120
|
"@deepseek-ai/dsh-fs": "^0.1.0-rc.6",
|
|
109
121
|
"@deepseek-ai/dsh-home-paths": "^0.1.0-rc.6",
|
|
110
122
|
"@deepseek-ai/dsh-invariants": "^0.1.0-rc.6",
|
|
111
|
-
"@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.0-rc.6",
|
|
112
|
-
"@deepseek-ai/dsh-session-persistence-sqlite": "^0.1.0-rc.6",
|
|
113
123
|
"@deepseek-ai/dsh-sandbox": "^0.1.0-rc.6",
|
|
114
124
|
"@deepseek-ai/dsh-sandbox-policy": "^0.1.0-rc.6",
|
|
115
125
|
"@deepseek-ai/dsh-scope": "^0.1.0-rc.6",
|
|
116
126
|
"@deepseek-ai/dsh-session-persistence": "^0.1.0-rc.6",
|
|
127
|
+
"@deepseek-ai/dsh-session-persistence-jsonl": "^0.1.0-rc.6",
|
|
128
|
+
"@deepseek-ai/dsh-session-persistence-sqlite": "^0.1.0-rc.6",
|
|
117
129
|
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6",
|
|
118
130
|
"@deepseek-ai/dsh-subprocess": "^0.1.0-rc.6",
|
|
119
131
|
"@deepseek-ai/dsh-timeout": "^0.1.0-rc.6",
|
|
120
132
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
121
133
|
"@deepseek-ai/dsh-typert-protocol": "^0.1.0-rc.6",
|
|
122
134
|
"@deepseek-ai/dsh-user-approval": "^0.1.0-rc.6",
|
|
135
|
+
"@deepseek-ai/dsh-web-app": "0.1.0-rc.6",
|
|
123
136
|
"@types/lodash-es": "^4.17.0",
|
|
124
137
|
"@types/node": "^22.0.0",
|
|
125
138
|
"@types/react": "^19.0.0",
|
|
@@ -127,7 +140,8 @@
|
|
|
127
140
|
"@types/semver": "^7.0.0",
|
|
128
141
|
"@xterm/headless": "^6.0.0",
|
|
129
142
|
"tsx": "^4.0.0",
|
|
130
|
-
"typescript": "^6.0.3"
|
|
143
|
+
"typescript": "^6.0.3",
|
|
144
|
+
"yaml": "^2.9.0"
|
|
131
145
|
},
|
|
132
146
|
"dsh": {
|
|
133
147
|
"bundle": {
|
|
@@ -135,8 +149,12 @@
|
|
|
135
149
|
}
|
|
136
150
|
},
|
|
137
151
|
"scripts": {
|
|
138
|
-
"build": "tsc -p tsconfig.json",
|
|
152
|
+
"build": "tsc -p tsconfig.json && node --import tsx/esm scripts/verify-adapter-boundary.ts && node --import tsx/esm scripts/verify-upstream-contract.ts && node --import tsx/esm scripts/verify-patch-surface.ts",
|
|
139
153
|
"tui": "node --import tsx/esm scripts/run.ts",
|
|
140
|
-
"smoke": "node --import tsx/esm scripts/smoke.tsx"
|
|
154
|
+
"smoke": "node --import tsx/esm scripts/smoke.tsx",
|
|
155
|
+
"verify:boundary": "node --import tsx/esm scripts/verify-adapter-boundary.ts",
|
|
156
|
+
"verify:contract": "node --import tsx/esm scripts/verify-upstream-contract.ts",
|
|
157
|
+
"verify:patch-surface": "node --import tsx/esm scripts/verify-patch-surface.ts",
|
|
158
|
+
"verify:clipboard-image": "node --import tsx/esm scripts/verify-clipboard-image.ts"
|
|
141
159
|
}
|
|
142
160
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../../src/approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGtF,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AA0CD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,GAAG,CAAI;IACf;;;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,OAAO,CAAC,IAAI;IAIZ,gEAAgE;IAChE,OAAO,CAAC,eAAe;IAOvB;;;;;;OAMG;IACH,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IA8BpD,8CAA8C;IAC9C,OAAO,CAAC,SAAS;IAOjB;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,GAAG,IAAI;IAUlD;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;CAQ1C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"childStderr.d.ts","sourceRoot":"","sources":["../../src/childStderr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAsDH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CA8BhF;AAED,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAChG;AAED,MAAM,WAAW,0BAA0B;IACzC,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yFAAyF;IACzF,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,gCAAgC;IAChC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,iDAAiD;IACjD,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,CA4CrB"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compat boundary — every inelegant patch aimed at the harness core lives
|
|
3
|
-
* here, behind one import seam, so the render/interaction code stays clean.
|
|
4
|
-
*
|
|
5
|
-
* House rules for modules in this directory:
|
|
6
|
-
* - Each patch carries its own capability probe and self-disables or
|
|
7
|
-
* degrades to pre-patch behavior when upstream absorbs the quirk.
|
|
8
|
-
* - A patch must never throw into the caller: failure means "act as if the
|
|
9
|
-
* patch did not exist".
|
|
10
|
-
* - A patch states plainly which upstream change would retire it.
|
|
11
|
-
*
|
|
12
|
-
* Current residents:
|
|
13
|
-
* - sessionLog: marks third-party session-event types `ignorable` before
|
|
14
|
-
* resume, retiring the day `session.append` exposes `ignorable` or the
|
|
15
|
-
* types enter KNOWN_SESSION_EVENT_TYPES upstream.
|
|
16
|
-
* @module @deepseek-harness-tui/dsh-tui/compat
|
|
17
|
-
*/
|
|
18
|
-
export { prepareSessionForResume, readSessionTitleFromLog, repairSessionLogForResume } from './sessionLog.js';
|
|
19
|
-
export type { ResumeRepairOutcome } from './sessionLog.js';
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compat/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC7G,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/** Repair outcomes, surfaced for regression assertions and debug logging. */
|
|
2
|
-
export type ResumeRepairOutcome = 'repaired' | 'clean' | 'unavailable';
|
|
3
|
-
/**
|
|
4
|
-
* Repair one session's persisted log ahead of `agents.resume`: mark every
|
|
5
|
-
* event whose type is absent from KNOWN_SESSION_EVENT_TYPES as
|
|
6
|
-
* `ignorable: true` (envelope-legal, read path skips it). Never throws.
|
|
7
|
-
* @param sessionId - Session about to be resumed.
|
|
8
|
-
* @returns The repair outcome; 'unavailable' leaves the file untouched.
|
|
9
|
-
*/
|
|
10
|
-
export declare function repairSessionLogForResume(sessionId: string): ResumeRepairOutcome;
|
|
11
|
-
/**
|
|
12
|
-
* Read a session's display title from its persisted log, tolerantly.
|
|
13
|
-
*
|
|
14
|
-
* Why not `persistence.load()`: the backend validates every event against
|
|
15
|
-
* KNOWN_SESSION_EVENT_TYPES and throws the WHOLE load when a third-party
|
|
16
|
-
* plugin wrote an unmarked unknown type (e.g. activity/status before the
|
|
17
|
-
* resume repair touched it) — which is exactly why pickers fell back to the
|
|
18
|
-
* cwd basename for every working-activity session. A picker label is
|
|
19
|
-
* read-only UI state: decoding frames directly here keeps titles working
|
|
20
|
-
* for logs the strict path refuses, now and for future plugin event types.
|
|
21
|
-
*
|
|
22
|
-
* Title precedence: the LAST `session/title` event wins (a /rename append
|
|
23
|
-
* overrides the first-prompt auto title), falling back to the first user
|
|
24
|
-
* message text. `hasUserMessage` drives the picker's launch-artifact filter.
|
|
25
|
-
* @param sessionId - Session whose log should be read.
|
|
26
|
-
* @returns The title info, or undefined when the log is absent/undecodable.
|
|
27
|
-
*/
|
|
28
|
-
export declare function readSessionTitleFromLog(sessionId: string): {
|
|
29
|
-
title?: string;
|
|
30
|
-
hasUserMessage: boolean;
|
|
31
|
-
} | undefined;
|
|
32
|
-
/**
|
|
33
|
-
* Compat entry for the resume path: repair the target session's log, then
|
|
34
|
-
* let resume proceed regardless of outcome. Never throws, never blocks on
|
|
35
|
-
* anything but one small file — a repair miss degrades to the exact
|
|
36
|
-
* pre-patch behavior (resume may still succeed or fail as before).
|
|
37
|
-
* @param sessionId - Session about to be resumed.
|
|
38
|
-
*/
|
|
39
|
-
export declare function prepareSessionForResume(sessionId: string): Promise<void>;
|
|
40
|
-
//# sourceMappingURL=sessionLog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sessionLog.d.ts","sourceRoot":"","sources":["../../../src/compat/sessionLog.ts"],"names":[],"mappings":"AAiCA,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAC3B,UAAU,GACV,OAAO,GACP,aAAa,CAAA;AA4EjB;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAsChF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CA2BzD;AAyBD;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E"}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Compat patch: pre-resume session-log repair for third-party event types.
|
|
3
|
-
*
|
|
4
|
-
* Background: plugins like dsh-working-activity append `activity/status`
|
|
5
|
-
* through `session.append`, but rc.6's append exposes no `ignorable` flag
|
|
6
|
-
* and the type is absent from KNOWN_SESSION_EVENT_TYPES — so resume's seed
|
|
7
|
-
* validation rejects the WHOLE session ("unknown to this harness and not
|
|
8
|
-
* marked ignorable"). The event envelope legally accepts `ignorable: true`
|
|
9
|
-
* (seed validator at dsh-session/lib), which tells the read path to skip
|
|
10
|
-
* the event: exactly the right semantics for ephemeral UI frames.
|
|
11
|
-
*
|
|
12
|
-
* This patch repairs the target session's jsonl.zstd log in place before
|
|
13
|
-
* `agents.resume`: every event whose type is unknown to the harness gets
|
|
14
|
-
* `ignorable: true`. It is inherently self-adjusting — the capability probe
|
|
15
|
-
* IS the known-types list, so types upstream later adopts stop being
|
|
16
|
-
* marked, and already-known events are never touched.
|
|
17
|
-
*
|
|
18
|
-
* Storage notes: the jsonl persistence flushes by APPENDING zstd frames, so
|
|
19
|
-
* the file is a concatenation of frames. Frame layout is load-bearing: the
|
|
20
|
-
* backend asserts frame 0 holds EXACTLY the header line (listings read only
|
|
21
|
-
* that frame; `assertZstdHeaderFrame`), so the repair re-encodes each frame
|
|
22
|
-
* with its original line set — frame boundaries are preserved 1:1, and any
|
|
23
|
-
* frame whose lines were untouched is copied verbatim. Any decode/parse
|
|
24
|
-
* anomaly aborts the repair and resume proceeds unpatched — the failure
|
|
25
|
-
* mode degrades to the pre-patch behavior.
|
|
26
|
-
* @module @deepseek-harness-tui/dsh-tui/compat/sessionLog
|
|
27
|
-
*/
|
|
28
|
-
import { KNOWN_SESSION_EVENT_TYPES } from '@deepseek-ai/dsh-session';
|
|
29
|
-
import { randomUUID } from 'node:crypto';
|
|
30
|
-
import { existsSync, readdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
31
|
-
import { join } from 'node:path';
|
|
32
|
-
import { zstdCompressSync, zstdDecompressSync } from 'node:zlib';
|
|
33
|
-
/** Zstd frame magic number, little-endian (0xFD2FB528). */
|
|
34
|
-
const ZSTD_MAGIC = 0xfd2fb528;
|
|
35
|
-
/**
|
|
36
|
-
* Session-log storage root, mirroring the persistence plugin's `root`
|
|
37
|
-
* resolution in cordis.yml: DSH_CC_SESSION_ROOT, else ~/.dsh-cc/sessions.
|
|
38
|
-
*/
|
|
39
|
-
function sessionsRoot() {
|
|
40
|
-
const home = process.env.USERPROFILE ?? process.env.HOME ?? '';
|
|
41
|
-
return process.env.DSH_CC_SESSION_ROOT ?? join(home, '.dsh-cc', 'sessions');
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Locate a session's log by scanning workspace directories for the session
|
|
45
|
-
* id — deliberately NOT replicating the persistence plugin's workspace-key
|
|
46
|
-
* sanitization, so the repair survives upstream key-scheme changes.
|
|
47
|
-
* @param sessionId - Session id (directory name under each workspace dir).
|
|
48
|
-
* @returns Absolute path of session.jsonl.zstd, or undefined when absent.
|
|
49
|
-
*/
|
|
50
|
-
function findSessionLogFile(sessionId) {
|
|
51
|
-
const root = sessionsRoot();
|
|
52
|
-
let workspaces;
|
|
53
|
-
try {
|
|
54
|
-
workspaces = readdirSync(root);
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
for (const ws of workspaces) {
|
|
60
|
-
const candidate = join(root, ws, sessionId, 'session.jsonl.zstd');
|
|
61
|
-
if (existsSync(candidate))
|
|
62
|
-
return candidate;
|
|
63
|
-
}
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Decode a (possibly multi-frame) zstd jsonl log, keeping frames separate.
|
|
68
|
-
* Frames are split by magic scan; any frame failing to decode or any line
|
|
69
|
-
* failing to parse throws, so callers abort instead of rewriting a log they
|
|
70
|
-
* did not fully understand.
|
|
71
|
-
* @param buf - Raw file bytes.
|
|
72
|
-
* @returns Per-frame byte spans and parsed event envelopes, in log order.
|
|
73
|
-
*/
|
|
74
|
-
function decodeFrames(buf) {
|
|
75
|
-
const offsets = [];
|
|
76
|
-
for (let i = 0; i + 4 <= buf.length; i++) {
|
|
77
|
-
if (buf.readUInt32LE(i) === ZSTD_MAGIC)
|
|
78
|
-
offsets.push(i);
|
|
79
|
-
}
|
|
80
|
-
if (offsets.length === 0)
|
|
81
|
-
throw new Error('no zstd frame found');
|
|
82
|
-
return offsets.map((start, i) => {
|
|
83
|
-
const end = i + 1 < offsets.length ? offsets[i + 1] : buf.length;
|
|
84
|
-
const raw = buf.subarray(start, end);
|
|
85
|
-
const text = zstdDecompressSync(raw).toString('utf8');
|
|
86
|
-
const events = text
|
|
87
|
-
.split('\n')
|
|
88
|
-
.filter((line) => line.length > 0)
|
|
89
|
-
.map((line) => {
|
|
90
|
-
const parsed = JSON.parse(line);
|
|
91
|
-
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
92
|
-
throw new Error('session log line is not an event envelope');
|
|
93
|
-
}
|
|
94
|
-
return parsed;
|
|
95
|
-
});
|
|
96
|
-
return { raw, events };
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Repair one session's persisted log ahead of `agents.resume`: mark every
|
|
101
|
-
* event whose type is absent from KNOWN_SESSION_EVENT_TYPES as
|
|
102
|
-
* `ignorable: true` (envelope-legal, read path skips it). Never throws.
|
|
103
|
-
* @param sessionId - Session about to be resumed.
|
|
104
|
-
* @returns The repair outcome; 'unavailable' leaves the file untouched.
|
|
105
|
-
*/
|
|
106
|
-
export function repairSessionLogForResume(sessionId) {
|
|
107
|
-
try {
|
|
108
|
-
const file = findSessionLogFile(sessionId);
|
|
109
|
-
if (file === undefined)
|
|
110
|
-
return 'unavailable';
|
|
111
|
-
const frames = decodeFrames(readFileSync(file));
|
|
112
|
-
// Mark unknown types in place, tracking which frames actually changed:
|
|
113
|
-
// untouched frames are copied back verbatim, so the header frame keeps
|
|
114
|
-
// its exact original bytes (and the one-header-line invariant with it).
|
|
115
|
-
const dirty = new Set();
|
|
116
|
-
frames.forEach((frame, index) => {
|
|
117
|
-
for (const event of frame.events) {
|
|
118
|
-
const type = event['type'];
|
|
119
|
-
// Only real log entries carry a numeric seq — the seq-less header row
|
|
120
|
-
// is parsed by a separate path that must not see an extra field.
|
|
121
|
-
if (typeof type === 'string' &&
|
|
122
|
-
typeof event['seq'] === 'number' &&
|
|
123
|
-
!KNOWN_SESSION_EVENT_TYPES.has(type) &&
|
|
124
|
-
event['ignorable'] === undefined) {
|
|
125
|
-
event['ignorable'] = true;
|
|
126
|
-
dirty.add(index);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
if (dirty.size === 0)
|
|
131
|
-
return 'clean';
|
|
132
|
-
const parts = frames.map((frame, index) => {
|
|
133
|
-
if (!dirty.has(index))
|
|
134
|
-
return frame.raw;
|
|
135
|
-
const payload = frame.events.map((event) => JSON.stringify(event)).join('\n') + '\n';
|
|
136
|
-
return zstdCompressSync(Buffer.from(payload, 'utf8'));
|
|
137
|
-
});
|
|
138
|
-
const tmp = `${file}.compat-${randomUUID()}.tmp`;
|
|
139
|
-
writeFileSync(tmp, Buffer.concat(parts));
|
|
140
|
-
renameSync(tmp, file);
|
|
141
|
-
return 'repaired';
|
|
142
|
-
}
|
|
143
|
-
catch {
|
|
144
|
-
return 'unavailable';
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Read a session's display title from its persisted log, tolerantly.
|
|
149
|
-
*
|
|
150
|
-
* Why not `persistence.load()`: the backend validates every event against
|
|
151
|
-
* KNOWN_SESSION_EVENT_TYPES and throws the WHOLE load when a third-party
|
|
152
|
-
* plugin wrote an unmarked unknown type (e.g. activity/status before the
|
|
153
|
-
* resume repair touched it) — which is exactly why pickers fell back to the
|
|
154
|
-
* cwd basename for every working-activity session. A picker label is
|
|
155
|
-
* read-only UI state: decoding frames directly here keeps titles working
|
|
156
|
-
* for logs the strict path refuses, now and for future plugin event types.
|
|
157
|
-
*
|
|
158
|
-
* Title precedence: the LAST `session/title` event wins (a /rename append
|
|
159
|
-
* overrides the first-prompt auto title), falling back to the first user
|
|
160
|
-
* message text. `hasUserMessage` drives the picker's launch-artifact filter.
|
|
161
|
-
* @param sessionId - Session whose log should be read.
|
|
162
|
-
* @returns The title info, or undefined when the log is absent/undecodable.
|
|
163
|
-
*/
|
|
164
|
-
export function readSessionTitleFromLog(sessionId) {
|
|
165
|
-
try {
|
|
166
|
-
const file = findSessionLogFile(sessionId);
|
|
167
|
-
if (file === undefined)
|
|
168
|
-
return undefined;
|
|
169
|
-
const frames = decodeFrames(readFileSync(file));
|
|
170
|
-
let titled;
|
|
171
|
-
let firstUser;
|
|
172
|
-
let hasUserMessage = false;
|
|
173
|
-
for (const frame of frames) {
|
|
174
|
-
for (const event of frame.events) {
|
|
175
|
-
if (event['type'] === 'session/title') {
|
|
176
|
-
const title = event['data']?.['title'];
|
|
177
|
-
if (typeof title === 'string' && title.trim().length > 0)
|
|
178
|
-
titled = title;
|
|
179
|
-
}
|
|
180
|
-
else if (event['type'] === 'user/message') {
|
|
181
|
-
hasUserMessage = true;
|
|
182
|
-
if (firstUser === undefined) {
|
|
183
|
-
firstUser = firstTextOfContent(event['data']?.['content']);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return { title: titled ?? firstUser, hasUserMessage };
|
|
189
|
-
}
|
|
190
|
-
catch {
|
|
191
|
-
return undefined;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Extract the first text block from a user/message `content` payload.
|
|
196
|
-
* Content is normally a block array; a bare string is accepted defensively.
|
|
197
|
-
* @param content - The event's content field.
|
|
198
|
-
* @returns The trimmed text, or undefined when no text block exists.
|
|
199
|
-
*/
|
|
200
|
-
function firstTextOfContent(content) {
|
|
201
|
-
if (typeof content === 'string')
|
|
202
|
-
return content.trim() || undefined;
|
|
203
|
-
if (!Array.isArray(content))
|
|
204
|
-
return undefined;
|
|
205
|
-
for (const block of content) {
|
|
206
|
-
if (block !== null &&
|
|
207
|
-
typeof block === 'object' &&
|
|
208
|
-
block.type === 'text' &&
|
|
209
|
-
typeof block.text === 'string') {
|
|
210
|
-
const text = (block.text).trim();
|
|
211
|
-
if (text.length > 0)
|
|
212
|
-
return text;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return undefined;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Compat entry for the resume path: repair the target session's log, then
|
|
219
|
-
* let resume proceed regardless of outcome. Never throws, never blocks on
|
|
220
|
-
* anything but one small file — a repair miss degrades to the exact
|
|
221
|
-
* pre-patch behavior (resume may still succeed or fail as before).
|
|
222
|
-
* @param sessionId - Session about to be resumed.
|
|
223
|
-
*/
|
|
224
|
-
export async function prepareSessionForResume(sessionId) {
|
|
225
|
-
repairSessionLogForResume(sessionId);
|
|
226
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"invariant.d.ts","sourceRoot":"","sources":["../../src/invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,oCAAoC;AACpC,eAAO,MAAM,IAAI,sBAAsB,CAAA;AACvC,2EAA2E;AAC3E,eAAO,MAAM,MAAM,UAAiB,CAAA;AASpC;;;;GAIG;AACH,eAAO,MAAM,KAAK,GAAI,KAAK,OAAO,KAAG,OAAO,CAAC,MAAM,IAAI,CACU,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packaged-skills.d.ts","sourceRoot":"","sources":["../../src/packaged-skills.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AA+BlD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAqBzD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAmBnC;;;;;;;;GAQG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuTvE;AAyGD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GAAG;IACjF,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB,CAcA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGzD,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,IAAI,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAAA;IAC3C,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC9C,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC/D,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAClE,yEAAyE;IACzE,UAAU,CAAC,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,OAAO,CAAA;KAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAEnE;AAED,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAA;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmBhG;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqB5G;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAChC,MAAM,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CACnD,GAAG,MAAM,GAAG,SAAS,CAErB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAKpG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/questions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,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;AAgBD,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;CAC1B;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAClC;AAiCD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAI;IACpB,yEAAyE;IACzE,OAAO,CAAC,SAAS,CAAwB;IACzC;;;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;;;OAGG;IACH,aAAa,IAAI,eAAe,EAAE;IAMlC,OAAO,CAAC,IAAI;IAIZ,sEAAsE;IACtE,OAAO,CAAC,eAAe;IAgBvB;;;;;;OAMG;IACH,GAAG,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA6BpE,8CAA8C;IAC9C,OAAO,CAAC,SAAS;IAOjB;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAwBjD,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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|