@dsh-cove/dsh-web-all 0.0.0-stage → 0.4.3
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 +201 -2
- package/README.zh.md +202 -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/subagent-model/model-resolver.d.ts +25 -0
- package/lib/types/core/subagent-model/model-resolver.d.ts.map +1 -0
- package/lib/types/core/subagent-model/model-resolver.js +60 -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/web-search-kaon/contracts.d.ts +114 -0
- package/lib/types/host/services/web-search-kaon/contracts.d.ts.map +1 -0
- package/lib/types/host/services/web-search-kaon/contracts.js +73 -0
- package/lib/types/host/services/web-search-kaon/index.d.ts +50 -0
- package/lib/types/host/services/web-search-kaon/index.d.ts.map +1 -0
- package/lib/types/host/services/web-search-kaon/index.js +114 -0
- package/lib/types/host/services/web-search-kaon/provider.d.ts +111 -0
- package/lib/types/host/services/web-search-kaon/provider.d.ts.map +1 -0
- package/lib/types/host/services/web-search-kaon/provider.js +244 -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,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser HTTP client for the /worktree/* endpoints. Mirrors the host
|
|
3
|
+
* `WorktreeResponse<T>` envelope so success/error paths land on the same
|
|
4
|
+
* type unions as the manager.
|
|
5
|
+
*
|
|
6
|
+
* Every request carries a deadline: a host stalled on `git fetch` (or a dropped
|
|
7
|
+
* network) has to fail visibly instead of leaving the panel loading forever.
|
|
8
|
+
* Failures also keep their kind, because "the fence refused this browser" and
|
|
9
|
+
* "git failed" must not render as the same message — or, worse, as the empty
|
|
10
|
+
* state that means "no registered git repository workspaces".
|
|
11
|
+
* @module dsh-client-ui-worktree/client/api
|
|
12
|
+
*/
|
|
13
|
+
import type { BindLaneInput, BindLaneResult, CleanupWorktreeInput, CreateLaneInput, CreateLaneResult, CreateWorktreeInput, InitWorktreeInput, LaneLookupInput, LaneView, PrCreateInput, PrCreateResult, RemoveWorktreeInput, StatusInput, WorktreeIndex, WorktreeStatusIndex, WorktreeView } from '../../../core/worktree/types.ts';
|
|
14
|
+
import type { WorktreeErrorCode } from '../../../core/worktree/invariant.ts';
|
|
15
|
+
import type { WorkspaceModelPreset, WorkspaceModelView } from '../../../core/worktree/workspace-model.ts';
|
|
16
|
+
/**
|
|
17
|
+
* How a request failed. `permission` is the host access fence refusing this
|
|
18
|
+
* browser; `domain` is a shaped `ok:false` refusal (git state, busy lane, ...);
|
|
19
|
+
* `transport` is a network/deadline failure; `malformed` is a protocol break.
|
|
20
|
+
*/
|
|
21
|
+
export type WorktreeApiErrorKind = 'transport' | 'permission' | 'domain' | 'malformed';
|
|
22
|
+
/**
|
|
23
|
+
* Thrown by the client when the HTTP layer rejects the request before the
|
|
24
|
+
* envelope. The browser side treats these as transient and surfaces them in
|
|
25
|
+
* the toast/error banner instead of crashing the sidebar.
|
|
26
|
+
*/
|
|
27
|
+
export declare class WorktreeApiError extends Error {
|
|
28
|
+
readonly status: number;
|
|
29
|
+
readonly kind: WorktreeApiErrorKind;
|
|
30
|
+
readonly code?: WorktreeErrorCode | undefined;
|
|
31
|
+
constructor(message: string, status: number, kind?: WorktreeApiErrorKind, code?: WorktreeErrorCode | undefined);
|
|
32
|
+
}
|
|
33
|
+
/** The browser-side worktree API surface. */
|
|
34
|
+
export declare class WorktreeApi {
|
|
35
|
+
/**
|
|
36
|
+
* GET /worktree/tree — the registered projects and their lanes.
|
|
37
|
+
* Returns null only for a host half that does not serve the route (404);
|
|
38
|
+
* a refusal, a failure or a broken envelope throws so the panel can say so
|
|
39
|
+
* instead of rendering the "no git repository workspaces" empty state.
|
|
40
|
+
*/
|
|
41
|
+
tree(): Promise<WorktreeIndex | null>;
|
|
42
|
+
/** POST /worktree/create */
|
|
43
|
+
create(input: CreateWorktreeInput): Promise<WorktreeView>;
|
|
44
|
+
/** POST /worktree/remove */
|
|
45
|
+
remove(input: RemoveWorktreeInput): Promise<{
|
|
46
|
+
name: string;
|
|
47
|
+
path: string;
|
|
48
|
+
}>;
|
|
49
|
+
/** POST /worktree/init */
|
|
50
|
+
init(input: InitWorktreeInput): Promise<{
|
|
51
|
+
repoPath: string;
|
|
52
|
+
initialBranch: string;
|
|
53
|
+
}>;
|
|
54
|
+
/** POST /worktree/pr-create — push the branch and obtain a PR page. */
|
|
55
|
+
prCreate(input: PrCreateInput): Promise<PrCreateResult>;
|
|
56
|
+
/** POST /worktree/status — per-repo PR/merge status. */
|
|
57
|
+
status(input: StatusInput): Promise<WorktreeStatusIndex>;
|
|
58
|
+
/** POST /worktree/cleanup — teardown a merged worktree. */
|
|
59
|
+
cleanup(input: CleanupWorktreeInput): Promise<{
|
|
60
|
+
name: string;
|
|
61
|
+
path: string;
|
|
62
|
+
}>;
|
|
63
|
+
/**
|
|
64
|
+
* POST /worktree/lane — resolve the lane a session (or a path) belongs to.
|
|
65
|
+
* Never throws: this feeds the conversation header chip, which must
|
|
66
|
+
* degrade to "no chip" rather than break the header, so a missing route
|
|
67
|
+
* (older host half), a fence refusal, an envelope error and a transport
|
|
68
|
+
* failure all yield `null`.
|
|
69
|
+
*/
|
|
70
|
+
lane(input: LaneLookupInput): Promise<LaneView | null>;
|
|
71
|
+
/** POST /worktree/lane/create — create the lane (worktree + workspace).
|
|
72
|
+
* The session itself is created by the platform's own create path. */
|
|
73
|
+
createLane(input: CreateLaneInput): Promise<CreateLaneResult>;
|
|
74
|
+
/** POST /worktree/lane/bind — attach the created session to its lane and
|
|
75
|
+
* apply the lane's permission preset. */
|
|
76
|
+
bindLane(input: BindLaneInput): Promise<BindLaneResult>;
|
|
77
|
+
/** POST /worktree/lane/rollback — undo a lane whose session never came up. */
|
|
78
|
+
rollbackLane(input: {
|
|
79
|
+
repoPath: string;
|
|
80
|
+
branch: string;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
/** Browser-side workspace-model API surface (for the /workspace-model/* routes). */
|
|
84
|
+
export declare class WorkspaceModelApi {
|
|
85
|
+
/** POST /workspace-model/get — the preset for one workspace path. Reads
|
|
86
|
+
* never block the UI: a missing route (host half not yet loaded), a
|
|
87
|
+
* transport failure, or an errored envelope all yield `preset: undefined`
|
|
88
|
+
* so the caller can still open the editor with empty fields. */
|
|
89
|
+
get(path: string): Promise<WorkspaceModelView>;
|
|
90
|
+
/** GET /workspace-model/list — every preset keyed by workspace path. */
|
|
91
|
+
list(): Promise<WorkspaceModelView[]>;
|
|
92
|
+
/** POST /workspace-model/set — store a preset for one workspace path. */
|
|
93
|
+
set(path: string, preset: WorkspaceModelPreset): Promise<WorkspaceModelPreset>;
|
|
94
|
+
/** POST /workspace-model/clear — remove a workspace's preset. */
|
|
95
|
+
clear(path: string): Promise<boolean>;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/worktree/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,aAAa,EAAE,cAAc,EAC7B,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAC5E,iBAAiB,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,cAAc,EAC3E,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAoB,mBAAmB,EAAE,YAAY,EACrG,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,KAAK,EACV,oBAAoB,EAAE,kBAAkB,EACzC,MAAM,2CAA2C,CAAA;AAelD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEtF;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IAGvC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,IAAI,EAAE,oBAAoB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB;gBAHjC,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,oBAAkC,EACxC,IAAI,CAAC,EAAE,iBAAiB,YAAA;CAKpC;AA0GD,6CAA6C;AAC7C,qBAAa,WAAW;IACtB;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAM3C,4BAA4B;IACtB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,4BAA4B;IACtB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjF,0BAA0B;IACpB,IAAI,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1F,uEAAuE;IACjE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7D,wDAAwD;IAClD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI9D,2DAA2D;IACrD,OAAO,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAInF;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAW5D;2EACuE;IACjE,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAInE;8CAC0C;IACpC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7D,8EAA8E;IACxE,YAAY,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/E;AAED,oFAAoF;AACpF,qBAAa,iBAAiB;IAC5B;;;qEAGiE;IAC3D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAWpD,wEAAwE;IAClE,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAU3C,yEAAyE;IACnE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIpF,iEAAiE;IAC3D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5C"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser HTTP client for the /worktree/* endpoints. Mirrors the host
|
|
3
|
+
* `WorktreeResponse<T>` envelope so success/error paths land on the same
|
|
4
|
+
* type unions as the manager.
|
|
5
|
+
*
|
|
6
|
+
* Every request carries a deadline: a host stalled on `git fetch` (or a dropped
|
|
7
|
+
* network) has to fail visibly instead of leaving the panel loading forever.
|
|
8
|
+
* Failures also keep their kind, because "the fence refused this browser" and
|
|
9
|
+
* "git failed" must not render as the same message — or, worse, as the empty
|
|
10
|
+
* state that means "no registered git repository workspaces".
|
|
11
|
+
* @module dsh-client-ui-worktree/client/api
|
|
12
|
+
*/
|
|
13
|
+
/** Default API prefix — must match `host/routes.ts`. */
|
|
14
|
+
const API_PREFIX = '/worktree';
|
|
15
|
+
/** Default API prefix for workspace-model endpoints — must match `host/workspace-model-routes.ts`. */
|
|
16
|
+
const MODEL_API_PREFIX = '/workspace-model';
|
|
17
|
+
/** Deadline for a read; `status` runs a network `git fetch` on the host. */
|
|
18
|
+
const READ_TIMEOUT_MS = 30_000;
|
|
19
|
+
/** Deadline for a mutation that only touches the local repository. */
|
|
20
|
+
const MUTATION_TIMEOUT_MS = 60_000;
|
|
21
|
+
/** Deadline for a mutation that pushes to the remote. */
|
|
22
|
+
const PUSH_TIMEOUT_MS = 180_000;
|
|
23
|
+
/**
|
|
24
|
+
* Thrown by the client when the HTTP layer rejects the request before the
|
|
25
|
+
* envelope. The browser side treats these as transient and surfaces them in
|
|
26
|
+
* the toast/error banner instead of crashing the sidebar.
|
|
27
|
+
*/
|
|
28
|
+
export class WorktreeApiError extends Error {
|
|
29
|
+
status;
|
|
30
|
+
kind;
|
|
31
|
+
code;
|
|
32
|
+
constructor(message, status, kind = 'transport', code) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.status = status;
|
|
35
|
+
this.kind = kind;
|
|
36
|
+
this.code = code;
|
|
37
|
+
this.name = 'WorktreeApiError';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** AbortSignal.timeout when the runtime has it; jsdom and old engines do not. */
|
|
41
|
+
function deadlineSignal(timeoutMs) {
|
|
42
|
+
const factory = AbortSignal.timeout;
|
|
43
|
+
if (typeof factory !== 'function')
|
|
44
|
+
return undefined;
|
|
45
|
+
try {
|
|
46
|
+
return factory.call(AbortSignal, timeoutMs);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** fetch with a deadline; a stalled or aborted request becomes a transport error. */
|
|
53
|
+
async function request(path, init, timeoutMs) {
|
|
54
|
+
try {
|
|
55
|
+
const signal = deadlineSignal(timeoutMs);
|
|
56
|
+
return await fetch(path, signal === undefined ? init : { ...init, signal });
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
60
|
+
const aborted = error instanceof Error && (error.name === 'TimeoutError' || error.name === 'AbortError');
|
|
61
|
+
throw new WorktreeApiError(aborted ? `the worktree host did not answer within ${String(timeoutMs)}ms` : message, 0, 'transport');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/** JSON POST helper shared by every mutation. */
|
|
65
|
+
async function postJson(path, body, timeoutMs) {
|
|
66
|
+
return request(path, {
|
|
67
|
+
method: 'POST',
|
|
68
|
+
credentials: 'same-origin',
|
|
69
|
+
headers: { 'content-type': 'application/json' },
|
|
70
|
+
body: JSON.stringify(body),
|
|
71
|
+
}, timeoutMs);
|
|
72
|
+
}
|
|
73
|
+
/** The refusal text of a non-envelope body (`{ error }` / `{ error: { message } }`). */
|
|
74
|
+
function refusalMessageOf(body) {
|
|
75
|
+
if (typeof body !== 'object' || body === null)
|
|
76
|
+
return undefined;
|
|
77
|
+
const value = body.error;
|
|
78
|
+
if (typeof value === 'string' && value !== '')
|
|
79
|
+
return value;
|
|
80
|
+
if (typeof value === 'object' && value !== null) {
|
|
81
|
+
const message = value.message;
|
|
82
|
+
if (typeof message === 'string' && message !== '')
|
|
83
|
+
return message;
|
|
84
|
+
}
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
/** The error kind implied by a bare HTTP status. */
|
|
88
|
+
function kindForStatus(status) {
|
|
89
|
+
return status === 401 || status === 403 ? 'permission' : 'transport';
|
|
90
|
+
}
|
|
91
|
+
/** A readable message for a status that arrived without the envelope. */
|
|
92
|
+
function statusMessage(status) {
|
|
93
|
+
return status === 401 || status === 403
|
|
94
|
+
? 'this browser is not admitted to the worktree host surface'
|
|
95
|
+
: `worktree endpoint failed with HTTP ${String(status)}`;
|
|
96
|
+
}
|
|
97
|
+
/** Parse a JSON response into the worktree envelope, throwing on transport failure. */
|
|
98
|
+
async function envelope(response) {
|
|
99
|
+
let body;
|
|
100
|
+
try {
|
|
101
|
+
body = await response.json();
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
if (!response.ok)
|
|
105
|
+
throw new WorktreeApiError(statusMessage(response.status), response.status, kindForStatus(response.status));
|
|
106
|
+
throw new WorktreeApiError(`worktree endpoint returned a non-JSON body (status ${response.status})`, response.status, 'malformed');
|
|
107
|
+
}
|
|
108
|
+
if (typeof body !== 'object' || body === null
|
|
109
|
+
|| typeof body.ok !== 'boolean') {
|
|
110
|
+
// A fence refusal answers `{ error: ... }` without the envelope: report it
|
|
111
|
+
// as a refusal rather than as a protocol break.
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
throw new WorktreeApiError(refusalMessageOf(body) ?? statusMessage(response.status), response.status, kindForStatus(response.status));
|
|
114
|
+
}
|
|
115
|
+
throw new WorktreeApiError('worktree endpoint returned a malformed envelope', response.status, 'malformed');
|
|
116
|
+
}
|
|
117
|
+
return body;
|
|
118
|
+
}
|
|
119
|
+
/** The stable domain code of an `ok:false` envelope, when it carries one. */
|
|
120
|
+
function codeOf(envelope) {
|
|
121
|
+
const code = envelope.code;
|
|
122
|
+
return typeof code === 'string' ? code : undefined;
|
|
123
|
+
}
|
|
124
|
+
/** Throw a `WorktreeApiError` for any `ok: false` envelope. */
|
|
125
|
+
function unwrap(envelope) {
|
|
126
|
+
if (envelope.ok)
|
|
127
|
+
return envelope.value;
|
|
128
|
+
throw new WorktreeApiError(envelope.message, 0, 'domain', codeOf(envelope));
|
|
129
|
+
}
|
|
130
|
+
/** The browser-side worktree API surface. */
|
|
131
|
+
export class WorktreeApi {
|
|
132
|
+
/**
|
|
133
|
+
* GET /worktree/tree — the registered projects and their lanes.
|
|
134
|
+
* Returns null only for a host half that does not serve the route (404);
|
|
135
|
+
* a refusal, a failure or a broken envelope throws so the panel can say so
|
|
136
|
+
* instead of rendering the "no git repository workspaces" empty state.
|
|
137
|
+
*/
|
|
138
|
+
async tree() {
|
|
139
|
+
const response = await request(`${API_PREFIX}/tree`, { credentials: 'same-origin' }, READ_TIMEOUT_MS);
|
|
140
|
+
if (response.status === 404)
|
|
141
|
+
return null;
|
|
142
|
+
return unwrap(await envelope(response));
|
|
143
|
+
}
|
|
144
|
+
/** POST /worktree/create */
|
|
145
|
+
async create(input) {
|
|
146
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/create`, input, MUTATION_TIMEOUT_MS)));
|
|
147
|
+
}
|
|
148
|
+
/** POST /worktree/remove */
|
|
149
|
+
async remove(input) {
|
|
150
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/remove`, input, MUTATION_TIMEOUT_MS)));
|
|
151
|
+
}
|
|
152
|
+
/** POST /worktree/init */
|
|
153
|
+
async init(input) {
|
|
154
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/init`, input, MUTATION_TIMEOUT_MS)));
|
|
155
|
+
}
|
|
156
|
+
/** POST /worktree/pr-create — push the branch and obtain a PR page. */
|
|
157
|
+
async prCreate(input) {
|
|
158
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/pr-create`, input, PUSH_TIMEOUT_MS)));
|
|
159
|
+
}
|
|
160
|
+
/** POST /worktree/status — per-repo PR/merge status. */
|
|
161
|
+
async status(input) {
|
|
162
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/status`, input, READ_TIMEOUT_MS)));
|
|
163
|
+
}
|
|
164
|
+
/** POST /worktree/cleanup — teardown a merged worktree. */
|
|
165
|
+
async cleanup(input) {
|
|
166
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/cleanup`, input, MUTATION_TIMEOUT_MS)));
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* POST /worktree/lane — resolve the lane a session (or a path) belongs to.
|
|
170
|
+
* Never throws: this feeds the conversation header chip, which must
|
|
171
|
+
* degrade to "no chip" rather than break the header, so a missing route
|
|
172
|
+
* (older host half), a fence refusal, an envelope error and a transport
|
|
173
|
+
* failure all yield `null`.
|
|
174
|
+
*/
|
|
175
|
+
async lane(input) {
|
|
176
|
+
try {
|
|
177
|
+
const response = await postJson(`${API_PREFIX}/lane`, input, READ_TIMEOUT_MS);
|
|
178
|
+
if (response.status === 404)
|
|
179
|
+
return null;
|
|
180
|
+
const env = await envelope(response);
|
|
181
|
+
return env.ok ? env.value : null;
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/** POST /worktree/lane/create — create the lane (worktree + workspace).
|
|
188
|
+
* The session itself is created by the platform's own create path. */
|
|
189
|
+
async createLane(input) {
|
|
190
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/lane/create`, input, MUTATION_TIMEOUT_MS)));
|
|
191
|
+
}
|
|
192
|
+
/** POST /worktree/lane/bind — attach the created session to its lane and
|
|
193
|
+
* apply the lane's permission preset. */
|
|
194
|
+
async bindLane(input) {
|
|
195
|
+
return unwrap(await envelope(await postJson(`${API_PREFIX}/lane/bind`, input, MUTATION_TIMEOUT_MS)));
|
|
196
|
+
}
|
|
197
|
+
/** POST /worktree/lane/rollback — undo a lane whose session never came up. */
|
|
198
|
+
async rollbackLane(input) {
|
|
199
|
+
unwrap(await envelope(await postJson(`${API_PREFIX}/lane/rollback`, input, MUTATION_TIMEOUT_MS)));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/** Browser-side workspace-model API surface (for the /workspace-model/* routes). */
|
|
203
|
+
export class WorkspaceModelApi {
|
|
204
|
+
/** POST /workspace-model/get — the preset for one workspace path. Reads
|
|
205
|
+
* never block the UI: a missing route (host half not yet loaded), a
|
|
206
|
+
* transport failure, or an errored envelope all yield `preset: undefined`
|
|
207
|
+
* so the caller can still open the editor with empty fields. */
|
|
208
|
+
async get(path) {
|
|
209
|
+
try {
|
|
210
|
+
const response = await postJson(`${MODEL_API_PREFIX}/get`, { path }, READ_TIMEOUT_MS);
|
|
211
|
+
if (response.status === 404)
|
|
212
|
+
return { path, preset: undefined };
|
|
213
|
+
const env = await envelope(response);
|
|
214
|
+
return env.ok ? env.value : { path, preset: undefined };
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
return { path, preset: undefined };
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
/** GET /workspace-model/list — every preset keyed by workspace path. */
|
|
221
|
+
async list() {
|
|
222
|
+
try {
|
|
223
|
+
const response = await request(`${MODEL_API_PREFIX}/list`, { credentials: 'same-origin' }, READ_TIMEOUT_MS);
|
|
224
|
+
const env = await envelope(response);
|
|
225
|
+
return env.ok ? env.value : [];
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
return [];
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/** POST /workspace-model/set — store a preset for one workspace path. */
|
|
232
|
+
async set(path, preset) {
|
|
233
|
+
return unwrap(await envelope(await postJson(`${MODEL_API_PREFIX}/set`, { path, preset }, MUTATION_TIMEOUT_MS)));
|
|
234
|
+
}
|
|
235
|
+
/** POST /workspace-model/clear — remove a workspace's preset. */
|
|
236
|
+
async clear(path) {
|
|
237
|
+
return unwrap(await envelope(await postJson(`${MODEL_API_PREFIX}/clear`, { path }, MUTATION_TIMEOUT_MS)));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delete dialog: one action replaced the two that users could not tell apart
|
|
3
|
+
* ("clean up worktree" vs "remove worktree"). The choice they actually make is
|
|
4
|
+
* whether the local branch goes too, so that is the checkbox:
|
|
5
|
+
*
|
|
6
|
+
* - unchecked -> host `remove`: deletes the directory and its record, keeps
|
|
7
|
+
* the local branch, so a directory can be made for it again later;
|
|
8
|
+
* - checked -> host `cleanup`: also deletes the local branch, which the
|
|
9
|
+
* host only allows once the branch is merged (or when forced).
|
|
10
|
+
*
|
|
11
|
+
* The force checkbox is not a mode the user has to understand up front: it
|
|
12
|
+
* appears exactly when the host will demand it — uncommitted changes anywhere,
|
|
13
|
+
* or deleting an unmerged branch — and says what it costs. A merged, clean
|
|
14
|
+
* directory therefore deletes in one click with no choices at all.
|
|
15
|
+
* @module @dsh-cove/dsh-client-ui-worktree/client/dialogs/delete
|
|
16
|
+
*/
|
|
17
|
+
import type { PropsLocale } from '@deepseek-ai/dsh-client-ui-slots';
|
|
18
|
+
import { WorktreeApi } from '../api.ts';
|
|
19
|
+
export declare function DeleteWorktreeDialog(props: {
|
|
20
|
+
repoPath: string;
|
|
21
|
+
name: string;
|
|
22
|
+
/** Whether the branch is merged: decides the branch checkbox's default. */
|
|
23
|
+
merged: boolean;
|
|
24
|
+
/** Uncommitted files in the directory: the host needs force to drop them. */
|
|
25
|
+
dirty: number;
|
|
26
|
+
api: WorktreeApi;
|
|
27
|
+
/** The asking conversation, when this directory is its own: the host accepts
|
|
28
|
+
* that conversation's teardown instead of reporting it as a busy session
|
|
29
|
+
* (deleting archives a directory's conversation either way). */
|
|
30
|
+
sessionId?: string;
|
|
31
|
+
onClose: () => void;
|
|
32
|
+
onRemoved: () => void;
|
|
33
|
+
t: PropsLocale<'worktree'>['t'];
|
|
34
|
+
}): JSX.Element;
|
|
35
|
+
//# sourceMappingURL=DeleteWorktreeDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteWorktreeDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/client/conversation/worktree/dialogs/DeleteWorktreeDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAIvC,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAA;IACf,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,WAAW,CAAA;IAChB;;qEAEiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;CAChC,GAAG,GAAG,CAAC,OAAO,CAuEd"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Delete dialog: one action replaced the two that users could not tell apart
|
|
4
|
+
* ("clean up worktree" vs "remove worktree"). The choice they actually make is
|
|
5
|
+
* whether the local branch goes too, so that is the checkbox:
|
|
6
|
+
*
|
|
7
|
+
* - unchecked -> host `remove`: deletes the directory and its record, keeps
|
|
8
|
+
* the local branch, so a directory can be made for it again later;
|
|
9
|
+
* - checked -> host `cleanup`: also deletes the local branch, which the
|
|
10
|
+
* host only allows once the branch is merged (or when forced).
|
|
11
|
+
*
|
|
12
|
+
* The force checkbox is not a mode the user has to understand up front: it
|
|
13
|
+
* appears exactly when the host will demand it — uncommitted changes anywhere,
|
|
14
|
+
* or deleting an unmerged branch — and says what it costs. A merged, clean
|
|
15
|
+
* directory therefore deletes in one click with no choices at all.
|
|
16
|
+
* @module @dsh-cove/dsh-client-ui-worktree/client/dialogs/delete
|
|
17
|
+
*/
|
|
18
|
+
import { useState } from 'react';
|
|
19
|
+
import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
20
|
+
import { worktreeErrorMessage } from "../lifecycle.js";
|
|
21
|
+
import styles from '../worktree.module.css';
|
|
22
|
+
export function DeleteWorktreeDialog(props) {
|
|
23
|
+
const { repoPath, name, merged, dirty, api, sessionId, onClose, onRemoved, t } = props;
|
|
24
|
+
// Default to finishing the branch off when the host already calls it merged;
|
|
25
|
+
// otherwise keep the branch, because deleting an unmerged branch needs force.
|
|
26
|
+
const [deleteBranch, setDeleteBranch] = useState(merged);
|
|
27
|
+
const [force, setForce] = useState(false);
|
|
28
|
+
const [busy, setBusy] = useState(false);
|
|
29
|
+
const [error, setError] = useState(null);
|
|
30
|
+
/** The host refuses these cases without force; ask instead of failing. */
|
|
31
|
+
const needsForce = dirty > 0 || (deleteBranch && !merged);
|
|
32
|
+
const effectiveForce = needsForce && force;
|
|
33
|
+
/** Closing mid-flight would hide a delete that is already running. */
|
|
34
|
+
const guardClose = () => { if (!busy)
|
|
35
|
+
onClose(); };
|
|
36
|
+
const submit = async () => {
|
|
37
|
+
if (busy)
|
|
38
|
+
return;
|
|
39
|
+
setBusy(true);
|
|
40
|
+
setError(null);
|
|
41
|
+
try {
|
|
42
|
+
const input = { repoPath, name, force: effectiveForce, ...(sessionId === undefined ? {} : { sessionId }) };
|
|
43
|
+
if (deleteBranch)
|
|
44
|
+
await api.cleanup(input);
|
|
45
|
+
else
|
|
46
|
+
await api.remove(input);
|
|
47
|
+
onRemoved();
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
setError(err);
|
|
51
|
+
setBusy(false);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
return (_jsx(Modal, { open: true, onClose: guardClose, closeLabel: t('dialog.close'), title: t('worktree.deleteTitle', { name }), description: t('worktree.deleteDescription'), footer: (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", disabled: busy, onClick: guardClose, children: t('dialog.cancel') }), _jsx(Button, { variant: "primary", disabled: busy, onClick: () => { void submit(); }, children: busy ? t('dialog.confirm') : t('worktree.deleteConfirm') })] })), children: _jsxs("div", { className: styles.dialogBody, children: [_jsxs("label", { className: styles.checkboxRow, children: [_jsx("input", { type: "checkbox", checked: deleteBranch, onChange: (event) => { setDeleteBranch(event.target.checked); setError(null); }, disabled: busy }), _jsx("span", { children: t('worktree.deleteBranch') })] }), _jsx("div", { className: styles.dialogHint, children: t('worktree.deleteBranchHint') }), needsForce && (_jsxs("label", { className: styles.checkboxRow, children: [_jsx("input", { type: "checkbox", checked: force, onChange: (event) => { setForce(event.target.checked); }, disabled: busy }), _jsx("span", { children: t('worktree.deleteForce') })] })), needsForce && force && (_jsx("div", { className: styles.dialogError, role: "alert", children: t('worktree.deleteForceWarning') })), error !== null && _jsx("div", { className: styles.dialogError, role: "alert", children: worktreeErrorMessage(error, t) })] }) }));
|
|
55
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create-PR dialog: pick the PR target base branch (dropdown over the
|
|
3
|
+
* repo's candidate branches, defaulted to the last status probe), push the
|
|
4
|
+
* worktree branch, and obtain the PR page. Calls `api.prCreate` on confirm;
|
|
5
|
+
* on success the dialog shows the resulting PR url with an open button
|
|
6
|
+
* (window.open in a user gesture). The parent reloads the worktree index and
|
|
7
|
+
* the PR status as soon as the push/PR landed (`onSettled`), so closing the
|
|
8
|
+
* dialog with Escape while the request is in flight cannot lose the result;
|
|
9
|
+
* closes are refused while the request is running.
|
|
10
|
+
*/
|
|
11
|
+
import type { PropsLocale } from '@deepseek-ai/dsh-client-ui-slots';
|
|
12
|
+
import { WorktreeApi } from '../api.ts';
|
|
13
|
+
export declare function PrCreateDialog(props: {
|
|
14
|
+
repoPath: string;
|
|
15
|
+
name: string;
|
|
16
|
+
/** Candidate base branches (local first, then origin/*). */
|
|
17
|
+
branches: string[];
|
|
18
|
+
/** Default PR target base branch (from the last status probe). */
|
|
19
|
+
defaultBaseRef: string;
|
|
20
|
+
api: WorktreeApi;
|
|
21
|
+
onClose: () => void;
|
|
22
|
+
onCreated: () => void;
|
|
23
|
+
/** The host state changed: refresh the panel without closing this dialog. */
|
|
24
|
+
onSettled: () => void;
|
|
25
|
+
t: PropsLocale<'worktree'>['t'];
|
|
26
|
+
}): JSX.Element;
|
|
27
|
+
//# sourceMappingURL=PrCreateDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrCreateDialog.d.ts","sourceRoot":"","sources":["../../../../../../src/client/conversation/worktree/dialogs/PrCreateDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAKvC,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,WAAW,CAAA;IAChB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAA;CAChC,GAAG,GAAG,CAAC,OAAO,CAiFd"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Create-PR dialog: pick the PR target base branch (dropdown over the
|
|
4
|
+
* repo's candidate branches, defaulted to the last status probe), push the
|
|
5
|
+
* worktree branch, and obtain the PR page. Calls `api.prCreate` on confirm;
|
|
6
|
+
* on success the dialog shows the resulting PR url with an open button
|
|
7
|
+
* (window.open in a user gesture). The parent reloads the worktree index and
|
|
8
|
+
* the PR status as soon as the push/PR landed (`onSettled`), so closing the
|
|
9
|
+
* dialog with Escape while the request is in flight cannot lose the result;
|
|
10
|
+
* closes are refused while the request is running.
|
|
11
|
+
*/
|
|
12
|
+
import { useState } from 'react';
|
|
13
|
+
import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
14
|
+
import { worktreeErrorMessage } from "../lifecycle.js";
|
|
15
|
+
import styles from '../worktree.module.css';
|
|
16
|
+
export function PrCreateDialog(props) {
|
|
17
|
+
const { repoPath, name, branches, defaultBaseRef, api, onClose, onCreated, onSettled, t } = props;
|
|
18
|
+
const [baseRef, setBaseRef] = useState(() => (defaultBaseRef !== '' && (branches.length === 0 || branches.includes(defaultBaseRef))
|
|
19
|
+
? defaultBaseRef
|
|
20
|
+
: (branches[0] ?? defaultBaseRef)));
|
|
21
|
+
const [busy, setBusy] = useState(false);
|
|
22
|
+
const [error, setError] = useState(null);
|
|
23
|
+
const [result, setResult] = useState(null);
|
|
24
|
+
/** Closing mid-flight would drop a PR that the host already created. */
|
|
25
|
+
const guardClose = () => { if (!busy)
|
|
26
|
+
onClose(); };
|
|
27
|
+
const submit = async () => {
|
|
28
|
+
if (busy)
|
|
29
|
+
return;
|
|
30
|
+
setBusy(true);
|
|
31
|
+
setError(null);
|
|
32
|
+
try {
|
|
33
|
+
const created = await api.prCreate({
|
|
34
|
+
repoPath,
|
|
35
|
+
name,
|
|
36
|
+
...(baseRef.trim() !== '' ? { baseRef: baseRef.trim() } : {}),
|
|
37
|
+
});
|
|
38
|
+
setResult(created);
|
|
39
|
+
// Refresh the panel now, not when the user dismisses the result view.
|
|
40
|
+
onSettled();
|
|
41
|
+
setBusy(false);
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
setError(err);
|
|
45
|
+
setBusy(false);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
return (_jsx(Modal, { open: true, onClose: guardClose, closeLabel: t('dialog.close'), title: t('worktree.prTitle', { name }), description: t('worktree.prDescription'), footer: result === null ? (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", disabled: busy, onClick: guardClose, children: t('dialog.cancel') }), _jsx(Button, { variant: "primary", disabled: busy, onClick: () => { void submit(); }, children: busy ? t('dialog.confirm') : t('worktree.prConfirm') })] })) : (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", onClick: () => { onCreated(); onClose(); }, children: t('dialog.confirm') }), _jsx(Button, { variant: "primary", onClick: () => { window.open(result.prUrl, '_blank', 'noopener,noreferrer'); onCreated(); onClose(); }, children: t('worktree.prOpen') })] })), children: result === null ? (_jsxs("div", { className: styles.dialogBody, children: [_jsxs("label", { className: styles.field, children: [_jsx("span", { className: styles.fieldLabel, children: t('worktree.prBase') }), _jsxs("select", { className: styles.fieldInput, value: baseRef, onChange: (event) => { setBaseRef(event.target.value); setError(null); }, disabled: busy, children: [branches.length === 0 && _jsx("option", { value: baseRef, children: baseRef }), branches.map((name) => _jsx("option", { value: name, children: name }, name))] })] }), error !== null && _jsx("div", { className: styles.dialogError, role: "alert", children: worktreeErrorMessage(error, t) })] })) : (_jsxs("div", { className: styles.dialogBody, children: [_jsx("div", { className: styles.successText, role: "status", children: t('worktree.prSuccess') }), _jsx("div", { className: styles.prUrl, children: result.prUrl })] })) }));
|
|
49
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recording which conversation a lane belongs to.
|
|
3
|
+
*
|
|
4
|
+
* A lane is a DSH workspace now, so a conversation can arrive on it from
|
|
5
|
+
* anywhere: this plugin's branch picker, the shell's own workspace selector, or
|
|
6
|
+
* a selection restored after a reload. Whenever a conversation's cwd is a lane,
|
|
7
|
+
* the host has to know the pairing, because two things key off it:
|
|
8
|
+
*
|
|
9
|
+
* - the lane's `danger-full-access` preset. A linked worktree keeps its git
|
|
10
|
+
* directory in `<repo>/.git/worktrees/<name>/`, outside the session cwd, so
|
|
11
|
+
* a confined sandbox cannot write the index, objects or refs — the agent
|
|
12
|
+
* could not commit at all;
|
|
13
|
+
* - the teardown guards, which refuse to delete the directory a running
|
|
14
|
+
* conversation works in.
|
|
15
|
+
*
|
|
16
|
+
* The binding is idempotent and attempted once per session per page load: a
|
|
17
|
+
* refusal is reported (the chip warns that the lane may not be able to commit)
|
|
18
|
+
* but never retried in a loop.
|
|
19
|
+
* @module @dsh-cove/dsh-client-ui-worktree/client/lane-binding
|
|
20
|
+
*/
|
|
21
|
+
import type { BindLaneInput, BindLaneResult, LaneLookupInput, LaneView } from '../../../core/worktree/types.ts';
|
|
22
|
+
/** The outcome of resolving (and, when needed, recording) a session's lane. */
|
|
23
|
+
export interface LaneBinding {
|
|
24
|
+
/** The lane this session runs in, or null when it runs outside one. */
|
|
25
|
+
lane: LaneView | null;
|
|
26
|
+
/** The lane exists but the host refused to record this conversation on it. */
|
|
27
|
+
bindFailed: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** Resolve the lane a session runs in, recording the pairing on first sight. */
|
|
30
|
+
export interface LaneBinder {
|
|
31
|
+
/** @param sessionId - the conversation asking; undefined resolves to no lane. */
|
|
32
|
+
bind(sessionId: string | undefined): Promise<LaneBinding>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build a binder over the two calls it needs.
|
|
36
|
+
*
|
|
37
|
+
* They are passed in rather than imported so each surface keeps its own
|
|
38
|
+
* injected face (the header chip receives its lookup; the composer hands its
|
|
39
|
+
* own), and so tests can drive the binder without a network.
|
|
40
|
+
* @param faces - `/worktree/lane` and `/worktree/lane/bind`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createLaneBinder(faces: {
|
|
43
|
+
lane: (input: LaneLookupInput) => Promise<LaneView | null>;
|
|
44
|
+
bindLane: (input: BindLaneInput) => Promise<BindLaneResult>;
|
|
45
|
+
}): LaneBinder;
|
|
46
|
+
//# sourceMappingURL=lane-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-binding.d.ts","sourceRoot":"","sources":["../../../../../src/client/conversation/worktree/lane-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAE/G,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IACrB,8EAA8E;IAC9E,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CAC1D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,IAAI,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAA;IAC1D,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;CAC5D,GAAG,UAAU,CA4Bb"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Recording which conversation a lane belongs to.
|
|
3
|
+
*
|
|
4
|
+
* A lane is a DSH workspace now, so a conversation can arrive on it from
|
|
5
|
+
* anywhere: this plugin's branch picker, the shell's own workspace selector, or
|
|
6
|
+
* a selection restored after a reload. Whenever a conversation's cwd is a lane,
|
|
7
|
+
* the host has to know the pairing, because two things key off it:
|
|
8
|
+
*
|
|
9
|
+
* - the lane's `danger-full-access` preset. A linked worktree keeps its git
|
|
10
|
+
* directory in `<repo>/.git/worktrees/<name>/`, outside the session cwd, so
|
|
11
|
+
* a confined sandbox cannot write the index, objects or refs — the agent
|
|
12
|
+
* could not commit at all;
|
|
13
|
+
* - the teardown guards, which refuse to delete the directory a running
|
|
14
|
+
* conversation works in.
|
|
15
|
+
*
|
|
16
|
+
* The binding is idempotent and attempted once per session per page load: a
|
|
17
|
+
* refusal is reported (the chip warns that the lane may not be able to commit)
|
|
18
|
+
* but never retried in a loop.
|
|
19
|
+
* @module @dsh-cove/dsh-client-ui-worktree/client/lane-binding
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Build a binder over the two calls it needs.
|
|
23
|
+
*
|
|
24
|
+
* They are passed in rather than imported so each surface keeps its own
|
|
25
|
+
* injected face (the header chip receives its lookup; the composer hands its
|
|
26
|
+
* own), and so tests can drive the binder without a network.
|
|
27
|
+
* @param faces - `/worktree/lane` and `/worktree/lane/bind`.
|
|
28
|
+
*/
|
|
29
|
+
export function createLaneBinder(faces) {
|
|
30
|
+
const attempted = new Set();
|
|
31
|
+
return {
|
|
32
|
+
bind: async (sessionId) => {
|
|
33
|
+
if (sessionId === undefined)
|
|
34
|
+
return { lane: null, bindFailed: false };
|
|
35
|
+
let lane;
|
|
36
|
+
try {
|
|
37
|
+
lane = await faces.lane({ sessionId });
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return { lane: null, bindFailed: false };
|
|
41
|
+
}
|
|
42
|
+
if (lane === null || lane.sessionId === sessionId || attempted.has(sessionId)) {
|
|
43
|
+
return { lane, bindFailed: false };
|
|
44
|
+
}
|
|
45
|
+
attempted.add(sessionId);
|
|
46
|
+
try {
|
|
47
|
+
const bound = await faces.bindLane({
|
|
48
|
+
repoPath: lane.repoPath,
|
|
49
|
+
branch: lane.branch ?? lane.name,
|
|
50
|
+
sessionId,
|
|
51
|
+
});
|
|
52
|
+
return { lane: bound.lane ?? lane, bindFailed: false };
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.warn('[dsh-worktree] could not record this conversation on its lane:', error);
|
|
56
|
+
return { lane, bindFailed: true };
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
}
|