@dsh-cove/dsh-web-all 0.0.0-stage → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.i18n.yaml +6 -0
- package/README.md +205 -2
- package/README.zh.md +205 -0
- package/cordis.patch.yml +59 -0
- package/lib/client.js +25413 -0
- package/lib/client.js.map +1 -0
- package/lib/index.js +20024 -0
- package/lib/invariant.js +6 -0
- package/lib/types/client/compat.d.ts +29 -0
- package/lib/types/client/compat.d.ts.map +1 -0
- package/lib/types/client/compat.js +69 -0
- package/lib/types/client/conversation/git-branch.d.ts +13 -0
- package/lib/types/client/conversation/git-branch.d.ts.map +1 -0
- package/lib/types/client/conversation/git-branch.js +121 -0
- package/lib/types/client/conversation/git-graph/api.d.ts +42 -0
- package/lib/types/client/conversation/git-graph/api.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/api.js +72 -0
- package/lib/types/client/conversation/git-graph/branch-chip.d.ts +47 -0
- package/lib/types/client/conversation/git-graph/branch-chip.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/branch-chip.js +268 -0
- package/lib/types/client/conversation/git-graph/branch-popover.d.ts +32 -0
- package/lib/types/client/conversation/git-graph/branch-popover.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/branch-popover.js +108 -0
- package/lib/types/client/conversation/git-graph/chip.d.ts +24 -0
- package/lib/types/client/conversation/git-graph/chip.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/chip.js +15 -0
- package/lib/types/client/conversation/git-graph/create-branch-dialog.d.ts +30 -0
- package/lib/types/client/conversation/git-graph/create-branch-dialog.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/create-branch-dialog.js +52 -0
- package/lib/types/client/conversation/git-graph/error-copy.d.ts +17 -0
- package/lib/types/client/conversation/git-graph/error-copy.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/error-copy.js +44 -0
- package/lib/types/client/conversation/git-graph/graph-dialog.d.ts +21 -0
- package/lib/types/client/conversation/git-graph/graph-dialog.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/graph-dialog.js +112 -0
- package/lib/types/client/conversation/git-graph/hero-seat.d.ts +53 -0
- package/lib/types/client/conversation/git-graph/hero-seat.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/hero-seat.js +54 -0
- package/lib/types/client/conversation/git-graph/locales.d.ts +88 -0
- package/lib/types/client/conversation/git-graph/locales.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/locales.js +85 -0
- package/lib/types/client/conversation/git-graph/sse-leader.d.ts +37 -0
- package/lib/types/client/conversation/git-graph/sse-leader.d.ts.map +1 -0
- package/lib/types/client/conversation/git-graph/sse-leader.js +101 -0
- package/lib/types/client/conversation/index.d.ts +43 -0
- package/lib/types/client/conversation/index.d.ts.map +1 -0
- package/lib/types/client/conversation/index.js +39 -0
- package/lib/types/client/conversation/selector-context.d.ts +12 -0
- package/lib/types/client/conversation/selector-context.d.ts.map +1 -0
- package/lib/types/client/conversation/selector-context.js +11 -0
- package/lib/types/client/conversation/session-lane-chip.d.ts +72 -0
- package/lib/types/client/conversation/session-lane-chip.d.ts.map +1 -0
- package/lib/types/client/conversation/session-lane-chip.js +163 -0
- package/lib/types/client/conversation/session-lane-locales.d.ts +22 -0
- package/lib/types/client/conversation/session-lane-locales.d.ts.map +1 -0
- package/lib/types/client/conversation/session-lane-locales.js +29 -0
- package/lib/types/client/conversation/subagent-model-dom.d.ts +16 -0
- package/lib/types/client/conversation/subagent-model-dom.d.ts.map +1 -0
- package/lib/types/client/conversation/subagent-model-dom.js +138 -0
- package/lib/types/client/conversation/subagent-model.d.ts +17 -0
- package/lib/types/client/conversation/subagent-model.d.ts.map +1 -0
- package/lib/types/client/conversation/subagent-model.js +156 -0
- package/lib/types/client/conversation/worktree/api.d.ts +97 -0
- package/lib/types/client/conversation/worktree/api.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/api.js +239 -0
- package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.d.ts +35 -0
- package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/dialogs/DeleteWorktreeDialog.js +55 -0
- package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.d.ts +27 -0
- package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/dialogs/PrCreateDialog.js +49 -0
- package/lib/types/client/conversation/worktree/lane-binding.d.ts +46 -0
- package/lib/types/client/conversation/worktree/lane-binding.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-binding.js +60 -0
- package/lib/types/client/conversation/worktree/lane-menu.d.ts +51 -0
- package/lib/types/client/conversation/worktree/lane-menu.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-menu.js +140 -0
- package/lib/types/client/conversation/worktree/lane-open.d.ts +126 -0
- package/lib/types/client/conversation/worktree/lane-open.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-open.js +140 -0
- package/lib/types/client/conversation/worktree/lane-workspace-sweeper.d.ts +79 -0
- package/lib/types/client/conversation/worktree/lane-workspace-sweeper.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lane-workspace-sweeper.js +116 -0
- package/lib/types/client/conversation/worktree/lifecycle.d.ts +29 -0
- package/lib/types/client/conversation/worktree/lifecycle.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/lifecycle.js +67 -0
- package/lib/types/client/conversation/worktree/locales.d.ts +58 -0
- package/lib/types/client/conversation/worktree/locales.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/locales.js +86 -0
- package/lib/types/client/conversation/worktree/semantic.d.ts +11 -0
- package/lib/types/client/conversation/worktree/semantic.d.ts.map +1 -0
- package/lib/types/client/conversation/worktree/semantic.js +10 -0
- package/lib/types/client/index.d.ts +14 -0
- package/lib/types/client/index.d.ts.map +1 -0
- package/lib/types/client/index.js +45 -0
- package/lib/types/client/lark-inbox/i18n.d.ts +63 -0
- package/lib/types/client/lark-inbox/i18n.d.ts.map +1 -0
- package/lib/types/client/lark-inbox/i18n.js +119 -0
- package/lib/types/client/lark-inbox/wizard.d.ts +19 -0
- package/lib/types/client/lark-inbox/wizard.d.ts.map +1 -0
- package/lib/types/client/lark-inbox/wizard.js +158 -0
- package/lib/types/client/notify/i18n.d.ts +47 -0
- package/lib/types/client/notify/i18n.d.ts.map +1 -0
- package/lib/types/client/notify/i18n.js +87 -0
- package/lib/types/client/settings/family-scope.d.ts +23 -0
- package/lib/types/client/settings/family-scope.d.ts.map +1 -0
- package/lib/types/client/settings/family-scope.js +30 -0
- package/lib/types/client/settings/lark-inbox.d.ts +73 -0
- package/lib/types/client/settings/lark-inbox.d.ts.map +1 -0
- package/lib/types/client/settings/lark-inbox.js +144 -0
- package/lib/types/client/settings/notify.d.ts +66 -0
- package/lib/types/client/settings/notify.d.ts.map +1 -0
- package/lib/types/client/settings/notify.js +139 -0
- package/lib/types/client/settings/primitives-0.2.d.ts +137 -0
- package/lib/types/client/settings/primitives-0.2.d.ts.map +1 -0
- package/lib/types/client/settings/primitives-0.2.js +8 -0
- package/lib/types/client/sidebar/RenderBoundary.d.ts +17 -0
- package/lib/types/client/sidebar/RenderBoundary.d.ts.map +1 -0
- package/lib/types/client/sidebar/RenderBoundary.js +18 -0
- package/lib/types/client/sidebar/agent-browser.d.ts +9 -0
- package/lib/types/client/sidebar/agent-browser.d.ts.map +1 -0
- package/lib/types/client/sidebar/agent-browser.js +102 -0
- package/lib/types/client/sidebar/diff-view.d.ts +58 -0
- package/lib/types/client/sidebar/diff-view.d.ts.map +1 -0
- package/lib/types/client/sidebar/diff-view.js +223 -0
- package/lib/types/client/sidebar/git-workbench.d.ts +41 -0
- package/lib/types/client/sidebar/git-workbench.d.ts.map +1 -0
- package/lib/types/client/sidebar/git-workbench.js +480 -0
- package/lib/types/client/sidebar/icons.d.ts +9 -0
- package/lib/types/client/sidebar/icons.d.ts.map +1 -0
- package/lib/types/client/sidebar/icons.js +6 -0
- package/lib/types/client/sidebar/index.d.ts +19 -0
- package/lib/types/client/sidebar/index.d.ts.map +1 -0
- package/lib/types/client/sidebar/index.js +12 -0
- package/lib/types/client/sidebar/native-panels.d.ts +19 -0
- package/lib/types/client/sidebar/native-panels.d.ts.map +1 -0
- package/lib/types/client/sidebar/native-panels.js +103 -0
- package/lib/types/client/sidebar/page-shell.d.ts +52 -0
- package/lib/types/client/sidebar/page-shell.d.ts.map +1 -0
- package/lib/types/client/sidebar/page-shell.js +18 -0
- package/lib/types/client/sidebar/panels/memoir/api.d.ts +258 -0
- package/lib/types/client/sidebar/panels/memoir/api.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/api.js +135 -0
- package/lib/types/client/sidebar/panels/memoir/controller.d.ts +22 -0
- package/lib/types/client/sidebar/panels/memoir/controller.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/controller.js +38 -0
- package/lib/types/client/sidebar/panels/memoir/cwd.d.ts +80 -0
- package/lib/types/client/sidebar/panels/memoir/cwd.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/cwd.js +96 -0
- package/lib/types/client/sidebar/panels/memoir/i18n.d.ts +21 -0
- package/lib/types/client/sidebar/panels/memoir/i18n.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/i18n.js +288 -0
- package/lib/types/client/sidebar/panels/memoir/panel-activation.d.ts +11 -0
- package/lib/types/client/sidebar/panels/memoir/panel-activation.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/panel-activation.js +37 -0
- package/lib/types/client/sidebar/panels/memoir/panel.d.ts +26 -0
- package/lib/types/client/sidebar/panels/memoir/panel.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/panel.js +423 -0
- package/lib/types/client/sidebar/panels/memoir/styles.d.ts +22 -0
- package/lib/types/client/sidebar/panels/memoir/styles.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/styles.js +774 -0
- package/lib/types/client/sidebar/panels/memoir/types.d.ts +7 -0
- package/lib/types/client/sidebar/panels/memoir/types.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/memoir/types.js +5 -0
- package/lib/types/client/sidebar/panels/ssh/ClusterTab.d.ts +8 -0
- package/lib/types/client/sidebar/panels/ssh/ClusterTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/ClusterTab.js +53 -0
- package/lib/types/client/sidebar/panels/ssh/HostFormDialog.d.ts +13 -0
- package/lib/types/client/sidebar/panels/ssh/HostFormDialog.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/HostFormDialog.js +110 -0
- package/lib/types/client/sidebar/panels/ssh/HostsTab.d.ts +26 -0
- package/lib/types/client/sidebar/panels/ssh/HostsTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/HostsTab.js +175 -0
- package/lib/types/client/sidebar/panels/ssh/SshPanel.d.ts +14 -0
- package/lib/types/client/sidebar/panels/ssh/SshPanel.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/SshPanel.js +34 -0
- package/lib/types/client/sidebar/panels/ssh/TerminalTab.d.ts +18 -0
- package/lib/types/client/sidebar/panels/ssh/TerminalTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/TerminalTab.js +207 -0
- package/lib/types/client/sidebar/panels/ssh/TransferTab.d.ts +8 -0
- package/lib/types/client/sidebar/panels/ssh/TransferTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/TransferTab.js +168 -0
- package/lib/types/client/sidebar/panels/ssh/TunnelsTab.d.ts +18 -0
- package/lib/types/client/sidebar/panels/ssh/TunnelsTab.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/TunnelsTab.js +161 -0
- package/lib/types/client/sidebar/panels/ssh/api.d.ts +80 -0
- package/lib/types/client/sidebar/panels/ssh/api.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/api.js +333 -0
- package/lib/types/client/sidebar/panels/ssh/controller.d.ts +23 -0
- package/lib/types/client/sidebar/panels/ssh/controller.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/controller.js +41 -0
- package/lib/types/client/sidebar/panels/ssh/helpers.d.ts +44 -0
- package/lib/types/client/sidebar/panels/ssh/helpers.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/helpers.js +53 -0
- package/lib/types/client/sidebar/panels/ssh/locales.d.ts +155 -0
- package/lib/types/client/sidebar/panels/ssh/locales.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/locales.js +312 -0
- package/lib/types/client/sidebar/panels/ssh/xterm.css.d.ts +3 -0
- package/lib/types/client/sidebar/panels/ssh/xterm.css.d.ts.map +1 -0
- package/lib/types/client/sidebar/panels/ssh/xterm.css.js +2 -0
- package/lib/types/client/sidebar/right-pane-i18n.d.ts +121 -0
- package/lib/types/client/sidebar/right-pane-i18n.d.ts.map +1 -0
- package/lib/types/client/sidebar/right-pane-i18n.js +239 -0
- package/lib/types/client/sidebar/right-pane.d.ts +27 -0
- package/lib/types/client/sidebar/right-pane.d.ts.map +1 -0
- package/lib/types/client/sidebar/right-pane.js +112 -0
- package/lib/types/client/sidebar/scope.d.ts +17 -0
- package/lib/types/client/sidebar/scope.d.ts.map +1 -0
- package/lib/types/client/sidebar/scope.js +41 -0
- package/lib/types/client/trust.d.ts +78 -0
- package/lib/types/client/trust.d.ts.map +1 -0
- package/lib/types/client/trust.js +130 -0
- package/lib/types/client/ui-icons.d.ts +19 -0
- package/lib/types/client/ui-icons.d.ts.map +1 -0
- package/lib/types/client/ui-icons.js +33 -0
- package/lib/types/core/git-graph/commands.d.ts +36 -0
- package/lib/types/core/git-graph/commands.d.ts.map +1 -0
- package/lib/types/core/git-graph/commands.js +122 -0
- package/lib/types/core/git-graph/protocol.d.ts +104 -0
- package/lib/types/core/git-graph/protocol.d.ts.map +1 -0
- package/lib/types/core/git-graph/protocol.js +142 -0
- package/lib/types/core/index.d.ts +3 -0
- package/lib/types/core/index.d.ts.map +1 -0
- package/lib/types/core/index.js +2 -0
- package/lib/types/core/lark-inbox/gating.d.ts +21 -0
- package/lib/types/core/lark-inbox/gating.d.ts.map +1 -0
- package/lib/types/core/lark-inbox/gating.js +17 -0
- package/lib/types/core/lark-inbox/queue.d.ts +27 -0
- package/lib/types/core/lark-inbox/queue.d.ts.map +1 -0
- package/lib/types/core/lark-inbox/queue.js +78 -0
- package/lib/types/core/memoir/protocol.d.ts +42 -0
- package/lib/types/core/memoir/protocol.d.ts.map +1 -0
- package/lib/types/core/memoir/protocol.js +8 -0
- package/lib/types/core/no-browser-auth/contract.d.ts +22 -0
- package/lib/types/core/no-browser-auth/contract.d.ts.map +1 -0
- package/lib/types/core/no-browser-auth/contract.js +9 -0
- package/lib/types/core/notify/contract.d.ts +133 -0
- package/lib/types/core/notify/contract.d.ts.map +1 -0
- package/lib/types/core/notify/contract.js +186 -0
- package/lib/types/core/notify/feed.d.ts +116 -0
- package/lib/types/core/notify/feed.d.ts.map +1 -0
- package/lib/types/core/notify/feed.js +214 -0
- package/lib/types/core/playwright-sessions/contracts.d.ts +98 -0
- package/lib/types/core/playwright-sessions/contracts.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/contracts.js +68 -0
- package/lib/types/core/playwright-sessions/control.d.ts +19 -0
- package/lib/types/core/playwright-sessions/control.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/control.js +9 -0
- package/lib/types/core/playwright-sessions/index.d.ts +4 -0
- package/lib/types/core/playwright-sessions/index.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/index.js +3 -0
- package/lib/types/core/playwright-sessions/names.d.ts +4 -0
- package/lib/types/core/playwright-sessions/names.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/names.js +84 -0
- package/lib/types/core/playwright-sessions/schema.d.ts +4 -0
- package/lib/types/core/playwright-sessions/schema.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/schema.js +90 -0
- package/lib/types/core/playwright-sessions/wire.d.ts +78 -0
- package/lib/types/core/playwright-sessions/wire.d.ts.map +1 -0
- package/lib/types/core/playwright-sessions/wire.js +103 -0
- package/lib/types/core/remote-access/paths.d.ts +19 -0
- package/lib/types/core/remote-access/paths.d.ts.map +1 -0
- package/lib/types/core/remote-access/paths.js +18 -0
- package/lib/types/core/remote-web-ui/security.d.ts +35 -0
- package/lib/types/core/remote-web-ui/security.d.ts.map +1 -0
- package/lib/types/core/remote-web-ui/security.js +146 -0
- package/lib/types/core/right-pane/protocol.d.ts +25 -0
- package/lib/types/core/right-pane/protocol.d.ts.map +1 -0
- package/lib/types/core/right-pane/protocol.js +91 -0
- package/lib/types/core/schedule-mode/index.d.ts +7 -0
- package/lib/types/core/schedule-mode/index.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/index.js +6 -0
- package/lib/types/core/schedule-mode/native.d.ts +35 -0
- package/lib/types/core/schedule-mode/native.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/native.js +82 -0
- package/lib/types/core/schedule-mode/types.d.ts +177 -0
- package/lib/types/core/schedule-mode/types.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/types.js +65 -0
- package/lib/types/core/schedule-mode/view.d.ts +62 -0
- package/lib/types/core/schedule-mode/view.d.ts.map +1 -0
- package/lib/types/core/schedule-mode/view.js +4 -0
- package/lib/types/core/ssh/protocol.d.ts +215 -0
- package/lib/types/core/ssh/protocol.d.ts.map +1 -0
- package/lib/types/core/ssh/protocol.js +23 -0
- package/lib/types/core/subagent-model/badges.d.ts +73 -0
- package/lib/types/core/subagent-model/badges.d.ts.map +1 -0
- package/lib/types/core/subagent-model/badges.js +105 -0
- package/lib/types/core/worktree/invariant.d.ts +62 -0
- package/lib/types/core/worktree/invariant.d.ts.map +1 -0
- package/lib/types/core/worktree/invariant.js +72 -0
- package/lib/types/core/worktree/manifest.d.ts +71 -0
- package/lib/types/core/worktree/manifest.d.ts.map +1 -0
- package/lib/types/core/worktree/manifest.js +98 -0
- package/lib/types/core/worktree/paths.d.ts +60 -0
- package/lib/types/core/worktree/paths.d.ts.map +1 -0
- package/lib/types/core/worktree/paths.js +118 -0
- package/lib/types/core/worktree/pr-create.d.ts +67 -0
- package/lib/types/core/worktree/pr-create.d.ts.map +1 -0
- package/lib/types/core/worktree/pr-create.js +118 -0
- package/lib/types/core/worktree/protocol.d.ts +7 -0
- package/lib/types/core/worktree/protocol.d.ts.map +1 -0
- package/lib/types/core/worktree/protocol.js +6 -0
- package/lib/types/core/worktree/types.d.ts +292 -0
- package/lib/types/core/worktree/types.d.ts.map +1 -0
- package/lib/types/core/worktree/types.js +14 -0
- package/lib/types/core/worktree/workspace-model.d.ts +56 -0
- package/lib/types/core/worktree/workspace-model.d.ts.map +1 -0
- package/lib/types/core/worktree/workspace-model.js +14 -0
- package/lib/types/host/services/access-trust/index.d.ts +54 -0
- package/lib/types/host/services/access-trust/index.d.ts.map +1 -0
- package/lib/types/host/services/access-trust/index.js +82 -0
- package/lib/types/host/services/access-trust/trust.d.ts +70 -0
- package/lib/types/host/services/access-trust/trust.d.ts.map +1 -0
- package/lib/types/host/services/access-trust/trust.js +187 -0
- package/lib/types/host/services/codex-bridge/bridge.d.ts +106 -0
- package/lib/types/host/services/codex-bridge/bridge.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/bridge.js +321 -0
- package/lib/types/host/services/codex-bridge/codex-auth.d.ts +108 -0
- package/lib/types/host/services/codex-bridge/codex-auth.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/codex-auth.js +241 -0
- package/lib/types/host/services/codex-bridge/dsh-integration.d.ts +58 -0
- package/lib/types/host/services/codex-bridge/dsh-integration.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/dsh-integration.js +120 -0
- package/lib/types/host/services/codex-bridge/http.d.ts +43 -0
- package/lib/types/host/services/codex-bridge/http.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/http.js +92 -0
- package/lib/types/host/services/codex-bridge/index.d.ts +63 -0
- package/lib/types/host/services/codex-bridge/index.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/index.js +111 -0
- package/lib/types/host/services/codex-bridge/loopback.d.ts +25 -0
- package/lib/types/host/services/codex-bridge/loopback.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/loopback.js +68 -0
- package/lib/types/host/services/codex-bridge/routes.d.ts +31 -0
- package/lib/types/host/services/codex-bridge/routes.d.ts.map +1 -0
- package/lib/types/host/services/codex-bridge/routes.js +126 -0
- package/lib/types/host/services/family-config.d.ts +71 -0
- package/lib/types/host/services/family-config.d.ts.map +1 -0
- package/lib/types/host/services/family-config.js +166 -0
- package/lib/types/host/services/family-namespaces.d.ts +24 -0
- package/lib/types/host/services/family-namespaces.d.ts.map +1 -0
- package/lib/types/host/services/family-namespaces.js +30 -0
- package/lib/types/host/services/git-graph/index.d.ts +6 -0
- package/lib/types/host/services/git-graph/index.d.ts.map +1 -0
- package/lib/types/host/services/git-graph/index.js +7 -0
- package/lib/types/host/services/git-graph/routes.d.ts +4 -0
- package/lib/types/host/services/git-graph/routes.d.ts.map +1 -0
- package/lib/types/host/services/git-graph/routes.js +241 -0
- package/lib/types/host/services/git-graph/service.d.ts +52 -0
- package/lib/types/host/services/git-graph/service.d.ts.map +1 -0
- package/lib/types/host/services/git-graph/service.js +301 -0
- package/lib/types/host/services/index.d.ts +23 -0
- package/lib/types/host/services/index.d.ts.map +1 -0
- package/lib/types/host/services/index.js +80 -0
- package/lib/types/host/services/lark-inbox/config.d.ts +24 -0
- package/lib/types/host/services/lark-inbox/config.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/config.js +48 -0
- package/lib/types/host/services/lark-inbox/gateway.d.ts +53 -0
- package/lib/types/host/services/lark-inbox/gateway.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/gateway.js +171 -0
- package/lib/types/host/services/lark-inbox/host-routes.d.ts +22 -0
- package/lib/types/host/services/lark-inbox/host-routes.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/host-routes.js +146 -0
- package/lib/types/host/services/lark-inbox/inbox-store.d.ts +39 -0
- package/lib/types/host/services/lark-inbox/inbox-store.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/inbox-store.js +124 -0
- package/lib/types/host/services/lark-inbox/index.d.ts +26 -0
- package/lib/types/host/services/lark-inbox/index.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/index.js +135 -0
- package/lib/types/host/services/lark-inbox/tools.d.ts +7 -0
- package/lib/types/host/services/lark-inbox/tools.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/tools.js +119 -0
- package/lib/types/host/services/lark-inbox/wizard.d.ts +62 -0
- package/lib/types/host/services/lark-inbox/wizard.d.ts.map +1 -0
- package/lib/types/host/services/lark-inbox/wizard.js +211 -0
- package/lib/types/host/services/lifecycle.d.ts +29 -0
- package/lib/types/host/services/lifecycle.d.ts.map +1 -0
- package/lib/types/host/services/lifecycle.js +93 -0
- package/lib/types/host/services/memoir/index.d.ts +40 -0
- package/lib/types/host/services/memoir/index.d.ts.map +1 -0
- package/lib/types/host/services/memoir/index.js +52 -0
- package/lib/types/host/services/memoir/routes.d.ts +30 -0
- package/lib/types/host/services/memoir/routes.d.ts.map +1 -0
- package/lib/types/host/services/memoir/routes.js +364 -0
- package/lib/types/host/services/memoir/settings.d.ts +27 -0
- package/lib/types/host/services/memoir/settings.d.ts.map +1 -0
- package/lib/types/host/services/memoir/settings.js +120 -0
- package/lib/types/host/services/memoir/store.d.ts +35 -0
- package/lib/types/host/services/memoir/store.d.ts.map +1 -0
- package/lib/types/host/services/memoir/store.js +124 -0
- package/lib/types/host/services/memoir/tools.d.ts +8 -0
- package/lib/types/host/services/memoir/tools.d.ts.map +1 -0
- package/lib/types/host/services/memoir/tools.js +154 -0
- package/lib/types/host/services/no-browser-auth/index.d.ts +25 -0
- package/lib/types/host/services/no-browser-auth/index.d.ts.map +1 -0
- package/lib/types/host/services/no-browser-auth/index.js +42 -0
- package/lib/types/host/services/notify/config.d.ts +105 -0
- package/lib/types/host/services/notify/config.d.ts.map +1 -0
- package/lib/types/host/services/notify/config.js +123 -0
- package/lib/types/host/services/notify/feishu-sender.d.ts +120 -0
- package/lib/types/host/services/notify/feishu-sender.d.ts.map +1 -0
- package/lib/types/host/services/notify/feishu-sender.js +186 -0
- package/lib/types/host/services/notify/host-routes.d.ts +69 -0
- package/lib/types/host/services/notify/host-routes.d.ts.map +1 -0
- package/lib/types/host/services/notify/host-routes.js +112 -0
- package/lib/types/host/services/notify/index.d.ts +80 -0
- package/lib/types/host/services/notify/index.d.ts.map +1 -0
- package/lib/types/host/services/notify/index.js +263 -0
- package/lib/types/host/services/playwright-sessions/child.d.ts +76 -0
- package/lib/types/host/services/playwright-sessions/child.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/child.js +197 -0
- package/lib/types/host/services/playwright-sessions/controller.d.ts +25 -0
- package/lib/types/host/services/playwright-sessions/controller.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/controller.js +104 -0
- package/lib/types/host/services/playwright-sessions/index.d.ts +6 -0
- package/lib/types/host/services/playwright-sessions/index.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/index.js +161 -0
- package/lib/types/host/services/playwright-sessions/live-view.d.ts +32 -0
- package/lib/types/host/services/playwright-sessions/live-view.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/live-view.js +188 -0
- package/lib/types/host/services/playwright-sessions/manager.d.ts +87 -0
- package/lib/types/host/services/playwright-sessions/manager.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/manager.js +203 -0
- package/lib/types/host/services/playwright-sessions/profile-gc.d.ts +39 -0
- package/lib/types/host/services/playwright-sessions/profile-gc.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/profile-gc.js +72 -0
- package/lib/types/host/services/playwright-sessions/routes.d.ts +18 -0
- package/lib/types/host/services/playwright-sessions/routes.d.ts.map +1 -0
- package/lib/types/host/services/playwright-sessions/routes.js +87 -0
- package/lib/types/host/services/remote-access/boot-scripts.d.ts +55 -0
- package/lib/types/host/services/remote-access/boot-scripts.d.ts.map +1 -0
- package/lib/types/host/services/remote-access/boot-scripts.js +109 -0
- package/lib/types/host/services/remote-access/index.d.ts +28 -0
- package/lib/types/host/services/remote-access/index.d.ts.map +1 -0
- package/lib/types/host/services/remote-access/index.js +47 -0
- package/lib/types/host/services/remote-access/routes.d.ts +42 -0
- package/lib/types/host/services/remote-access/routes.d.ts.map +1 -0
- package/lib/types/host/services/remote-access/routes.js +119 -0
- package/lib/types/host/services/remote-web-ui/index.d.ts +21 -0
- package/lib/types/host/services/remote-web-ui/index.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/index.js +325 -0
- package/lib/types/host/services/remote-web-ui/server-mode/accounts.d.ts +115 -0
- package/lib/types/host/services/remote-web-ui/server-mode/accounts.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/accounts.js +396 -0
- package/lib/types/host/services/remote-web-ui/server-mode/cookie.d.ts +28 -0
- package/lib/types/host/services/remote-web-ui/server-mode/cookie.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/cookie.js +48 -0
- package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.d.ts +17 -0
- package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/dsh-home.js +40 -0
- package/lib/types/host/services/remote-web-ui/server-mode/external-auth.d.ts +73 -0
- package/lib/types/host/services/remote-web-ui/server-mode/external-auth.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/external-auth.js +242 -0
- package/lib/types/host/services/remote-web-ui/server-mode/fence.d.ts +23 -0
- package/lib/types/host/services/remote-web-ui/server-mode/fence.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/fence.js +24 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.d.ts +89 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway-routes.js +768 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway.d.ts +99 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/gateway.js +679 -0
- package/lib/types/host/services/remote-web-ui/server-mode/http.d.ts +43 -0
- package/lib/types/host/services/remote-web-ui/server-mode/http.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/http.js +92 -0
- package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.d.ts +42 -0
- package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/integrated-auth.js +73 -0
- package/lib/types/host/services/remote-web-ui/server-mode/lan.d.ts +13 -0
- package/lib/types/host/services/remote-web-ui/server-mode/lan.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/lan.js +17 -0
- package/lib/types/host/services/remote-web-ui/server-mode/loopback.d.ts +25 -0
- package/lib/types/host/services/remote-web-ui/server-mode/loopback.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/loopback.js +68 -0
- package/lib/types/host/services/remote-web-ui/server-mode/posture.d.ts +75 -0
- package/lib/types/host/services/remote-web-ui/server-mode/posture.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/posture.js +116 -0
- package/lib/types/host/services/remote-web-ui/server-mode/roles.d.ts +44 -0
- package/lib/types/host/services/remote-web-ui/server-mode/roles.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/roles.js +47 -0
- package/lib/types/host/services/remote-web-ui/server-mode/server-boot.d.ts +21 -0
- package/lib/types/host/services/remote-web-ui/server-mode/server-boot.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/server-boot.js +37 -0
- package/lib/types/host/services/remote-web-ui/server-mode/sessions.d.ts +111 -0
- package/lib/types/host/services/remote-web-ui/server-mode/sessions.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server-mode/sessions.js +298 -0
- package/lib/types/host/services/remote-web-ui/server.d.ts +82 -0
- package/lib/types/host/services/remote-web-ui/server.d.ts.map +1 -0
- package/lib/types/host/services/remote-web-ui/server.js +492 -0
- package/lib/types/host/services/resources.d.ts +9 -0
- package/lib/types/host/services/resources.d.ts.map +1 -0
- package/lib/types/host/services/resources.js +98 -0
- package/lib/types/host/services/right-pane/browser.d.ts +42 -0
- package/lib/types/host/services/right-pane/browser.d.ts.map +1 -0
- package/lib/types/host/services/right-pane/browser.js +106 -0
- package/lib/types/host/services/right-pane/index.d.ts +22 -0
- package/lib/types/host/services/right-pane/index.d.ts.map +1 -0
- package/lib/types/host/services/right-pane/index.js +114 -0
- package/lib/types/host/services/right-pane/wire.d.ts +6 -0
- package/lib/types/host/services/right-pane/wire.d.ts.map +1 -0
- package/lib/types/host/services/right-pane/wire.js +9 -0
- package/lib/types/host/services/schedule-mode/config.d.ts +11 -0
- package/lib/types/host/services/schedule-mode/config.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/config.js +15 -0
- package/lib/types/host/services/schedule-mode/engine.d.ts +150 -0
- package/lib/types/host/services/schedule-mode/engine.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/engine.js +672 -0
- package/lib/types/host/services/schedule-mode/index.d.ts +33 -0
- package/lib/types/host/services/schedule-mode/index.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/index.js +175 -0
- package/lib/types/host/services/schedule-mode/routes.d.ts +31 -0
- package/lib/types/host/services/schedule-mode/routes.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/routes.js +109 -0
- package/lib/types/host/services/schedule-mode/session-create.d.ts +27 -0
- package/lib/types/host/services/schedule-mode/session-create.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/session-create.js +21 -0
- package/lib/types/host/services/schedule-mode/store.d.ts +36 -0
- package/lib/types/host/services/schedule-mode/store.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/store.js +309 -0
- package/lib/types/host/services/schedule-mode/tools.d.ts +13 -0
- package/lib/types/host/services/schedule-mode/tools.d.ts.map +1 -0
- package/lib/types/host/services/schedule-mode/tools.js +132 -0
- package/lib/types/host/services/ssh/engine.d.ts +162 -0
- package/lib/types/host/services/ssh/engine.d.ts.map +1 -0
- package/lib/types/host/services/ssh/engine.js +699 -0
- package/lib/types/host/services/ssh/host-keys.d.ts +10 -0
- package/lib/types/host/services/ssh/host-keys.d.ts.map +1 -0
- package/lib/types/host/services/ssh/host-keys.js +108 -0
- package/lib/types/host/services/ssh/index.d.ts +38 -0
- package/lib/types/host/services/ssh/index.d.ts.map +1 -0
- package/lib/types/host/services/ssh/index.js +47 -0
- package/lib/types/host/services/ssh/routes.d.ts +29 -0
- package/lib/types/host/services/ssh/routes.d.ts.map +1 -0
- package/lib/types/host/services/ssh/routes.js +465 -0
- package/lib/types/host/services/ssh/store.d.ts +40 -0
- package/lib/types/host/services/ssh/store.d.ts.map +1 -0
- package/lib/types/host/services/ssh/store.js +330 -0
- package/lib/types/host/services/ssh/terminal-ws.d.ts +9 -0
- package/lib/types/host/services/ssh/terminal-ws.d.ts.map +1 -0
- package/lib/types/host/services/ssh/terminal-ws.js +142 -0
- package/lib/types/host/services/ssh/tools.d.ts +11 -0
- package/lib/types/host/services/ssh/tools.d.ts.map +1 -0
- package/lib/types/host/services/ssh/tools.js +270 -0
- package/lib/types/host/services/web-render/contracts.d.ts +93 -0
- package/lib/types/host/services/web-render/contracts.d.ts.map +1 -0
- package/lib/types/host/services/web-render/contracts.js +60 -0
- package/lib/types/host/services/web-render/index.d.ts +58 -0
- package/lib/types/host/services/web-render/index.d.ts.map +1 -0
- package/lib/types/host/services/web-render/index.js +90 -0
- package/lib/types/host/services/web-render/provider.d.ts +37 -0
- package/lib/types/host/services/web-render/provider.d.ts.map +1 -0
- package/lib/types/host/services/web-render/provider.js +274 -0
- package/lib/types/host/services/web-search-anthropic/contracts.d.ts +117 -0
- package/lib/types/host/services/web-search-anthropic/contracts.d.ts.map +1 -0
- package/lib/types/host/services/web-search-anthropic/contracts.js +90 -0
- package/lib/types/host/services/web-search-anthropic/index.d.ts +53 -0
- package/lib/types/host/services/web-search-anthropic/index.d.ts.map +1 -0
- package/lib/types/host/services/web-search-anthropic/index.js +123 -0
- package/lib/types/host/services/web-search-anthropic/provider.d.ts +101 -0
- package/lib/types/host/services/web-search-anthropic/provider.d.ts.map +1 -0
- package/lib/types/host/services/web-search-anthropic/provider.js +237 -0
- package/lib/types/host/services/worktree/git-runner.d.ts +82 -0
- package/lib/types/host/services/worktree/git-runner.d.ts.map +1 -0
- package/lib/types/host/services/worktree/git-runner.js +81 -0
- package/lib/types/host/services/worktree/git.d.ts +94 -0
- package/lib/types/host/services/worktree/git.d.ts.map +1 -0
- package/lib/types/host/services/worktree/git.js +153 -0
- package/lib/types/host/services/worktree/http.d.ts +12 -0
- package/lib/types/host/services/worktree/http.d.ts.map +1 -0
- package/lib/types/host/services/worktree/http.js +34 -0
- package/lib/types/host/services/worktree/index.d.ts +38 -0
- package/lib/types/host/services/worktree/index.d.ts.map +1 -0
- package/lib/types/host/services/worktree/index.js +78 -0
- package/lib/types/host/services/worktree/lane-tool.d.ts +22 -0
- package/lib/types/host/services/worktree/lane-tool.d.ts.map +1 -0
- package/lib/types/host/services/worktree/lane-tool.js +92 -0
- package/lib/types/host/services/worktree/manager.d.ts +410 -0
- package/lib/types/host/services/worktree/manager.d.ts.map +1 -0
- package/lib/types/host/services/worktree/manager.js +1485 -0
- package/lib/types/host/services/worktree/model-override.d.ts +20 -0
- package/lib/types/host/services/worktree/model-override.d.ts.map +1 -0
- package/lib/types/host/services/worktree/model-override.js +35 -0
- package/lib/types/host/services/worktree/routes.d.ts +50 -0
- package/lib/types/host/services/worktree/routes.d.ts.map +1 -0
- package/lib/types/host/services/worktree/routes.js +695 -0
- package/lib/types/host/services/worktree/run-command.d.ts +26 -0
- package/lib/types/host/services/worktree/run-command.d.ts.map +1 -0
- package/lib/types/host/services/worktree/run-command.js +36 -0
- package/lib/types/host/services/worktree/session-lane/manager.d.ts +109 -0
- package/lib/types/host/services/worktree/session-lane/manager.d.ts.map +1 -0
- package/lib/types/host/services/worktree/session-lane/manager.js +172 -0
- package/lib/types/host/services/worktree/workspace-model-routes.d.ts +21 -0
- package/lib/types/host/services/worktree/workspace-model-routes.d.ts.map +1 -0
- package/lib/types/host/services/worktree/workspace-model-routes.js +198 -0
- package/lib/types/host/services/worktree/workspace-model.d.ts +48 -0
- package/lib/types/host/services/worktree/workspace-model.d.ts.map +1 -0
- package/lib/types/host/services/worktree/workspace-model.js +113 -0
- package/lib/types/index.d.ts +47 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +52 -0
- package/lib/types/invariant.d.ts +4 -0
- package/lib/types/invariant.d.ts.map +1 -0
- package/lib/types/invariant.js +3 -0
- package/package.json +153 -3
- package/presets/code-vibe/THIRD_PARTY_NOTICES.md +55 -0
- package/presets/code-vibe/skills/UPSTREAM.md +104 -0
- package/presets/code-vibe/skills/agent-experience/SKILL.md +15 -0
- package/presets/code-vibe/skills/agent-operation/SKILL.md +43 -0
- package/presets/code-vibe/skills/code-review/SKILL.md +45 -0
- package/presets/code-vibe/skills/dsh-ci-test-reliability/SKILL.md +133 -0
- package/presets/code-vibe/skills/dsh-ci-test-reliability/references/ci-flake-diagnosis.md +60 -0
- package/presets/code-vibe/skills/dsh-find-simplifications/SKILL.md +69 -0
- package/presets/code-vibe/skills/dsh-find-simplifications/references/historical-patterns.md +45 -0
- package/presets/code-vibe/skills/dsh-merging-stacked-prs/SKILL.md +129 -0
- package/presets/code-vibe/skills/dsh-prose-standard/SKILL.md +83 -0
- package/presets/code-vibe/skills/dsh-prose-standard/references/examples.md +169 -0
- package/presets/code-vibe/skills/dsh-speed-up-perf/SKILL.md +94 -0
- package/presets/code-vibe/skills/dsh-trim-cot-leakage/SKILL.md +47 -0
- package/presets/code-vibe/skills/dsh-trim-cot-leakage/references/examples.md +275 -0
- package/presets/code-vibe/skills/dsh-trim-cot-leakage/references/recall-batteries.md +52 -0
- package/presets/code-vibe/skills/frontend-design/SKILL.md +60 -0
- package/presets/code-vibe/skills/frontend-design/references/critique-format.md +35 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/LOAD-MAP.md +81 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/README.md +53 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/anchor.md +51 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/audit/ai-tells.md +59 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/audit/web-interface.md +14 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/change-control.md +62 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/copy.md +65 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/craft-knobs.md +61 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/debug-playbook.md +37 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/exemplars/README.md +64 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/plan-architecture.checklist.json +13 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/product-judgment.md +113 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/system-architecture.md +108 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/README.md +26 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/color-roles.md +49 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/motion.md +51 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/tokens/scale.md +89 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/ui-page-gate.md +61 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/ui-surface.checklist.json +49 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/ux.md +76 -0
- package/presets/code-vibe/skills/frontend-design/references/design-standards/visual.md +52 -0
- package/presets/code-vibe/skills/frontend-design/references/perceptible-path.md +27 -0
- package/presets/code-vibe/skills/frontend-design/references/product-package.md +80 -0
- package/presets/code-vibe/skills/frontend-design/references/scheme-antipatterns.md +21 -0
- package/presets/code-vibe/skills/quality-review/SKILL.md +57 -0
- package/presets/code-vibe/skills/quality-review/references/bounded-verify.md +37 -0
- package/presets/code-vibe/skills/quality-review/references/browser-verify.md +81 -0
- package/presets/code-vibe/skills/quality-review/references/evidence-contract.md +194 -0
- package/presets/code-vibe/skills/quality-review/references/falsify-checklist.md +44 -0
- package/presets/code-vibe/skills/quality-review/references/human-acceptance-pack.md +68 -0
- package/presets/code-vibe/skills/quality-review/references/product-regression.md +51 -0
- package/presets/code-vibe/skills/quality-review/references/ux-standards.md +37 -0
- package/presets/code-vibe/skills/quality-review/references/ux-walkthrough.md +49 -0
- package/presets/code-vibe/skills/quality-review/references/validation-report.md +22 -0
- package/presets/code-vibe/skills/quality-review/references/verification-loop.md +95 -0
- package/presets/code-vibe/skills/quality-review/references/version-acceptance-matrix.md +131 -0
- package/presets/code-vibe/skills/record-browser-gif/SKILL.md +174 -0
- package/presets/code-vibe/skills/record-browser-gif/scripts/encode_gif.py +337 -0
- package/presets/code-vibe/skills/record-browser-gif/scripts/test_encode_gif.py +103 -0
- package/presets/code-vibe/skills/wish-programming/SKILL.md +150 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/arch-reviewer.md +26 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/design-reviewer.md +32 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/pm-reviewer.md +26 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/qa-reviewer.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/security-reviewer.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/sre-reviewer.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/roles/ux-adversary.md +16 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/arch.md.tpl +51 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/brief.md.tpl +36 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/confirmation-pack.md +54 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/design-spec.md.tpl +49 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/module-readme.md +37 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/product.md.tpl +74 -0
- package/presets/code-vibe/skills/wish-programming/references/templates/requirements.md.tpl +31 -0
- package/presets/code-vibe/skills/wish-programming/references/workflow-template.md +122 -0
- package/presets/code-vibe/skills/wish-programming/scripts/MANIFEST.sha256 +11 -0
- package/presets/code-vibe/skills/wish-programming/scripts/check_spec.py +416 -0
- package/presets/code-vibe/skills/wish-programming/scripts/check_whitelist.py +193 -0
- package/presets/code-vibe/skills/wish-programming/scripts/coverage_check.py +199 -0
- package/presets/code-vibe/skills/wish-programming/scripts/gate-lock.sh +46 -0
- package/presets/code-vibe/skills/wish-programming/scripts/journey.sh +281 -0
- package/presets/code-vibe/skills/wish-programming/scripts/project.sh +152 -0
- package/presets/code-vibe/skills/wish-programming/scripts/replay.sh +65 -0
- package/presets/code-vibe/skills/wish-programming/scripts/scan_drift.py +79 -0
- package/presets/code-vibe/skills/wish-programming/scripts/verify.sh +169 -0
- package/presets/code-vibe/skills/wish-programming/scripts/verify_preset_budgets.py +218 -0
- package/presets/code-vibe/skills/wish-programming/scripts/wish.sh +150 -0
- package/presets/code-vibe.patch.yml +325 -0
- package/presets/hiopen.patch.yml +109 -0
- package/src/client/compat.ts +86 -0
- package/src/client/conversation/conversation.module.css +264 -0
- package/src/client/conversation/git-branch.tsx +152 -0
- package/src/client/conversation/git-graph/LICENSE.git-graph +202 -0
- package/src/client/conversation/git-graph/api.ts +85 -0
- package/src/client/conversation/git-graph/branch-chip.tsx +354 -0
- package/src/client/conversation/git-graph/branch-popover.tsx +185 -0
- package/src/client/conversation/git-graph/chip.tsx +47 -0
- package/src/client/conversation/git-graph/create-branch-dialog.tsx +108 -0
- package/src/client/conversation/git-graph/error-copy.ts +50 -0
- package/src/client/conversation/git-graph/git-graph.module.css +792 -0
- package/src/client/conversation/git-graph/graph-dialog.tsx +196 -0
- package/src/client/conversation/git-graph/hero-seat.ts +76 -0
- package/src/client/conversation/git-graph/locales.ts +90 -0
- package/src/client/conversation/git-graph/sse-leader.ts +124 -0
- package/src/client/conversation/index.ts +82 -0
- package/src/client/conversation/selector-context.tsx +24 -0
- package/src/client/conversation/session-lane-chip.tsx +262 -0
- package/src/client/conversation/session-lane-locales.ts +34 -0
- package/src/client/conversation/subagent-model-dom.ts +157 -0
- package/src/client/conversation/subagent-model.ts +198 -0
- package/src/client/conversation/worktree/api.ts +283 -0
- package/src/client/conversation/worktree/dialogs/DeleteWorktreeDialog.tsx +111 -0
- package/src/client/conversation/worktree/dialogs/PrCreateDialog.tsx +114 -0
- package/src/client/conversation/worktree/lane-binding.ts +77 -0
- package/src/client/conversation/worktree/lane-menu.tsx +247 -0
- package/src/client/conversation/worktree/lane-open.ts +204 -0
- package/src/client/conversation/worktree/lane-workspace-sweeper.ts +136 -0
- package/src/client/conversation/worktree/lifecycle.ts +75 -0
- package/src/client/conversation/worktree/locales.ts +97 -0
- package/src/client/conversation/worktree/semantic.ts +10 -0
- package/src/client/conversation/worktree/worktree.module.css +70 -0
- package/src/client/css-modules.d.ts +8 -0
- package/src/client/index.ts +58 -0
- package/src/client/lark-inbox/i18n.ts +125 -0
- package/src/client/lark-inbox/lark-wizard.module.css +88 -0
- package/src/client/lark-inbox/wizard.tsx +211 -0
- package/src/client/notify/i18n.ts +93 -0
- package/src/client/settings/family-scope.ts +45 -0
- package/src/client/settings/lark-inbox.tsx +319 -0
- package/src/client/settings/notify.tsx +288 -0
- package/src/client/settings/primitives-0.2.ts +148 -0
- package/src/client/settings/settings-shell.module.css +56 -0
- package/src/client/sidebar/RenderBoundary.tsx +17 -0
- package/src/client/sidebar/agent-browser.tsx +114 -0
- package/src/client/sidebar/diff-view.tsx +314 -0
- package/src/client/sidebar/git-workbench.tsx +700 -0
- package/src/client/sidebar/icons.tsx +23 -0
- package/src/client/sidebar/index.ts +28 -0
- package/src/client/sidebar/native-panels.tsx +149 -0
- package/src/client/sidebar/page-shell.module.css +96 -0
- package/src/client/sidebar/page-shell.tsx +86 -0
- package/src/client/sidebar/panels/memoir/api.ts +300 -0
- package/src/client/sidebar/panels/memoir/controller.ts +47 -0
- package/src/client/sidebar/panels/memoir/cwd.ts +140 -0
- package/src/client/sidebar/panels/memoir/i18n.ts +300 -0
- package/src/client/sidebar/panels/memoir/panel-activation.ts +42 -0
- package/src/client/sidebar/panels/memoir/panel.tsx +869 -0
- package/src/client/sidebar/panels/memoir/styles.ts +776 -0
- package/src/client/sidebar/panels/memoir/types.ts +7 -0
- package/src/client/sidebar/panels/ssh/ClusterTab.tsx +123 -0
- package/src/client/sidebar/panels/ssh/HostFormDialog.tsx +243 -0
- package/src/client/sidebar/panels/ssh/HostsTab.tsx +290 -0
- package/src/client/sidebar/panels/ssh/SshPanel.tsx +76 -0
- package/src/client/sidebar/panels/ssh/TerminalTab.tsx +290 -0
- package/src/client/sidebar/panels/ssh/TransferTab.tsx +232 -0
- package/src/client/sidebar/panels/ssh/TunnelsTab.tsx +204 -0
- package/src/client/sidebar/panels/ssh/api.ts +388 -0
- package/src/client/sidebar/panels/ssh/controller.ts +48 -0
- package/src/client/sidebar/panels/ssh/helpers.ts +70 -0
- package/src/client/sidebar/panels/ssh/locales.ts +318 -0
- package/src/client/sidebar/panels/ssh/panel.module.css +801 -0
- package/src/client/sidebar/panels/ssh/xterm.css.ts +2 -0
- package/src/client/sidebar/right-pane-i18n.ts +243 -0
- package/src/client/sidebar/right-pane.tsx +156 -0
- package/src/client/sidebar/scope.ts +54 -0
- package/src/client/sidebar/sidebar-header.module.css +72 -0
- package/src/client/sidebar/sidebar.module.css +619 -0
- package/src/client/trust.ts +187 -0
- package/src/client/ui-icons.ts +35 -0
- package/src/core/git-graph/commands.ts +107 -0
- package/src/core/git-graph/protocol.ts +238 -0
- package/src/core/index.ts +2 -0
- package/src/core/lark-inbox/gating.ts +35 -0
- package/src/core/lark-inbox/queue.ts +100 -0
- package/src/core/memoir/protocol.ts +46 -0
- package/src/core/no-browser-auth/contract.ts +25 -0
- package/src/core/notify/contract.ts +236 -0
- package/src/core/notify/feed.ts +235 -0
- package/src/core/playwright-sessions/contracts.ts +143 -0
- package/src/core/playwright-sessions/control.ts +33 -0
- package/src/core/playwright-sessions/index.ts +3 -0
- package/src/core/playwright-sessions/names.ts +83 -0
- package/src/core/playwright-sessions/schema.ts +102 -0
- package/src/core/playwright-sessions/wire.ts +142 -0
- package/src/core/remote-access/paths.ts +23 -0
- package/src/core/remote-web-ui/security.ts +171 -0
- package/src/core/right-pane/protocol.ts +94 -0
- package/src/core/schedule-mode/index.ts +6 -0
- package/src/core/schedule-mode/native.ts +105 -0
- package/src/core/schedule-mode/types.ts +182 -0
- package/src/core/schedule-mode/view.ts +66 -0
- package/src/core/ssh/protocol.ts +212 -0
- package/src/core/subagent-model/badges.ts +161 -0
- package/src/core/worktree/invariant.ts +101 -0
- package/src/core/worktree/manifest.ts +135 -0
- package/src/core/worktree/paths.ts +123 -0
- package/src/core/worktree/pr-create.ts +157 -0
- package/src/core/worktree/protocol.ts +7 -0
- package/src/core/worktree/types.ts +317 -0
- package/src/core/worktree/workspace-model.ts +61 -0
- package/src/host/services/access-trust/index.ts +127 -0
- package/src/host/services/access-trust/trust.ts +189 -0
- package/src/host/services/codex-bridge/bridge.ts +392 -0
- package/src/host/services/codex-bridge/codex-auth.ts +352 -0
- package/src/host/services/codex-bridge/dsh-integration.ts +169 -0
- package/src/host/services/codex-bridge/http.ts +105 -0
- package/src/host/services/codex-bridge/index.ts +154 -0
- package/src/host/services/codex-bridge/loopback.ts +63 -0
- package/src/host/services/codex-bridge/routes.ts +143 -0
- package/src/host/services/family-config.ts +224 -0
- package/src/host/services/family-namespaces.ts +39 -0
- package/src/host/services/git-graph/index.ts +11 -0
- package/src/host/services/git-graph/routes.ts +212 -0
- package/src/host/services/git-graph/service.ts +305 -0
- package/src/host/services/index.ts +94 -0
- package/src/host/services/lark-inbox/config.ts +66 -0
- package/src/host/services/lark-inbox/gateway.ts +184 -0
- package/src/host/services/lark-inbox/host-routes.ts +113 -0
- package/src/host/services/lark-inbox/inbox-store.ts +160 -0
- package/src/host/services/lark-inbox/index.ts +141 -0
- package/src/host/services/lark-inbox/tools.ts +124 -0
- package/src/host/services/lark-inbox/wizard.ts +206 -0
- package/src/host/services/lifecycle.ts +107 -0
- package/src/host/services/memoir/index.ts +80 -0
- package/src/host/services/memoir/routes.ts +346 -0
- package/src/host/services/memoir/settings.ts +122 -0
- package/src/host/services/memoir/store.ts +132 -0
- package/src/host/services/memoir/tools.ts +158 -0
- package/src/host/services/no-browser-auth/index.ts +70 -0
- package/src/host/services/notify/config.ts +178 -0
- package/src/host/services/notify/feishu-sender.ts +220 -0
- package/src/host/services/notify/host-routes.ts +133 -0
- package/src/host/services/notify/index.ts +305 -0
- package/src/host/services/playwright-sessions/child.ts +251 -0
- package/src/host/services/playwright-sessions/controller.ts +102 -0
- package/src/host/services/playwright-sessions/index.ts +146 -0
- package/src/host/services/playwright-sessions/live-view.ts +225 -0
- package/src/host/services/playwright-sessions/manager.ts +239 -0
- package/src/host/services/playwright-sessions/profile-gc.ts +97 -0
- package/src/host/services/playwright-sessions/routes.ts +90 -0
- package/src/host/services/remote-access/boot-scripts.ts +118 -0
- package/src/host/services/remote-access/index.ts +62 -0
- package/src/host/services/remote-access/routes.ts +137 -0
- package/src/host/services/remote-web-ui/index.ts +344 -0
- package/src/host/services/remote-web-ui/server-mode/accounts.ts +423 -0
- package/src/host/services/remote-web-ui/server-mode/cookie.ts +57 -0
- package/src/host/services/remote-web-ui/server-mode/dsh-home.ts +42 -0
- package/src/host/services/remote-web-ui/server-mode/external-auth.ts +296 -0
- package/src/host/services/remote-web-ui/server-mode/fence.ts +27 -0
- package/src/host/services/remote-web-ui/server-mode/gateway-routes.ts +797 -0
- package/src/host/services/remote-web-ui/server-mode/gateway.ts +684 -0
- package/src/host/services/remote-web-ui/server-mode/http.ts +105 -0
- package/src/host/services/remote-web-ui/server-mode/integrated-auth.ts +118 -0
- package/src/host/services/remote-web-ui/server-mode/lan.ts +19 -0
- package/src/host/services/remote-web-ui/server-mode/loopback.ts +63 -0
- package/src/host/services/remote-web-ui/server-mode/posture.ts +154 -0
- package/src/host/services/remote-web-ui/server-mode/roles.ts +51 -0
- package/src/host/services/remote-web-ui/server-mode/server-boot.ts +38 -0
- package/src/host/services/remote-web-ui/server-mode/sessions.ts +347 -0
- package/src/host/services/remote-web-ui/server.ts +591 -0
- package/src/host/services/resources.ts +78 -0
- package/src/host/services/right-pane/browser.ts +106 -0
- package/src/host/services/right-pane/index.ts +117 -0
- package/src/host/services/right-pane/wire.ts +10 -0
- package/src/host/services/schedule-mode/config.ts +26 -0
- package/src/host/services/schedule-mode/engine.ts +689 -0
- package/src/host/services/schedule-mode/index.ts +214 -0
- package/src/host/services/schedule-mode/routes.ts +130 -0
- package/src/host/services/schedule-mode/session-create.ts +36 -0
- package/src/host/services/schedule-mode/store.ts +304 -0
- package/src/host/services/schedule-mode/tools.ts +154 -0
- package/src/host/services/ssh/engine.ts +675 -0
- package/src/host/services/ssh/host-keys.ts +99 -0
- package/src/host/services/ssh/index.ts +84 -0
- package/src/host/services/ssh/routes.ts +442 -0
- package/src/host/services/ssh/store.ts +310 -0
- package/src/host/services/ssh/terminal-ws.ts +157 -0
- package/src/host/services/ssh/tools.ts +279 -0
- package/src/host/services/web-render/contracts.ts +138 -0
- package/src/host/services/web-render/index.ts +112 -0
- package/src/host/services/web-render/provider.ts +282 -0
- package/src/host/services/web-search-anthropic/contracts.ts +163 -0
- package/src/host/services/web-search-anthropic/index.ts +152 -0
- package/src/host/services/web-search-anthropic/provider.ts +325 -0
- package/src/host/services/worktree/git-runner.ts +124 -0
- package/src/host/services/worktree/git.ts +183 -0
- package/src/host/services/worktree/http.ts +36 -0
- package/src/host/services/worktree/index.ts +92 -0
- package/src/host/services/worktree/lane-tool.ts +100 -0
- package/src/host/services/worktree/manager.ts +1553 -0
- package/src/host/services/worktree/model-override.ts +43 -0
- package/src/host/services/worktree/routes.ts +570 -0
- package/src/host/services/worktree/run-command.ts +66 -0
- package/src/host/services/worktree/session-lane/manager.ts +228 -0
- package/src/host/services/worktree/workspace-model-routes.ts +156 -0
- package/src/host/services/worktree/workspace-model.ts +132 -0
- package/src/index.ts +84 -0
- package/src/invariant.ts +4 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
function str(value) {
|
|
2
|
+
return typeof value === 'string' && value !== '' ? value : undefined;
|
|
3
|
+
}
|
|
4
|
+
function num(value) {
|
|
5
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
|
|
6
|
+
}
|
|
7
|
+
/** 从一条原生任务记录解出计时规则;无法识别返回 undefined(调用方跳过该条)。 */
|
|
8
|
+
export function ruleFromRecord(record) {
|
|
9
|
+
if (record === null || typeof record !== 'object')
|
|
10
|
+
return undefined;
|
|
11
|
+
const value = record;
|
|
12
|
+
const scheduledAt = str(value.scheduledAt);
|
|
13
|
+
switch (value.kind) {
|
|
14
|
+
case 'after': {
|
|
15
|
+
const afterSeconds = num(value.afterSeconds);
|
|
16
|
+
return afterSeconds === undefined ? undefined : { kind: 'after', afterSeconds };
|
|
17
|
+
}
|
|
18
|
+
case 'at':
|
|
19
|
+
return scheduledAt === undefined ? undefined : { kind: 'at', at: scheduledAt };
|
|
20
|
+
case 'every': {
|
|
21
|
+
const everySeconds = num(value.everySeconds);
|
|
22
|
+
return everySeconds === undefined ? undefined : { kind: 'every', everySeconds };
|
|
23
|
+
}
|
|
24
|
+
case 'daily': {
|
|
25
|
+
const time = str(value.time);
|
|
26
|
+
const timeZone = str(value.timeZone);
|
|
27
|
+
return time === undefined || timeZone === undefined ? undefined : { kind: 'daily', time, timeZone };
|
|
28
|
+
}
|
|
29
|
+
case 'weekly': {
|
|
30
|
+
const time = str(value.time);
|
|
31
|
+
const timeZone = str(value.timeZone);
|
|
32
|
+
const weekdays = Array.isArray(value.weekdays)
|
|
33
|
+
? value.weekdays.filter((day) => typeof day === 'number' && Number.isInteger(day))
|
|
34
|
+
: [];
|
|
35
|
+
return time === undefined || timeZone === undefined || weekdays.length === 0
|
|
36
|
+
? undefined
|
|
37
|
+
: { kind: 'weekly', time, timeZone, weekdays };
|
|
38
|
+
}
|
|
39
|
+
case 'cron': {
|
|
40
|
+
const expression = str(value.expression);
|
|
41
|
+
const timeZone = str(value.timeZone);
|
|
42
|
+
return expression === undefined || timeZone === undefined ? undefined : { kind: 'cron', expression, timeZone };
|
|
43
|
+
}
|
|
44
|
+
default:
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 把原生 `catalog()` 条目解码成 `NativeTaskView`。
|
|
50
|
+
* 结构不符的条目(例如未来新增的规则种类)返回 undefined,由调用方忽略,
|
|
51
|
+
* 保证本能力不会因为原生形态演进整块失效。
|
|
52
|
+
*/
|
|
53
|
+
export function nativeTaskView(entry) {
|
|
54
|
+
if (entry === null || typeof entry !== 'object')
|
|
55
|
+
return undefined;
|
|
56
|
+
const value = entry;
|
|
57
|
+
const sessionId = str(value.sessionId);
|
|
58
|
+
const id = str(value.id);
|
|
59
|
+
const title = str(value.title);
|
|
60
|
+
const prompt = str(value.prompt);
|
|
61
|
+
const scheduledAt = str(value.scheduledAt);
|
|
62
|
+
if (sessionId === undefined || id === undefined || title === undefined || prompt === undefined || scheduledAt === undefined)
|
|
63
|
+
return undefined;
|
|
64
|
+
if (value.status !== 'active' && value.status !== 'inactive')
|
|
65
|
+
throw new Error('native schedule catalog contains an unsupported task status');
|
|
66
|
+
const rule = ruleFromRecord(value);
|
|
67
|
+
if (rule === undefined)
|
|
68
|
+
return undefined;
|
|
69
|
+
const delivery = value.lastDelivery;
|
|
70
|
+
const lastDelivery = delivery !== null && typeof delivery === 'object'
|
|
71
|
+
? (() => {
|
|
72
|
+
const record = delivery;
|
|
73
|
+
const scheduled = str(record.scheduledAt);
|
|
74
|
+
const delivered = str(record.deliveredAt);
|
|
75
|
+
return scheduled === undefined || delivered === undefined ? undefined : { scheduledAt: scheduled, deliveredAt: delivered };
|
|
76
|
+
})()
|
|
77
|
+
: undefined;
|
|
78
|
+
return {
|
|
79
|
+
sessionId, id, status: value.status, title, prompt, scheduledAt, rule,
|
|
80
|
+
...(lastDelivery === undefined ? {} : { lastDelivery }),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自动化任务「会话模式」纯逻辑(host + client 共享)。
|
|
3
|
+
*
|
|
4
|
+
* 背景:DSH 原生 `@deepseek-ai/dsh-schedule` 把任务绑定在创建它的会话上,
|
|
5
|
+
* 到期后就地投递到该会话(`resolveAgent(sessionId)` + `followup`)。原生服务
|
|
6
|
+
* 不提供「每次运行新建会话」的选择,也不允许跨会话投递。
|
|
7
|
+
*
|
|
8
|
+
* 本能力在原任务之上加一层**运行目标策略**,不复制原生调度引擎:
|
|
9
|
+
* - `original`(默认):不建策略,完全走原生投递,行为零变化。
|
|
10
|
+
* - `new`:把原生任务「轮转」到一条运行会话上——策略保存原任务的规则,
|
|
11
|
+
* 用原生 `schedule.create` 在一条新建的运行会话上挂一把同规则的运行副本,
|
|
12
|
+
* 并删除原会话上的那行;每次副本投递完成后,再新建下一条运行会话并把
|
|
13
|
+
* 副本轮转过去。原会话因此永远不再是投递目标,每次运行都落在一条全新会话。
|
|
14
|
+
*
|
|
15
|
+
* 轮转复用原生计时:副本自身按原规则推进 `scheduledAt`,到点由原生运行时投递,
|
|
16
|
+
* 因此本层不需要自己实现 cron / 每日 / 每周的时点计算。
|
|
17
|
+
*
|
|
18
|
+
* 本文件只有类型与纯函数,两侧 program 共同编译。
|
|
19
|
+
*/
|
|
20
|
+
/** 任务的运行目标:绑定原会话,或每次运行新建会话。 */
|
|
21
|
+
export type ScheduleSessionMode = 'original' | 'new';
|
|
22
|
+
/**
|
|
23
|
+
* 从原生任务记录归一化出来的计时规则;`timingArgs()` 可逆转回
|
|
24
|
+
* `schedule.create` / `schedule.update` 的 selector 参数。
|
|
25
|
+
*/
|
|
26
|
+
export type ScheduleModeRule = {
|
|
27
|
+
readonly kind: 'after';
|
|
28
|
+
readonly afterSeconds: number;
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: 'at';
|
|
31
|
+
readonly at: string;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: 'every';
|
|
34
|
+
readonly everySeconds: number;
|
|
35
|
+
} | {
|
|
36
|
+
readonly kind: 'daily';
|
|
37
|
+
readonly time: string;
|
|
38
|
+
readonly timeZone: string;
|
|
39
|
+
} | {
|
|
40
|
+
readonly kind: 'weekly';
|
|
41
|
+
readonly time: string;
|
|
42
|
+
readonly timeZone: string;
|
|
43
|
+
readonly weekdays: readonly number[];
|
|
44
|
+
} | {
|
|
45
|
+
readonly kind: 'cron';
|
|
46
|
+
readonly expression: string;
|
|
47
|
+
readonly timeZone: string;
|
|
48
|
+
};
|
|
49
|
+
/** 传给原生 `schedule.create` 的 selector 参数(恰好一个键)。 */
|
|
50
|
+
export type NativeTimingArgs = {
|
|
51
|
+
readonly after_seconds: number;
|
|
52
|
+
} | {
|
|
53
|
+
readonly at: string;
|
|
54
|
+
} | {
|
|
55
|
+
readonly every_seconds: number;
|
|
56
|
+
} | {
|
|
57
|
+
readonly daily: {
|
|
58
|
+
readonly time: string;
|
|
59
|
+
readonly time_zone: string;
|
|
60
|
+
};
|
|
61
|
+
} | {
|
|
62
|
+
readonly weekly: {
|
|
63
|
+
readonly time: string;
|
|
64
|
+
readonly time_zone: string;
|
|
65
|
+
readonly weekdays: readonly number[];
|
|
66
|
+
};
|
|
67
|
+
} | {
|
|
68
|
+
readonly cron: {
|
|
69
|
+
readonly expression: string;
|
|
70
|
+
readonly time_zone: string;
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
/** 原生 `schedule.create` 的最小请求面(prompt/title 由策略提供)。 */
|
|
74
|
+
export interface NativeCreateRequest {
|
|
75
|
+
readonly prompt: string;
|
|
76
|
+
readonly title: string;
|
|
77
|
+
readonly selector: NativeTimingArgs;
|
|
78
|
+
}
|
|
79
|
+
/** 一次「新会话运行」记录。 */
|
|
80
|
+
export interface ScheduleModeRun {
|
|
81
|
+
/** 该次发生的计划时点(UTC RFC 3339)。 */
|
|
82
|
+
readonly scheduledAt: string;
|
|
83
|
+
/** 原生确认投递的时间。 */
|
|
84
|
+
readonly deliveredAt: string;
|
|
85
|
+
/** 承载该次运行的会话。 */
|
|
86
|
+
readonly sessionId: string;
|
|
87
|
+
/** 该次运行使用的原生任务 id(轮转副本)。 */
|
|
88
|
+
readonly taskId: string;
|
|
89
|
+
}
|
|
90
|
+
/** A precise native row association; titles are never recovery identifiers. */
|
|
91
|
+
export interface ScheduleModeTaskRef {
|
|
92
|
+
readonly sessionId: string;
|
|
93
|
+
readonly id: string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Write-ahead transition journal. A persisted create intent without a returned ID
|
|
97
|
+
* is ambiguous: the external port has no idempotency key or transactional lookup.
|
|
98
|
+
* Recovery must stop rather than repeat that create.
|
|
99
|
+
*/
|
|
100
|
+
export interface ScheduleModeTransition {
|
|
101
|
+
readonly kind: 'new' | 'original' | 'rotate' | 'stop' | 'delete' | 'complete';
|
|
102
|
+
readonly phase: 'deleting' | 'prepare' | 'creating-session' | 'creating-task' | 'created' | 'recovery-required';
|
|
103
|
+
readonly deleteTasks: readonly ScheduleModeTaskRef[];
|
|
104
|
+
readonly sessionId?: string;
|
|
105
|
+
readonly created?: ScheduleModeTaskRef & {
|
|
106
|
+
readonly scheduledAt: string;
|
|
107
|
+
};
|
|
108
|
+
readonly reason?: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* 「每次新建会话」策略。存在且 `active` 即表示该任务处于 `new` 模式;
|
|
112
|
+
* 任务回到 `original` 后策略保留为历史(`active: false`)。
|
|
113
|
+
*/
|
|
114
|
+
export interface ScheduleModePolicy {
|
|
115
|
+
/** 稳定键:`<原会话 id>\u0000<逻辑任务 id>`。 */
|
|
116
|
+
readonly key: string;
|
|
117
|
+
/** 原会话(任务的创建会话)。 */
|
|
118
|
+
readonly sourceSessionId: string;
|
|
119
|
+
/** 逻辑任务 id:用户最初创建的那条原生任务 id,轮转不改变它。 */
|
|
120
|
+
readonly logicalId: string;
|
|
121
|
+
readonly title: string;
|
|
122
|
+
readonly prompt: string;
|
|
123
|
+
/** 原任务的计时规则;轮转始终按它重建副本。 */
|
|
124
|
+
readonly rule: ScheduleModeRule;
|
|
125
|
+
/** 原会话的 cwd / preset,用于新建运行会话时继承。 */
|
|
126
|
+
readonly cwd?: string;
|
|
127
|
+
readonly agentPreset?: string;
|
|
128
|
+
/** 当前挂着的轮转副本(原生任务 id)。 */
|
|
129
|
+
readonly armedTaskId?: string;
|
|
130
|
+
/** 最近一次运行所在的会话。 */
|
|
131
|
+
readonly runSessionId?: string;
|
|
132
|
+
/** 下一次运行的计划时点(用于展示与缺失副本时的重建)。 */
|
|
133
|
+
readonly nextScheduledAt?: string;
|
|
134
|
+
/** 最近一次已记录运行的原生投递时间(幂等水位)。 */
|
|
135
|
+
readonly lastDeliveredAt?: string;
|
|
136
|
+
readonly runs: readonly ScheduleModeRun[];
|
|
137
|
+
/** 策略是否仍在生效。 */
|
|
138
|
+
readonly active: boolean;
|
|
139
|
+
/**
|
|
140
|
+
* 一次任务结束原因:`completed`(一次性任务已跑完)/ `ended`(用户切回原会话或被归档停止)/
|
|
141
|
+
* `deleted`(用户在原生自动化页删掉了轮转副本,策略随之退役且不再重建)。
|
|
142
|
+
*/
|
|
143
|
+
readonly endedReason?: 'completed' | 'ended' | 'deleted';
|
|
144
|
+
/**
|
|
145
|
+
* Legacy v1 interrupted rotation marker, retained for decoding compatibility.
|
|
146
|
+
* It lacks create-result association and requested direction; recovery must
|
|
147
|
+
* mark it recovery-required rather than recreate an unidentifiable task.
|
|
148
|
+
*/
|
|
149
|
+
readonly rotationInFlight?: boolean;
|
|
150
|
+
readonly transition?: ScheduleModeTransition;
|
|
151
|
+
readonly createdAt: number;
|
|
152
|
+
readonly updatedAt: number;
|
|
153
|
+
}
|
|
154
|
+
/** 每次运行新建会话标题前缀的最大长度(原生标题上限 120)。 */
|
|
155
|
+
export declare const RUN_TITLE_MAX = 120;
|
|
156
|
+
/** 默认保留的运行记录条数。 */
|
|
157
|
+
export declare const DEFAULT_RUN_HISTORY_LIMIT = 50;
|
|
158
|
+
/** 稳定策略键。 */
|
|
159
|
+
export declare function policyKey(sourceSessionId: string, logicalId: string): string;
|
|
160
|
+
/** 周期重复的规则种类。 */
|
|
161
|
+
export type RecurringScheduleModeRule = Extract<ScheduleModeRule, {
|
|
162
|
+
kind: 'every' | 'daily' | 'weekly' | 'cron';
|
|
163
|
+
}>;
|
|
164
|
+
/** 规则是否周期重复(一次性规则跑完即结束)。 */
|
|
165
|
+
export declare function isRecurringRule(rule: ScheduleModeRule): rule is RecurringScheduleModeRule;
|
|
166
|
+
/** 规则到原生 selector 参数的映射。 */
|
|
167
|
+
export declare function timingArgs(rule: ScheduleModeRule): NativeTimingArgs;
|
|
168
|
+
/**
|
|
169
|
+
* 一次性规则在给定时刻之后是否还有目标。
|
|
170
|
+
* 周期规则总是可重建(相位按原生 `create` 语义从保存时刻起算)。
|
|
171
|
+
*/
|
|
172
|
+
export declare function ruleCanArm(rule: ScheduleModeRule, now: number): boolean;
|
|
173
|
+
/** 新运行会话的标题:`<任务名> · 第 N 次运行`,裁剪到原生上限。 */
|
|
174
|
+
export declare function runSessionTitle(title: string, runNumber: number): string;
|
|
175
|
+
/** 追加一条运行记录并按上限裁剪(新记录优先保留)。 */
|
|
176
|
+
export declare function appendRun(runs: readonly ScheduleModeRun[], run: ScheduleModeRun, limit?: number): ScheduleModeRun[];
|
|
177
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/schedule-mode/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 自动化任务「会话模式」纯逻辑(host + client 共享)。
|
|
3
|
+
*
|
|
4
|
+
* 背景:DSH 原生 `@deepseek-ai/dsh-schedule` 把任务绑定在创建它的会话上,
|
|
5
|
+
* 到期后就地投递到该会话(`resolveAgent(sessionId)` + `followup`)。原生服务
|
|
6
|
+
* 不提供「每次运行新建会话」的选择,也不允许跨会话投递。
|
|
7
|
+
*
|
|
8
|
+
* 本能力在原任务之上加一层**运行目标策略**,不复制原生调度引擎:
|
|
9
|
+
* - `original`(默认):不建策略,完全走原生投递,行为零变化。
|
|
10
|
+
* - `new`:把原生任务「轮转」到一条运行会话上——策略保存原任务的规则,
|
|
11
|
+
* 用原生 `schedule.create` 在一条新建的运行会话上挂一把同规则的运行副本,
|
|
12
|
+
* 并删除原会话上的那行;每次副本投递完成后,再新建下一条运行会话并把
|
|
13
|
+
* 副本轮转过去。原会话因此永远不再是投递目标,每次运行都落在一条全新会话。
|
|
14
|
+
*
|
|
15
|
+
* 轮转复用原生计时:副本自身按原规则推进 `scheduledAt`,到点由原生运行时投递,
|
|
16
|
+
* 因此本层不需要自己实现 cron / 每日 / 每周的时点计算。
|
|
17
|
+
*
|
|
18
|
+
* 本文件只有类型与纯函数,两侧 program 共同编译。
|
|
19
|
+
*/
|
|
20
|
+
/** 每次运行新建会话标题前缀的最大长度(原生标题上限 120)。 */
|
|
21
|
+
export const RUN_TITLE_MAX = 120;
|
|
22
|
+
/** 默认保留的运行记录条数。 */
|
|
23
|
+
export const DEFAULT_RUN_HISTORY_LIMIT = 50;
|
|
24
|
+
/** 稳定策略键。 */
|
|
25
|
+
export function policyKey(sourceSessionId, logicalId) {
|
|
26
|
+
return `${sourceSessionId}\u0000${logicalId}`;
|
|
27
|
+
}
|
|
28
|
+
/** 规则是否周期重复(一次性规则跑完即结束)。 */
|
|
29
|
+
export function isRecurringRule(rule) {
|
|
30
|
+
return rule.kind === 'every' || rule.kind === 'daily' || rule.kind === 'weekly' || rule.kind === 'cron';
|
|
31
|
+
}
|
|
32
|
+
/** 规则到原生 selector 参数的映射。 */
|
|
33
|
+
export function timingArgs(rule) {
|
|
34
|
+
switch (rule.kind) {
|
|
35
|
+
case 'after': return { after_seconds: rule.afterSeconds };
|
|
36
|
+
case 'at': return { at: rule.at };
|
|
37
|
+
case 'every': return { every_seconds: rule.everySeconds };
|
|
38
|
+
case 'daily': return { daily: { time: rule.time, time_zone: rule.timeZone } };
|
|
39
|
+
case 'weekly': return { weekly: { time: rule.time, time_zone: rule.timeZone, weekdays: [...rule.weekdays] } };
|
|
40
|
+
case 'cron': return { cron: { expression: rule.expression, time_zone: rule.timeZone } };
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 一次性规则在给定时刻之后是否还有目标。
|
|
45
|
+
* 周期规则总是可重建(相位按原生 `create` 语义从保存时刻起算)。
|
|
46
|
+
*/
|
|
47
|
+
export function ruleCanArm(rule, now) {
|
|
48
|
+
if (isRecurringRule(rule))
|
|
49
|
+
return true;
|
|
50
|
+
if (rule.kind === 'after')
|
|
51
|
+
return true;
|
|
52
|
+
return Number.isFinite(Date.parse(rule.at)) && Date.parse(rule.at) > now;
|
|
53
|
+
}
|
|
54
|
+
/** 新运行会话的标题:`<任务名> · 第 N 次运行`,裁剪到原生上限。 */
|
|
55
|
+
export function runSessionTitle(title, runNumber) {
|
|
56
|
+
const suffix = ` · #${runNumber}`;
|
|
57
|
+
const room = RUN_TITLE_MAX - suffix.length;
|
|
58
|
+
const base = title.length > room ? title.slice(0, Math.max(0, room)) : title;
|
|
59
|
+
return `${base}${suffix}`;
|
|
60
|
+
}
|
|
61
|
+
/** 追加一条运行记录并按上限裁剪(新记录优先保留)。 */
|
|
62
|
+
export function appendRun(runs, run, limit = DEFAULT_RUN_HISTORY_LIMIT) {
|
|
63
|
+
const budget = Number.isFinite(limit) && limit > 0 ? Math.trunc(limit) : DEFAULT_RUN_HISTORY_LIMIT;
|
|
64
|
+
return [...runs, run].slice(-budget);
|
|
65
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 面板/Host 之间的 wire 视图(host 与 browser 共享)。
|
|
3
|
+
*
|
|
4
|
+
* 面板只读这一份形状:Host 把「原生任务」与「会话模式策略」合并成一条
|
|
5
|
+
* 逻辑任务,客户端不接触原生 schedule 的目录细节。
|
|
6
|
+
*/
|
|
7
|
+
import type { ScheduleModeRule, ScheduleModeRun, ScheduleSessionMode } from './types.ts';
|
|
8
|
+
export type { ScheduleModeRule, ScheduleModeRun, ScheduleSessionMode } from './types.ts';
|
|
9
|
+
/** 一条逻辑任务的合并视图。 */
|
|
10
|
+
export interface ScheduleModeTaskView {
|
|
11
|
+
/** 任务的原会话(原始对话)。 */
|
|
12
|
+
readonly sessionId: string;
|
|
13
|
+
/** 稳定的逻辑任务 id(`new` 模式下与当前副本 id 不同)。 */
|
|
14
|
+
readonly id: string;
|
|
15
|
+
/** 当前挂着的原生任务 id(`new` 模式下是轮转副本)。 */
|
|
16
|
+
readonly activeTaskId?: string;
|
|
17
|
+
readonly title: string;
|
|
18
|
+
readonly prompt: string;
|
|
19
|
+
readonly mode: ScheduleSessionMode;
|
|
20
|
+
/** `inactive`:原生一次性任务已跑完;`ended`:策略已停止。 */
|
|
21
|
+
readonly status: 'active' | 'inactive' | 'ended';
|
|
22
|
+
readonly rule: ScheduleModeRule;
|
|
23
|
+
/** 下一次运行的计划时点(UTC);已结束或不可知时缺省。 */
|
|
24
|
+
readonly scheduledAt?: string;
|
|
25
|
+
/** 最近一次运行所在的会话(`new` 模式)。 */
|
|
26
|
+
readonly runSessionId?: string;
|
|
27
|
+
readonly lastDeliveredAt?: string;
|
|
28
|
+
/** 运行记录,最新在后。 */
|
|
29
|
+
readonly runs: readonly ScheduleModeRun[];
|
|
30
|
+
/** Interrupted journal state; no exactly-once guarantee is implied. */
|
|
31
|
+
readonly recovery?: {
|
|
32
|
+
readonly phase: string;
|
|
33
|
+
readonly reason?: string;
|
|
34
|
+
};
|
|
35
|
+
readonly updatedAt: number;
|
|
36
|
+
}
|
|
37
|
+
/** `GET /tasks` 的 value。 */
|
|
38
|
+
export interface ScheduleModeListValue {
|
|
39
|
+
readonly tasks: readonly ScheduleModeTaskView[];
|
|
40
|
+
/** 原生 schedule 服务是否可用;不可用时列表为空。 */
|
|
41
|
+
readonly available: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** `POST /mode` 的请求体。 */
|
|
44
|
+
export interface ScheduleModeSetRequest {
|
|
45
|
+
readonly sessionId: string;
|
|
46
|
+
readonly id: string;
|
|
47
|
+
readonly mode: ScheduleSessionMode;
|
|
48
|
+
}
|
|
49
|
+
/** `POST /mode` 的 value。 */
|
|
50
|
+
export interface ScheduleModeSetValue {
|
|
51
|
+
readonly task: ScheduleModeTaskView;
|
|
52
|
+
}
|
|
53
|
+
/** `POST /delete` 的请求体。 */
|
|
54
|
+
export interface ScheduleModeDeleteRequest {
|
|
55
|
+
readonly sessionId: string;
|
|
56
|
+
readonly id: string;
|
|
57
|
+
}
|
|
58
|
+
/** 路由前缀(面板 API)。 */
|
|
59
|
+
export declare const SCHEDULE_MODE_API_PREFIX = "/api/schedule-mode";
|
|
60
|
+
/** 面板的语义属性标记。 */
|
|
61
|
+
export declare const SCHEDULE_MODE_PLUGIN = "schedule-mode";
|
|
62
|
+
//# sourceMappingURL=view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/core/schedule-mode/view.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAExF,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAExF,mBAAmB;AACnB,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAA;IAChD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,kCAAkC;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,6BAA6B;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,SAAS,eAAe,EAAE,CAAA;IACzC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,4BAA4B;AAC5B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAA;IAC/C,mCAAmC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,yBAAyB;AACzB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CACnC;AAED,4BAA4B;AAC5B,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAA;CACpC;AAED,2BAA2B;AAC3B,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,oBAAoB;AACpB,eAAO,MAAM,wBAAwB,uBAAuB,CAAA;AAE5D,iBAAiB;AACjB,eAAO,MAAM,oBAAoB,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire contract between the host half (routes.ts) and the browser half
|
|
3
|
+
* (client/api.ts). Pure types only — imported by both halves, bundled into
|
|
4
|
+
* each, no runtime identity to share.
|
|
5
|
+
*/
|
|
6
|
+
/** Authentication flavors a host entry may carry. */
|
|
7
|
+
export type SshAuthKind = 'key' | 'password' | 'agent';
|
|
8
|
+
/** Canonical OpenSSH SHA256 fingerprint (32 bytes, unpadded base64). */
|
|
9
|
+
export declare function isHostKeyFingerprint(value: unknown): value is string;
|
|
10
|
+
/** One stored host entry (the $DSH_HOME/dsh-ssh.json store shape). */
|
|
11
|
+
export interface SshHostEntry {
|
|
12
|
+
/** Stable, user-chosen identifier used by every operation. */
|
|
13
|
+
alias: string;
|
|
14
|
+
/** Hostname or IP of the target. */
|
|
15
|
+
host: string;
|
|
16
|
+
/** Explicit, out-of-band verified SHA256 pin; otherwise use ~/.ssh/known_hosts. */
|
|
17
|
+
hostKeyFingerprint?: string;
|
|
18
|
+
/** SSH port (default 22). */
|
|
19
|
+
port: number;
|
|
20
|
+
/** Login user. */
|
|
21
|
+
user: string;
|
|
22
|
+
/** Authentication. */
|
|
23
|
+
auth: {
|
|
24
|
+
kind: SshAuthKind;
|
|
25
|
+
/** Absolute path to the private key for 'key' auth. */
|
|
26
|
+
keyPath?: string;
|
|
27
|
+
/** Passphrase for an encrypted key. */
|
|
28
|
+
passphrase?: string;
|
|
29
|
+
/** Password for 'password' auth. */
|
|
30
|
+
password?: string;
|
|
31
|
+
/**
|
|
32
|
+
* ssh-agent endpoint for 'agent' auth. A socket path, the special value
|
|
33
|
+
* 'pageant' (PuTTY Pageant on Windows), or undefined for auto-detect
|
|
34
|
+
* (SSH_AUTH_SOCK, then Pageant on Windows).
|
|
35
|
+
*/
|
|
36
|
+
agentPath?: string;
|
|
37
|
+
};
|
|
38
|
+
/** Jump chain: local aliases connected through in order (ProxyJump). */
|
|
39
|
+
proxyJump: string[];
|
|
40
|
+
/** Free-form note. */
|
|
41
|
+
description?: string;
|
|
42
|
+
/** Deployment environment label (development / production / ...). */
|
|
43
|
+
environment?: string;
|
|
44
|
+
/** Free-form tags. */
|
|
45
|
+
tags: string[];
|
|
46
|
+
/** Physical location note. */
|
|
47
|
+
location?: string;
|
|
48
|
+
createdAt: number;
|
|
49
|
+
updatedAt: number;
|
|
50
|
+
}
|
|
51
|
+
/** Public (secret-free) projection of an entry, safe for the browser/agent. */
|
|
52
|
+
export interface SshHostSummary {
|
|
53
|
+
alias: string;
|
|
54
|
+
host: string;
|
|
55
|
+
/** Explicit, out-of-band verified SHA256 pin; otherwise use ~/.ssh/known_hosts. */
|
|
56
|
+
hostKeyFingerprint?: string;
|
|
57
|
+
port: number;
|
|
58
|
+
user: string;
|
|
59
|
+
auth: SshAuthKind;
|
|
60
|
+
/** Whether the key path exists on the host machine (key auth only). */
|
|
61
|
+
keyReady: boolean;
|
|
62
|
+
proxyJump: string[];
|
|
63
|
+
description?: string;
|
|
64
|
+
environment?: string;
|
|
65
|
+
tags: string[];
|
|
66
|
+
location?: string;
|
|
67
|
+
createdAt: number;
|
|
68
|
+
updatedAt: number;
|
|
69
|
+
}
|
|
70
|
+
/** Result of one non-interactive command execution. */
|
|
71
|
+
export interface ExecResult {
|
|
72
|
+
success: boolean;
|
|
73
|
+
/** Remote exit code, or null when the channel died without one. */
|
|
74
|
+
exitCode: number | null;
|
|
75
|
+
timedOut: boolean;
|
|
76
|
+
stdout: string;
|
|
77
|
+
stderr: string;
|
|
78
|
+
/** Wall-clock duration of the round trip in ms. */
|
|
79
|
+
durationMs: number;
|
|
80
|
+
/** Connection error message when the command never ran. */
|
|
81
|
+
error?: string;
|
|
82
|
+
}
|
|
83
|
+
/** One server entry in a cluster run. */
|
|
84
|
+
export interface ClusterResult {
|
|
85
|
+
alias: string;
|
|
86
|
+
ok: boolean;
|
|
87
|
+
exitCode?: number | null;
|
|
88
|
+
timedOut?: boolean;
|
|
89
|
+
stdout?: string;
|
|
90
|
+
stderr?: string;
|
|
91
|
+
durationMs?: number;
|
|
92
|
+
error?: string;
|
|
93
|
+
}
|
|
94
|
+
/** SFTP transfer progress frame (upload stream). */
|
|
95
|
+
export interface TransferProgress {
|
|
96
|
+
phase: 'connecting' | 'transferring' | 'done' | 'error';
|
|
97
|
+
file: string;
|
|
98
|
+
transferred: number;
|
|
99
|
+
total: number;
|
|
100
|
+
percent: number;
|
|
101
|
+
speedBps?: number;
|
|
102
|
+
error?: string;
|
|
103
|
+
}
|
|
104
|
+
/** One active local port-forward tunnel. */
|
|
105
|
+
export interface TunnelInfo {
|
|
106
|
+
id: string;
|
|
107
|
+
alias: string;
|
|
108
|
+
localPort: number;
|
|
109
|
+
remoteHost: string;
|
|
110
|
+
remotePort: number;
|
|
111
|
+
state: 'forwarding' | 'connecting' | 'failed';
|
|
112
|
+
error?: string;
|
|
113
|
+
startedAt: number;
|
|
114
|
+
}
|
|
115
|
+
/** One directory listing entry (remote file browser). */
|
|
116
|
+
export interface RemoteDirEntry {
|
|
117
|
+
name: string;
|
|
118
|
+
type: 'dir' | 'file' | 'other';
|
|
119
|
+
size: number;
|
|
120
|
+
mtimeMs: number;
|
|
121
|
+
mode?: number;
|
|
122
|
+
}
|
|
123
|
+
/** Test-connection outcome. */
|
|
124
|
+
export interface TestResult {
|
|
125
|
+
ok: boolean;
|
|
126
|
+
latencyMs?: number;
|
|
127
|
+
error?: string;
|
|
128
|
+
}
|
|
129
|
+
/** Host edit payload (create/update); 'alias' comes from the URL for updates. */
|
|
130
|
+
export interface HostPayload {
|
|
131
|
+
alias?: string;
|
|
132
|
+
host: string;
|
|
133
|
+
/** Explicit SHA256 pin; PATCH null clears it and returns to known_hosts. */
|
|
134
|
+
hostKeyFingerprint?: string | null;
|
|
135
|
+
port?: number;
|
|
136
|
+
user: string;
|
|
137
|
+
/**
|
|
138
|
+
* Authentication. Required on create; on update an omitted auth keeps the
|
|
139
|
+
* stored secrets (the browser never receives them back).
|
|
140
|
+
*/
|
|
141
|
+
auth?: SshHostEntry['auth'];
|
|
142
|
+
proxyJump?: string[];
|
|
143
|
+
description?: string;
|
|
144
|
+
environment?: string;
|
|
145
|
+
tags?: string[];
|
|
146
|
+
location?: string;
|
|
147
|
+
}
|
|
148
|
+
/** Import outcome from ~/.ssh/config. */
|
|
149
|
+
export interface ImportResult {
|
|
150
|
+
parsed: number;
|
|
151
|
+
added: number;
|
|
152
|
+
skipped: number;
|
|
153
|
+
/** Aliases that failed to map (wildcard patterns, missing HostName, ...). */
|
|
154
|
+
skippedNames: string[];
|
|
155
|
+
}
|
|
156
|
+
/** JSON error body used by every route. */
|
|
157
|
+
export interface ApiErrorBody {
|
|
158
|
+
error: string;
|
|
159
|
+
}
|
|
160
|
+
/** WebSocket terminal protocol frames (host -> client and client -> host). */
|
|
161
|
+
export type TerminalServerFrame = {
|
|
162
|
+
type: 'ready';
|
|
163
|
+
alias: string;
|
|
164
|
+
} | {
|
|
165
|
+
type: 'output';
|
|
166
|
+
data: string;
|
|
167
|
+
} | {
|
|
168
|
+
type: 'exit';
|
|
169
|
+
code: number | null;
|
|
170
|
+
error?: string;
|
|
171
|
+
} | {
|
|
172
|
+
type: 'auth_prompt';
|
|
173
|
+
name: string;
|
|
174
|
+
instructions: string;
|
|
175
|
+
prompts: Array<{
|
|
176
|
+
prompt: string;
|
|
177
|
+
echo: boolean;
|
|
178
|
+
}>;
|
|
179
|
+
};
|
|
180
|
+
export type TerminalClientFrame = {
|
|
181
|
+
type: 'input';
|
|
182
|
+
data: string;
|
|
183
|
+
} | {
|
|
184
|
+
type: 'resize';
|
|
185
|
+
cols: number;
|
|
186
|
+
rows: number;
|
|
187
|
+
} | {
|
|
188
|
+
type: 'auth_response';
|
|
189
|
+
responses: string[];
|
|
190
|
+
};
|
|
191
|
+
/** Route paths the client calls (shared literals). */
|
|
192
|
+
export declare const SSH_API_BASE: "/api/dsh-ssh";
|
|
193
|
+
export declare const SSH_API: {
|
|
194
|
+
readonly hosts: string;
|
|
195
|
+
readonly importSshConfig: string;
|
|
196
|
+
readonly test: string;
|
|
197
|
+
readonly exec: string;
|
|
198
|
+
readonly cluster: string;
|
|
199
|
+
readonly upload: string;
|
|
200
|
+
readonly download: string;
|
|
201
|
+
readonly ls: string;
|
|
202
|
+
readonly tunnel: string;
|
|
203
|
+
readonly terminal: string;
|
|
204
|
+
};
|
|
205
|
+
/** NDJSON transfer stream line shapes (upload). */
|
|
206
|
+
export type TransferStreamLine = {
|
|
207
|
+
type: 'progress';
|
|
208
|
+
progress: TransferProgress;
|
|
209
|
+
} | {
|
|
210
|
+
type: 'result';
|
|
211
|
+
ok: boolean;
|
|
212
|
+
transferredBytes?: number;
|
|
213
|
+
error?: string;
|
|
214
|
+
};
|
|
215
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../src/core/ssh/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire contract between the host half (routes.ts) and the browser half
|
|
3
|
+
* (client/api.ts). Pure types only — imported by both halves, bundled into
|
|
4
|
+
* each, no runtime identity to share.
|
|
5
|
+
*/
|
|
6
|
+
/** Canonical OpenSSH SHA256 fingerprint (32 bytes, unpadded base64). */
|
|
7
|
+
export function isHostKeyFingerprint(value) {
|
|
8
|
+
return typeof value === 'string' && /^SHA256:[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]$/.test(value);
|
|
9
|
+
}
|
|
10
|
+
/** Route paths the client calls (shared literals). */
|
|
11
|
+
export const SSH_API_BASE = '/api/dsh-ssh';
|
|
12
|
+
export const SSH_API = {
|
|
13
|
+
hosts: SSH_API_BASE + '/hosts',
|
|
14
|
+
importSshConfig: SSH_API_BASE + '/hosts/import-ssh-config',
|
|
15
|
+
test: SSH_API_BASE + '/test',
|
|
16
|
+
exec: SSH_API_BASE + '/exec',
|
|
17
|
+
cluster: SSH_API_BASE + '/cluster',
|
|
18
|
+
upload: SSH_API_BASE + '/upload',
|
|
19
|
+
download: SSH_API_BASE + '/download',
|
|
20
|
+
ls: SSH_API_BASE + '/ls',
|
|
21
|
+
tunnel: SSH_API_BASE + '/tunnel',
|
|
22
|
+
terminal: SSH_API_BASE + '/terminal',
|
|
23
|
+
};
|