@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,268 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The git branch selector chip for blank sessions. It mounts in the selector
|
|
4
|
+
* context hole (`conversation.input.selector.context`) beside the official
|
|
5
|
+
* workspace selector. On shells that dropped the hole, it uses
|
|
6
|
+
* `conversation.input.dock` only for the blank-session hero phase and lifts
|
|
7
|
+
* itself into the official hero chip row. It is intentionally absent while a
|
|
8
|
+
* session is running.
|
|
9
|
+
* @module dsh-git-graph/client/chips/BranchChip
|
|
10
|
+
*/
|
|
11
|
+
import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
12
|
+
import { IconBranchOutline16 } from "../../ui-icons.js";
|
|
13
|
+
import { Chip, cx } from "./chip.js";
|
|
14
|
+
import { heroPlacementIn, heroRowFor, shouldProbeInFlow } from "./hero-seat.js";
|
|
15
|
+
import { BranchPopover } from "./branch-popover.js";
|
|
16
|
+
import { CreateBranchDialog } from "./create-branch-dialog.js";
|
|
17
|
+
import { GraphDialog } from "./graph-dialog.js";
|
|
18
|
+
import css from './git-graph.module.css';
|
|
19
|
+
/** Minimum gap between window-focus git refetches (ms). */
|
|
20
|
+
export const FOCUS_REFRESH_MIN_MS = 5_000;
|
|
21
|
+
const SKIN_CENTER_BODY_ATTR = 'data-dsh-skin-center';
|
|
22
|
+
const DARK_THEME_BODY_ATTR = 'data-ds-dark-theme';
|
|
23
|
+
const DSH_BODY_ATTR_PREFIX = 'data-dsh-';
|
|
24
|
+
/** Whether a body attribute belongs to an applied skin rather than the skin center shell. */
|
|
25
|
+
function hasAppliedSkinBodyAttr(name) {
|
|
26
|
+
return name.startsWith(DSH_BODY_ATTR_PREFIX) && name !== SKIN_CENTER_BODY_ATTR;
|
|
27
|
+
}
|
|
28
|
+
/** Whether the page is using the unskinned stock light theme. */
|
|
29
|
+
function readStockLightTheme() {
|
|
30
|
+
if (typeof document === 'undefined')
|
|
31
|
+
return false;
|
|
32
|
+
const body = document.body;
|
|
33
|
+
if (!body.hasAttribute(SKIN_CENTER_BODY_ATTR) || body.hasAttribute(DARK_THEME_BODY_ATTR))
|
|
34
|
+
return false;
|
|
35
|
+
return !body.getAttributeNames().some(hasAppliedSkinBodyAttr);
|
|
36
|
+
}
|
|
37
|
+
/** Track stock-light theme changes from body attributes. */
|
|
38
|
+
function useStockLightTheme() {
|
|
39
|
+
const [stockLightTheme, setStockLightTheme] = useState(readStockLightTheme);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const update = () => { setStockLightTheme(readStockLightTheme()); };
|
|
42
|
+
update();
|
|
43
|
+
if (typeof document === 'undefined' || typeof MutationObserver !== 'function')
|
|
44
|
+
return undefined;
|
|
45
|
+
const observer = new MutationObserver(update);
|
|
46
|
+
observer.observe(document.body, { attributes: true });
|
|
47
|
+
return () => { observer.disconnect(); };
|
|
48
|
+
}, []);
|
|
49
|
+
return stockLightTheme;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The right edge of the rightmost painted descendant of `root`, excluding
|
|
53
|
+
* `root` itself. The hero row's direct children can be display:contents
|
|
54
|
+
* slot outlets, so the visible chip boundary must be found by walking.
|
|
55
|
+
*/
|
|
56
|
+
function paintedRight(root) {
|
|
57
|
+
let right = null;
|
|
58
|
+
const visit = (node) => {
|
|
59
|
+
if (node !== root) {
|
|
60
|
+
const rect = node.getBoundingClientRect();
|
|
61
|
+
if (rect.width > 0 && rect.height > 0) {
|
|
62
|
+
right = right === null ? rect.right : Math.max(right, rect.right);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
for (const child of Array.from(node.children))
|
|
66
|
+
visit(child);
|
|
67
|
+
};
|
|
68
|
+
visit(root);
|
|
69
|
+
return right;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Coalesce repeated placement updates into one animation-frame callback so
|
|
73
|
+
* observer bursts in the same frame measure only once. When the environment
|
|
74
|
+
* provides no requestAnimationFrame, updates run synchronously instead.
|
|
75
|
+
*/
|
|
76
|
+
function frameScheduler(update) {
|
|
77
|
+
let pending = false;
|
|
78
|
+
let frame = null;
|
|
79
|
+
const flush = () => {
|
|
80
|
+
pending = false;
|
|
81
|
+
frame = null;
|
|
82
|
+
update();
|
|
83
|
+
};
|
|
84
|
+
return {
|
|
85
|
+
schedule: () => {
|
|
86
|
+
if (pending)
|
|
87
|
+
return;
|
|
88
|
+
pending = true;
|
|
89
|
+
if (typeof requestAnimationFrame === 'function') {
|
|
90
|
+
frame = requestAnimationFrame(flush);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
flush();
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
cancel: () => {
|
|
97
|
+
pending = false;
|
|
98
|
+
if (frame !== null)
|
|
99
|
+
cancelAnimationFrame(frame);
|
|
100
|
+
frame = null;
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The git branch selector chip for blank sessions.
|
|
106
|
+
* @param props - the composed entry props of whichever seat it mounted in.
|
|
107
|
+
*/
|
|
108
|
+
export function BranchChip(props) {
|
|
109
|
+
const sessionId = props.sessionId;
|
|
110
|
+
// Blank-session flag from the standard session list. The selector never
|
|
111
|
+
// throws for a missing session id / row, so the hook can stay mounted
|
|
112
|
+
// while the session baseline is still loading.
|
|
113
|
+
const blankSession = props.useSessions((state) => {
|
|
114
|
+
if (sessionId === undefined)
|
|
115
|
+
return false;
|
|
116
|
+
const sessions = state;
|
|
117
|
+
return sessions.byId?.[sessionId]?.blank === true;
|
|
118
|
+
});
|
|
119
|
+
// The dock seat carries the composer snapshot. It exposes the selector
|
|
120
|
+
// only in the blank hero phase; the session-maybe context seat uses the
|
|
121
|
+
// session baseline's blank flag instead.
|
|
122
|
+
const dockSeat = 'session' in props && 'input' in props;
|
|
123
|
+
const sessionSnapshot = dockSeat ? props.session : undefined;
|
|
124
|
+
const phaseBlank = sessionSnapshot?.shellPhase === 'blank' || sessionSnapshot?.composerPhase === 'blank';
|
|
125
|
+
// The 0.2 dock hands the seat only { session, input }: the hero phase is
|
|
126
|
+
// computed on the official side and never reaches the seat, so the session
|
|
127
|
+
// list's blank flag is the reliable show/hide signal. Placement is decided
|
|
128
|
+
// from the DOM instead — when the dock row sits directly under the official
|
|
129
|
+
// hero chip row, the chip is lifted into that row (see the layout effect
|
|
130
|
+
// below); otherwise it stays in flow inside the dock row.
|
|
131
|
+
const phaseHero = phaseBlank && (sessionSnapshot?.openState === 'open' || blankSession === true);
|
|
132
|
+
const showBranchSelector = blankSession === true || phaseHero;
|
|
133
|
+
const stockLightTheme = useStockLightTheme();
|
|
134
|
+
/** Repository state: undefined = loading, null = not a repository, else the snapshot. */
|
|
135
|
+
const [repo, setRepo] = useState(undefined);
|
|
136
|
+
/** Fresh branch list, fetched when the branch popover opens. */
|
|
137
|
+
const [branchesView, setBranchesView] = useState(null);
|
|
138
|
+
const [branchOpen, setBranchOpen] = useState(false);
|
|
139
|
+
const [createOpen, setCreateOpen] = useState(false);
|
|
140
|
+
const [graphOpen, setGraphOpen] = useState(false);
|
|
141
|
+
/** Measured hero-row placement against the anchor's containing block; null while the chip stays in flow. */
|
|
142
|
+
const [heroPlacement, setHeroPlacement] = useState(null);
|
|
143
|
+
const anchorRef = useRef(null);
|
|
144
|
+
/** Hero seat: a measured placement means the chip is lifted into the official hero chip row. */
|
|
145
|
+
const heroLift = heroPlacement !== null;
|
|
146
|
+
// Hero placement: the shell renders the dock as its own row between the
|
|
147
|
+
// official hero chip row and the composer card. The chip belongs *in* that
|
|
148
|
+
// row, immediately after its rightmost painted chip (the agent-preset seat),
|
|
149
|
+
// on the official 28px transparent pill recipe. The row is found
|
|
150
|
+
// structurally and measured after a synchronous probe that takes the anchor
|
|
151
|
+
// out of flow: dropping the dock row resizes the vertically centred composer
|
|
152
|
+
// stack, so only the settled layout is the one to match. Offsets are taken
|
|
153
|
+
// against the anchor's own containing block — the composer stack is static,
|
|
154
|
+
// so stack-relative numbers land hundreds of pixels away from the row.
|
|
155
|
+
useLayoutEffect(() => {
|
|
156
|
+
const anchor = anchorRef.current;
|
|
157
|
+
const heroRow = showBranchSelector && anchor !== null ? heroRowFor(anchor) : null;
|
|
158
|
+
const outlet = anchor?.parentElement ?? null;
|
|
159
|
+
const stack = outlet?.parentElement ?? null;
|
|
160
|
+
if (anchor === null || outlet === null || stack === null || heroRow === null) {
|
|
161
|
+
setHeroPlacement(null);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const measure = () => {
|
|
165
|
+
const block = anchor.offsetParent ?? document.documentElement;
|
|
166
|
+
const blockRect = block.getBoundingClientRect();
|
|
167
|
+
const rowRect = heroRow.getBoundingClientRect();
|
|
168
|
+
if (blockRect.width <= 0 || rowRect.width <= 0 || rowRect.height <= 0)
|
|
169
|
+
return;
|
|
170
|
+
const right = paintedRight(heroRow);
|
|
171
|
+
if (right === null)
|
|
172
|
+
return;
|
|
173
|
+
const { left, top } = heroPlacementIn({ left: blockRect.left, top: blockRect.top, clientLeft: block.clientLeft, clientTop: block.clientTop }, { top: rowRect.top, height: rowRect.height }, right);
|
|
174
|
+
setHeroPlacement(previous => {
|
|
175
|
+
if (previous !== null && Math.abs(previous.left - left) < 0.5 && Math.abs(previous.top - top) < 0.5)
|
|
176
|
+
return previous;
|
|
177
|
+
return { left, top };
|
|
178
|
+
});
|
|
179
|
+
};
|
|
180
|
+
const probe = shouldProbeInFlow(anchor);
|
|
181
|
+
if (probe) {
|
|
182
|
+
anchor.style.position = 'absolute';
|
|
183
|
+
anchor.style.visibility = 'hidden';
|
|
184
|
+
}
|
|
185
|
+
measure();
|
|
186
|
+
if (probe) {
|
|
187
|
+
anchor.style.position = '';
|
|
188
|
+
anchor.style.visibility = '';
|
|
189
|
+
}
|
|
190
|
+
const scheduler = frameScheduler(measure);
|
|
191
|
+
const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(scheduler.schedule);
|
|
192
|
+
for (const target of [anchor, outlet, stack, heroRow])
|
|
193
|
+
observer?.observe(target);
|
|
194
|
+
window.addEventListener('resize', scheduler.schedule);
|
|
195
|
+
return () => {
|
|
196
|
+
scheduler.cancel();
|
|
197
|
+
observer?.disconnect();
|
|
198
|
+
window.removeEventListener('resize', scheduler.schedule);
|
|
199
|
+
};
|
|
200
|
+
}, [showBranchSelector, sessionId, repo !== undefined && repo !== null]);
|
|
201
|
+
const refetch = useCallback(() => {
|
|
202
|
+
let live = true;
|
|
203
|
+
props.repoStatus(sessionId)
|
|
204
|
+
.then((status) => { if (live)
|
|
205
|
+
setRepo(status); })
|
|
206
|
+
.catch(() => { if (live)
|
|
207
|
+
setRepo(null); });
|
|
208
|
+
return () => { live = false; };
|
|
209
|
+
}, [props.repoStatus, sessionId]);
|
|
210
|
+
// Blank-session data stays fresh through the initial load, host-pushed
|
|
211
|
+
// changes, and a throttled focus refresh. Active sessions never subscribe
|
|
212
|
+
// or start a Git status round trip.
|
|
213
|
+
const lastFocusRefetch = useRef(0);
|
|
214
|
+
useEffect(() => {
|
|
215
|
+
if (!showBranchSelector)
|
|
216
|
+
return undefined;
|
|
217
|
+
return refetch();
|
|
218
|
+
}, [showBranchSelector, refetch]);
|
|
219
|
+
useEffect(() => {
|
|
220
|
+
if (!showBranchSelector)
|
|
221
|
+
return undefined;
|
|
222
|
+
const unsubscribe = props.subscribeChanges(sessionId, () => { refetch(); });
|
|
223
|
+
const onFocus = () => {
|
|
224
|
+
const now = Date.now();
|
|
225
|
+
if (now - lastFocusRefetch.current < FOCUS_REFRESH_MIN_MS)
|
|
226
|
+
return;
|
|
227
|
+
lastFocusRefetch.current = now;
|
|
228
|
+
refetch();
|
|
229
|
+
};
|
|
230
|
+
window.addEventListener('focus', onFocus);
|
|
231
|
+
return () => {
|
|
232
|
+
unsubscribe();
|
|
233
|
+
window.removeEventListener('focus', onFocus);
|
|
234
|
+
};
|
|
235
|
+
}, [showBranchSelector, props.subscribeChanges, sessionId, refetch]);
|
|
236
|
+
const closeCreate = () => {
|
|
237
|
+
setCreateOpen(false);
|
|
238
|
+
refetch();
|
|
239
|
+
};
|
|
240
|
+
// Fetch the fresh branch list each time the popover opens. All hooks stay
|
|
241
|
+
// above the data-gated returns so the hook order is stable while `repo`
|
|
242
|
+
// settles from undefined (loading) to a snapshot.
|
|
243
|
+
useEffect(() => {
|
|
244
|
+
if (!showBranchSelector || !branchOpen)
|
|
245
|
+
return undefined;
|
|
246
|
+
let live = true;
|
|
247
|
+
setBranchesView(null);
|
|
248
|
+
props.branches(sessionId).then((view) => { if (live)
|
|
249
|
+
setBranchesView(view); });
|
|
250
|
+
return () => { live = false; };
|
|
251
|
+
}, [showBranchSelector, branchOpen, props.branches, sessionId]);
|
|
252
|
+
// Active sessions intentionally expose no branch-selection control. Loading
|
|
253
|
+
// and non-repository workspaces likewise render no dead control.
|
|
254
|
+
if (!showBranchSelector || repo === undefined || repo === null)
|
|
255
|
+
return null;
|
|
256
|
+
const openBranchPopover = () => {
|
|
257
|
+
setBranchOpen(open => !open);
|
|
258
|
+
};
|
|
259
|
+
return (_jsxs("div", { ref: anchorRef, "data-gitgraph-chip-anchor": true, "data-dsh-plugin": "git-graph", "data-dsh-part": "chip", "data-gitgraph-stock-light": stockLightTheme || undefined, className: cx(css.anchor, heroLift && css.anchorHero), style: heroLift && heroPlacement !== null
|
|
260
|
+
? { left: `${heroPlacement.left}px`, top: `${heroPlacement.top}px`, paddingLeft: 0 }
|
|
261
|
+
: undefined, children: [_jsxs("div", { className: css.chipWrap, children: [_jsx(Chip, { hero: heroLift, icon: _jsx(IconBranchOutline16, { size: heroLift ? 16 : 14 }), label: repo.branch === '' ? props.t('branch.detached') : repo.branch, ariaLabel: props.t('chip.aria.branch'), open: branchOpen, onClick: openBranchPopover }), branchOpen && branchesView !== null && (_jsx(BranchPopover, { hero: heroLift, view: branchesView, onSwitch: (branch) => props.switchBranch(sessionId, branch), onSwitched: refetch, onCreate: () => {
|
|
262
|
+
setBranchOpen(false);
|
|
263
|
+
setCreateOpen(true);
|
|
264
|
+
}, onGraph: () => {
|
|
265
|
+
setBranchOpen(false);
|
|
266
|
+
setGraphOpen(true);
|
|
267
|
+
}, onClose: () => { setBranchOpen(false); }, t: props.t }))] }), createOpen && (_jsx(CreateBranchDialog, { onCreate: (name) => props.createBranch(sessionId, name), onClose: closeCreate, t: props.t })), graphOpen && (_jsx(GraphDialog, { graph: (limit) => props.graph(sessionId, limit), onClose: () => { setGraphOpen(false); }, t: props.t }))] }));
|
|
268
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The branch picker popover: searchable local branch list with the current
|
|
3
|
+
* branch checked, the dirtiness line, switch feedback (success/error), and
|
|
4
|
+
* the footer flows (create branch / Git graph).
|
|
5
|
+
* @module dsh-git-graph/client/chips/BranchPopover
|
|
6
|
+
*/
|
|
7
|
+
import type { Translate } from '@deepseek-ai/dsh-client-ui-slots';
|
|
8
|
+
import type { BranchesView, SwitchResult } from '../../../core/git-graph/protocol.ts';
|
|
9
|
+
import type { GitGraphKey } from './locales.ts';
|
|
10
|
+
/** Props of the branch picker popover. */
|
|
11
|
+
export interface BranchPopoverProps {
|
|
12
|
+
view: BranchesView;
|
|
13
|
+
/** Workspace-level switch verb; resolves to a stable git error on rejection. */
|
|
14
|
+
onSwitch: (branch: string) => Promise<SwitchResult>;
|
|
15
|
+
/** Fired after a successful switch (the owner refetches its status). */
|
|
16
|
+
onSwitched: () => void;
|
|
17
|
+
/** Open the create-branch dialog. */
|
|
18
|
+
onCreate: () => void;
|
|
19
|
+
/** Open the Git graph panel. */
|
|
20
|
+
onGraph: () => void;
|
|
21
|
+
/** Close the popover (backdrop / after a successful switch). */
|
|
22
|
+
onClose: () => void;
|
|
23
|
+
t: Translate<GitGraphKey>;
|
|
24
|
+
/** Open downward from the official hero row (the default opens upward from the dock row). */
|
|
25
|
+
hero?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The branch picker popover.
|
|
29
|
+
* @param props - see {@link BranchPopoverProps}.
|
|
30
|
+
*/
|
|
31
|
+
export declare function BranchPopover({ view, onSwitch, onSwitched, onCreate, onGraph, onClose, t, hero }: BranchPopoverProps): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=branch-popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch-popover.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/git-graph/branch-popover.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAK/C,0CAA0C;AAC1C,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,CAAA;IAClB,gFAAgF;IAChF,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACnD,wEAAwE;IACxE,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,gCAAgC;IAChC,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,gEAAgE;IAChE,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;IACzB,6FAA6F;IAC7F,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAY,EAAE,EAAE,kBAAkB,+BA6I5H"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The branch picker popover: searchable local branch list with the current
|
|
4
|
+
* branch checked, the dirtiness line, switch feedback (success/error), and
|
|
5
|
+
* the footer flows (create branch / Git graph).
|
|
6
|
+
* @module dsh-git-graph/client/chips/BranchPopover
|
|
7
|
+
*/
|
|
8
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
9
|
+
import { IconBranchOutline16, IconCheckOutline14, IconSearchOutline16 } from "../../ui-icons.js";
|
|
10
|
+
import { errorMessage } from "./error-copy.js";
|
|
11
|
+
import { cx, Backdrop } from "./chip.js";
|
|
12
|
+
import css from './git-graph.module.css';
|
|
13
|
+
/** How long the success notice stays before the popover closes itself. */
|
|
14
|
+
const SUCCESS_DISMISS_MS = 900;
|
|
15
|
+
/** The prepared-worktree notice carries an instruction, so it stays longer. */
|
|
16
|
+
const WORKTREE_READY_DISMISS_MS = 6_000;
|
|
17
|
+
/**
|
|
18
|
+
* The branch picker popover.
|
|
19
|
+
* @param props - see {@link BranchPopoverProps}.
|
|
20
|
+
*/
|
|
21
|
+
export function BranchPopover({ view, onSwitch, onSwitched, onCreate, onGraph, onClose, t, hero = false }) {
|
|
22
|
+
const [query, setQuery] = useState('');
|
|
23
|
+
const [pending, setPending] = useState(null);
|
|
24
|
+
const [error, setError] = useState(null);
|
|
25
|
+
const [success, setSuccess] = useState(null);
|
|
26
|
+
const dismissTimer = useRef(undefined);
|
|
27
|
+
// Tooltip state for long branch names: first hover needs a 500ms dwell,
|
|
28
|
+
// once shown, switching items shows immediately; leaving resets the dwell.
|
|
29
|
+
const [tipReadyName, setTipReadyName] = useState(null);
|
|
30
|
+
const [tipActive, setTipActive] = useState(false);
|
|
31
|
+
const [tipDir, setTipDir] = useState('up');
|
|
32
|
+
const tipTimer = useRef(undefined);
|
|
33
|
+
useEffect(() => () => {
|
|
34
|
+
if (dismissTimer.current !== undefined)
|
|
35
|
+
clearTimeout(dismissTimer.current);
|
|
36
|
+
if (tipTimer.current !== undefined)
|
|
37
|
+
clearTimeout(tipTimer.current);
|
|
38
|
+
}, []);
|
|
39
|
+
const filtered = useMemo(() => {
|
|
40
|
+
const needle = query.trim().toLowerCase();
|
|
41
|
+
if (needle === '')
|
|
42
|
+
return view.branches;
|
|
43
|
+
return view.branches.filter(branch => branch.name.toLowerCase().includes(needle));
|
|
44
|
+
}, [view.branches, query]);
|
|
45
|
+
const switchTo = (branch) => {
|
|
46
|
+
if (pending !== null)
|
|
47
|
+
return;
|
|
48
|
+
setPending(branch);
|
|
49
|
+
setError(null);
|
|
50
|
+
setSuccess(null);
|
|
51
|
+
void onSwitch(branch).then((result) => {
|
|
52
|
+
if (result.ok) {
|
|
53
|
+
onSwitched();
|
|
54
|
+
// Two honest outcomes: the conversation now runs in the branch's
|
|
55
|
+
// worktree, or the worktree was prepared and the user picks it in the
|
|
56
|
+
// workspace selector. Saying "switched" in the second case would be a
|
|
57
|
+
// lie the user would act on, in the wrong directory.
|
|
58
|
+
setSuccess(result.opened
|
|
59
|
+
? t('toast.switchSuccess', { branchName: result.branch })
|
|
60
|
+
: t('toast.worktreeReady', { branchName: result.branch }));
|
|
61
|
+
// The prepared-worktree notice explains where to go next, so it stays
|
|
62
|
+
// long enough to read instead of flashing for the switch animation.
|
|
63
|
+
dismissTimer.current = setTimeout(onClose, result.opened ? SUCCESS_DISMISS_MS : WORKTREE_READY_DISMISS_MS);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
setError(errorMessage(result.error, t));
|
|
67
|
+
}).finally(() => { setPending(null); });
|
|
68
|
+
};
|
|
69
|
+
return (_jsxs(_Fragment, { children: [_jsx(Backdrop, { onClose: onClose }), _jsxs("div", { className: cx(css.popover, hero && css.popoverHero), role: "listbox", "aria-label": t('branch.search'), "data-gitgraph-popover": true, "data-dsh-plugin": "git-graph", children: [_jsxs("div", { className: css.searchBox, children: [_jsx(IconSearchOutline16, { size: 14 }), _jsx("input", { className: css.searchInput, value: query, onChange: (event) => { setQuery(event.target.value); }, placeholder: t('branch.search'), autoFocus: true })] }), view.dirtyFiles > 0
|
|
70
|
+
&& _jsx("div", { className: css.dirty, children: t('branch.dirty', { count: view.dirtyFiles }) }), _jsx("div", { className: css.list, onMouseLeave: () => {
|
|
71
|
+
// Leaving the whole list resets the instant-handoff state, so
|
|
72
|
+
// moving between items keeps the bubble immediate while leaving
|
|
73
|
+
// the popover re-arms the dwell threshold.
|
|
74
|
+
if (tipTimer.current !== undefined) {
|
|
75
|
+
clearTimeout(tipTimer.current);
|
|
76
|
+
tipTimer.current = undefined;
|
|
77
|
+
}
|
|
78
|
+
setTipActive(false);
|
|
79
|
+
setTipReadyName(null);
|
|
80
|
+
}, children: filtered.length === 0
|
|
81
|
+
? _jsx("div", { className: css.empty, children: t('branch.empty') })
|
|
82
|
+
: filtered.map(branch => (_jsxs("button", { type: "button", className: cx(css.item, branch.current && css.itemActive), onClick: () => { switchTo(branch.name); }, role: "option", "aria-selected": branch.current, title: branch.current ? t('branch.currentHint') : branch.name, "data-tip": branch.name.length > 18 ? branch.name : '', "data-tip-ready": branch.name === tipReadyName ? 'true' : '', "aria-label": branch.name, "data-tip-dir": tipDir, onMouseEnter: (event) => {
|
|
83
|
+
if (tipTimer.current !== undefined)
|
|
84
|
+
clearTimeout(tipTimer.current);
|
|
85
|
+
// Viewport-aware flip: near the top of the scroll list the
|
|
86
|
+
// bubble would be clipped above — flip it below instead.
|
|
87
|
+
const list = event.currentTarget.parentElement;
|
|
88
|
+
if (list !== null) {
|
|
89
|
+
const itemTop = event.currentTarget.getBoundingClientRect().top;
|
|
90
|
+
const listTop = list.getBoundingClientRect().top;
|
|
91
|
+
setTipDir(itemTop - listTop < 56 ? 'down' : 'up');
|
|
92
|
+
}
|
|
93
|
+
if (tipActive) {
|
|
94
|
+
setTipReadyName(branch.name);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
tipTimer.current = setTimeout(() => {
|
|
98
|
+
setTipActive(true);
|
|
99
|
+
setTipReadyName(branch.name);
|
|
100
|
+
}, 500);
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
// A branch already checked out in the main worktree cannot
|
|
104
|
+
// have a lane of its own (git refuses two checkouts of one
|
|
105
|
+
// branch), so the row that would only ever fail is disabled
|
|
106
|
+
// with the reason instead of surfacing git's English fatal.
|
|
107
|
+
disabled: pending !== null || branch.current, children: [_jsx(IconBranchOutline16, { size: 14 }), _jsx("span", { className: css.itemText, children: _jsx("span", { className: css.itemName, title: branch.name, children: branch.name }) }), branch.current && _jsx(IconCheckOutline14, { className: css.check, size: 14 })] }, branch.name))) }), success !== null && _jsx("div", { className: cx(css.notice, css.noticeOk), children: success }), error !== null && _jsx("div", { className: css.notice, children: error }), _jsxs("div", { className: css.footer, children: [_jsxs("button", { type: "button", className: css.footerItem, onClick: onCreate, children: [_jsx(IconBranchOutline16, { size: 14 }), t('branch.create')] }), _jsxs("button", { type: "button", className: css.footerItem, onClick: onGraph, children: [_jsx(IconBranchOutline16, { size: 14 }), t('branch.graph')] })] })] })] }));
|
|
108
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared chip button: one pill in the context row above the input.
|
|
3
|
+
* @module dsh-git-graph/client/chips/Chip
|
|
4
|
+
*/
|
|
5
|
+
import type { ReactNode } from 'react';
|
|
6
|
+
/** Join conditional class names (the dependency-free clsx stand-in). */
|
|
7
|
+
export declare function cx(...parts: ReadonlyArray<string | false | null | undefined>): string;
|
|
8
|
+
/** Props of one context chip. */
|
|
9
|
+
export interface ChipProps {
|
|
10
|
+
icon: ReactNode;
|
|
11
|
+
label: string;
|
|
12
|
+
ariaLabel: string;
|
|
13
|
+
open: boolean;
|
|
14
|
+
onClick: () => void;
|
|
15
|
+
/** The official hero-row seat style (transparent 28px pill beside the preset chip). */
|
|
16
|
+
hero?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** The pill button shared by the project and branch chips. */
|
|
19
|
+
export declare function Chip({ icon, label, ariaLabel, open, onClick, hero }: ChipProps): import("react").JSX.Element;
|
|
20
|
+
/** Full-screen transparent backdrop closing the open popover/dialog on click. */
|
|
21
|
+
export declare function Backdrop({ onClose }: {
|
|
22
|
+
onClose: () => void;
|
|
23
|
+
}): import("react").JSX.Element;
|
|
24
|
+
//# sourceMappingURL=chip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/git-graph/chip.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,wEAAwE;AACxE,wBAAgB,EAAE,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAErF;AAED,iCAAiC;AACjC,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,8DAA8D;AAC9D,wBAAgB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAY,EAAE,EAAE,SAAS,+BAetF;AAED,iFAAiF;AACjF,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,+BAE5D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { IconChevronDownOutline14 } from "../../ui-icons.js";
|
|
3
|
+
import css from './git-graph.module.css';
|
|
4
|
+
/** Join conditional class names (the dependency-free clsx stand-in). */
|
|
5
|
+
export function cx(...parts) {
|
|
6
|
+
return parts.filter((part) => typeof part === 'string' && part !== '').join(' ');
|
|
7
|
+
}
|
|
8
|
+
/** The pill button shared by the project and branch chips. */
|
|
9
|
+
export function Chip({ icon, label, ariaLabel, open, onClick, hero = false }) {
|
|
10
|
+
return (_jsxs("button", { type: "button", "data-gitgraph-chip": true, className: cx(css.chip, open && css.chipOpen, hero && css.chipHero), onClick: onClick, "aria-label": ariaLabel, "aria-expanded": open, children: [icon, _jsx("span", { className: css.chipLabel, title: label, children: label }), _jsx(IconChevronDownOutline14, { className: css.chipChevron, size: 12 })] }));
|
|
11
|
+
}
|
|
12
|
+
/** Full-screen transparent backdrop closing the open popover/dialog on click. */
|
|
13
|
+
export function Backdrop({ onClose }) {
|
|
14
|
+
return _jsx("div", { className: css.backdrop, onClick: onClose });
|
|
15
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The create-branch dialog: name input with the pure validation mirror for
|
|
3
|
+
* instant feedback, the host `check-ref-format` gate as the authority, and
|
|
4
|
+
* readable rejection copy.
|
|
5
|
+
*
|
|
6
|
+
* On success it does not just vanish. Creating the branch also creates its
|
|
7
|
+
* worktree, and whether this conversation now runs in it depends on the shell
|
|
8
|
+
* (see the branch picker's `switchBranch`): the result view states which of the
|
|
9
|
+
* two happened, because a dialog that closes silently would leave the user
|
|
10
|
+
* believing they are on the new branch while they are still in the old
|
|
11
|
+
* checkout.
|
|
12
|
+
* @module dsh-git-graph/client/chips/CreateBranchDialog
|
|
13
|
+
*/
|
|
14
|
+
import type { Translate } from '@deepseek-ai/dsh-client-ui-slots';
|
|
15
|
+
import type { SwitchResult } from '../../../core/git-graph/protocol.ts';
|
|
16
|
+
import type { GitGraphKey } from './locales.ts';
|
|
17
|
+
/** Props of the create-branch dialog. */
|
|
18
|
+
export interface CreateBranchDialogProps {
|
|
19
|
+
/** The host create verb (`git switch --no-guess -c <name>` from HEAD). */
|
|
20
|
+
onCreate: (name: string) => Promise<SwitchResult>;
|
|
21
|
+
/** Close the dialog (cancel or after a successful create). */
|
|
22
|
+
onClose: () => void;
|
|
23
|
+
t: Translate<GitGraphKey>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The create-and-switch dialog.
|
|
27
|
+
* @param props - see {@link CreateBranchDialogProps}.
|
|
28
|
+
*/
|
|
29
|
+
export declare function CreateBranchDialog({ onCreate, onClose, t }: CreateBranchDialogProps): import("react").JSX.Element;
|
|
30
|
+
//# sourceMappingURL=create-branch-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-branch-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/git-graph/create-branch-dialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAK/C,yCAAyC;AACzC,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACjD,8DAA8D;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,uBAAuB,+BAuEnF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The create-branch dialog: name input with the pure validation mirror for
|
|
4
|
+
* instant feedback, the host `check-ref-format` gate as the authority, and
|
|
5
|
+
* readable rejection copy.
|
|
6
|
+
*
|
|
7
|
+
* On success it does not just vanish. Creating the branch also creates its
|
|
8
|
+
* worktree, and whether this conversation now runs in it depends on the shell
|
|
9
|
+
* (see the branch picker's `switchBranch`): the result view states which of the
|
|
10
|
+
* two happened, because a dialog that closes silently would leave the user
|
|
11
|
+
* believing they are on the new branch while they are still in the old
|
|
12
|
+
* checkout.
|
|
13
|
+
* @module dsh-git-graph/client/chips/CreateBranchDialog
|
|
14
|
+
*/
|
|
15
|
+
import { useState } from 'react';
|
|
16
|
+
import { validateBranchName } from "../../../core/git-graph/commands.js";
|
|
17
|
+
import { errorMessage } from "./error-copy.js";
|
|
18
|
+
import { Backdrop } from "./chip.js";
|
|
19
|
+
import css from './git-graph.module.css';
|
|
20
|
+
/**
|
|
21
|
+
* The create-and-switch dialog.
|
|
22
|
+
* @param props - see {@link CreateBranchDialogProps}.
|
|
23
|
+
*/
|
|
24
|
+
export function CreateBranchDialog({ onCreate, onClose, t }) {
|
|
25
|
+
const [name, setName] = useState('');
|
|
26
|
+
const [pending, setPending] = useState(false);
|
|
27
|
+
const [error, setError] = useState(null);
|
|
28
|
+
/** The created branch and whether this conversation moved onto its worktree. */
|
|
29
|
+
const [created, setCreated] = useState(null);
|
|
30
|
+
const submit = () => {
|
|
31
|
+
if (pending)
|
|
32
|
+
return;
|
|
33
|
+
const trimmed = name.trim();
|
|
34
|
+
if (validateBranchName(trimmed) !== null) {
|
|
35
|
+
setError(t('error.invalidBranchName'));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
setPending(true);
|
|
39
|
+
setError(null);
|
|
40
|
+
void onCreate(trimmed).then((result) => {
|
|
41
|
+
if (result.ok) {
|
|
42
|
+
setCreated({ branch: result.branch, opened: result.opened });
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
setError(errorMessage(result.error, t));
|
|
46
|
+
}).finally(() => { setPending(false); });
|
|
47
|
+
};
|
|
48
|
+
return (_jsxs(_Fragment, { children: [_jsx(Backdrop, { onClose: onClose }), _jsxs("div", { className: css.dialog, role: "dialog", "aria-label": t('branch.createDialog.title'), "data-gitgraph-dialog": true, "data-dsh-plugin": "git-graph", children: [_jsx("h3", { className: css.dialogTitle, children: t('branch.createDialog.title') }), _jsx("p", { className: css.dialogDescription, children: t('branch.createDialog.description') }), created !== null && (_jsx("div", { className: css.dialogNotice, role: "status", children: created.opened
|
|
49
|
+
? t('toast.switchSuccess', { branchName: created.branch })
|
|
50
|
+
: t('toast.worktreeReady', { branchName: created.branch }) })), created === null && _jsxs("div", { className: css.dialogField, children: [_jsx("label", { className: css.dialogLabel, htmlFor: "git-graph-branch-name", children: t('branch.createDialog.nameLabel') }), _jsx("input", { id: "git-graph-branch-name", className: css.dialogInput, value: name, onChange: (event) => { setName(event.target.value); }, placeholder: t('branch.createDialog.placeholder'), onKeyDown: (event) => { if (event.key === 'Enter')
|
|
51
|
+
submit(); }, autoFocus: true })] }), error !== null && _jsx("div", { className: css.dialogError, children: error }), _jsxs("div", { className: css.dialogActions, children: [_jsx("button", { type: "button", className: css.dialogButton, onClick: onClose, children: created === null ? t('branch.createDialog.cancel') : t('branch.createDialog.done') }), created === null && (_jsx("button", { type: "button", className: css.dialogButtonPrimary, onClick: submit, disabled: pending || name.trim() === '', children: t('branch.createDialog.confirm') }))] })] })] }));
|
|
52
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable git error code → readable copy mapping (ZCode branchSwitcher
|
|
3
|
+
* vocabulary). The host classifies failures onto the codes; this mapper owns
|
|
4
|
+
* the user-facing sentences.
|
|
5
|
+
* @module dsh-git-graph/client/chips/error-copy
|
|
6
|
+
*/
|
|
7
|
+
import type { Translate } from '@deepseek-ai/dsh-client-ui-slots';
|
|
8
|
+
import type { GitError } from '../../../core/git-graph/protocol.ts';
|
|
9
|
+
import type { GitGraphKey } from './locales.ts';
|
|
10
|
+
/**
|
|
11
|
+
* One readable message for a git operation rejection.
|
|
12
|
+
* @param error - the classified git error.
|
|
13
|
+
* @param t - the git-graph namespace translate seat.
|
|
14
|
+
* @returns the sentence for the error's code.
|
|
15
|
+
*/
|
|
16
|
+
export declare function errorMessage(error: GitError, t: Translate<GitGraphKey>): string;
|
|
17
|
+
//# sourceMappingURL=error-copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-copy.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/git-graph/error-copy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAW/C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,MAAM,CAuB/E"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stable git error code → readable copy mapping (ZCode branchSwitcher
|
|
3
|
+
* vocabulary). The host classifies failures onto the codes; this mapper owns
|
|
4
|
+
* the user-facing sentences.
|
|
5
|
+
* @module dsh-git-graph/client/chips/error-copy
|
|
6
|
+
*/
|
|
7
|
+
/** The blocked-file sentence tail: quoted paths plus the overflow count. */
|
|
8
|
+
function pathsText(error, t) {
|
|
9
|
+
const listed = (error.paths ?? []).map(path => `"${path}"`).join('、');
|
|
10
|
+
const more = error.moreFiles !== undefined && error.moreFiles > 0
|
|
11
|
+
? ` ${t('error.moreFiles', { count: error.moreFiles })}`
|
|
12
|
+
: '';
|
|
13
|
+
return `${listed}${more}`;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* One readable message for a git operation rejection.
|
|
17
|
+
* @param error - the classified git error.
|
|
18
|
+
* @param t - the git-graph namespace translate seat.
|
|
19
|
+
* @returns the sentence for the error's code.
|
|
20
|
+
*/
|
|
21
|
+
export function errorMessage(error, t) {
|
|
22
|
+
switch (error.code) {
|
|
23
|
+
case 'conflicts-present':
|
|
24
|
+
return t('error.conflictsPresent');
|
|
25
|
+
case 'operation-in-progress':
|
|
26
|
+
return t('error.operationInProgress');
|
|
27
|
+
case 'branch-in-other-worktree':
|
|
28
|
+
return t('error.branchInOtherWorktree');
|
|
29
|
+
case 'tracked-changes-would-be-overwritten':
|
|
30
|
+
return t('error.trackedOverwrite', { paths: pathsText(error, t) });
|
|
31
|
+
case 'untracked-changes-would-be-overwritten':
|
|
32
|
+
return t('error.untrackedOverwrite', { paths: pathsText(error, t) });
|
|
33
|
+
case 'target-branch-not-found':
|
|
34
|
+
return t('error.targetBranchNotFound');
|
|
35
|
+
case 'invalid-branch-name':
|
|
36
|
+
return t('error.invalidBranchName');
|
|
37
|
+
case 'branch-already-exists':
|
|
38
|
+
return t('error.branchAlreadyExists');
|
|
39
|
+
case 'workspace-unknown':
|
|
40
|
+
return t('error.workspaceUnknown');
|
|
41
|
+
default:
|
|
42
|
+
return t('error.requestFailed', { error: error.message });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
import type { Translate } from '@deepseek-ai/dsh-client-ui-slots';
|
|
7
|
+
import { type GraphView } from '../../../core/git-graph/protocol.ts';
|
|
8
|
+
import type { GitGraphKey } from './locales.ts';
|
|
9
|
+
/** Props of the Git graph dialog. */
|
|
10
|
+
export interface GraphDialogProps {
|
|
11
|
+
/** The graph verb (host-side read-only log). */
|
|
12
|
+
graph: (limit?: number) => Promise<GraphView | null>;
|
|
13
|
+
onClose: () => void;
|
|
14
|
+
t: Translate<GitGraphKey>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The Git graph panel.
|
|
18
|
+
* @param props - see {@link GraphDialogProps}.
|
|
19
|
+
*/
|
|
20
|
+
export declare function GraphDialog({ graph, onClose, t }: GraphDialogProps): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=graph-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/git-graph/graph-dialog.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAgB,KAAK,SAAS,EAAkB,MAAM,qCAAqC,CAAA;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AA0C/C,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IACpD,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;CAC1B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,gBAAgB,+BAmIlE"}
|