@dsh-cove/dsh-web-all 0.0.0-stage → 0.4.4
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/LICENSE +202 -0
- package/README.i18n.yaml +6 -0
- package/README.md +205 -2
- package/README.zh.md +205 -0
- package/cordis.patch.yml +59 -0
- package/lib/client.js +25413 -0
- package/lib/client.js.map +1 -0
- package/lib/index.js +20024 -0
- package/lib/invariant.js +6 -0
- package/lib/types/client/compat.d.ts +29 -0
- package/lib/types/client/compat.d.ts.map +1 -0
- package/lib/types/client/compat.js +69 -0
- package/lib/types/client/conversation/git-branch.d.ts +13 -0
- package/lib/types/client/conversation/git-branch.d.ts.map +1 -0
- package/lib/types/client/conversation/git-branch.js +121 -0
- package/lib/types/client/conversation/git-graph/api.d.ts +42 -0
- package/lib/types/client/conversation/git-graph/api.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/api.js +72 -0
- package/lib/types/client/conversation/git-graph/branch-chip.d.ts +47 -0
- package/lib/types/client/conversation/git-graph/branch-chip.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/branch-chip.js +268 -0
- package/lib/types/client/conversation/git-graph/branch-popover.d.ts +32 -0
- package/lib/types/client/conversation/git-graph/branch-popover.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/branch-popover.js +108 -0
- package/lib/types/client/conversation/git-graph/chip.d.ts +24 -0
- package/lib/types/client/conversation/git-graph/chip.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/chip.js +15 -0
- package/lib/types/client/conversation/git-graph/create-branch-dialog.d.ts +30 -0
- package/lib/types/client/conversation/git-graph/create-branch-dialog.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/create-branch-dialog.js +52 -0
- package/lib/types/client/conversation/git-graph/error-copy.d.ts +17 -0
- package/lib/types/client/conversation/git-graph/error-copy.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/error-copy.js +44 -0
- package/lib/types/client/conversation/git-graph/graph-dialog.d.ts +21 -0
- package/lib/types/client/conversation/git-graph/graph-dialog.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/graph-dialog.js +112 -0
- package/lib/types/client/conversation/git-graph/hero-seat.d.ts +53 -0
- package/lib/types/client/conversation/git-graph/hero-seat.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/hero-seat.js +54 -0
- package/lib/types/client/conversation/git-graph/locales.d.ts +88 -0
- package/lib/types/client/conversation/git-graph/locales.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/locales.js +85 -0
- package/lib/types/client/conversation/git-graph/sse-leader.d.ts +37 -0
- package/lib/types/client/conversation/git-graph/sse-leader.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/sse-leader.js +101 -0
- package/lib/types/client/conversation/index.d.ts +43 -0
- package/lib/types/client/conversation/index.d.ts.map +1 -0
- package/lib/types/client/conversation/index.js +39 -0
- package/lib/types/client/conversation/selector-context.d.ts +12 -0
- package/lib/types/client/conversation/selector-context.d.ts.map +1 -0
- package/lib/types/client/conversation/selector-context.js +11 -0
- package/lib/types/client/conversation/session-lane-chip.d.ts +72 -0
- package/lib/types/client/conversation/session-lane-chip.d.ts.map +1 -0
- package/lib/types/client/conversation/session-lane-chip.js +163 -0
- package/lib/types/client/conversation/session-lane-locales.d.ts +22 -0
- package/lib/types/client/conversation/session-lane-locales.d.ts.map +1 -0
- package/lib/types/client/conversation/session-lane-locales.js +29 -0
- package/lib/types/client/conversation/subagent-model-dom.d.ts +16 -0
- package/lib/types/client/conversation/subagent-model-dom.d.ts.map +1 -0
- package/lib/types/client/conversation/subagent-model-dom.js +138 -0
- package/lib/types/client/conversation/subagent-model.d.ts +17 -0
- package/lib/types/client/conversation/subagent-model.d.ts.map +1 -0
- package/lib/types/client/conversation/subagent-model.js +156 -0
- package/lib/types/client/conversation/worktree/api.d.ts +97 -0
- package/lib/types/client/conversation/worktree/api.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/api.js +239 -0
- package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.d.ts +35 -0
- package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.js +55 -0
- package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.d.ts +27 -0
- package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.js +49 -0
- package/lib/types/client/conversation/worktree/lane-binding.d.ts +46 -0
- package/lib/types/client/conversation/worktree/lane-binding.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-binding.js +60 -0
- package/lib/types/client/conversation/worktree/lane-menu.d.ts +51 -0
- package/lib/types/client/conversation/worktree/lane-menu.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-menu.js +140 -0
- package/lib/types/client/conversation/worktree/lane-open.d.ts +126 -0
- package/lib/types/client/conversation/worktree/lane-open.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-open.js +140 -0
- package/lib/types/client/conversation/worktree/lane-workspace-sweeper.d.ts +79 -0
- package/lib/types/client/conversation/worktree/lane-workspace-sweeper.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-workspace-sweeper.js +116 -0
- package/lib/types/client/conversation/worktree/lifecycle.d.ts +29 -0
- package/lib/types/client/conversation/worktree/lifecycle.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lifecycle.js +67 -0
- package/lib/types/client/conversation/worktree/locales.d.ts +58 -0
- package/lib/types/client/conversation/worktree/locales.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/locales.js +86 -0
- package/lib/types/client/conversation/worktree/semantic.d.ts +11 -0
- package/lib/types/client/conversation/worktree/semantic.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/semantic.js +10 -0
- package/lib/types/client/index.d.ts +14 -0
- package/lib/types/client/index.d.ts.map +1 -0
- package/lib/types/client/index.js +45 -0
- package/lib/types/client/lark-inbox/i18n.d.ts +63 -0
- package/lib/types/client/lark-inbox/i18n.d.ts.map +1 -0
- package/lib/types/client/lark-inbox/i18n.js +119 -0
- package/lib/types/client/lark-inbox/wizard.d.ts +19 -0
- package/lib/types/client/lark-inbox/wizard.d.ts.map +1 -0
- package/lib/types/client/lark-inbox/wizard.js +158 -0
- package/lib/types/client/notify/i18n.d.ts +47 -0
- package/lib/types/client/notify/i18n.d.ts.map +1 -0
- package/lib/types/client/notify/i18n.js +87 -0
- package/lib/types/client/settings/family-scope.d.ts +23 -0
- package/lib/types/client/settings/family-scope.d.ts.map +1 -0
- package/lib/types/client/settings/family-scope.js +30 -0
- package/lib/types/client/settings/lark-inbox.d.ts +73 -0
- package/lib/types/client/settings/lark-inbox.d.ts.map +1 -0
- package/lib/types/client/settings/lark-inbox.js +144 -0
- package/lib/types/client/settings/notify.d.ts +66 -0
- package/lib/types/client/settings/notify.d.ts.map +1 -0
- package/lib/types/client/settings/notify.js +139 -0
- package/lib/types/client/settings/primitives-0.2.d.ts +137 -0
- package/lib/types/client/settings/primitives-0.2.d.ts.map +1 -0
- package/lib/types/client/settings/primitives-0.2.js +8 -0
- package/lib/types/client/sidebar/RenderBoundary.d.ts +17 -0
- package/lib/types/client/sidebar/RenderBoundary.d.ts.map +1 -0
- package/lib/types/client/sidebar/RenderBoundary.js +18 -0
- package/lib/types/client/sidebar/agent-browser.d.ts +9 -0
- package/lib/types/client/sidebar/agent-browser.d.ts.map +1 -0
- package/lib/types/client/sidebar/agent-browser.js +102 -0
- package/lib/types/client/sidebar/diff-view.d.ts +58 -0
- package/lib/types/client/sidebar/diff-view.d.ts.map +1 -0
- package/lib/types/client/sidebar/diff-view.js +223 -0
- package/lib/types/client/sidebar/git-workbench.d.ts +41 -0
- package/lib/types/client/sidebar/git-workbench.d.ts.map +1 -0
- package/lib/types/client/sidebar/git-workbench.js +480 -0
- package/lib/types/client/sidebar/icons.d.ts +9 -0
- package/lib/types/client/sidebar/icons.d.ts.map +1 -0
- package/lib/types/client/sidebar/icons.js +6 -0
- package/lib/types/client/sidebar/index.d.ts +19 -0
- package/lib/types/client/sidebar/index.d.ts.map +1 -0
- package/lib/types/client/sidebar/index.js +12 -0
- package/lib/types/client/sidebar/native-panels.d.ts +19 -0
- package/lib/types/client/sidebar/native-panels.d.ts.map +1 -0
- package/lib/types/client/sidebar/native-panels.js +103 -0
- package/lib/types/client/sidebar/page-shell.d.ts +52 -0
- package/lib/types/client/sidebar/page-shell.d.ts.map +1 -0
- package/lib/types/client/sidebar/page-shell.js +18 -0
- package/lib/types/client/sidebar/panels/memoir/api.d.ts +258 -0
- package/lib/types/client/sidebar/panels/memoir/api.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/api.js +135 -0
- package/lib/types/client/sidebar/panels/memoir/controller.d.ts +22 -0
- package/lib/types/client/sidebar/panels/memoir/controller.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/controller.js +38 -0
- package/lib/types/client/sidebar/panels/memoir/cwd.d.ts +80 -0
- package/lib/types/client/sidebar/panels/memoir/cwd.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/cwd.js +96 -0
- package/lib/types/client/sidebar/panels/memoir/i18n.d.ts +21 -0
- package/lib/types/client/sidebar/panels/memoir/i18n.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/i18n.js +288 -0
- package/lib/types/client/sidebar/panels/memoir/panel-activation.d.ts +11 -0
- package/lib/types/client/sidebar/panels/memoir/panel-activation.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/panel-activation.js +37 -0
- package/lib/types/client/sidebar/panels/memoir/panel.d.ts +26 -0
- package/lib/types/client/sidebar/panels/memoir/panel.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/panel.js +423 -0
- package/lib/types/client/sidebar/panels/memoir/styles.d.ts +22 -0
- package/lib/types/client/sidebar/panels/memoir/styles.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/styles.js +774 -0
- package/lib/types/client/sidebar/panels/memoir/types.d.ts +7 -0
- package/lib/types/client/sidebar/panels/memoir/types.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/types.js +5 -0
- package/lib/types/client/sidebar/panels/ssh/ClusterTab.d.ts +8 -0
- package/lib/types/client/sidebar/panels/ssh/ClusterTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/ClusterTab.js +53 -0
- package/lib/types/client/sidebar/panels/ssh/HostFormDialog.d.ts +13 -0
- package/lib/types/client/sidebar/panels/ssh/HostFormDialog.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/HostFormDialog.js +110 -0
- package/lib/types/client/sidebar/panels/ssh/HostsTab.d.ts +26 -0
- package/lib/types/client/sidebar/panels/ssh/HostsTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/HostsTab.js +175 -0
- package/lib/types/client/sidebar/panels/ssh/SshPanel.d.ts +14 -0
- package/lib/types/client/sidebar/panels/ssh/SshPanel.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/SshPanel.js +34 -0
- package/lib/types/client/sidebar/panels/ssh/TerminalTab.d.ts +18 -0
- package/lib/types/client/sidebar/panels/ssh/TerminalTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/TerminalTab.js +207 -0
- package/lib/types/client/sidebar/panels/ssh/TransferTab.d.ts +8 -0
- package/lib/types/client/sidebar/panels/ssh/TransferTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/TransferTab.js +168 -0
- package/lib/types/client/sidebar/panels/ssh/TunnelsTab.d.ts +18 -0
- package/lib/types/client/sidebar/panels/ssh/TunnelsTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/TunnelsTab.js +161 -0
- package/lib/types/client/sidebar/panels/ssh/api.d.ts +80 -0
- package/lib/types/client/sidebar/panels/ssh/api.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/api.js +333 -0
- package/lib/types/client/sidebar/panels/ssh/controller.d.ts +23 -0
- package/lib/types/client/sidebar/panels/ssh/controller.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/controller.js +41 -0
- package/lib/types/client/sidebar/panels/ssh/helpers.d.ts +44 -0
- package/lib/types/client/sidebar/panels/ssh/helpers.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/helpers.js +53 -0
- package/lib/types/client/sidebar/panels/ssh/locales.d.ts +155 -0
- package/lib/types/client/sidebar/panels/ssh/locales.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/locales.js +312 -0
- package/lib/types/client/sidebar/panels/ssh/xterm.css.d.ts +3 -0
- package/lib/types/client/sidebar/panels/ssh/xterm.css.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/xterm.css.js +2 -0
- package/lib/types/client/sidebar/right-pane-i18n.d.ts +121 -0
- package/lib/types/client/sidebar/right-pane-i18n.d.ts.map +1 -0
- package/lib/types/client/sidebar/right-pane-i18n.js +239 -0
- package/lib/types/client/sidebar/right-pane.d.ts +27 -0
- package/lib/types/client/sidebar/right-pane.d.ts.map +1 -0
- package/lib/types/client/sidebar/right-pane.js +112 -0
- package/lib/types/client/sidebar/scope.d.ts +17 -0
- package/lib/types/client/sidebar/scope.d.ts.map +1 -0
- package/lib/types/client/sidebar/scope.js +41 -0
- package/lib/types/client/trust.d.ts +78 -0
- package/lib/types/client/trust.d.ts.map +1 -0
- package/lib/types/client/trust.js +130 -0
- package/lib/types/client/ui-icons.d.ts +19 -0
- package/lib/types/client/ui-icons.d.ts.map +1 -0
- package/lib/types/client/ui-icons.js +33 -0
- package/lib/types/core/git-graph/commands.d.ts +36 -0
- package/lib/types/core/git-graph/commands.d.ts.map +1 -0
- package/lib/types/core/git-graph/commands.js +122 -0
- package/lib/types/core/git-graph/protocol.d.ts +104 -0
- package/lib/types/core/git-graph/protocol.d.ts.map +1 -0
- package/lib/types/core/git-graph/protocol.js +142 -0
- package/lib/types/core/index.d.ts +3 -0
- package/lib/types/core/index.d.ts.map +1 -0
- package/lib/types/core/index.js +2 -0
- package/lib/types/core/lark-inbox/gating.d.ts +21 -0
- package/lib/types/core/lark-inbox/gating.d.ts.map +1 -0
- package/lib/types/core/lark-inbox/gating.js +17 -0
- package/lib/types/core/lark-inbox/queue.d.ts +27 -0
- package/lib/types/core/lark-inbox/queue.d.ts.map +1 -0
- package/lib/types/core/lark-inbox/queue.js +78 -0
- package/lib/types/core/memoir/protocol.d.ts +42 -0
- package/lib/types/core/memoir/protocol.d.ts.map +1 -0
- package/lib/types/core/memoir/protocol.js +8 -0
- package/lib/types/core/no-browser-auth/contract.d.ts +22 -0
- package/lib/types/core/no-browser-auth/contract.d.ts.map +1 -0
- package/lib/types/core/no-browser-auth/contract.js +9 -0
- package/lib/types/core/notify/contract.d.ts +133 -0
- package/lib/types/core/notify/contract.d.ts.map +1 -0
- package/lib/types/core/notify/contract.js +186 -0
- package/lib/types/core/notify/feed.d.ts +116 -0
- package/lib/types/core/notify/feed.d.ts.map +1 -0
- package/lib/types/core/notify/feed.js +214 -0
- package/lib/types/core/playwright-sessions/contracts.d.ts +98 -0
- package/lib/types/core/playwright-sessions/contracts.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/contracts.js +68 -0
- package/lib/types/core/playwright-sessions/control.d.ts +19 -0
- package/lib/types/core/playwright-sessions/control.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/control.js +9 -0
- package/lib/types/core/playwright-sessions/index.d.ts +4 -0
- package/lib/types/core/playwright-sessions/index.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/index.js +3 -0
- package/lib/types/core/playwright-sessions/names.d.ts +4 -0
- package/lib/types/core/playwright-sessions/names.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/names.js +84 -0
- package/lib/types/core/playwright-sessions/schema.d.ts +4 -0
- package/lib/types/core/playwright-sessions/schema.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/schema.js +90 -0
- package/lib/types/core/playwright-sessions/wire.d.ts +78 -0
- package/lib/types/core/playwright-sessions/wire.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/wire.js +103 -0
- package/lib/types/core/remote-access/paths.d.ts +19 -0
- package/lib/types/core/remote-access/paths.d.ts.map +1 -0
- package/lib/types/core/remote-access/paths.js +18 -0
- package/lib/types/core/remote-web-ui/security.d.ts +35 -0
- package/lib/types/core/remote-web-ui/security.d.ts.map +1 -0
- package/lib/types/core/remote-web-ui/security.js +146 -0
- package/lib/types/core/right-pane/protocol.d.ts +25 -0
- package/lib/types/core/right-pane/protocol.d.ts.map +1 -0
- package/lib/types/core/right-pane/protocol.js +91 -0
- package/lib/types/core/schedule-mode/index.d.ts +7 -0
- package/lib/types/core/schedule-mode/index.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/index.js +6 -0
- package/lib/types/core/schedule-mode/native.d.ts +35 -0
- package/lib/types/core/schedule-mode/native.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/native.js +82 -0
- package/lib/types/core/schedule-mode/types.d.ts +177 -0
- package/lib/types/core/schedule-mode/types.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/types.js +65 -0
- package/lib/types/core/schedule-mode/view.d.ts +62 -0
- package/lib/types/core/schedule-mode/view.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/view.js +4 -0
- package/lib/types/core/ssh/protocol.d.ts +215 -0
- package/lib/types/core/ssh/protocol.d.ts.map +1 -0
- package/lib/types/core/ssh/protocol.js +23 -0
- package/lib/types/core/subagent-model/badges.d.ts +73 -0
- package/lib/types/core/subagent-model/badges.d.ts.map +1 -0
- package/lib/types/core/subagent-model/badges.js +105 -0
- package/lib/types/core/worktree/invariant.d.ts +62 -0
- package/lib/types/core/worktree/invariant.d.ts.map +1 -0
- package/lib/types/core/worktree/invariant.js +72 -0
- package/lib/types/core/worktree/manifest.d.ts +71 -0
- package/lib/types/core/worktree/manifest.d.ts.map +1 -0
- package/lib/types/core/worktree/manifest.js +98 -0
- package/lib/types/core/worktree/paths.d.ts +60 -0
- package/lib/types/core/worktree/paths.d.ts.map +1 -0
- package/lib/types/core/worktree/paths.js +118 -0
- package/lib/types/core/worktree/pr-create.d.ts +67 -0
- package/lib/types/core/worktree/pr-create.d.ts.map +1 -0
- package/lib/types/core/worktree/pr-create.js +118 -0
- package/lib/types/core/worktree/protocol.d.ts +7 -0
- package/lib/types/core/worktree/protocol.d.ts.map +1 -0
- package/lib/types/core/worktree/protocol.js +6 -0
- package/lib/types/core/worktree/types.d.ts +292 -0
- package/lib/types/core/worktree/types.d.ts.map +1 -0
- package/lib/types/core/worktree/types.js +14 -0
- package/lib/types/core/worktree/workspace-model.d.ts +56 -0
- package/lib/types/core/worktree/workspace-model.d.ts.map +1 -0
- package/lib/types/core/worktree/workspace-model.js +14 -0
- package/lib/types/host/services/access-trust/index.d.ts +54 -0
- package/lib/types/host/services/access-trust/index.d.ts.map +1 -0
- package/lib/types/host/services/access-trust/index.js +82 -0
- package/lib/types/host/services/access-trust/trust.d.ts +70 -0
- package/lib/types/host/services/access-trust/trust.d.ts.map +1 -0
- package/lib/types/host/services/access-trust/trust.js +187 -0
- package/lib/types/host/services/codex-bridge/bridge.d.ts +106 -0
- package/lib/types/host/services/codex-bridge/bridge.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/bridge.js +321 -0
- package/lib/types/host/services/codex-bridge/codex-auth.d.ts +108 -0
- package/lib/types/host/services/codex-bridge/codex-auth.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/codex-auth.js +241 -0
- package/lib/types/host/services/codex-bridge/dsh-integration.d.ts +58 -0
- package/lib/types/host/services/codex-bridge/dsh-integration.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/dsh-integration.js +120 -0
- package/lib/types/host/services/codex-bridge/http.d.ts +43 -0
- package/lib/types/host/services/codex-bridge/http.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/http.js +92 -0
- package/lib/types/host/services/codex-bridge/index.d.ts +63 -0
- package/lib/types/host/services/codex-bridge/index.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/index.js +111 -0
- package/lib/types/host/services/codex-bridge/loopback.d.ts +25 -0
- package/lib/types/host/services/codex-bridge/loopback.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/loopback.js +68 -0
- package/lib/types/host/services/codex-bridge/routes.d.ts +31 -0
- package/lib/types/host/services/codex-bridge/routes.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/routes.js +126 -0
- package/lib/types/host/services/family-config.d.ts +71 -0
- package/lib/types/host/services/family-config.d.ts.map +1 -0
- package/lib/types/host/services/family-config.js +166 -0
- package/lib/types/host/services/family-namespaces.d.ts +24 -0
- package/lib/types/host/services/family-namespaces.d.ts.map +1 -0
- package/lib/types/host/services/family-namespaces.js +30 -0
- package/lib/types/host/services/git-graph/index.d.ts +6 -0
- package/lib/types/host/services/git-graph/index.d.ts.map +1 -0
- package/lib/types/host/services/git-graph/index.js +7 -0
- package/lib/types/host/services/git-graph/routes.d.ts +4 -0
- package/lib/types/host/services/git-graph/routes.d.ts.map +1 -0
- package/lib/types/host/services/git-graph/routes.js +241 -0
- package/lib/types/host/services/git-graph/service.d.ts +52 -0
- package/lib/types/host/services/git-graph/service.d.ts.map +1 -0
- package/lib/types/host/services/git-graph/service.js +301 -0
- package/lib/types/host/services/index.d.ts +23 -0
- package/lib/types/host/services/index.d.ts.map +1 -0
- package/lib/types/host/services/index.js +80 -0
- package/lib/types/host/services/lark-inbox/config.d.ts +24 -0
- package/lib/types/host/services/lark-inbox/config.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/config.js +48 -0
- package/lib/types/host/services/lark-inbox/gateway.d.ts +53 -0
- package/lib/types/host/services/lark-inbox/gateway.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/gateway.js +171 -0
- package/lib/types/host/services/lark-inbox/host-routes.d.ts +22 -0
- package/lib/types/host/services/lark-inbox/host-routes.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/host-routes.js +146 -0
- package/lib/types/host/services/lark-inbox/inbox-store.d.ts +39 -0
- package/lib/types/host/services/lark-inbox/inbox-store.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/inbox-store.js +124 -0
- package/lib/types/host/services/lark-inbox/index.d.ts +26 -0
- package/lib/types/host/services/lark-inbox/index.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/index.js +135 -0
- package/lib/types/host/services/lark-inbox/tools.d.ts +7 -0
- package/lib/types/host/services/lark-inbox/tools.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/tools.js +119 -0
- package/lib/types/host/services/lark-inbox/wizard.d.ts +62 -0
- package/lib/types/host/services/lark-inbox/wizard.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/wizard.js +211 -0
- package/lib/types/host/services/lifecycle.d.ts +29 -0
- package/lib/types/host/services/lifecycle.d.ts.map +1 -0
- package/lib/types/host/services/lifecycle.js +93 -0
- package/lib/types/host/services/memoir/index.d.ts +40 -0
- package/lib/types/host/services/memoir/index.d.ts.map +1 -0
- package/lib/types/host/services/memoir/index.js +52 -0
- package/lib/types/host/services/memoir/routes.d.ts +30 -0
- package/lib/types/host/services/memoir/routes.d.ts.map +1 -0
- package/lib/types/host/services/memoir/routes.js +364 -0
- package/lib/types/host/services/memoir/settings.d.ts +27 -0
- package/lib/types/host/services/memoir/settings.d.ts.map +1 -0
- package/lib/types/host/services/memoir/settings.js +120 -0
- package/lib/types/host/services/memoir/store.d.ts +35 -0
- package/lib/types/host/services/memoir/store.d.ts.map +1 -0
- package/lib/types/host/services/memoir/store.js +124 -0
- package/lib/types/host/services/memoir/tools.d.ts +8 -0
- package/lib/types/host/services/memoir/tools.d.ts.map +1 -0
- package/lib/types/host/services/memoir/tools.js +154 -0
- package/lib/types/host/services/no-browser-auth/index.d.ts +25 -0
- package/lib/types/host/services/no-browser-auth/index.d.ts.map +1 -0
- package/lib/types/host/services/no-browser-auth/index.js +42 -0
- package/lib/types/host/services/notify/config.d.ts +105 -0
- package/lib/types/host/services/notify/config.d.ts.map +1 -0
- package/lib/types/host/services/notify/config.js +123 -0
- package/lib/types/host/services/notify/feishu-sender.d.ts +120 -0
- package/lib/types/host/services/notify/feishu-sender.d.ts.map +1 -0
- package/lib/types/host/services/notify/feishu-sender.js +186 -0
- package/lib/types/host/services/notify/host-routes.d.ts +69 -0
- package/lib/types/host/services/notify/host-routes.d.ts.map +1 -0
- package/lib/types/host/services/notify/host-routes.js +112 -0
- package/lib/types/host/services/notify/index.d.ts +80 -0
- package/lib/types/host/services/notify/index.d.ts.map +1 -0
- package/lib/types/host/services/notify/index.js +263 -0
- package/lib/types/host/services/playwright-sessions/child.d.ts +76 -0
- package/lib/types/host/services/playwright-sessions/child.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/child.js +197 -0
- package/lib/types/host/services/playwright-sessions/controller.d.ts +25 -0
- package/lib/types/host/services/playwright-sessions/controller.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/controller.js +104 -0
- package/lib/types/host/services/playwright-sessions/index.d.ts +6 -0
- package/lib/types/host/services/playwright-sessions/index.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/index.js +161 -0
- package/lib/types/host/services/playwright-sessions/live-view.d.ts +32 -0
- package/lib/types/host/services/playwright-sessions/live-view.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/live-view.js +188 -0
- package/lib/types/host/services/playwright-sessions/manager.d.ts +87 -0
- package/lib/types/host/services/playwright-sessions/manager.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/manager.js +203 -0
- package/lib/types/host/services/playwright-sessions/profile-gc.d.ts +39 -0
- package/lib/types/host/services/playwright-sessions/profile-gc.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/profile-gc.js +72 -0
- package/lib/types/host/services/playwright-sessions/routes.d.ts +18 -0
- package/lib/types/host/services/playwright-sessions/routes.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/routes.js +87 -0
- package/lib/types/host/services/remote-access/boot-scripts.d.ts +55 -0
- package/lib/types/host/services/remote-access/boot-scripts.d.ts.map +1 -0
- package/lib/types/host/services/remote-access/boot-scripts.js +109 -0
- package/lib/types/host/services/remote-access/index.d.ts +28 -0
- package/lib/types/host/services/remote-access/index.d.ts.map +1 -0
- package/lib/types/host/services/remote-access/index.js +47 -0
- package/lib/types/host/services/remote-access/routes.d.ts +42 -0
- package/lib/types/host/services/remote-access/routes.d.ts.map +1 -0
- package/lib/types/host/services/remote-access/routes.js +119 -0
- package/lib/types/host/services/remote-web-ui/index.d.ts +21 -0
- package/lib/types/host/services/remote-web-ui/index.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/index.js +325 -0
- package/lib/types/host/services/remote-web-ui/server-mode/accounts.d.ts +115 -0
- package/lib/types/host/services/remote-web-ui/server-mode/accounts.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/accounts.js +396 -0
- package/lib/types/host/services/remote-web-ui/server-mode/cookie.d.ts +28 -0
- package/lib/types/host/services/remote-web-ui/server-mode/cookie.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/cookie.js +48 -0
- package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.d.ts +17 -0
- package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.js +40 -0
- package/lib/types/host/services/remote-web-ui/server-mode/external-auth.d.ts +73 -0
- package/lib/types/host/services/remote-web-ui/server-mode/external-auth.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/external-auth.js +242 -0
- package/lib/types/host/services/remote-web-ui/server-mode/fence.d.ts +23 -0
- package/lib/types/host/services/remote-web-ui/server-mode/fence.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/fence.js +24 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.d.ts +89 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.js +768 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway.d.ts +99 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway.js +679 -0
- package/lib/types/host/services/remote-web-ui/server-mode/http.d.ts +43 -0
- package/lib/types/host/services/remote-web-ui/server-mode/http.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/http.js +92 -0
- package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.d.ts +42 -0
- package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.js +73 -0
- package/lib/types/host/services/remote-web-ui/server-mode/lan.d.ts +13 -0
- package/lib/types/host/services/remote-web-ui/server-mode/lan.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/lan.js +17 -0
- package/lib/types/host/services/remote-web-ui/server-mode/loopback.d.ts +25 -0
- package/lib/types/host/services/remote-web-ui/server-mode/loopback.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/loopback.js +68 -0
- package/lib/types/host/services/remote-web-ui/server-mode/posture.d.ts +75 -0
- package/lib/types/host/services/remote-web-ui/server-mode/posture.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/posture.js +116 -0
- package/lib/types/host/services/remote-web-ui/server-mode/roles.d.ts +44 -0
- package/lib/types/host/services/remote-web-ui/server-mode/roles.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/roles.js +47 -0
- package/lib/types/host/services/remote-web-ui/server-mode/server-boot.d.ts +21 -0
- package/lib/types/host/services/remote-web-ui/server-mode/server-boot.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/server-boot.js +37 -0
- package/lib/types/host/services/remote-web-ui/server-mode/sessions.d.ts +111 -0
- package/lib/types/host/services/remote-web-ui/server-mode/sessions.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/sessions.js +298 -0
- package/lib/types/host/services/remote-web-ui/server.d.ts +82 -0
- package/lib/types/host/services/remote-web-ui/server.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server.js +492 -0
- package/lib/types/host/services/resources.d.ts +9 -0
- package/lib/types/host/services/resources.d.ts.map +1 -0
- package/lib/types/host/services/resources.js +98 -0
- package/lib/types/host/services/right-pane/browser.d.ts +42 -0
- package/lib/types/host/services/right-pane/browser.d.ts.map +1 -0
- package/lib/types/host/services/right-pane/browser.js +106 -0
- package/lib/types/host/services/right-pane/index.d.ts +22 -0
- package/lib/types/host/services/right-pane/index.d.ts.map +1 -0
- package/lib/types/host/services/right-pane/index.js +114 -0
- package/lib/types/host/services/right-pane/wire.d.ts +6 -0
- package/lib/types/host/services/right-pane/wire.d.ts.map +1 -0
- package/lib/types/host/services/right-pane/wire.js +9 -0
- package/lib/types/host/services/schedule-mode/config.d.ts +11 -0
- package/lib/types/host/services/schedule-mode/config.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/config.js +15 -0
- package/lib/types/host/services/schedule-mode/engine.d.ts +150 -0
- package/lib/types/host/services/schedule-mode/engine.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/engine.js +672 -0
- package/lib/types/host/services/schedule-mode/index.d.ts +33 -0
- package/lib/types/host/services/schedule-mode/index.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/index.js +175 -0
- package/lib/types/host/services/schedule-mode/routes.d.ts +31 -0
- package/lib/types/host/services/schedule-mode/routes.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/routes.js +109 -0
- package/lib/types/host/services/schedule-mode/session-create.d.ts +27 -0
- package/lib/types/host/services/schedule-mode/session-create.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/session-create.js +21 -0
- package/lib/types/host/services/schedule-mode/store.d.ts +36 -0
- package/lib/types/host/services/schedule-mode/store.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/store.js +309 -0
- package/lib/types/host/services/schedule-mode/tools.d.ts +13 -0
- package/lib/types/host/services/schedule-mode/tools.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/tools.js +132 -0
- package/lib/types/host/services/ssh/engine.d.ts +162 -0
- package/lib/types/host/services/ssh/engine.d.ts.map +1 -0
- package/lib/types/host/services/ssh/engine.js +699 -0
- package/lib/types/host/services/ssh/host-keys.d.ts +10 -0
- package/lib/types/host/services/ssh/host-keys.d.ts.map +1 -0
- package/lib/types/host/services/ssh/host-keys.js +108 -0
- package/lib/types/host/services/ssh/index.d.ts +38 -0
- package/lib/types/host/services/ssh/index.d.ts.map +1 -0
- package/lib/types/host/services/ssh/index.js +47 -0
- package/lib/types/host/services/ssh/routes.d.ts +29 -0
- package/lib/types/host/services/ssh/routes.d.ts.map +1 -0
- package/lib/types/host/services/ssh/routes.js +465 -0
- package/lib/types/host/services/ssh/store.d.ts +40 -0
- package/lib/types/host/services/ssh/store.d.ts.map +1 -0
- package/lib/types/host/services/ssh/store.js +330 -0
- package/lib/types/host/services/ssh/terminal-ws.d.ts +9 -0
- package/lib/types/host/services/ssh/terminal-ws.d.ts.map +1 -0
- package/lib/types/host/services/ssh/terminal-ws.js +142 -0
- package/lib/types/host/services/ssh/tools.d.ts +11 -0
- package/lib/types/host/services/ssh/tools.d.ts.map +1 -0
- package/lib/types/host/services/ssh/tools.js +270 -0
- package/lib/types/host/services/web-render/contracts.d.ts +93 -0
- package/lib/types/host/services/web-render/contracts.d.ts.map +1 -0
- package/lib/types/host/services/web-render/contracts.js +60 -0
- package/lib/types/host/services/web-render/index.d.ts +58 -0
- package/lib/types/host/services/web-render/index.d.ts.map +1 -0
- package/lib/types/host/services/web-render/index.js +90 -0
- package/lib/types/host/services/web-render/provider.d.ts +37 -0
- package/lib/types/host/services/web-render/provider.d.ts.map +1 -0
- package/lib/types/host/services/web-render/provider.js +274 -0
- package/lib/types/host/services/web-search-anthropic/contracts.d.ts +117 -0
- package/lib/types/host/services/web-search-anthropic/contracts.d.ts.map +1 -0
- package/lib/types/host/services/web-search-anthropic/contracts.js +90 -0
- package/lib/types/host/services/web-search-anthropic/index.d.ts +53 -0
- package/lib/types/host/services/web-search-anthropic/index.d.ts.map +1 -0
- package/lib/types/host/services/web-search-anthropic/index.js +123 -0
- package/lib/types/host/services/web-search-anthropic/provider.d.ts +101 -0
- package/lib/types/host/services/web-search-anthropic/provider.d.ts.map +1 -0
- package/lib/types/host/services/web-search-anthropic/provider.js +237 -0
- package/lib/types/host/services/worktree/git-runner.d.ts +82 -0
- package/lib/types/host/services/worktree/git-runner.d.ts.map +1 -0
- package/lib/types/host/services/worktree/git-runner.js +81 -0
- package/lib/types/host/services/worktree/git.d.ts +94 -0
- package/lib/types/host/services/worktree/git.d.ts.map +1 -0
- package/lib/types/host/services/worktree/git.js +153 -0
- package/lib/types/host/services/worktree/http.d.ts +12 -0
- package/lib/types/host/services/worktree/http.d.ts.map +1 -0
- package/lib/types/host/services/worktree/http.js +34 -0
- package/lib/types/host/services/worktree/index.d.ts +38 -0
- package/lib/types/host/services/worktree/index.d.ts.map +1 -0
- package/lib/types/host/services/worktree/index.js +78 -0
- package/lib/types/host/services/worktree/lane-tool.d.ts +22 -0
- package/lib/types/host/services/worktree/lane-tool.d.ts.map +1 -0
- package/lib/types/host/services/worktree/lane-tool.js +92 -0
- package/lib/types/host/services/worktree/manager.d.ts +410 -0
- package/lib/types/host/services/worktree/manager.d.ts.map +1 -0
- package/lib/types/host/services/worktree/manager.js +1485 -0
- package/lib/types/host/services/worktree/model-override.d.ts +20 -0
- package/lib/types/host/services/worktree/model-override.d.ts.map +1 -0
- package/lib/types/host/services/worktree/model-override.js +35 -0
- package/lib/types/host/services/worktree/routes.d.ts +50 -0
- package/lib/types/host/services/worktree/routes.d.ts.map +1 -0
- package/lib/types/host/services/worktree/routes.js +695 -0
- package/lib/types/host/services/worktree/run-command.d.ts +26 -0
- package/lib/types/host/services/worktree/run-command.d.ts.map +1 -0
- package/lib/types/host/services/worktree/run-command.js +36 -0
- package/lib/types/host/services/worktree/session-lane/manager.d.ts +109 -0
- package/lib/types/host/services/worktree/session-lane/manager.d.ts.map +1 -0
- package/lib/types/host/services/worktree/session-lane/manager.js +172 -0
- package/lib/types/host/services/worktree/workspace-model-routes.d.ts +21 -0
- package/lib/types/host/services/worktree/workspace-model-routes.d.ts.map +1 -0
- package/lib/types/host/services/worktree/workspace-model-routes.js +198 -0
- package/lib/types/host/services/worktree/workspace-model.d.ts +48 -0
- package/lib/types/host/services/worktree/workspace-model.d.ts.map +1 -0
- package/lib/types/host/services/worktree/workspace-model.js +113 -0
- package/lib/types/index.d.ts +47 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +52 -0
- package/lib/types/invariant.d.ts +4 -0
- package/lib/types/invariant.d.ts.map +1 -0
- package/lib/types/invariant.js +3 -0
- package/package.json +153 -3
- package/presets/code-vibe/THIRD_PARTY_NOTICES.md +55 -0
- package/presets/code-vibe/skills/UPSTREAM.md +104 -0
- package/presets/code-vibe/skills/agent-experience/SKILL.md +15 -0
- package/presets/code-vibe/skills/agent-operation/SKILL.md +43 -0
- package/presets/code-vibe/skills/code-review/SKILL.md +45 -0
- package/presets/code-vibe/skills/dsh-ci-test-reliability/SKILL.md +133 -0
- package/presets/code-vibe/skills/dsh-ci-test-reliability/references/ci-flake-diagnosis.md +60 -0
- package/presets/code-vibe/skills/dsh-find-simplifications/SKILL.md +69 -0
- package/presets/code-vibe/skills/dsh-find-simplifications/references/historical-patterns.md +45 -0
- package/presets/code-vibe/skills/dsh-merging-stacked-prs/SKILL.md +129 -0
- package/presets/code-vibe/skills/dsh-prose-standard/SKILL.md +83 -0
- package/presets/code-vibe/skills/dsh-prose-standard/references/examples.md +169 -0
- package/presets/code-vibe/skills/dsh-speed-up-perf/SKILL.md +94 -0
- package/presets/code-vibe/skills/dsh-trim-cot-leakage/SKILL.md +47 -0
- package/presets/code-vibe/skills/dsh-trim-cot-leakage/references/examples.md +275 -0
- package/presets/code-vibe/skills/dsh-trim-cot-leakage/references/recall-batteries.md +52 -0
- package/presets/code-vibe/skills/frontend-design/SKILL.md +60 -0
- package/presets/code-vibe/skills/frontend-design/references/critique-format.md +35 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/LOAD-MAP.md +81 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/README.md +53 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/anchor.md +51 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/audit/ai-tells.md +59 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/audit/web-interface.md +14 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/change-control.md +62 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/copy.md +65 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/craft-knobs.md +61 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/debug-playbook.md +37 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/exemplars/README.md +64 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/plan-architecture.checklist.json +13 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/product-judgment.md +113 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/system-architecture.md +108 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/README.md +26 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/color-roles.md +49 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/motion.md +51 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/scale.md +89 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/ui-page-gate.md +61 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/ui-surface.checklist.json +49 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/ux.md +76 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/visual.md +52 -0
- package/presets/code-vibe/skills/frontend-design/references/perceptible-path.md +27 -0
- package/presets/code-vibe/skills/frontend-design/references/product-package.md +80 -0
- package/presets/code-vibe/skills/frontend-design/references/scheme-antipatterns.md +21 -0
- package/presets/code-vibe/skills/quality-review/SKILL.md +57 -0
- package/presets/code-vibe/skills/quality-review/references/bounded-verify.md +37 -0
- package/presets/code-vibe/skills/quality-review/references/browser-verify.md +81 -0
- package/presets/code-vibe/skills/quality-review/references/evidence-contract.md +194 -0
- package/presets/code-vibe/skills/quality-review/references/falsify-checklist.md +44 -0
- package/presets/code-vibe/skills/quality-review/references/human-acceptance-pack.md +68 -0
- package/presets/code-vibe/skills/quality-review/references/product-regression.md +51 -0
- package/presets/code-vibe/skills/quality-review/references/ux-standards.md +37 -0
- package/presets/code-vibe/skills/quality-review/references/ux-walkthrough.md +49 -0
- package/presets/code-vibe/skills/quality-review/references/validation-report.md +22 -0
- package/presets/code-vibe/skills/quality-review/references/verification-loop.md +95 -0
- package/presets/code-vibe/skills/quality-review/references/version-acceptance-matrix.md +131 -0
- package/presets/code-vibe/skills/record-browser-gif/SKILL.md +174 -0
- package/presets/code-vibe/skills/record-browser-gif/scripts/encode_gif.py +337 -0
- package/presets/code-vibe/skills/record-browser-gif/scripts/test_encode_gif.py +103 -0
- package/presets/code-vibe/skills/wish-programming/SKILL.md +150 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/arch-reviewer.md +26 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/design-reviewer.md +32 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/pm-reviewer.md +26 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/qa-reviewer.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/security-reviewer.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/sre-reviewer.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/ux-adversary.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/arch.md.tpl +51 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/brief.md.tpl +36 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/confirmation-pack.md +54 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/design-spec.md.tpl +49 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/module-readme.md +37 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/product.md.tpl +74 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/requirements.md.tpl +31 -0
- package/presets/code-vibe/skills/wish-programming/references/workflow-template.md +122 -0
- package/presets/code-vibe/skills/wish-programming/scripts/MANIFEST.sha256 +11 -0
- package/presets/code-vibe/skills/wish-programming/scripts/check_spec.py +416 -0
- package/presets/code-vibe/skills/wish-programming/scripts/check_whitelist.py +193 -0
- package/presets/code-vibe/skills/wish-programming/scripts/coverage_check.py +199 -0
- package/presets/code-vibe/skills/wish-programming/scripts/gate-lock.sh +46 -0
- package/presets/code-vibe/skills/wish-programming/scripts/journey.sh +281 -0
- package/presets/code-vibe/skills/wish-programming/scripts/project.sh +152 -0
- package/presets/code-vibe/skills/wish-programming/scripts/replay.sh +65 -0
- package/presets/code-vibe/skills/wish-programming/scripts/scan_drift.py +79 -0
- package/presets/code-vibe/skills/wish-programming/scripts/verify.sh +169 -0
- package/presets/code-vibe/skills/wish-programming/scripts/verify_preset_budgets.py +218 -0
- package/presets/code-vibe/skills/wish-programming/scripts/wish.sh +150 -0
- package/presets/code-vibe.patch.yml +325 -0
- package/presets/hiopen.patch.yml +109 -0
- package/src/client/compat.ts +86 -0
- package/src/client/conversation/conversation.module.css +264 -0
- package/src/client/conversation/git-branch.tsx +152 -0
- package/src/client/conversation/git-graph/LICENSE.git-graph +202 -0
- package/src/client/conversation/git-graph/api.ts +85 -0
- package/src/client/conversation/git-graph/branch-chip.tsx +354 -0
- package/src/client/conversation/git-graph/branch-popover.tsx +185 -0
- package/src/client/conversation/git-graph/chip.tsx +47 -0
- package/src/client/conversation/git-graph/create-branch-dialog.tsx +108 -0
- package/src/client/conversation/git-graph/error-copy.ts +50 -0
- package/src/client/conversation/git-graph/git-graph.module.css +792 -0
- package/src/client/conversation/git-graph/graph-dialog.tsx +196 -0
- package/src/client/conversation/git-graph/hero-seat.ts +76 -0
- package/src/client/conversation/git-graph/locales.ts +90 -0
- package/src/client/conversation/git-graph/sse-leader.ts +124 -0
- package/src/client/conversation/index.ts +82 -0
- package/src/client/conversation/selector-context.tsx +24 -0
- package/src/client/conversation/session-lane-chip.tsx +262 -0
- package/src/client/conversation/session-lane-locales.ts +34 -0
- package/src/client/conversation/subagent-model-dom.ts +157 -0
- package/src/client/conversation/subagent-model.ts +198 -0
- package/src/client/conversation/worktree/api.ts +283 -0
- package/src/client/conversation/worktree/dialogs/DeleteWorktreeDialog.tsx +111 -0
- package/src/client/conversation/worktree/dialogs/PrCreateDialog.tsx +114 -0
- package/src/client/conversation/worktree/lane-binding.ts +77 -0
- package/src/client/conversation/worktree/lane-menu.tsx +247 -0
- package/src/client/conversation/worktree/lane-open.ts +204 -0
- package/src/client/conversation/worktree/lane-workspace-sweeper.ts +136 -0
- package/src/client/conversation/worktree/lifecycle.ts +75 -0
- package/src/client/conversation/worktree/locales.ts +97 -0
- package/src/client/conversation/worktree/semantic.ts +10 -0
- package/src/client/conversation/worktree/worktree.module.css +70 -0
- package/src/client/css-modules.d.ts +8 -0
- package/src/client/index.ts +58 -0
- package/src/client/lark-inbox/i18n.ts +125 -0
- package/src/client/lark-inbox/lark-wizard.module.css +88 -0
- package/src/client/lark-inbox/wizard.tsx +211 -0
- package/src/client/notify/i18n.ts +93 -0
- package/src/client/settings/family-scope.ts +45 -0
- package/src/client/settings/lark-inbox.tsx +319 -0
- package/src/client/settings/notify.tsx +288 -0
- package/src/client/settings/primitives-0.2.ts +148 -0
- package/src/client/settings/settings-shell.module.css +56 -0
- package/src/client/sidebar/RenderBoundary.tsx +17 -0
- package/src/client/sidebar/agent-browser.tsx +114 -0
- package/src/client/sidebar/diff-view.tsx +314 -0
- package/src/client/sidebar/git-workbench.tsx +700 -0
- package/src/client/sidebar/icons.tsx +23 -0
- package/src/client/sidebar/index.ts +28 -0
- package/src/client/sidebar/native-panels.tsx +149 -0
- package/src/client/sidebar/page-shell.module.css +96 -0
- package/src/client/sidebar/page-shell.tsx +86 -0
- package/src/client/sidebar/panels/memoir/api.ts +300 -0
- package/src/client/sidebar/panels/memoir/controller.ts +47 -0
- package/src/client/sidebar/panels/memoir/cwd.ts +140 -0
- package/src/client/sidebar/panels/memoir/i18n.ts +300 -0
- package/src/client/sidebar/panels/memoir/panel-activation.ts +42 -0
- package/src/client/sidebar/panels/memoir/panel.tsx +869 -0
- package/src/client/sidebar/panels/memoir/styles.ts +776 -0
- package/src/client/sidebar/panels/memoir/types.ts +7 -0
- package/src/client/sidebar/panels/ssh/ClusterTab.tsx +123 -0
- package/src/client/sidebar/panels/ssh/HostFormDialog.tsx +243 -0
- package/src/client/sidebar/panels/ssh/HostsTab.tsx +290 -0
- package/src/client/sidebar/panels/ssh/SshPanel.tsx +76 -0
- package/src/client/sidebar/panels/ssh/TerminalTab.tsx +290 -0
- package/src/client/sidebar/panels/ssh/TransferTab.tsx +232 -0
- package/src/client/sidebar/panels/ssh/TunnelsTab.tsx +204 -0
- package/src/client/sidebar/panels/ssh/api.ts +388 -0
- package/src/client/sidebar/panels/ssh/controller.ts +48 -0
- package/src/client/sidebar/panels/ssh/helpers.ts +70 -0
- package/src/client/sidebar/panels/ssh/locales.ts +318 -0
- package/src/client/sidebar/panels/ssh/panel.module.css +801 -0
- package/src/client/sidebar/panels/ssh/xterm.css.ts +2 -0
- package/src/client/sidebar/right-pane-i18n.ts +243 -0
- package/src/client/sidebar/right-pane.tsx +156 -0
- package/src/client/sidebar/scope.ts +54 -0
- package/src/client/sidebar/sidebar-header.module.css +72 -0
- package/src/client/sidebar/sidebar.module.css +619 -0
- package/src/client/trust.ts +187 -0
- package/src/client/ui-icons.ts +35 -0
- package/src/core/git-graph/commands.ts +107 -0
- package/src/core/git-graph/protocol.ts +238 -0
- package/src/core/index.ts +2 -0
- package/src/core/lark-inbox/gating.ts +35 -0
- package/src/core/lark-inbox/queue.ts +100 -0
- package/src/core/memoir/protocol.ts +46 -0
- package/src/core/no-browser-auth/contract.ts +25 -0
- package/src/core/notify/contract.ts +236 -0
- package/src/core/notify/feed.ts +235 -0
- package/src/core/playwright-sessions/contracts.ts +143 -0
- package/src/core/playwright-sessions/control.ts +33 -0
- package/src/core/playwright-sessions/index.ts +3 -0
- package/src/core/playwright-sessions/names.ts +83 -0
- package/src/core/playwright-sessions/schema.ts +102 -0
- package/src/core/playwright-sessions/wire.ts +142 -0
- package/src/core/remote-access/paths.ts +23 -0
- package/src/core/remote-web-ui/security.ts +171 -0
- package/src/core/right-pane/protocol.ts +94 -0
- package/src/core/schedule-mode/index.ts +6 -0
- package/src/core/schedule-mode/native.ts +105 -0
- package/src/core/schedule-mode/types.ts +182 -0
- package/src/core/schedule-mode/view.ts +66 -0
- package/src/core/ssh/protocol.ts +212 -0
- package/src/core/subagent-model/badges.ts +161 -0
- package/src/core/worktree/invariant.ts +101 -0
- package/src/core/worktree/manifest.ts +135 -0
- package/src/core/worktree/paths.ts +123 -0
- package/src/core/worktree/pr-create.ts +157 -0
- package/src/core/worktree/protocol.ts +7 -0
- package/src/core/worktree/types.ts +317 -0
- package/src/core/worktree/workspace-model.ts +61 -0
- package/src/host/services/access-trust/index.ts +127 -0
- package/src/host/services/access-trust/trust.ts +189 -0
- package/src/host/services/codex-bridge/bridge.ts +392 -0
- package/src/host/services/codex-bridge/codex-auth.ts +352 -0
- package/src/host/services/codex-bridge/dsh-integration.ts +169 -0
- package/src/host/services/codex-bridge/http.ts +105 -0
- package/src/host/services/codex-bridge/index.ts +154 -0
- package/src/host/services/codex-bridge/loopback.ts +63 -0
- package/src/host/services/codex-bridge/routes.ts +143 -0
- package/src/host/services/family-config.ts +224 -0
- package/src/host/services/family-namespaces.ts +39 -0
- package/src/host/services/git-graph/index.ts +11 -0
- package/src/host/services/git-graph/routes.ts +212 -0
- package/src/host/services/git-graph/service.ts +305 -0
- package/src/host/services/index.ts +94 -0
- package/src/host/services/lark-inbox/config.ts +66 -0
- package/src/host/services/lark-inbox/gateway.ts +184 -0
- package/src/host/services/lark-inbox/host-routes.ts +113 -0
- package/src/host/services/lark-inbox/inbox-store.ts +160 -0
- package/src/host/services/lark-inbox/index.ts +141 -0
- package/src/host/services/lark-inbox/tools.ts +124 -0
- package/src/host/services/lark-inbox/wizard.ts +206 -0
- package/src/host/services/lifecycle.ts +107 -0
- package/src/host/services/memoir/index.ts +80 -0
- package/src/host/services/memoir/routes.ts +346 -0
- package/src/host/services/memoir/settings.ts +122 -0
- package/src/host/services/memoir/store.ts +132 -0
- package/src/host/services/memoir/tools.ts +158 -0
- package/src/host/services/no-browser-auth/index.ts +70 -0
- package/src/host/services/notify/config.ts +178 -0
- package/src/host/services/notify/feishu-sender.ts +220 -0
- package/src/host/services/notify/host-routes.ts +133 -0
- package/src/host/services/notify/index.ts +305 -0
- package/src/host/services/playwright-sessions/child.ts +251 -0
- package/src/host/services/playwright-sessions/controller.ts +102 -0
- package/src/host/services/playwright-sessions/index.ts +146 -0
- package/src/host/services/playwright-sessions/live-view.ts +225 -0
- package/src/host/services/playwright-sessions/manager.ts +239 -0
- package/src/host/services/playwright-sessions/profile-gc.ts +97 -0
- package/src/host/services/playwright-sessions/routes.ts +90 -0
- package/src/host/services/remote-access/boot-scripts.ts +118 -0
- package/src/host/services/remote-access/index.ts +62 -0
- package/src/host/services/remote-access/routes.ts +137 -0
- package/src/host/services/remote-web-ui/index.ts +344 -0
- package/src/host/services/remote-web-ui/server-mode/accounts.ts +423 -0
- package/src/host/services/remote-web-ui/server-mode/cookie.ts +57 -0
- package/src/host/services/remote-web-ui/server-mode/dsh-home.ts +42 -0
- package/src/host/services/remote-web-ui/server-mode/external-auth.ts +296 -0
- package/src/host/services/remote-web-ui/server-mode/fence.ts +27 -0
- package/src/host/services/remote-web-ui/server-mode/gateway-routes.ts +797 -0
- package/src/host/services/remote-web-ui/server-mode/gateway.ts +684 -0
- package/src/host/services/remote-web-ui/server-mode/http.ts +105 -0
- package/src/host/services/remote-web-ui/server-mode/integrated-auth.ts +118 -0
- package/src/host/services/remote-web-ui/server-mode/lan.ts +19 -0
- package/src/host/services/remote-web-ui/server-mode/loopback.ts +63 -0
- package/src/host/services/remote-web-ui/server-mode/posture.ts +154 -0
- package/src/host/services/remote-web-ui/server-mode/roles.ts +51 -0
- package/src/host/services/remote-web-ui/server-mode/server-boot.ts +38 -0
- package/src/host/services/remote-web-ui/server-mode/sessions.ts +347 -0
- package/src/host/services/remote-web-ui/server.ts +591 -0
- package/src/host/services/resources.ts +78 -0
- package/src/host/services/right-pane/browser.ts +106 -0
- package/src/host/services/right-pane/index.ts +117 -0
- package/src/host/services/right-pane/wire.ts +10 -0
- package/src/host/services/schedule-mode/config.ts +26 -0
- package/src/host/services/schedule-mode/engine.ts +689 -0
- package/src/host/services/schedule-mode/index.ts +214 -0
- package/src/host/services/schedule-mode/routes.ts +130 -0
- package/src/host/services/schedule-mode/session-create.ts +36 -0
- package/src/host/services/schedule-mode/store.ts +304 -0
- package/src/host/services/schedule-mode/tools.ts +154 -0
- package/src/host/services/ssh/engine.ts +675 -0
- package/src/host/services/ssh/host-keys.ts +99 -0
- package/src/host/services/ssh/index.ts +84 -0
- package/src/host/services/ssh/routes.ts +442 -0
- package/src/host/services/ssh/store.ts +310 -0
- package/src/host/services/ssh/terminal-ws.ts +157 -0
- package/src/host/services/ssh/tools.ts +279 -0
- package/src/host/services/web-render/contracts.ts +138 -0
- package/src/host/services/web-render/index.ts +112 -0
- package/src/host/services/web-render/provider.ts +282 -0
- package/src/host/services/web-search-anthropic/contracts.ts +163 -0
- package/src/host/services/web-search-anthropic/index.ts +152 -0
- package/src/host/services/web-search-anthropic/provider.ts +325 -0
- package/src/host/services/worktree/git-runner.ts +124 -0
- package/src/host/services/worktree/git.ts +183 -0
- package/src/host/services/worktree/http.ts +36 -0
- package/src/host/services/worktree/index.ts +92 -0
- package/src/host/services/worktree/lane-tool.ts +100 -0
- package/src/host/services/worktree/manager.ts +1553 -0
- package/src/host/services/worktree/model-override.ts +43 -0
- package/src/host/services/worktree/routes.ts +570 -0
- package/src/host/services/worktree/run-command.ts +66 -0
- package/src/host/services/worktree/session-lane/manager.ts +228 -0
- package/src/host/services/worktree/workspace-model-routes.ts +156 -0
- package/src/host/services/worktree/workspace-model.ts +132 -0
- package/src/index.ts +84 -0
- package/src/invariant.ts +4 -0
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Git graph panel: a read-only commit list with lane topology, ref
|
|
3
|
+
* labels, and paging (git log --branches --tags --remotes --topo-order).
|
|
4
|
+
* @module dsh-git-graph/client/graph/GraphDialog
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
8
|
+
import { IconCloseOutline16 } from '../../ui-icons.ts'
|
|
9
|
+
import type { Translate } from '@deepseek-ai/dsh-client-ui-slots'
|
|
10
|
+
import { computeLanes, type GraphView, type LaneGlyph } from '../../../core/git-graph/protocol.ts'
|
|
11
|
+
import type { GitGraphKey } from './locales.ts'
|
|
12
|
+
import { Backdrop, cx } from './chip.tsx'
|
|
13
|
+
import css from './git-graph.module.css'
|
|
14
|
+
|
|
15
|
+
/** Initial page size of the graph fetch. */
|
|
16
|
+
const INITIAL_LIMIT = 200
|
|
17
|
+
/** Page size of one "load more" step. */
|
|
18
|
+
const PAGE_STEP = 100
|
|
19
|
+
|
|
20
|
+
/** Lane glyph → the rendered monospace character. */
|
|
21
|
+
function glyphChar(glyph: LaneGlyph): string {
|
|
22
|
+
switch (glyph) {
|
|
23
|
+
case 'node': return '●'
|
|
24
|
+
case 'merge': return '◆'
|
|
25
|
+
case 'pass': return '│'
|
|
26
|
+
case 'gap': return ' '
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Seconds per time bucket (relative timestamps). */
|
|
31
|
+
const MINUTE = 60
|
|
32
|
+
const HOUR = 60 * MINUTE
|
|
33
|
+
const DAY = 24 * HOUR
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A compact relative timestamp (GitHub-style): "just now", "5 分钟前",
|
|
37
|
+
* falling back to a plain date past 30 days.
|
|
38
|
+
* @param epochSeconds - commit author time in seconds.
|
|
39
|
+
* @param t - the dictionary.
|
|
40
|
+
* @returns the display string.
|
|
41
|
+
*/
|
|
42
|
+
function formatTime(epochSeconds: number, t: Translate<GitGraphKey>): string {
|
|
43
|
+
const elapsed = Math.max(0, Math.floor(Date.now() / 1000) - epochSeconds)
|
|
44
|
+
if (elapsed < MINUTE) return t('graph.time.justNow')
|
|
45
|
+
if (elapsed < HOUR) return t('graph.time.minutesAgo', { count: Math.floor(elapsed / MINUTE) })
|
|
46
|
+
if (elapsed < DAY) return t('graph.time.hoursAgo', { count: Math.floor(elapsed / HOUR) })
|
|
47
|
+
if (elapsed < 30 * DAY) return t('graph.time.daysAgo', { count: Math.floor(elapsed / DAY) })
|
|
48
|
+
const date = new Date(epochSeconds * 1000)
|
|
49
|
+
const pad = (n: number): string => String(n).padStart(2, '0')
|
|
50
|
+
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}`
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Props of the Git graph dialog. */
|
|
54
|
+
export interface GraphDialogProps {
|
|
55
|
+
/** The graph verb (host-side read-only log). */
|
|
56
|
+
graph: (limit?: number) => Promise<GraphView | null>
|
|
57
|
+
onClose: () => void
|
|
58
|
+
t: Translate<GitGraphKey>
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The Git graph panel.
|
|
63
|
+
* @param props - see {@link GraphDialogProps}.
|
|
64
|
+
*/
|
|
65
|
+
export function GraphDialog({ graph, onClose, t }: GraphDialogProps) {
|
|
66
|
+
const [view, setView] = useState<GraphView | null>(null)
|
|
67
|
+
const [error, setError] = useState<string | null>(null)
|
|
68
|
+
const [loading, setLoading] = useState(true)
|
|
69
|
+
|
|
70
|
+
// Out-of-order guard: two rapid loads (load-more while a fetch is in
|
|
71
|
+
// flight) must never let the older, smaller page overwrite the newer one.
|
|
72
|
+
const requestSeq = useRef(0)
|
|
73
|
+
const load = useCallback((limit: number): void => {
|
|
74
|
+
const seq = requestSeq.current + 1
|
|
75
|
+
requestSeq.current = seq
|
|
76
|
+
setLoading(true)
|
|
77
|
+
void graph(limit).then((next) => {
|
|
78
|
+
if (seq !== requestSeq.current) return
|
|
79
|
+
setView(next)
|
|
80
|
+
setError(next === null ? t('error.internal') : null)
|
|
81
|
+
}).catch(() => {
|
|
82
|
+
if (seq !== requestSeq.current) return
|
|
83
|
+
setError(t('error.internal'))
|
|
84
|
+
}).finally(() => {
|
|
85
|
+
if (seq === requestSeq.current) setLoading(false)
|
|
86
|
+
})
|
|
87
|
+
}, [graph, t])
|
|
88
|
+
|
|
89
|
+
// Initial load exactly once on mount. The parent passes a fresh inline
|
|
90
|
+
// `graph` arrow on every BranchChip render, which changes `load`'s identity
|
|
91
|
+
// and would re-run the initial fetch (resetting any loaded pages) if it
|
|
92
|
+
// were a dependency — so read the latest `load` through a ref instead.
|
|
93
|
+
const loadRef = useRef(load)
|
|
94
|
+
loadRef.current = load
|
|
95
|
+
useEffect(() => { loadRef.current(INITIAL_LIMIT) }, [])
|
|
96
|
+
|
|
97
|
+
const lanes = useMemo(() => {
|
|
98
|
+
if (view === null) return []
|
|
99
|
+
return computeLanes(view.commits)
|
|
100
|
+
}, [view])
|
|
101
|
+
|
|
102
|
+
const laneCount = useMemo(() => {
|
|
103
|
+
let count = 0
|
|
104
|
+
for (const row of lanes) count = Math.max(count, row.columns.length)
|
|
105
|
+
return count
|
|
106
|
+
}, [lanes])
|
|
107
|
+
|
|
108
|
+
return (
|
|
109
|
+
<>
|
|
110
|
+
<Backdrop onClose={onClose} />
|
|
111
|
+
<div className={css.dialog} role="dialog" aria-label={t('graph.title')} data-gitgraph-dialog data-dsh-plugin="git-graph" data-dsh-part="dialog">
|
|
112
|
+
<div className={css.dialogHeader}>
|
|
113
|
+
<div className={css.dialogHeading}>
|
|
114
|
+
<h3 className={css.dialogTitle}>{t('graph.title')}</h3>
|
|
115
|
+
<div className={css.graphSubtitle}>
|
|
116
|
+
{t('graph.subtitle', {
|
|
117
|
+
count: view === null ? 0 : view.commits.length,
|
|
118
|
+
lanes: laneCount,
|
|
119
|
+
})}
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
<button
|
|
123
|
+
type="button"
|
|
124
|
+
className={css.dialogClose}
|
|
125
|
+
onClick={onClose}
|
|
126
|
+
aria-label={t('graph.close')}
|
|
127
|
+
>
|
|
128
|
+
<IconCloseOutline16 size={16} />
|
|
129
|
+
</button>
|
|
130
|
+
</div>
|
|
131
|
+
<div className={css.graphBody}>
|
|
132
|
+
{loading && view === null
|
|
133
|
+
? <div className={css.graphEmpty}>{t('graph.loading')}</div>
|
|
134
|
+
: error !== null
|
|
135
|
+
? <div className={css.graphEmpty}>{error}</div>
|
|
136
|
+
: view === null || view.commits.length === 0
|
|
137
|
+
? <div className={css.graphEmpty}>{t('graph.empty')}</div>
|
|
138
|
+
: view.commits.map((commit, index) => {
|
|
139
|
+
const row = lanes[index]
|
|
140
|
+
if (row === undefined) return null
|
|
141
|
+
return (
|
|
142
|
+
<div className={css.graphRow} key={commit.oid}>
|
|
143
|
+
<span className={css.graphLanes} aria-hidden="true" data-gitgraph-lanes>
|
|
144
|
+
{row.columns.map((glyph, column) => (
|
|
145
|
+
<span
|
|
146
|
+
key={column}
|
|
147
|
+
data-gitgraph-glyph={glyph === 'pass' ? 'lane' : glyph}
|
|
148
|
+
className={cx(
|
|
149
|
+
css.graphLaneCell,
|
|
150
|
+
glyph === 'node' && css.graphLaneNode,
|
|
151
|
+
glyph === 'merge' && css.graphLaneMerge,
|
|
152
|
+
glyph === 'pass' && css.graphLanePass,
|
|
153
|
+
)}
|
|
154
|
+
>
|
|
155
|
+
{glyphChar(glyph)}
|
|
156
|
+
</span>
|
|
157
|
+
))}
|
|
158
|
+
</span>
|
|
159
|
+
<span className={css.graphOid} title={commit.oid}>{commit.oid.slice(0, 7)}</span>
|
|
160
|
+
<span className={css.graphMain}>
|
|
161
|
+
<span className={css.graphSubject} title={commit.subject}>{commit.subject}</span>
|
|
162
|
+
<span className={css.graphMeta}>
|
|
163
|
+
{commit.refs.map(ref => (
|
|
164
|
+
<span
|
|
165
|
+
key={ref}
|
|
166
|
+
title={ref}
|
|
167
|
+
data-gitgraph-ref
|
|
168
|
+
data-gitgraph-ref-current={ref === view.branch || undefined}
|
|
169
|
+
data-gitgraph-current-branch={ref === view.branch || undefined}
|
|
170
|
+
className={cx(css.graphRef, ref === view.branch && css.graphRefCurrent)}
|
|
171
|
+
>
|
|
172
|
+
{ref}
|
|
173
|
+
</span>
|
|
174
|
+
))}
|
|
175
|
+
<span>{commit.author}</span>
|
|
176
|
+
<span className={css.graphMetaSep}>·</span>
|
|
177
|
+
<span>{formatTime(commit.authorTime, t)}</span>
|
|
178
|
+
</span>
|
|
179
|
+
</span>
|
|
180
|
+
</div>
|
|
181
|
+
)
|
|
182
|
+
})}
|
|
183
|
+
</div>
|
|
184
|
+
{view !== null && view.hasMore && (
|
|
185
|
+
<button
|
|
186
|
+
type="button"
|
|
187
|
+
className={css.graphMore}
|
|
188
|
+
onClick={() => { load(view.commits.length + PAGE_STEP) }}
|
|
189
|
+
>
|
|
190
|
+
{t('graph.loadMore')}
|
|
191
|
+
</button>
|
|
192
|
+
)}
|
|
193
|
+
</div>
|
|
194
|
+
</>
|
|
195
|
+
)
|
|
196
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Geometry of the branch chip's hero seat: the official hero chip row is found
|
|
3
|
+
* structurally and the chip is placed after its rightmost painted chip.
|
|
4
|
+
*
|
|
5
|
+
* The offsets live here instead of inside the component because the composer
|
|
6
|
+
* stack is `position: static`: absolute offsets have to be taken against the
|
|
7
|
+
* anchor's own containing block (`offsetParent`), and a stack-relative formula
|
|
8
|
+
* lands the chip hundreds of pixels away from the row. Keeping the math pure
|
|
9
|
+
* keeps that mistake testable.
|
|
10
|
+
* @module dsh-git-graph/client/chips/heroSeat
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** Horizontal gap between the official hero-row chips (WorkspaceChip / AgentPresetSeat). */
|
|
14
|
+
export const HERO_CHIP_GAP = 2
|
|
15
|
+
|
|
16
|
+
/** Height of an official hero-row chip, matching the `.chipHero` min-height. */
|
|
17
|
+
export const HERO_CHIP_HEIGHT = 28
|
|
18
|
+
|
|
19
|
+
/** The anchor's containing block, in border-box coordinates. */
|
|
20
|
+
export interface HeroBlockBox {
|
|
21
|
+
left: number
|
|
22
|
+
top: number
|
|
23
|
+
clientLeft: number
|
|
24
|
+
clientTop: number
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** The official hero chip row, in border-box coordinates. */
|
|
28
|
+
export interface HeroRowBox {
|
|
29
|
+
top: number
|
|
30
|
+
height: number
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Chip offsets, in the containing block's coordinate space. */
|
|
34
|
+
export interface HeroPlacement {
|
|
35
|
+
left: number
|
|
36
|
+
top: number
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The official hero chip row, when the dock row sits directly under it: the
|
|
41
|
+
* slot outlet renders as `display: contents`, so the row is the outlet's
|
|
42
|
+
* previous element sibling. Anything else (no previous sibling, the headline,
|
|
43
|
+
* a notice) leaves the chip in flow inside the dock row.
|
|
44
|
+
*/
|
|
45
|
+
export function heroRowFor(anchor: HTMLElement): Element | null {
|
|
46
|
+
const outlet = anchor.parentElement
|
|
47
|
+
const row = outlet?.previousElementSibling ?? null
|
|
48
|
+
if (outlet === null || row === null) return null
|
|
49
|
+
const display = getComputedStyle(outlet).display
|
|
50
|
+
if (display !== 'contents' && display !== 'inline') return null
|
|
51
|
+
const rect = row.getBoundingClientRect()
|
|
52
|
+
if (rect.width <= 0 || rect.height < 24 || rect.height > 40) return null
|
|
53
|
+
return row.querySelector('button') === null ? null : row
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Whether `anchor` is lifted out of the dock row: a shell that keeps the dock
|
|
58
|
+
* inline (no hero row above it) renders the chip there instead.
|
|
59
|
+
*/
|
|
60
|
+
export function shouldProbeInFlow(anchor: HTMLElement): boolean {
|
|
61
|
+
return getComputedStyle(anchor).position === 'static'
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Place the chip just after the hero row's rightmost painted chip, vertically
|
|
66
|
+
* centred in the row (the row is 28px tall, so the offsets coincide).
|
|
67
|
+
* @param block - the anchor's containing block.
|
|
68
|
+
* @param row - the official hero chip row.
|
|
69
|
+
* @param paintedRight - the row's rightmost painted descendant edge.
|
|
70
|
+
*/
|
|
71
|
+
export function heroPlacementIn(block: HeroBlockBox, row: HeroRowBox, paintedRight: number): HeroPlacement {
|
|
72
|
+
return {
|
|
73
|
+
left: Math.max(0, paintedRight - block.left - block.clientLeft + HERO_CHIP_GAP),
|
|
74
|
+
top: Math.max(0, row.top - block.top - block.clientTop + (row.height - HERO_CHIP_HEIGHT) / 2),
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/** `git-graph` namespace dictionaries (branch selector + Git graph copy). */
|
|
2
|
+
|
|
3
|
+
/** Simplified Chinese dictionary (the key-set source of truth). */
|
|
4
|
+
export const zh = {
|
|
5
|
+
'branch.search': '搜索分支',
|
|
6
|
+
'branch.empty': '未找到匹配分支',
|
|
7
|
+
'branch.detached': '分离 HEAD',
|
|
8
|
+
'branch.dirty': '未提交的更改:{count} 个文件',
|
|
9
|
+
'branch.create': '创建并检出新分支…',
|
|
10
|
+
'branch.graph': 'Git 图谱',
|
|
11
|
+
'branch.createDialog.title': '创建并检出新分支',
|
|
12
|
+
'branch.createDialog.description': '基于当前 HEAD 创建一个新的本地分支,并在创建成功后立即切换过去。',
|
|
13
|
+
'branch.createDialog.nameLabel': '分支名',
|
|
14
|
+
'branch.createDialog.placeholder': '例如 feature/git-branch-switcher',
|
|
15
|
+
'branch.createDialog.confirm': '创建并切换',
|
|
16
|
+
'branch.createDialog.cancel': '取消',
|
|
17
|
+
'graph.title': 'Git 图谱',
|
|
18
|
+
'graph.subtitle': '{count} 个提交,{lanes} 条分支线',
|
|
19
|
+
'graph.loading': '加载中…',
|
|
20
|
+
'graph.loadMore': '加载更多',
|
|
21
|
+
'graph.close': '关闭',
|
|
22
|
+
'graph.empty': '没有提交记录',
|
|
23
|
+
'graph.time.justNow': '刚刚',
|
|
24
|
+
'graph.time.minutesAgo': '{count} 分钟前',
|
|
25
|
+
'graph.time.hoursAgo': '{count} 小时前',
|
|
26
|
+
'graph.time.daysAgo': '{count} 天前',
|
|
27
|
+
'error.conflictsPresent': '当前仓库还有未解决的冲突,先处理完再切换分支。',
|
|
28
|
+
'error.operationInProgress': '当前仓库还有进行中的 Git 操作,完成后再切换分支。',
|
|
29
|
+
'error.branchInOtherWorktree': '目标分支已在其他目录中被检出,当前目录无法直接切换。',
|
|
30
|
+
'error.trackedOverwrite': '切换失败,以下已跟踪文件的修改会被目标分支覆盖:{paths}。',
|
|
31
|
+
'error.untrackedOverwrite': '切换失败,以下未跟踪文件会被目标分支覆盖:{paths}。',
|
|
32
|
+
'error.moreFiles': '等另外 {count} 个文件',
|
|
33
|
+
'error.targetBranchNotFound': '目标分支不存在于本地仓库。',
|
|
34
|
+
'error.invalidBranchName': '分支名无效,请重新输入。',
|
|
35
|
+
'error.branchAlreadyExists': '分支已存在,请换一个名称。',
|
|
36
|
+
'error.workspaceUnknown': '当前目录不是已注册的工作区。',
|
|
37
|
+
'error.internal': '操作失败,请稍后重试。',
|
|
38
|
+
'error.requestFailed': '分支操作失败:{error}',
|
|
39
|
+
'toast.switchSuccess': '已为分支 {branchName} 建好目录,并已在其中开始本对话',
|
|
40
|
+
'toast.worktreeReady': '已为分支 {branchName} 建好目录。它已出现在「选择工作区」里,选中即可在该分支上开始对话。',
|
|
41
|
+
'branch.currentHint': '该分支已在项目主目录检出,无法同时再为它建一个目录',
|
|
42
|
+
'branch.createDialog.done': '知道了',
|
|
43
|
+
'chip.aria.branch': '分支',
|
|
44
|
+
} satisfies Record<string, string>
|
|
45
|
+
|
|
46
|
+
/** The git-graph namespace key union. */
|
|
47
|
+
export type GitGraphKey = keyof typeof zh
|
|
48
|
+
|
|
49
|
+
/** English dictionary, checked complete against the zh key set. */
|
|
50
|
+
export const en = {
|
|
51
|
+
'branch.search': 'Search branches',
|
|
52
|
+
'branch.empty': 'No matching branches',
|
|
53
|
+
'branch.detached': 'Detached HEAD',
|
|
54
|
+
'branch.dirty': 'Uncommitted changes: {count} files',
|
|
55
|
+
'branch.create': 'Create and switch to new branch…',
|
|
56
|
+
'branch.graph': 'Git Graph',
|
|
57
|
+
'branch.createDialog.title': 'Create and switch to new branch',
|
|
58
|
+
'branch.createDialog.description': 'Create a new local branch from the current HEAD and switch to it immediately.',
|
|
59
|
+
'branch.createDialog.nameLabel': 'Branch name',
|
|
60
|
+
'branch.createDialog.placeholder': 'For example, feature/git-branch-switcher',
|
|
61
|
+
'branch.createDialog.confirm': 'Create and switch',
|
|
62
|
+
'branch.createDialog.cancel': 'Cancel',
|
|
63
|
+
'graph.title': 'Git Graph',
|
|
64
|
+
'graph.subtitle': '{count} commits, {lanes} branch lines',
|
|
65
|
+
'graph.loading': 'Loading…',
|
|
66
|
+
'graph.loadMore': 'Load more',
|
|
67
|
+
'graph.close': 'Close',
|
|
68
|
+
'graph.empty': 'No commits',
|
|
69
|
+
'graph.time.justNow': 'just now',
|
|
70
|
+
'graph.time.minutesAgo': '{count} minutes ago',
|
|
71
|
+
'graph.time.hoursAgo': '{count} hours ago',
|
|
72
|
+
'graph.time.daysAgo': '{count} days ago',
|
|
73
|
+
'error.conflictsPresent': 'The repository still has unresolved conflicts. Resolve them before switching branches.',
|
|
74
|
+
'error.operationInProgress': 'Another Git operation is still in progress. Finish it before switching branches.',
|
|
75
|
+
'error.branchInOtherWorktree': 'That branch is already checked out in another directory.',
|
|
76
|
+
'error.trackedOverwrite': 'Switch failed because tracked files would be overwritten: {paths}.',
|
|
77
|
+
'error.untrackedOverwrite': 'Switch failed because untracked files would be overwritten: {paths}.',
|
|
78
|
+
'error.moreFiles': '{count} more files',
|
|
79
|
+
'error.targetBranchNotFound': 'The target branch does not exist locally.',
|
|
80
|
+
'error.invalidBranchName': 'The branch name is invalid. Enter a different name.',
|
|
81
|
+
'error.branchAlreadyExists': 'That branch already exists. Choose another name.',
|
|
82
|
+
'error.workspaceUnknown': 'This directory is not a registered workspace.',
|
|
83
|
+
'error.internal': 'The operation failed. Please try again.',
|
|
84
|
+
'error.requestFailed': 'Branch operation failed: {error}',
|
|
85
|
+
'toast.switchSuccess': 'Directory ready for {branchName}; this conversation now runs in it',
|
|
86
|
+
'toast.worktreeReady': 'Directory ready for {branchName}. It now appears in the workspace selector — pick it to start a conversation on that branch.',
|
|
87
|
+
'branch.currentHint': "This branch is already checked out in the project's main directory, so it cannot have a directory of its own",
|
|
88
|
+
'branch.createDialog.done': 'Got it',
|
|
89
|
+
'chip.aria.branch': 'Branch',
|
|
90
|
+
} satisfies Record<GitGraphKey, string>
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Generated by scripts/sync-shared.mjs from shared/client/sse-leader.ts. Do not edit this copy; edit the shared source and run "node scripts/sync-shared.mjs".
|
|
2
|
+
/**
|
|
3
|
+
* Cross-tab SSE leader relay (issue #383).
|
|
4
|
+
*
|
|
5
|
+
* Chrome/Edge cap HTTP/1.1 connections per origin at 6, and the pool is
|
|
6
|
+
* SHARED across same-origin tabs: every DSH tab already holds the core
|
|
7
|
+
* /plugins/events stream, so each plugin EventSource a tab opens brings two
|
|
8
|
+
* tabs to the pool limit and every plain fetch (list/read/git-status POSTs)
|
|
9
|
+
* queues forever. There is no per-tab fix inside the fetch layer — the
|
|
10
|
+
* streams themselves must be shared.
|
|
11
|
+
*
|
|
12
|
+
* This module keeps exactly ONE EventSource per URL across the whole
|
|
13
|
+
* browser: tabs elect a leader through the Web Locks API (the lock releases
|
|
14
|
+
* automatically when the leader's tab closes or navigates), the leader
|
|
15
|
+
* relays every event over a BroadcastChannel, and followers receive the
|
|
16
|
+
* broadcast instead of opening their own stream. Within one tab, callers
|
|
17
|
+
* sharing a URL also share the single relay. When Web Locks or
|
|
18
|
+
* BroadcastChannel is unavailable — a plain-HTTP remote entry has no
|
|
19
|
+
* secure-context Web Locks — the module degrades to one stream per tab
|
|
20
|
+
* instead of one per browser, so the per-origin connection cap returns as
|
|
21
|
+
* the number of open tabs grows.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/** Constructor/namespace seams so tests can drive the relay without a browser. */
|
|
25
|
+
export interface SseRelaySeams {
|
|
26
|
+
eventSource?: typeof EventSource
|
|
27
|
+
broadcastChannel?: typeof BroadcastChannel
|
|
28
|
+
locks?: LockManager
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface Relay {
|
|
32
|
+
listeners: Set<(data: string) => void>
|
|
33
|
+
destroy(): void
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/** Live relays keyed by event name + URL (one per tab, ref-counted by listeners). */
|
|
37
|
+
const relays = new Map<string, Relay>()
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Subscribe to an SSE endpoint shared across every tab of the browser.
|
|
41
|
+
* @param url - same-origin EventSource URL (including its query string).
|
|
42
|
+
* @param eventName - the SSE event field to listen for (e.g. 'change').
|
|
43
|
+
* @param onEvent - fired with the raw event data string on every push.
|
|
44
|
+
* @param seams - constructor overrides (tests).
|
|
45
|
+
* @returns the disposer; destroying the LAST local listener tears the relay down.
|
|
46
|
+
*/
|
|
47
|
+
export function subscribeSharedEvents(
|
|
48
|
+
url: string,
|
|
49
|
+
eventName: string,
|
|
50
|
+
onEvent: (data: string) => void,
|
|
51
|
+
seams: SseRelaySeams = {},
|
|
52
|
+
): () => void {
|
|
53
|
+
const key = eventName + ' ' + url
|
|
54
|
+
let relay = relays.get(key)
|
|
55
|
+
if (relay === undefined) {
|
|
56
|
+
relay = createRelay(key, url, eventName, seams)
|
|
57
|
+
relays.set(key, relay)
|
|
58
|
+
}
|
|
59
|
+
relay.listeners.add(onEvent)
|
|
60
|
+
return () => {
|
|
61
|
+
const current = relays.get(key)
|
|
62
|
+
if (current === undefined) return
|
|
63
|
+
current.listeners.delete(onEvent)
|
|
64
|
+
if (current.listeners.size === 0) {
|
|
65
|
+
current.destroy()
|
|
66
|
+
relays.delete(key)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
function createRelay(key: string, url: string, eventName: string, seams: SseRelaySeams): Relay {
|
|
72
|
+
const listeners = new Set<(data: string) => void>()
|
|
73
|
+
const dispatch = (data: string): void => {
|
|
74
|
+
for (const listener of [...listeners]) listener(data)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const EventSourceImpl = seams.eventSource ?? EventSource
|
|
78
|
+
const ChannelImpl = seams.broadcastChannel
|
|
79
|
+
?? (typeof BroadcastChannel === 'undefined' ? undefined : BroadcastChannel)
|
|
80
|
+
const locks = seams.locks
|
|
81
|
+
?? (typeof navigator === 'undefined' || navigator.locks === undefined ? undefined : navigator.locks)
|
|
82
|
+
|
|
83
|
+
// Degraded path: without cross-tab machinery, behave exactly like a plain
|
|
84
|
+
// per-subscription EventSource (the pre-relay behavior).
|
|
85
|
+
if (ChannelImpl === undefined || locks === undefined) {
|
|
86
|
+
const source = new EventSourceImpl(url)
|
|
87
|
+
source.addEventListener(eventName, (raw) => { dispatch((raw as MessageEvent).data as string) })
|
|
88
|
+
return { listeners, destroy: () => { source.close() } }
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const channel = new ChannelImpl('dsh-sse:' + key)
|
|
92
|
+
channel.addEventListener('message', (raw) => { dispatch((raw as MessageEvent).data as string) })
|
|
93
|
+
|
|
94
|
+
// Leadership candidacy: queued requests wait until the incumbent's lock
|
|
95
|
+
// releases (tab close, or a voluntary teardown below); the grant then
|
|
96
|
+
// promotes this tab and opens the browser-wide stream.
|
|
97
|
+
const abort = new AbortController()
|
|
98
|
+
let release: (() => void) | undefined
|
|
99
|
+
let source: EventSource | undefined
|
|
100
|
+
void locks.request('dsh-sse:' + key, { signal: abort.signal }, () => {
|
|
101
|
+
source = new EventSourceImpl(url)
|
|
102
|
+
source.addEventListener(eventName, (raw) => {
|
|
103
|
+
const data = (raw as MessageEvent).data as string
|
|
104
|
+
channel.postMessage(data)
|
|
105
|
+
dispatch(data)
|
|
106
|
+
})
|
|
107
|
+
// The lock is held until this promise settles; destroy() resolves it.
|
|
108
|
+
return new Promise<void>(resolve => { release = resolve })
|
|
109
|
+
}).catch(() => {
|
|
110
|
+
// An aborted candidacy rejects with an AbortError — expected teardown.
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
return {
|
|
114
|
+
listeners,
|
|
115
|
+
destroy() {
|
|
116
|
+
channel.close()
|
|
117
|
+
// Queued follower: cancel the candidacy. Leader: end the lock
|
|
118
|
+
// callback, which releases the lock so a waiting tab takes over.
|
|
119
|
+
abort.abort()
|
|
120
|
+
release?.()
|
|
121
|
+
source?.close()
|
|
122
|
+
},
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 位置模块:会话区(conversation)— 唯一负责 conversation.* 注入的位置模块。
|
|
3
|
+
*
|
|
4
|
+
* 收编:git-graph 分支 chip(官方 `conversation.input.dock`,会话作用域注入
|
|
5
|
+
* sessionId;它是唯一的 worktree 创建入口——选分支即为该分支建 worktree)、
|
|
6
|
+
* subagent 模型徽标、会话标题后的 lane chip(官方
|
|
7
|
+
* `conversation.session.header.actions`:显示本会话所在分支与状态,并承载该
|
|
8
|
+
* worktree 的收尾动作——提 PR / 清理 / 移除)。
|
|
9
|
+
*
|
|
10
|
+
* worktree 的界面只有这两处:输入框上方的分支选择器(创建)与会话顶部的 lane
|
|
11
|
+
* chip(查看与收尾)。侧栏不再有 Worktrees 页面,`worktree` 命名空间(chip
|
|
12
|
+
* 弹层与各对话框的文案)因此由本模块注册。
|
|
13
|
+
*
|
|
14
|
+
* 自动化任务「投递到原对话还是每次新对话」**没有界面入口**:它在创建任务时由
|
|
15
|
+
* 自然语言 + agent 工具(`schedule_mode_set` / `schedule_mode_list`)一次设定,
|
|
16
|
+
* 所以本位置模块不再注入任何 schedule 相关的槽位。
|
|
17
|
+
*
|
|
18
|
+
* 不再有独立的「新建 worktree / 工作线」选择器:分支与 worktree 是同一个动作。
|
|
19
|
+
* 每条 lane 的目录会注册成一个 DSH 工作区——这是平台约束而非口味:注册表只把 cwd
|
|
20
|
+
* 等于工作区路径的会话算作该工作区的成员,而没有任何工作区认领的空白对话,输入框
|
|
21
|
+
* 是禁用的(只显示「选择一个工作区开始」)。因此选分支时本模块调用平台自己的工作区
|
|
22
|
+
* 导航 `uiWorkspace.openWorkspace`,把当前对话真正切到新 lane 上,再把配对关系绑到
|
|
23
|
+
* 该会话;拆除 lane 时工作区注册随目录一起注销,侧栏只留还活着的 lane。切换动作不
|
|
24
|
+
* 来自席位 props——dock 席位只收 `{ session, input }`,从那里读切换函数只会静默不切。
|
|
25
|
+
*
|
|
26
|
+
* 回合产出文件 chips(turnTail)已移除:它是 0.1 时代的 select 链注册(0.2 的
|
|
27
|
+
* 该槽只传 `{turn, seq, openFile}`,收不到 `matched`,每回合必崩),而 0.2 原生
|
|
28
|
+
* `@deepseek-ai/dsh-client-ui-deliverables` 已经提供同位的「本回合改动/产物」chip。
|
|
29
|
+
*/
|
|
30
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis'
|
|
31
|
+
import type {} from '@deepseek-ai/dsh-client-ui-slots'
|
|
32
|
+
import type {} from '@deepseek-ai/dsh-client-ui-conversation/client'
|
|
33
|
+
import { mountSelectorContext } from './selector-context.tsx'
|
|
34
|
+
import { gitGraphEn, gitGraphZh } from './git-branch.tsx'
|
|
35
|
+
import { mountSessionLaneChip, sessionLaneEn, sessionLaneZh } from './session-lane-chip.tsx'
|
|
36
|
+
import { mountSubagentModel } from './subagent-model.ts'
|
|
37
|
+
import { en as worktreeEn, zh as worktreeZh } from './worktree/locales.ts'
|
|
38
|
+
import { mountLaneWorkspaceSweeper, type LaneSweeperWorkspaces } from './worktree/lane-workspace-sweeper.ts'
|
|
39
|
+
|
|
40
|
+
/** 会话区位置模块 locale 命名空间。 */
|
|
41
|
+
export const NS = 'web-all-conversation'
|
|
42
|
+
|
|
43
|
+
/** Conversation copy keys; zh in subagent-model.ts is the key source. */
|
|
44
|
+
export type ConversationLocaleKey = 'subagentModel.badge.aria'
|
|
45
|
+
|
|
46
|
+
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
47
|
+
interface LocaleNamespaceMap {
|
|
48
|
+
/** Conversation position module copy. */
|
|
49
|
+
'web-all-conversation': ConversationLocaleKey
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** 装配会话区位置模块。 */
|
|
54
|
+
export function mountConversation(ctx: ClientContext): () => void {
|
|
55
|
+
const disposers = [
|
|
56
|
+
ctx.locale.register('web-all-git-graph', { zh: gitGraphZh, en: gitGraphEn }),
|
|
57
|
+
ctx.locale.register('web-all-session-lane', { zh: sessionLaneZh, en: sessionLaneEn }),
|
|
58
|
+
// The lane chip's popover and the dialogs it opens speak the worktree
|
|
59
|
+
// namespace; the conversation position module owns that surface now.
|
|
60
|
+
ctx.locale.register('worktree', { zh: worktreeZh, en: worktreeEn }),
|
|
61
|
+
mountSelectorContext(ctx),
|
|
62
|
+
mountSessionLaneChip(ctx),
|
|
63
|
+
mountSubagentModel(ctx),
|
|
64
|
+
// lane 的工作区注册不能比它自己的对话活得久:对话全部归档后就注销那一行
|
|
65
|
+
// (目录、分支、绑定都留着,再选该分支即可一步重建)。这里挂在会话区模块,
|
|
66
|
+
// 因为 lane 的浏览器半区就在本模块;它不占任何槽位,只是订阅工作区列表。
|
|
67
|
+
mountLaneWorkspaceSweeper({
|
|
68
|
+
workspaces: optionalWorkspaceService(ctx),
|
|
69
|
+
warn: (message, error) => { console.warn(message, error) },
|
|
70
|
+
}),
|
|
71
|
+
]
|
|
72
|
+
return () => { for (const dispose of disposers) dispose() }
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** 取可选的工作区服务(缺失或抛错都返回 undefined)。 */
|
|
76
|
+
function optionalWorkspaceService(ctx: ClientContext): LaneSweeperWorkspaces | undefined {
|
|
77
|
+
try {
|
|
78
|
+
return (ctx.get as unknown as (id: string, strict?: boolean) => unknown)('workspaces', false) as LaneSweeperWorkspaces | undefined
|
|
79
|
+
} catch {
|
|
80
|
+
return undefined
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 输入区 dock 的 git 分支 chip(DSH 0.2)。
|
|
3
|
+
*
|
|
4
|
+
* 0.2 不再有 `conversation.input.selector.context` 槽(0.1 时代的首选席位),
|
|
5
|
+
* 官方 `conversation.input.dock` 是 session 作用域、由 `inject(sessionId)` 注入
|
|
6
|
+
* 会话身份;因此这里直接注册到 dock 并携带 sessionId(旧的 2 秒回退等待已移除,
|
|
7
|
+
* 分支 chip 不再延迟出现、也不再依赖已删除的 `sessions.list.current`)。
|
|
8
|
+
*/
|
|
9
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis'
|
|
10
|
+
import type {} from '@deepseek-ai/dsh-client-ui-slots'
|
|
11
|
+
import type {} from '@deepseek-ai/dsh-client-ui-renderer/client'
|
|
12
|
+
import type {} from '@deepseek-ai/dsh-client-ui-conversation/client'
|
|
13
|
+
import { createGitBranchFace } from './git-branch.tsx'
|
|
14
|
+
|
|
15
|
+
/** 装配输入区分支 chip(dock 席位)。 */
|
|
16
|
+
export function mountSelectorContext(ctx: ClientContext): () => void {
|
|
17
|
+
const face = createGitBranchFace(ctx)
|
|
18
|
+
return ctx.slots.inject('conversation.input.dock', () => ctx.slots.register({
|
|
19
|
+
name: 'conversation.input.dock',
|
|
20
|
+
id: 'web-all-git-branch-chip',
|
|
21
|
+
order: 100,
|
|
22
|
+
inject: (sessionId: string) => ({ sessionId }),
|
|
23
|
+
}, face))
|
|
24
|
+
}
|