@deepseek-harness-tui/dsh-tui 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -5
- package/guide/dsh-tui-guide/codex-backend.en.md +13 -3
- package/guide/dsh-tui-guide/codex-backend.md +9 -2
- package/guide/dsh-tui-guide/configuration.en.md +39 -2
- package/guide/dsh-tui-guide/configuration.md +34 -2
- package/guide/dsh-tui-guide/getting-started.en.md +15 -0
- package/guide/dsh-tui-guide/getting-started.md +15 -0
- package/guide/dsh-tui-guide/interaction.en.md +8 -1
- package/guide/dsh-tui-guide/interaction.md +8 -1
- package/guide/dsh-tui-guide/plugins.en.md +66 -5
- package/guide/dsh-tui-guide/plugins.md +37 -3
- package/guide/dsh-tui-guide/user-guide.en.md +3 -2
- package/guide/dsh-tui-guide/user-guide.md +3 -2
- package/lib/settings.json +1 -1
- package/lib/types/adapter/channel/projection.d.ts.map +1 -1
- package/lib/types/adapter/channel/projection.js +1 -0
- package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
- package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
- package/lib/types/adapter/channel/ui-policy.js +1 -0
- package/lib/types/adapter/ports/channel-catalog.d.ts +5 -1
- package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-settings.d.ts +5 -3
- package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-ui.d.ts +7 -1
- package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel-view.d.ts +47 -0
- package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
- package/lib/types/adapter/ports/channel.d.ts +2 -0
- package/lib/types/adapter/ports/channel.d.ts.map +1 -1
- package/lib/types/agent/events.d.ts +3 -2
- package/lib/types/agent/events.d.ts.map +1 -1
- package/lib/types/backends/codex/contract.d.ts +3 -0
- package/lib/types/backends/codex/contract.d.ts.map +1 -1
- package/lib/types/backends/codex/contract.js +3 -0
- package/lib/types/backends/codex/session/async-questions.d.ts +17 -0
- package/lib/types/backends/codex/session/async-questions.d.ts.map +1 -0
- package/lib/types/backends/codex/session/async-questions.js +89 -0
- package/lib/types/backends/codex/session/session.d.ts.map +1 -1
- package/lib/types/backends/codex/session/session.js +35 -9
- package/lib/types/backends/codex/text.d.ts +3 -3
- package/lib/types/backends/codex/text.js +1 -1
- package/lib/types/backends/codex/translate/items.d.ts.map +1 -1
- package/lib/types/backends/codex/translate/items.js +3 -1
- package/lib/types/backends/codex/translate/question-reply.d.ts +11 -0
- package/lib/types/backends/codex/translate/question-reply.d.ts.map +1 -0
- package/lib/types/backends/codex/translate/question-reply.js +53 -0
- package/lib/types/channel/projection.d.ts.map +1 -1
- package/lib/types/channel/projection.js +10 -0
- package/lib/types/commands.d.ts +10 -0
- package/lib/types/commands.d.ts.map +1 -1
- package/lib/types/commands.js +11 -2
- package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
- package/lib/types/components/CommandSuggestions.js +4 -1
- package/lib/types/components/LogoV2.d.ts +4 -1
- package/lib/types/components/LogoV2.d.ts.map +1 -1
- package/lib/types/components/LogoV2.js +5 -3
- package/lib/types/components/MessageList.d.ts.map +1 -1
- package/lib/types/components/MessageList.js +95 -14
- package/lib/types/components/PermissionsPicker.d.ts +10 -1
- package/lib/types/components/PermissionsPicker.d.ts.map +1 -1
- package/lib/types/components/PermissionsPicker.js +24 -16
- package/lib/types/components/PluginInstallPane.d.ts +21 -0
- package/lib/types/components/PluginInstallPane.d.ts.map +1 -0
- package/lib/types/components/PluginInstallPane.js +84 -0
- package/lib/types/components/PluginManagePane.d.ts +21 -0
- package/lib/types/components/PluginManagePane.d.ts.map +1 -0
- package/lib/types/components/PluginManagePane.js +69 -0
- package/lib/types/components/PromptInput.d.ts.map +1 -1
- package/lib/types/components/PromptInput.js +7 -3
- package/lib/types/components/SubagentCard.d.ts +13 -1
- package/lib/types/components/SubagentCard.d.ts.map +1 -1
- package/lib/types/components/SubagentCard.js +27 -12
- package/lib/types/components/SubagentDashboard.d.ts +8 -1
- package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
- package/lib/types/components/SubagentDashboard.js +58 -16
- package/lib/types/components/launchpadLayout.d.ts +14 -1
- package/lib/types/components/launchpadLayout.d.ts.map +1 -1
- package/lib/types/components/launchpadLayout.js +36 -17
- package/lib/types/components/messages/TeamMessageBubble.d.ts +20 -0
- package/lib/types/components/messages/TeamMessageBubble.d.ts.map +1 -0
- package/lib/types/components/messages/TeamMessageBubble.js +15 -0
- package/lib/types/components/sidePanel/PanelHost.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelHost.js +5 -1
- package/lib/types/components/sidePanel/PanelStore.d.ts +8 -0
- package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
- package/lib/types/components/sidePanel/PanelStore.js +11 -0
- package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelColumn.js +13 -1
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts +7 -0
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.d.ts.map +1 -1
- package/lib/types/components/sidePanel/SidePanelRuntimeContext.js +4 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +3 -0
- package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwComposer.js +20 -8
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +2 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +104 -13
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +6 -2
- package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadScene.js +61 -15
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +14 -4
- package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/BtwThreadView.js +90 -5
- package/lib/types/components/sidePanel/btw/threads.d.ts +18 -0
- package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -1
- package/lib/types/components/sidePanel/btw/threads.js +51 -0
- package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
- package/lib/types/components/sidePanel/builtinPanels.js +5 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts +5 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/SplashMascot.js +19 -4
- package/lib/types/components/sidePanel/companion/skins.d.ts +8 -0
- package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
- package/lib/types/components/sidePanel/companion/skins.js +57 -12
- package/lib/types/components/sidePanel/types.d.ts +6 -0
- package/lib/types/components/sidePanel/types.d.ts.map +1 -1
- package/lib/types/components/splashArtRows.d.ts +29 -0
- package/lib/types/components/splashArtRows.d.ts.map +1 -0
- package/lib/types/components/splashArtRows.js +31 -0
- package/lib/types/components/teamRoster.d.ts +70 -0
- package/lib/types/components/teamRoster.d.ts.map +1 -0
- package/lib/types/components/teamRoster.js +78 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts +82 -0
- package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -1
- package/lib/types/dsh-adapter/admission-loader.js +73 -28
- package/lib/types/dsh-adapter/agent-view.d.ts.map +1 -1
- package/lib/types/dsh-adapter/agent-view.js +3 -1
- package/lib/types/dsh-adapter/approvals.d.ts +7 -0
- package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
- package/lib/types/dsh-adapter/approvals.js +45 -1
- package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend/translate.js +68 -8
- package/lib/types/dsh-adapter/backend-assembly.d.ts +31 -0
- package/lib/types/dsh-adapter/backend-assembly.d.ts.map +1 -0
- package/lib/types/dsh-adapter/backend-assembly.js +225 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts +36 -0
- package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend-contribution.js +41 -0
- package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backend-registry.js +22 -3
- package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
- package/lib/types/dsh-adapter/backends.js +4 -5
- package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/bundled-presets.js +60 -3
- package/lib/types/dsh-adapter/channel/binding-events.d.ts +1 -0
- package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/binding-events.js +1 -0
- package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/command-completions.js +64 -7
- package/lib/types/dsh-adapter/channel/compaction.d.ts +7 -2
- package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/compaction.js +100 -26
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/binding-feed.js +2 -1
- package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/core/compose.js +12 -0
- package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/extensions.js +68 -8
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/mode-permission-actions.js +104 -12
- package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/model-actions.js +8 -1
- package/lib/types/dsh-adapter/channel/permissions.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/permissions.js +4 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/projection-helpers.js +2 -0
- package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-metadata.js +4 -3
- package/lib/types/dsh-adapter/channel/session-reset.js +2 -2
- package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/session-resume.js +7 -0
- package/lib/types/dsh-adapter/channel/settings-host.d.ts +3 -0
- package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/settings-host.js +135 -5
- package/lib/types/dsh-adapter/channel/state.d.ts +6 -0
- package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/subagent-projection.js +18 -6
- package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -0
- package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
- package/lib/types/dsh-adapter/channel/transcript.js +19 -2
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts +55 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.d.ts.map +1 -0
- package/lib/types/dsh-adapter/compat/agent-team-0.2.0.js +96 -0
- package/lib/types/dsh-adapter/contract.d.ts +4 -4
- package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/contract.js +5 -5
- package/lib/types/dsh-adapter/effect-ledger.d.ts +7 -0
- package/lib/types/dsh-adapter/effect-ledger.d.ts.map +1 -1
- package/lib/types/dsh-adapter/effect-ledger.js +8 -1
- package/lib/types/dsh-adapter/entry-slot.d.ts +3 -1
- package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -1
- package/lib/types/dsh-adapter/entry-slot.js +2 -2
- package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -1
- package/lib/types/dsh-adapter/fresh-agent.js +6 -1
- package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-access.js +95 -0
- package/lib/types/dsh-adapter/host-contract.d.ts +1 -1
- package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-contract.js +3 -2
- package/lib/types/dsh-adapter/host-dsh.d.ts +8 -2
- package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -1
- package/lib/types/dsh-adapter/host-dsh.js +45 -30
- package/lib/types/dsh-adapter/host-entry.js +35 -10
- package/lib/types/dsh-adapter/index.d.ts +9 -10
- package/lib/types/dsh-adapter/index.d.ts.map +1 -1
- package/lib/types/dsh-adapter/index.js +8 -6
- package/lib/types/dsh-adapter/invariant.d.ts +7 -2
- package/lib/types/dsh-adapter/invariant.d.ts.map +1 -1
- package/lib/types/dsh-adapter/invariant.js +6 -3
- package/lib/types/dsh-adapter/migrate/index.js +2 -2
- package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
- package/lib/types/dsh-adapter/panels.js +6 -0
- package/lib/types/dsh-adapter/plugin-declaration.d.ts +99 -1
- package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-declaration.js +132 -2
- package/lib/types/dsh-adapter/plugin-feed.d.ts +94 -0
- package/lib/types/dsh-adapter/plugin-feed.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-feed.js +135 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts +115 -0
- package/lib/types/dsh-adapter/plugin-guard.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-guard.js +108 -0
- package/lib/types/dsh-adapter/plugin-install.d.ts +160 -0
- package/lib/types/dsh-adapter/plugin-install.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-install.js +545 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts +178 -0
- package/lib/types/dsh-adapter/plugin-manage.d.ts.map +1 -0
- package/lib/types/dsh-adapter/plugin-manage.js +468 -0
- package/lib/types/dsh-adapter/plugin-manager.d.ts +78 -2
- package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin-manager.js +32 -0
- package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugin.js +49 -2
- package/lib/types/dsh-adapter/plugins-info.d.ts +87 -1
- package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
- package/lib/types/dsh-adapter/plugins-info.js +131 -26
- package/lib/types/dsh-adapter/process-exit.d.ts +1 -1
- package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -1
- package/lib/types/dsh-adapter/process-exit.js +1 -1
- package/lib/types/dsh-adapter/session-projection-store.d.ts +66 -0
- package/lib/types/dsh-adapter/session-projection-store.d.ts.map +1 -0
- package/lib/types/dsh-adapter/session-projection-store.js +149 -0
- package/lib/types/dsh-adapter/settingsEditor.js +2 -2
- package/lib/types/dsh-adapter/sideQuestion.d.ts +21 -0
- package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
- package/lib/types/dsh-adapter/sideQuestion.js +53 -0
- package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
- package/lib/types/dsh-adapter/subagents.js +2 -1
- package/lib/types/dsh-adapter/team-mode.d.ts +74 -0
- package/lib/types/dsh-adapter/team-mode.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-mode.js +188 -0
- package/lib/types/dsh-adapter/team-roster.d.ts +67 -0
- package/lib/types/dsh-adapter/team-roster.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-roster.js +136 -0
- package/lib/types/dsh-adapter/team-tools.d.ts +58 -0
- package/lib/types/dsh-adapter/team-tools.d.ts.map +1 -0
- package/lib/types/dsh-adapter/team-tools.js +208 -0
- package/lib/types/dsh-adapter/types.d.ts +1 -1
- package/lib/types/dsh-adapter/types.d.ts.map +1 -1
- package/lib/types/i18n.d.ts +607 -16
- package/lib/types/i18n.d.ts.map +1 -1
- package/lib/types/i18n.js +295 -9
- package/lib/types/ink/components/ScrollBox.d.ts +9 -0
- package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
- package/lib/types/ink/components/ScrollBox.js +23 -0
- package/lib/types/ink/dom.d.ts.map +1 -1
- package/lib/types/kernelPrefs.d.ts +1 -1
- package/lib/types/kernelPrefs.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.d.ts.map +1 -1
- package/lib/types/native-ts/yoga-layout/index.js +8 -1
- package/lib/types/permissionPresetLabels.d.ts +25 -0
- package/lib/types/permissionPresetLabels.d.ts.map +1 -0
- package/lib/types/permissionPresetLabels.js +33 -0
- package/lib/types/preset-patch.d.ts +22 -0
- package/lib/types/preset-patch.d.ts.map +1 -0
- package/lib/types/preset-patch.js +14 -0
- package/lib/types/screens/Chat.d.ts +33 -1
- package/lib/types/screens/Chat.d.ts.map +1 -1
- package/lib/types/screens/Chat.js +301 -9
- package/lib/types/screens/Launchpad.d.ts +7 -1
- package/lib/types/screens/Launchpad.d.ts.map +1 -1
- package/lib/types/screens/Launchpad.js +19 -4
- package/lib/types/screens/Settings.d.ts.map +1 -1
- package/lib/types/screens/Settings.js +1 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts +68 -0
- package/lib/types/screens/chat/usePluginWriteFlow.d.ts.map +1 -0
- package/lib/types/screens/chat/usePluginWriteFlow.js +92 -0
- package/lib/types/screens/chatOverlay.d.ts +19 -1
- package/lib/types/screens/chatOverlay.d.ts.map +1 -1
- package/lib/types/sessionModes.d.ts +5 -3
- package/lib/types/sessionModes.d.ts.map +1 -1
- package/lib/types/sessionModes.js +9 -3
- package/lib/types/tips.js +2 -2
- package/lib/types/utils/paths.d.ts +11 -0
- package/lib/types/utils/paths.d.ts.map +1 -1
- package/lib/types/utils/paths.js +13 -0
- package/package.json +126 -120
- package/tui-profile/feed/README.md +63 -0
- package/tui-profile/feed/first-party.json +10 -0
|
@@ -35,3 +35,44 @@ export function backendContributionOf(manifest) {
|
|
|
35
35
|
...(manifest.unloadExport === undefined ? {} : { unloadExport: manifest.unloadExport }),
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* The registry entry a **third-party** declaration becomes (D-1): the inverse of
|
|
40
|
+
* {@link backendContributionOf} on the fields both shapes carry.
|
|
41
|
+
*
|
|
42
|
+
* A contribution declares less than an in-tree manifest, and everything it cannot
|
|
43
|
+
* declare is fixed here rather than defaulted by the caller:
|
|
44
|
+
*
|
|
45
|
+
* - `inTree: false` — the one fact that flips the registry's rules (reserved ids,
|
|
46
|
+
* host label keys, `alwaysAvailable`, `nativeKey`, label sanitization). A
|
|
47
|
+
* contribution is exactly the non-in-tree case, so the projection says so
|
|
48
|
+
* instead of leaving a boolean for a caller to get wrong.
|
|
49
|
+
* - `label` is already the literal the spec requires; `label.kind === 'key'` is
|
|
50
|
+
* unreachable here (the spec has no such field, and `validateBackendSpec()`
|
|
51
|
+
* refuses it as an unknown field), so a declaration can never borrow this
|
|
52
|
+
* host's own vocabulary.
|
|
53
|
+
* - `alwaysAvailable` / `nativeKey` / `vendorPackages` / `backendExport` are
|
|
54
|
+
* **not** writable from a declaration and are therefore absent from the
|
|
55
|
+
* result: `registerBackend()` rejects an explicit `alwaysAvailable` /
|
|
56
|
+
* `nativeKey`, and the `backendExport` default (`'backend'`) is the registry's
|
|
57
|
+
* documented read of the module namespace, not a field to invent here.
|
|
58
|
+
* - `confirmation` stays behind: it is a request to the *install / enable* chain
|
|
59
|
+
* (`BACKEND_CONFIRMATION_POLICIES`), which reads the declaration, not the
|
|
60
|
+
* manifest. Dropping it here is what keeps one reading of it.
|
|
61
|
+
*
|
|
62
|
+
* Pure, like its counterpart: the same declaration projects to a deep-equal
|
|
63
|
+
* manifest every time, and the result is the value `registerBackend()` validates,
|
|
64
|
+
* admits and registers.
|
|
65
|
+
*/
|
|
66
|
+
export function backendManifestOf(spec) {
|
|
67
|
+
return {
|
|
68
|
+
id: spec.id,
|
|
69
|
+
label: { kind: 'literal', text: spec.label.text },
|
|
70
|
+
shortLabel: spec.shortLabel,
|
|
71
|
+
...(spec.product === undefined ? {} : { product: spec.product }),
|
|
72
|
+
capabilities: [...spec.capabilities],
|
|
73
|
+
grants: [...spec.grants],
|
|
74
|
+
...(spec.install === undefined ? {} : { install: { ...spec.install } }),
|
|
75
|
+
...(spec.unloadExport === undefined ? {} : { unloadExport: spec.unloadExport }),
|
|
76
|
+
inTree: false,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-registry.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/backend-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAKzG,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAKhF,OAAO,EAAE,iBAAiB,EAAE,CAAA;AA6C5B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACvD;AA0CD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"backend-registry.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/backend-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAKzG,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAE7E,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAKhF,OAAO,EAAE,iBAAiB,EAAE,CAAA;AA6C5B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACvD;AA0CD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAsEzD;AAOD,uEAAuE;AACvE,wBAAgB,YAAY,IAAI,SAAS,iBAAiB,EAAE,CAE3D;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,iBAAiB,EAAE,CAElE;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB;;6CAEyC;IACzC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAC/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,qBAAqB,CAkB7D;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEpE;AAED;;sEAEsE;AACtE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE5E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAI9E;AAED;;kBAEkB;AAClB,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CA6B5E;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CASpD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isBackendIdSyntax } from '../agent/backend-manifest.js';
|
|
2
2
|
import { BACKEND_CAPABILITY_NAMES } from '../adapter/spec/backend-capabilities.js';
|
|
3
3
|
import { EXPECTED_PERMISSIONS } from '../adapter/spec/protocol-constants.js';
|
|
4
|
-
import { validateBackendSpec } from '../adapter/spec/tui-contributions.js';
|
|
4
|
+
import { assertBackendHandler, validateBackendSpec } from '../adapter/spec/tui-contributions.js';
|
|
5
5
|
import { cleanRenderText } from '../channel/sanitize.js';
|
|
6
6
|
import { BUILTIN_BACKEND_IDS } from '../kernelPrefs.js';
|
|
7
7
|
import { logForDebugging } from '../utils/debug.js';
|
|
@@ -95,13 +95,19 @@ export function registerBackend(entry) {
|
|
|
95
95
|
if (!isBackendIdSyntax(manifest.id)) {
|
|
96
96
|
throw new Error(`${where} has an invalid id (lowercase letters, digits and dashes, at most 32 characters)`);
|
|
97
97
|
}
|
|
98
|
-
|
|
99
|
-
|
|
98
|
+
// The reserved check comes first on purpose (D-1). Every built-in id is seeded
|
|
99
|
+
// before any other caller can run, so an "is it taken?" test would answer for a
|
|
100
|
+
// plugin wearing `claude` too — and it would name the wrong reason: the id is
|
|
101
|
+
// not taken by a rival, it is one this host owns and no declaration may wear
|
|
102
|
+
// (`BACKEND_ID_RESERVED` in the family's contract). Registration is the last
|
|
103
|
+
// place that can still tell the two apart.
|
|
100
104
|
if (!manifest.inTree && BUILTIN_BACKEND_IDS.includes(manifest.id)) {
|
|
101
105
|
// `dsh` refs serialize without a prefix (`formatSessionRef`), so a plugin
|
|
102
106
|
// wearing that id would collide with first-party references.
|
|
103
107
|
throw new Error(`${where} is a reserved built-in id`);
|
|
104
108
|
}
|
|
109
|
+
if (entries.has(manifest.id))
|
|
110
|
+
throw new Error(`${where} is already registered`);
|
|
105
111
|
if (!manifest.inTree && manifest.label.kind === 'key') {
|
|
106
112
|
// Otherwise a plugin could claim a first-party name: `t()` returns the text
|
|
107
113
|
// of an existing key (`src/i18n.ts`), so the row would read "DeepSeek Harness".
|
|
@@ -244,6 +250,9 @@ export async function loadBackend(id) {
|
|
|
244
250
|
const entry = entries.get(id);
|
|
245
251
|
if (entry === undefined)
|
|
246
252
|
throw new Error(`dsh-tui: backend "${id}" is not registered`);
|
|
253
|
+
if (entry.admission.decision === 'waiting_authorization') {
|
|
254
|
+
throw new Error(`dsh-tui: backend "${id}" cannot load: ${entry.admission.reasonCode} (${entry.admission.deniedPermissions.join(', ')})`);
|
|
255
|
+
}
|
|
247
256
|
if (entry.load === undefined)
|
|
248
257
|
throw new Error(`dsh-tui: backend "${id}" has no loader (only the DSH kernel is not an AgentBackend)`);
|
|
249
258
|
const module = await entry.load();
|
|
@@ -260,6 +269,16 @@ export async function loadBackend(id) {
|
|
|
260
269
|
const backend = module[exportName];
|
|
261
270
|
if (backend === undefined)
|
|
262
271
|
throw new Error(`dsh-tui: backend "${id}" does not export "${exportName}"`);
|
|
272
|
+
// Book the imported module's pool above even when its handler is invalid.
|
|
273
|
+
// No caller may prepare a session or data directory under another backend id.
|
|
274
|
+
try {
|
|
275
|
+
assertBackendHandler(backend);
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
throw new Error(`dsh-tui: backend "${id}" has an invalid handler (${error instanceof Error ? error.message : String(error)})`, { cause: error });
|
|
279
|
+
}
|
|
280
|
+
if (backend.id !== id)
|
|
281
|
+
throw new Error(`dsh-tui: backend "${id}" exports a handler for ${JSON.stringify(backend.id)}`);
|
|
263
282
|
return backend;
|
|
264
283
|
}
|
|
265
284
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/backends.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/backends.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAyB,UAAU,EAAE,iBAAiB,EAAkC,MAAM,qBAAqB,CAAA;AAC1J,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAWlE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAW3E;AAID;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAqB1I;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE;IACtF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;;;;;;iBASyB,OAAO,CAAC;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,CAAC;4BA2CvE,MAAM,QAAQ,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;+BAC/C,MAAM;mBAClB,OAAO,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC;GAG7E;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;aAnDnF,YAAY;oBAAkB,SAAS,UAAU,EAAE;;;;;;iBAAtE,OAAO,CAAC;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,CAAC;4BA2CvE,MAAM,QAAQ,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE;+BAC/C,MAAM;mBAClB,OAAO,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAC;GAS7E;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAenG"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { join } from 'node:path';
|
|
2
1
|
import { formatSessionRef } from '../agent/refs.js';
|
|
3
|
-
import { getBackend,
|
|
2
|
+
import { getBackend, listOfferedBackends, loadBackend } from './backend-registry.js';
|
|
4
3
|
import { reserveMount, reserveNewSession } from '../sessionMounts.js';
|
|
5
4
|
import { resumeTargetFromArgv } from '../sessionHistory.js';
|
|
6
5
|
import { mountFailureText } from '../sessions/resumeFailure.js';
|
|
7
6
|
import { getLang } from '../i18n.js';
|
|
8
7
|
import { installedTuiVersion } from '../update.js';
|
|
9
8
|
import { logForDebugging } from '../utils/debug.js';
|
|
10
|
-
import {
|
|
9
|
+
import { backendDataDir } from '../utils/paths.js';
|
|
11
10
|
import { installExecutor } from './install/executors.js';
|
|
12
11
|
import { fileChannelTokens } from '../backends/shared/channel-tokens.js';
|
|
13
12
|
/**
|
|
@@ -55,7 +54,7 @@ export async function createBackendHost(ctx, backendId, cwd, stderr) {
|
|
|
55
54
|
const appVersion = installedTuiVersion();
|
|
56
55
|
return {
|
|
57
56
|
cwd,
|
|
58
|
-
dataDir:
|
|
57
|
+
dataDir: backendDataDir(backendId),
|
|
59
58
|
locale: () => getLang(),
|
|
60
59
|
...(appVersion === undefined ? {} : { appVersion }),
|
|
61
60
|
debug: message => logForDebugging(message),
|
|
@@ -152,7 +151,7 @@ export async function openBackendStartup(ctx, backend, input) {
|
|
|
152
151
|
*/
|
|
153
152
|
export async function probeKernels(ctx, cwd) {
|
|
154
153
|
const statuses = {};
|
|
155
|
-
for (const entry of
|
|
154
|
+
for (const entry of listOfferedBackends()) {
|
|
156
155
|
if (entry.load === undefined)
|
|
157
156
|
continue;
|
|
158
157
|
// One host per entry: `dataDir` is backend-scoped, and a probe must not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundled-presets.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/bundled-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"bundled-presets.d.ts","sourceRoot":"","sources":["../../../src/dsh-adapter/bundled-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAuFlD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoD3E"}
|
|
@@ -4,6 +4,9 @@ import { join } from 'node:path';
|
|
|
4
4
|
import { pathToFileURL } from 'node:url';
|
|
5
5
|
import { parse } from 'yaml';
|
|
6
6
|
import { packagedPresetRoot } from './packaged-presets.js';
|
|
7
|
+
import { PRESET_PATCH_MODULE } from '../preset-patch.js';
|
|
8
|
+
/** Upstream presets copied into the roster by id; liangshen ships in this package. */
|
|
9
|
+
const UPSTREAM_PRESET_IDS = ['standard', 'ptc', 'minimal', 'cordis'];
|
|
7
10
|
function declarativePresets(ctx) {
|
|
8
11
|
const service = ctx.get('agentPresets');
|
|
9
12
|
return service !== null && typeof service === 'object'
|
|
@@ -25,6 +28,49 @@ function readPresetPatch(path) {
|
|
|
25
28
|
}
|
|
26
29
|
throw new Error(`dsh-tui: invalid upstream preset declaration: ${path}`);
|
|
27
30
|
}
|
|
31
|
+
/** Preset id → row id → replacement config, from preset-patch rows (src/preset-patch.ts). */
|
|
32
|
+
function presetPatches(ctx, loader) {
|
|
33
|
+
const patches = new Map();
|
|
34
|
+
for (const entry of loader?.entries() ?? []) {
|
|
35
|
+
if (entry.disabled || entry.options.name !== PRESET_PATCH_MODULE)
|
|
36
|
+
continue;
|
|
37
|
+
const config = entry.options.config;
|
|
38
|
+
const rows = config?.config;
|
|
39
|
+
if (typeof config?.preset !== 'string' || rows === null || typeof rows !== 'object' || Array.isArray(rows)) {
|
|
40
|
+
ctx.logger.warn('dsh-tui: ignoring a preset-patch row without `preset` and a `config` map');
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const target = patches.get(config.preset) ?? new Map();
|
|
44
|
+
for (const [id, value] of Object.entries(rows))
|
|
45
|
+
target.set(id, value);
|
|
46
|
+
patches.set(config.preset, target);
|
|
47
|
+
}
|
|
48
|
+
return patches;
|
|
49
|
+
}
|
|
50
|
+
/** Copy an entry list with the named rows' `config` replaced, nested groups included. */
|
|
51
|
+
function withRowConfigs(rows, configs, matched) {
|
|
52
|
+
return rows.map((row) => {
|
|
53
|
+
const entry = row;
|
|
54
|
+
if (typeof entry.id === 'string' && configs.has(entry.id)) {
|
|
55
|
+
matched.add(entry.id);
|
|
56
|
+
return { ...row, config: configs.get(entry.id) };
|
|
57
|
+
}
|
|
58
|
+
if (entry.group === true && Array.isArray(entry.config))
|
|
59
|
+
return { ...row, config: withRowConfigs(entry.config, configs, matched) };
|
|
60
|
+
return row;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function patchDefinition(ctx, definition, configs) {
|
|
64
|
+
if (configs === undefined)
|
|
65
|
+
return definition;
|
|
66
|
+
const matched = new Set();
|
|
67
|
+
const plugins = withRowConfigs(definition.plugins, configs, matched);
|
|
68
|
+
for (const id of configs.keys()) {
|
|
69
|
+
if (!matched.has(id))
|
|
70
|
+
ctx.logger.warn(`dsh-tui: preset-patch row "${id}" not found in preset "${definition.id}"`);
|
|
71
|
+
}
|
|
72
|
+
return { ...definition, plugins };
|
|
73
|
+
}
|
|
28
74
|
/**
|
|
29
75
|
* 0.1.7 removed directory discovery. Consume the official bundle definitions
|
|
30
76
|
* through its registry, without copying or reimplementing their tool sets.
|
|
@@ -51,13 +97,14 @@ export async function registerBundledPresets(ctx) {
|
|
|
51
97
|
declared.add(config.id);
|
|
52
98
|
}
|
|
53
99
|
}
|
|
100
|
+
const patches = presetPatches(ctx, loader);
|
|
54
101
|
const require = createRequire(ctx.baseUrl ?? import.meta.url);
|
|
55
|
-
for (const id of
|
|
102
|
+
for (const id of UPSTREAM_PRESET_IDS) {
|
|
56
103
|
if (declared.has(id))
|
|
57
104
|
continue;
|
|
58
105
|
const path = require.resolve(`@deepseek-ai/dsh-web-app/presets/${id}.patch.yml`);
|
|
59
106
|
const owner = ctx.extend({ baseUrl: pathToFileURL(path).href });
|
|
60
|
-
const dispose = await declarativePresets(owner).register(readPresetPatch(path));
|
|
107
|
+
const dispose = await declarativePresets(owner).register(patchDefinition(ctx, readPresetPatch(path), patches.get(id)));
|
|
61
108
|
ctx.effect(() => dispose);
|
|
62
109
|
}
|
|
63
110
|
if (!declared.has('liangshen')) {
|
|
@@ -71,10 +118,20 @@ export async function registerBundledPresets(ctx) {
|
|
|
71
118
|
plugins: [{
|
|
72
119
|
id: 'liangshen-plugins',
|
|
73
120
|
name: '@deepseek-ai/cordis-plugin-include',
|
|
74
|
-
config: {
|
|
121
|
+
config: {
|
|
122
|
+
path: pathToFileURL(join(root, 'agent.cordis.yml')).href,
|
|
123
|
+
patches: [...patches.get('liangshen') ?? []].map(([id, config]) => ({ id, config })),
|
|
124
|
+
},
|
|
75
125
|
}],
|
|
76
126
|
});
|
|
77
127
|
ctx.effect(() => dispose);
|
|
78
128
|
}
|
|
129
|
+
// A typo in `preset` would otherwise be a silent no-op (row ids warn inside
|
|
130
|
+
// patchDefinition). Profile-declared presets are the profile's own seats.
|
|
131
|
+
for (const preset of patches.keys()) {
|
|
132
|
+
if (preset === 'liangshen' || UPSTREAM_PRESET_IDS.includes(preset) || declared.has(preset))
|
|
133
|
+
continue;
|
|
134
|
+
ctx.logger.warn(`dsh-tui: preset-patch row names a preset dsh-tui does not register: "${preset}"`);
|
|
135
|
+
}
|
|
79
136
|
return true;
|
|
80
137
|
}
|
|
@@ -32,6 +32,7 @@ export declare function createBindingEvents(ctx: Context, deps: {
|
|
|
32
32
|
* session needs one baseline read to show its occupancy before the next
|
|
33
33
|
* request reports usage. */
|
|
34
34
|
seedContextOccupancy?(session: unknown): void;
|
|
35
|
+
seedTeam?(session: unknown): void;
|
|
35
36
|
inputConvergence: InputConvergence;
|
|
36
37
|
modelSelection: ReturnType<typeof createModelSelection>;
|
|
37
38
|
modelActions: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-events.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/binding-events.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"binding-events.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/binding-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,7 @@ export function createBindingEvents(ctx, deps) {
|
|
|
99
99
|
onBind({ capture, current, register }) {
|
|
100
100
|
deps.seedActivity?.(deps.binding.agent.session);
|
|
101
101
|
deps.seedContextOccupancy?.(deps.binding.agent.session);
|
|
102
|
+
deps.seedTeam?.(deps.binding.agent.session);
|
|
102
103
|
deps.modelSelection.bind(deps.binding.agent, { provider: deps.state.provider, model: deps.state.model });
|
|
103
104
|
const selected = deps.modelSelection.selection.current;
|
|
104
105
|
// A parked turn may not have logged its first selected request yet.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-completions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/command-completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"command-completions.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/command-completions.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAM1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAmC9C,wFAAwF;AACxF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,KAAK,EAAE,MAAM,YAAY,CAAA;IACzB,SAAS,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,YAAY,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,qBAAqB,EAAE,CAAA;KAAE,CAAA;IACtF,iBAAiB,IAAI,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACnG;4EACwE;IACxE,UAAU,CAAC,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IAC5C,yEAAyE;IACzE,MAAM,CAAC,EAAE;QACP,eAAe,IAAI,IAAI,CAAA;QACvB,WAAW,IAAI,SAAS,qBAAqB,EAAE,CAAA;KAChD,CAAA;IACD,KAAK,EAAE;QACL,cAAc,IAAI,IAAI,CAAA;QACtB,UAAU,IAAI,SAAS,qBAAqB,EAAE,CAAA;QAC9C,iBAAiB,IAAI,IAAI,CAAA;QACzB,aAAa,IAAI,SAAS;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,EAAE,CAAA;QACpG,gBAAgB,IAAI,IAAI,CAAA;KACzB,CAAA;CACF,IAES,OAAO,MAAM,qDAiJtB"}
|
|
@@ -1,10 +1,38 @@
|
|
|
1
1
|
import { completeCommands, isCommandCompletionToken } from '../../commands.js';
|
|
2
2
|
import { getSidePanelPanels, parseSidePanelIds } from '../../tuiDisplayPrefs.js';
|
|
3
3
|
import { SESSION_COLOR_NAMES } from '../../terminal-utils/sessionColors.js';
|
|
4
|
-
import { getLang, LANGS } from '../../i18n.js';
|
|
4
|
+
import { getLang, LANGS, t } from '../../i18n.js';
|
|
5
|
+
import { PERMISSION_PRESET_AUTO, permissionPresetKeys } from '../../permissionPresetLabels.js';
|
|
5
6
|
import { AUTO_THEME_NAME } from '../../theme.js';
|
|
6
7
|
import { listThemeCatalog } from '../../themeCatalog.js';
|
|
7
8
|
import { PRESET_NAMES } from '../../components/activityFrames.js';
|
|
9
|
+
/**
|
|
10
|
+
* What a `/plugin install | info` spec may name — the same three shapes the
|
|
11
|
+
* README lists, in the same order. A path and a git URL cannot be enumerated,
|
|
12
|
+
* and `info` also takes a spec for a bundle that is not installed yet, so these
|
|
13
|
+
* are shown as example rows rather than discovered candidates.
|
|
14
|
+
*/
|
|
15
|
+
const PLUGIN_SPEC_EXAMPLES = [
|
|
16
|
+
{ spec: '/path/to/repo', description: 'Example: a local directory', descriptionKey: 'sugg-plugin-spec-path-desc' },
|
|
17
|
+
{ spec: 'https://github.com/exam/ple.git', description: 'Example: a git URL', descriptionKey: 'sugg-plugin-spec-git-desc' },
|
|
18
|
+
{ spec: '@scope/package@1.2.3', description: 'Example: a registry package, @version pins it', descriptionKey: 'sugg-plugin-spec-package-desc' },
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* The spec shapes as completion rows for one `/plugin` form. They carry
|
|
22
|
+
* `example` (`CommandCompletionNode`): Tab hands the draft back untouched and
|
|
23
|
+
* Enter submits the draft as typed — the bare subcommand at the empty argument
|
|
24
|
+
* position (its usage line), and the typed spec once there is one. A placeholder
|
|
25
|
+
* spec can therefore neither be written into the draft nor installed by picking
|
|
26
|
+
* its row, and a real spec that only starts like one is not swallowed.
|
|
27
|
+
*/
|
|
28
|
+
function pluginSpecExamples() {
|
|
29
|
+
return PLUGIN_SPEC_EXAMPLES.map(shape => ({
|
|
30
|
+
name: shape.spec,
|
|
31
|
+
description: shape.description,
|
|
32
|
+
descriptionKey: shape.descriptionKey,
|
|
33
|
+
example: true,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
8
36
|
/** Owns slash completion composition and cache warming; it has no lifecycle effects. */
|
|
9
37
|
export function createCommandCompletions(deps) {
|
|
10
38
|
const { themeHost, commandTrees, workspaceCommands, model } = deps;
|
|
@@ -58,6 +86,12 @@ export function createCommandCompletions(deps) {
|
|
|
58
86
|
model.warmPresetOptions();
|
|
59
87
|
return [{ name: 'status', description: 'Show the current agent preset', descriptionKey: 'sugg-status-desc' }, ...model.presetOptions().map(preset => ({ name: preset.id, description: preset.description ?? preset.name ?? preset.id, ...(preset.id === state.agentPreset ? { tag: 'current' } : preset.isDefault ? { tag: 'default' } : {}) }))];
|
|
60
88
|
}
|
|
89
|
+
if (path.length === 1 && path[0] === 'team')
|
|
90
|
+
return [
|
|
91
|
+
{ name: 'status', description: 'Show the team mode state', descriptionKey: 'sugg-status-desc' },
|
|
92
|
+
{ name: 'on', description: 'Switch Agent Teams on', descriptionKey: 'sugg-team-on-desc' },
|
|
93
|
+
{ name: 'off', description: 'Switch Agent Teams off', descriptionKey: 'sugg-team-off-desc' },
|
|
94
|
+
];
|
|
61
95
|
if (path.length === 1 && path[0] === 'activity')
|
|
62
96
|
return [
|
|
63
97
|
{ name: 'status', description: 'Show the current activity preset', descriptionKey: 'sugg-status-desc' },
|
|
@@ -81,11 +115,16 @@ export function createCommandCompletions(deps) {
|
|
|
81
115
|
if (path.length === 1 && path[0] === 'permission') {
|
|
82
116
|
const snapshot = state.permissionPresets();
|
|
83
117
|
if (snapshot.options.length > 0) {
|
|
84
|
-
return snapshot.options.filter(option => isCommandCompletionToken(option.value)).map(option =>
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
118
|
+
return snapshot.options.filter(option => isCommandCompletionToken(option.value)).map((option) => {
|
|
119
|
+
const keys = permissionPresetKeys(option);
|
|
120
|
+
return {
|
|
121
|
+
name: option.value, description: option.description ?? option.name,
|
|
122
|
+
...(keys === undefined ? {} : { descriptionKey: keys.description }),
|
|
123
|
+
...(snapshot.current?.kind === 'preset' && snapshot.current.value === option.value
|
|
124
|
+
? { tag: 'current' }
|
|
125
|
+
: option.value === PERMISSION_PRESET_AUTO ? { tag: t('permission-preset-exp-tag') } : {}),
|
|
126
|
+
};
|
|
127
|
+
});
|
|
89
128
|
}
|
|
90
129
|
// No preset roster (a non-DSH backend): the typed `modes` capability
|
|
91
130
|
// is the roster. DSH sessions declare no such capability, so this
|
|
@@ -134,13 +173,31 @@ export function createCommandCompletions(deps) {
|
|
|
134
173
|
return [
|
|
135
174
|
{ name: 'list', description: 'List the plugins this profile added', descriptionKey: 'sugg-plugin-list-desc' },
|
|
136
175
|
{ name: 'info', description: 'Describe an installed plugin or an install spec', descriptionKey: 'sugg-plugin-info-desc' },
|
|
176
|
+
{ name: 'install', description: 'Install a plugin bundle into this profile', descriptionKey: 'sugg-plugin-install-desc' },
|
|
177
|
+
{ name: 'remove', description: 'Uninstall a plugin bundle from this profile', descriptionKey: 'sugg-plugin-remove-desc' },
|
|
178
|
+
{ name: 'disable', description: 'Switch a plugin bundle or row off', descriptionKey: 'sugg-plugin-disable-desc' },
|
|
179
|
+
{ name: 'enable', description: 'Switch a plugin bundle or row back on', descriptionKey: 'sugg-plugin-enable-desc' },
|
|
137
180
|
{ name: 'registries', description: 'Show where installations ask', descriptionKey: 'sugg-plugin-registries-desc' },
|
|
138
181
|
{ name: 'check', description: 'Validate a plugin manifest without installing it', descriptionKey: 'sugg-plugin-check-desc' },
|
|
139
182
|
];
|
|
140
|
-
|
|
183
|
+
// `/plugin install <spec>` takes a spec nothing local can enumerate, so
|
|
184
|
+
// its argument position shows the shapes it accepts (`pluginSpecExamples`).
|
|
185
|
+
if (path.length === 2 && path[0] === 'plugin' && path[1] === 'install')
|
|
186
|
+
return pluginSpecExamples();
|
|
187
|
+
// The three lifecycle forms take the same installed list as `info`: what
|
|
188
|
+
// they act on is what the profile holds, and an absent service answers an
|
|
189
|
+
// empty list rather than a throw.
|
|
190
|
+
if (path.length === 2 && path[0] === 'plugin'
|
|
191
|
+
&& (path[1] === 'remove' || path[1] === 'enable' || path[1] === 'disable')) {
|
|
141
192
|
deps.plugin?.warmPluginNames();
|
|
142
193
|
return deps.plugin?.pluginNames() ?? [];
|
|
143
194
|
}
|
|
195
|
+
// `info` reads an installed bundle OR a spec about to be installed, so it
|
|
196
|
+
// offers both: what the profile holds first, then the spec shapes.
|
|
197
|
+
if (path.length === 2 && path[0] === 'plugin' && path[1] === 'info') {
|
|
198
|
+
deps.plugin?.warmPluginNames();
|
|
199
|
+
return [...(deps.plugin?.pluginNames() ?? []), ...pluginSpecExamples()];
|
|
200
|
+
}
|
|
144
201
|
return commandTrees?.children(path) ?? [];
|
|
145
202
|
});
|
|
146
203
|
};
|
|
@@ -2,9 +2,12 @@ import type { Agent } from '@deepseek-ai/dsh-agent';
|
|
|
2
2
|
import type { Context } from '@deepseek-ai/cordis';
|
|
3
3
|
import type { ChannelOwner } from './owner.js';
|
|
4
4
|
import type { ChannelState } from './types.js';
|
|
5
|
-
type CompactionState = Pick<ChannelState, 'agentId' | 'cwd' | 'working' | 'compaction' | 'emit'>;
|
|
5
|
+
type CompactionState = Pick<ChannelState, 'agentId' | 'cwd' | 'working' | 'compaction' | 'emit' | 'emitStream'>;
|
|
6
6
|
type Notify = ChannelState['notify'];
|
|
7
|
-
/**
|
|
7
|
+
/** One manual compaction transaction per live agent, including agents parked
|
|
8
|
+
* by `/bg`. `settle` aborts the transaction of the FOREGROUND binding — the
|
|
9
|
+
* session a switch is leaving — so returning to a compacting background session
|
|
10
|
+
* keeps it running while navigating to a different one still settles it. */
|
|
8
11
|
export declare function createManualCompaction(ctx: Context, state: CompactionState, deps: {
|
|
9
12
|
owner: Pick<ChannelOwner, 'current' | 'signal' | 'own'>;
|
|
10
13
|
agent(): Agent;
|
|
@@ -14,6 +17,8 @@ export declare function createManualCompaction(ctx: Context, state: CompactionSt
|
|
|
14
17
|
compact: () => void;
|
|
15
18
|
settle: () => Promise<void>;
|
|
16
19
|
cancel: () => void;
|
|
20
|
+
restore: () => void;
|
|
21
|
+
ownsProgress: () => boolean;
|
|
17
22
|
};
|
|
18
23
|
export {};
|
|
19
24
|
//# sourceMappingURL=compaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../../../src/dsh-adapter/channel/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAS9C,KAAK,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,YAAY,CAAC,CAAA;AAC/G,KAAK,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;AAEpC;;;4EAG4E;AAC5E,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE;IACJ,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAA;IACvD,KAAK,IAAI,KAAK,CAAA;IACd,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACrE,MAAM,EAAE,MAAM,CAAA;CACf;mBAkCmB,IAAI;kBAnBC,OAAO,CAAC,IAAI,CAAC;kBAuKnB,IAAI;mBAQH,IAAI;;EAQzB"}
|