dsh-cliworker-now 0.0.0-stage → 0.7.7
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 +21 -0
- package/README.en.md +364 -0
- package/README.md +368 -2
- package/cordis.patch.yml +3 -0
- package/lib/account-models.mjs +262 -0
- package/lib/client.js +22139 -0
- package/lib/client.js.map +1 -0
- package/lib/grok-catalog.mjs +145 -0
- package/lib/hermes-native-entry.py +96 -0
- package/lib/hermes-nous-refresh.py +331 -0
- package/lib/index.js +14544 -0
- package/lib/index.js.map +1 -0
- package/lib/native-launch.mjs +234 -0
- package/lib/native-spawn.mjs +32 -0
- package/lib/own-account-lease.mjs +105 -0
- package/lib/pi-installation.mjs +87 -0
- package/lib/pi-login.mjs +80 -0
- package/lib/pi-native-catalog.mjs +417 -0
- package/lib/pi-omp-bridge.mjs +602 -0
- package/lib/pi-omp-environment.mjs +15 -0
- package/lib/pi-omp-refresh.mjs +324 -0
- package/lib/private-launch.mjs +23 -0
- package/lib/terminal-bridge.mjs +18 -0
- package/lib/typert.host.d.ts +3 -0
- package/lib/typert.host.js +1430 -0
- package/lib/typert.remote-client.d.ts +72 -0
- package/lib/typert.remote-client.d.ts.map +1 -0
- package/lib/typert.remote-client.js +1256 -0
- package/lib/types/client/account-query-queue.d.ts +16 -0
- package/lib/types/client/account-query-queue.js +61 -0
- package/lib/types/client/account-query-queue.js.map +1 -0
- package/lib/types/client/account-terminal-css.d.ts +1 -0
- package/lib/types/client/account-terminal-css.js +3 -0
- package/lib/types/client/account-terminal-css.js.map +1 -0
- package/lib/types/client/account-terminal.d.ts +17 -0
- package/lib/types/client/account-terminal.js +525 -0
- package/lib/types/client/account-terminal.js.map +1 -0
- package/lib/types/client/assets/antigravity.png +0 -0
- package/lib/types/client/assets/claude-code.png +0 -0
- package/lib/types/client/assets/cliworker-now-logo.png +0 -0
- package/lib/types/client/assets/codex.png +0 -0
- package/lib/types/client/assets/grok.png +0 -0
- package/lib/types/client/assets/hermes.png +0 -0
- package/lib/types/client/assets/kimi-dark.png +0 -0
- package/lib/types/client/assets/kimi-light.png +0 -0
- package/lib/types/client/assets/mimo-code.png +0 -0
- package/lib/types/client/assets/omp.png +0 -0
- package/lib/types/client/assets/opencode.png +0 -0
- package/lib/types/client/assets/pi.png +0 -0
- package/lib/types/client/assets/zcode.png +0 -0
- package/lib/types/client/composer-keymap.d.ts +18 -0
- package/lib/types/client/composer-keymap.js +49 -0
- package/lib/types/client/composer-keymap.js.map +1 -0
- package/lib/types/client/conversation-timeline.d.ts +6 -0
- package/lib/types/client/conversation-timeline.js +65 -0
- package/lib/types/client/conversation-timeline.js.map +1 -0
- package/lib/types/client/copy-text.d.ts +5 -0
- package/lib/types/client/copy-text.js +45 -0
- package/lib/types/client/copy-text.js.map +1 -0
- package/lib/types/client/icons.d.ts +21 -0
- package/lib/types/client/icons.js +68 -0
- package/lib/types/client/icons.js.map +1 -0
- package/lib/types/client/index.d.ts +3 -0
- package/lib/types/client/index.js +124 -0
- package/lib/types/client/index.js.map +1 -0
- package/lib/types/client/management-styles.d.ts +1 -0
- package/lib/types/client/management-styles.js +17 -0
- package/lib/types/client/management-styles.js.map +1 -0
- package/lib/types/client/name-copy.d.ts +5 -0
- package/lib/types/client/name-copy.js +107 -0
- package/lib/types/client/name-copy.js.map +1 -0
- package/lib/types/client/native-job-overlay.d.ts +11 -0
- package/lib/types/client/native-job-overlay.js +129 -0
- package/lib/types/client/native-job-overlay.js.map +1 -0
- package/lib/types/client/operation-error.d.ts +2 -0
- package/lib/types/client/operation-error.js +12 -0
- package/lib/types/client/operation-error.js.map +1 -0
- package/lib/types/client/panel.d.ts +8 -0
- package/lib/types/client/panel.js +310 -0
- package/lib/types/client/panel.js.map +1 -0
- package/lib/types/client/rename-copy-styles.d.ts +1 -0
- package/lib/types/client/rename-copy-styles.js +21 -0
- package/lib/types/client/rename-copy-styles.js.map +1 -0
- package/lib/types/client/rename-worker.d.ts +9 -0
- package/lib/types/client/rename-worker.js +53 -0
- package/lib/types/client/rename-worker.js.map +1 -0
- package/lib/types/client/role-presets.d.ts +6 -0
- package/lib/types/client/role-presets.js +111 -0
- package/lib/types/client/role-presets.js.map +1 -0
- package/lib/types/client/settings-dialog.d.ts +13 -0
- package/lib/types/client/settings-dialog.js +442 -0
- package/lib/types/client/settings-dialog.js.map +1 -0
- package/lib/types/client/stat-popover.d.ts +10 -0
- package/lib/types/client/stat-popover.js +32 -0
- package/lib/types/client/stat-popover.js.map +1 -0
- package/lib/types/client/styles.d.ts +9 -0
- package/lib/types/client/styles.js +221 -0
- package/lib/types/client/styles.js.map +1 -0
- package/lib/types/client/telemetry.d.ts +11 -0
- package/lib/types/client/telemetry.js +24 -0
- package/lib/types/client/telemetry.js.map +1 -0
- package/lib/types/client/worker-card.d.ts +10 -0
- package/lib/types/client/worker-card.js +75 -0
- package/lib/types/client/worker-card.js.map +1 -0
- package/lib/types/client/worker-model-menu.d.ts +9 -0
- package/lib/types/client/worker-model-menu.js +136 -0
- package/lib/types/client/worker-model-menu.js.map +1 -0
- package/lib/types/client/workers.d.ts +21 -0
- package/lib/types/client/workers.js +59 -0
- package/lib/types/client/workers.js.map +1 -0
- package/lib/types/client/zcode-login-link-provider.d.ts +9 -0
- package/lib/types/client/zcode-login-link-provider.js +105 -0
- package/lib/types/client/zcode-login-link-provider.js.map +1 -0
- package/lib/types/client/zcode-login-link.d.ts +16 -0
- package/lib/types/client/zcode-login-link.js +194 -0
- package/lib/types/client/zcode-login-link.js.map +1 -0
- package/lib/types/host/account-identity.d.ts +16 -0
- package/lib/types/host/account-identity.js +126 -0
- package/lib/types/host/account-identity.js.map +1 -0
- package/lib/types/host/account-login.d.ts +10 -0
- package/lib/types/host/account-login.js +126 -0
- package/lib/types/host/account-login.js.map +1 -0
- package/lib/types/host/account-models.d.mts +21 -0
- package/lib/types/host/account-models.mjs +262 -0
- package/lib/types/host/accounts.d.ts +42 -0
- package/lib/types/host/accounts.js +945 -0
- package/lib/types/host/accounts.js.map +1 -0
- package/lib/types/host/adapters.d.ts +24 -0
- package/lib/types/host/adapters.js +380 -0
- package/lib/types/host/adapters.js.map +1 -0
- package/lib/types/host/agy-context.d.ts +8 -0
- package/lib/types/host/agy-context.js +122 -0
- package/lib/types/host/agy-context.js.map +1 -0
- package/lib/types/host/agy-models.d.ts +5 -0
- package/lib/types/host/agy-models.js +37 -0
- package/lib/types/host/agy-models.js.map +1 -0
- package/lib/types/host/agy-windows-account.d.ts +14 -0
- package/lib/types/host/agy-windows-account.js +104 -0
- package/lib/types/host/agy-windows-account.js.map +1 -0
- package/lib/types/host/authorized-catalog.d.ts +14 -0
- package/lib/types/host/authorized-catalog.js +35 -0
- package/lib/types/host/authorized-catalog.js.map +1 -0
- package/lib/types/host/bridge-protocol.d.ts +15 -0
- package/lib/types/host/bridge-protocol.js +80 -0
- package/lib/types/host/bridge-protocol.js.map +1 -0
- package/lib/types/host/claude-native-oauth.d.ts +17 -0
- package/lib/types/host/claude-native-oauth.js +272 -0
- package/lib/types/host/claude-native-oauth.js.map +1 -0
- package/lib/types/host/claude-own-route.d.ts +33 -0
- package/lib/types/host/claude-own-route.js +250 -0
- package/lib/types/host/claude-own-route.js.map +1 -0
- package/lib/types/host/cli-account-binding.d.ts +33 -0
- package/lib/types/host/cli-account-binding.js +540 -0
- package/lib/types/host/cli-account-binding.js.map +1 -0
- package/lib/types/host/cli-protocol.d.ts +27 -0
- package/lib/types/host/cli-protocol.js +212 -0
- package/lib/types/host/cli-protocol.js.map +1 -0
- package/lib/types/host/codex-account.d.ts +8 -0
- package/lib/types/host/codex-account.js +143 -0
- package/lib/types/host/codex-account.js.map +1 -0
- package/lib/types/host/codex-models.d.ts +6 -0
- package/lib/types/host/codex-models.js +169 -0
- package/lib/types/host/codex-models.js.map +1 -0
- package/lib/types/host/extended-adapters.d.ts +44 -0
- package/lib/types/host/extended-adapters.js +207 -0
- package/lib/types/host/extended-adapters.js.map +1 -0
- package/lib/types/host/first-party-account-context.d.ts +26 -0
- package/lib/types/host/first-party-account-context.js +55 -0
- package/lib/types/host/first-party-account-context.js.map +1 -0
- package/lib/types/host/first-party-models.d.ts +29 -0
- package/lib/types/host/first-party-models.js +459 -0
- package/lib/types/host/first-party-models.js.map +1 -0
- package/lib/types/host/grok-adapter.d.ts +44 -0
- package/lib/types/host/grok-adapter.js +293 -0
- package/lib/types/host/grok-adapter.js.map +1 -0
- package/lib/types/host/grok-models.d.ts +47 -0
- package/lib/types/host/grok-models.js +320 -0
- package/lib/types/host/grok-models.js.map +1 -0
- package/lib/types/host/harness-opencode-accounts.d.ts +17 -0
- package/lib/types/host/harness-opencode-accounts.js +80 -0
- package/lib/types/host/harness-opencode-accounts.js.map +1 -0
- package/lib/types/host/hermes-account-context.d.ts +8 -0
- package/lib/types/host/hermes-account-context.js +99 -0
- package/lib/types/host/hermes-account-context.js.map +1 -0
- package/lib/types/host/hermes-accounts.d.ts +19 -0
- package/lib/types/host/hermes-accounts.js +356 -0
- package/lib/types/host/hermes-accounts.js.map +1 -0
- package/lib/types/host/hermes-adapter.d.ts +93 -0
- package/lib/types/host/hermes-adapter.js +455 -0
- package/lib/types/host/hermes-adapter.js.map +1 -0
- package/lib/types/host/hermes-env.d.ts +4 -0
- package/lib/types/host/hermes-env.js +22 -0
- package/lib/types/host/hermes-env.js.map +1 -0
- package/lib/types/host/hermes-installation.d.ts +10 -0
- package/lib/types/host/hermes-installation.js +181 -0
- package/lib/types/host/hermes-installation.js.map +1 -0
- package/lib/types/host/hermes-models.d.ts +26 -0
- package/lib/types/host/hermes-models.js +328 -0
- package/lib/types/host/hermes-models.js.map +1 -0
- package/lib/types/host/hermes-native-entry.py +96 -0
- package/lib/types/host/hermes-nous-refresh.py +331 -0
- package/lib/types/host/hermes-nous.d.ts +53 -0
- package/lib/types/host/hermes-nous.js +343 -0
- package/lib/types/host/hermes-nous.js.map +1 -0
- package/lib/types/host/hermes-renewal.d.ts +27 -0
- package/lib/types/host/hermes-renewal.js +292 -0
- package/lib/types/host/hermes-renewal.js.map +1 -0
- package/lib/types/host/hermes-suppression.d.ts +7 -0
- package/lib/types/host/hermes-suppression.js +69 -0
- package/lib/types/host/hermes-suppression.js.map +1 -0
- package/lib/types/host/hermes-windows-installation.d.ts +5 -0
- package/lib/types/host/hermes-windows-installation.js +91 -0
- package/lib/types/host/hermes-windows-installation.js.map +1 -0
- package/lib/types/host/index.d.ts +140 -0
- package/lib/types/host/index.js +947 -0
- package/lib/types/host/index.js.map +1 -0
- package/lib/types/host/kimi-accounts.d.ts +17 -0
- package/lib/types/host/kimi-accounts.js +220 -0
- package/lib/types/host/kimi-accounts.js.map +1 -0
- package/lib/types/host/kimi-oauth-models.d.ts +14 -0
- package/lib/types/host/kimi-oauth-models.js +246 -0
- package/lib/types/host/kimi-oauth-models.js.map +1 -0
- package/lib/types/host/managed-agent.d.ts +4 -0
- package/lib/types/host/managed-agent.js +127 -0
- package/lib/types/host/managed-agent.js.map +1 -0
- package/lib/types/host/mimo-configuration.d.ts +22 -0
- package/lib/types/host/mimo-configuration.js +258 -0
- package/lib/types/host/mimo-configuration.js.map +1 -0
- package/lib/types/host/mimo-metadata-cache.d.ts +22 -0
- package/lib/types/host/mimo-metadata-cache.js +121 -0
- package/lib/types/host/mimo-metadata-cache.js.map +1 -0
- package/lib/types/host/native-capability-cache.d.ts +11 -0
- package/lib/types/host/native-capability-cache.js +94 -0
- package/lib/types/host/native-capability-cache.js.map +1 -0
- package/lib/types/host/native-launch.d.mts +2 -0
- package/lib/types/host/native-launch.mjs +234 -0
- package/lib/types/host/native-process.d.ts +5 -0
- package/lib/types/host/native-process.js +41 -0
- package/lib/types/host/native-process.js.map +1 -0
- package/lib/types/host/native-spawn.mjs +32 -0
- package/lib/types/host/opencode-adapter.d.ts +94 -0
- package/lib/types/host/opencode-adapter.js +507 -0
- package/lib/types/host/opencode-adapter.js.map +1 -0
- package/lib/types/host/opencode-native.d.ts +27 -0
- package/lib/types/host/opencode-native.js +403 -0
- package/lib/types/host/opencode-native.js.map +1 -0
- package/lib/types/host/own-account-lease.d.mts +5 -0
- package/lib/types/host/own-account-lease.mjs +105 -0
- package/lib/types/host/pi-installation.d.mts +7 -0
- package/lib/types/host/pi-installation.mjs +87 -0
- package/lib/types/host/pi-omp-accounts.d.ts +28 -0
- package/lib/types/host/pi-omp-accounts.js +175 -0
- package/lib/types/host/pi-omp-accounts.js.map +1 -0
- package/lib/types/host/pi-omp-adapter.d.ts +32 -0
- package/lib/types/host/pi-omp-adapter.js +190 -0
- package/lib/types/host/pi-omp-adapter.js.map +1 -0
- package/lib/types/host/pi-omp-environment.d.mts +1 -0
- package/lib/types/host/pi-omp-environment.mjs +15 -0
- package/lib/types/host/pi-omp-identity.d.ts +2 -0
- package/lib/types/host/pi-omp-identity.js +142 -0
- package/lib/types/host/pi-omp-identity.js.map +1 -0
- package/lib/types/host/pi-omp-logout.d.ts +3 -0
- package/lib/types/host/pi-omp-logout.js +152 -0
- package/lib/types/host/pi-omp-logout.js.map +1 -0
- package/lib/types/host/pi-omp-native.d.ts +71 -0
- package/lib/types/host/pi-omp-native.js +753 -0
- package/lib/types/host/pi-omp-native.js.map +1 -0
- package/lib/types/host/pi-omp-refresh.d.mts +7 -0
- package/lib/types/host/pi-omp-refresh.mjs +324 -0
- package/lib/types/host/private-launch.mjs +23 -0
- package/lib/types/host/process.d.ts +43 -0
- package/lib/types/host/process.js +134 -0
- package/lib/types/host/process.js.map +1 -0
- package/lib/types/host/protocol.d.ts +23 -0
- package/lib/types/host/protocol.js +112 -0
- package/lib/types/host/protocol.js.map +1 -0
- package/lib/types/host/roles.d.ts +34 -0
- package/lib/types/host/roles.js +80 -0
- package/lib/types/host/roles.js.map +1 -0
- package/lib/types/host/routing.d.ts +31 -0
- package/lib/types/host/routing.js +248 -0
- package/lib/types/host/routing.js.map +1 -0
- package/lib/types/host/runtime.d.ts +60 -0
- package/lib/types/host/runtime.js +598 -0
- package/lib/types/host/runtime.js.map +1 -0
- package/lib/types/host/storage.d.ts +48 -0
- package/lib/types/host/storage.js +449 -0
- package/lib/types/host/storage.js.map +1 -0
- package/lib/types/host/telemetry.d.ts +17 -0
- package/lib/types/host/telemetry.js +158 -0
- package/lib/types/host/telemetry.js.map +1 -0
- package/lib/types/host/windows-account-bootstrap.ps1 +44 -0
- package/lib/types/host/windows-account-launch.mjs +47 -0
- package/lib/types/host/windows-account-owner.ps1 +137 -0
- package/lib/types/host/windows-account-stdio.mjs +19 -0
- package/lib/types/host/windows-account-terminal.d.ts +17 -0
- package/lib/types/host/windows-account-terminal.js +208 -0
- package/lib/types/host/windows-account-terminal.js.map +1 -0
- package/lib/types/host/windows-agy-account.ps1 +81 -0
- package/lib/types/host/windows-cli-installation.d.ts +31 -0
- package/lib/types/host/windows-cli-installation.js +157 -0
- package/lib/types/host/windows-cli-installation.js.map +1 -0
- package/lib/types/host/windows-hidden-launch.mjs +49 -0
- package/lib/types/host/windows-hidden-process.d.ts +12 -0
- package/lib/types/host/windows-hidden-process.js +116 -0
- package/lib/types/host/windows-hidden-process.js.map +1 -0
- package/lib/types/host/zcode-account-models.d.ts +16 -0
- package/lib/types/host/zcode-account-models.js +114 -0
- package/lib/types/host/zcode-account-models.js.map +1 -0
- package/lib/types/host/zcode-adapter.d.ts +93 -0
- package/lib/types/host/zcode-adapter.js +808 -0
- package/lib/types/host/zcode-adapter.js.map +1 -0
- package/lib/types/host/zcode-grok-accounts.d.ts +30 -0
- package/lib/types/host/zcode-grok-accounts.js +408 -0
- package/lib/types/host/zcode-grok-accounts.js.map +1 -0
- package/lib/types/shared/accounts.d.ts +47 -0
- package/lib/types/shared/accounts.js +2 -0
- package/lib/types/shared/accounts.js.map +1 -0
- package/lib/types/shared/builtin-presets.d.ts +2 -0
- package/lib/types/shared/builtin-presets.js +231 -0
- package/lib/types/shared/builtin-presets.js.map +1 -0
- package/lib/types/shared/cli-settings.d.ts +5 -0
- package/lib/types/shared/cli-settings.js +2 -0
- package/lib/types/shared/cli-settings.js.map +1 -0
- package/lib/types/shared/model-presentation.d.ts +10 -0
- package/lib/types/shared/model-presentation.js +95 -0
- package/lib/types/shared/model-presentation.js.map +1 -0
- package/lib/types/shared/models.d.ts +7 -0
- package/lib/types/shared/models.js +35 -0
- package/lib/types/shared/models.js.map +1 -0
- package/lib/types/shared/telemetry.d.ts +18 -0
- package/lib/types/shared/telemetry.js +16 -0
- package/lib/types/shared/telemetry.js.map +1 -0
- package/lib/types/shared/types.d.ts +127 -0
- package/lib/types/shared/types.js +147 -0
- package/lib/types/shared/types.js.map +1 -0
- package/lib/windows-account-bootstrap.ps1 +44 -0
- package/lib/windows-account-launch.mjs +47 -0
- package/lib/windows-account-owner.ps1 +137 -0
- package/lib/windows-account-stdio.mjs +19 -0
- package/lib/windows-agy-account.ps1 +81 -0
- package/lib/windows-hidden-launch.mjs +49 -0
- package/lib/zcode-resume.mjs +423 -0
- package/package.json +109 -4
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harness 0.2.0-rc.2 renders JobListAction's menu inside the conversation
|
|
3
|
+
* header, rather than a body portal. Its title container and clipping columns
|
|
4
|
+
* can hide the menu behind a docked Worker. Keep the native DOM and ownership;
|
|
5
|
+
* release only the ancestors which actually clip this open menu.
|
|
6
|
+
*/
|
|
7
|
+
const OVERFLOW = 'data-cwn-job-overlay-overflow';
|
|
8
|
+
const LAYER = 'data-cwn-job-overlay-layer';
|
|
9
|
+
const MENU = '[data-slot="conversation.session.header.actions"] ul[aria-label="后台任务"], ' +
|
|
10
|
+
'[data-slot="conversation.session.header.actions"] ul[aria-label="Background jobs"]';
|
|
11
|
+
const overlayStyles = `
|
|
12
|
+
[${OVERFLOW}]{overflow:visible!important}
|
|
13
|
+
[${LAYER}]{position:relative!important;z-index:101!important}
|
|
14
|
+
`;
|
|
15
|
+
/** A clipping ancestor needs release only when the native menu crosses it. */
|
|
16
|
+
export function clipsNativeJobMenu(menu, ancestor, clip) {
|
|
17
|
+
const clips = (value) => value !== 'visible';
|
|
18
|
+
return ((clips(clip.overflowX) && (menu.left < ancestor.left - 0.5 || menu.right > ancestor.right + 0.5)) ||
|
|
19
|
+
(clips(clip.overflowY) && (menu.top < ancestor.top - 0.5 || menu.bottom > ancestor.bottom + 0.5)));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Install one plugin-owned compatibility lifetime. Closing Jobs, hiding the
|
|
23
|
+
* Worker pane or disposing the plugin restores attributes and native CSS.
|
|
24
|
+
* No React-owned node or host inline style is moved or rewritten.
|
|
25
|
+
*/
|
|
26
|
+
export function installNativeJobOverlay(doc) {
|
|
27
|
+
const view = doc.defaultView;
|
|
28
|
+
if (!view?.MutationObserver || !doc.body)
|
|
29
|
+
return () => { };
|
|
30
|
+
const style = doc.createElement('style');
|
|
31
|
+
style.dataset.pluginCss = 'dsh-cliworker-now/native-job-overlay';
|
|
32
|
+
style.textContent = overlayStyles;
|
|
33
|
+
doc.head.append(style);
|
|
34
|
+
let marks = [];
|
|
35
|
+
let disposed = false;
|
|
36
|
+
let frame;
|
|
37
|
+
const visible = (element) => {
|
|
38
|
+
if (element.closest('[hidden], [aria-hidden="true"]'))
|
|
39
|
+
return false;
|
|
40
|
+
const box = element.getBoundingClientRect();
|
|
41
|
+
if (box.width <= 0 || box.height <= 0)
|
|
42
|
+
return false;
|
|
43
|
+
for (let parent = element; parent; parent = parent.parentElement) {
|
|
44
|
+
const css = view.getComputedStyle(parent);
|
|
45
|
+
if (css.display === 'none' || css.visibility !== 'visible')
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
};
|
|
50
|
+
const restore = (mark) => {
|
|
51
|
+
if (mark.element.getAttribute(mark.attribute) !== '')
|
|
52
|
+
return;
|
|
53
|
+
if (mark.previous === null)
|
|
54
|
+
mark.element.removeAttribute(mark.attribute);
|
|
55
|
+
else
|
|
56
|
+
mark.element.setAttribute(mark.attribute, mark.previous);
|
|
57
|
+
};
|
|
58
|
+
const reconcile = () => {
|
|
59
|
+
frame = undefined;
|
|
60
|
+
if (disposed)
|
|
61
|
+
return;
|
|
62
|
+
const desired = new Map();
|
|
63
|
+
const clips = new Map();
|
|
64
|
+
const add = (element, attribute) => {
|
|
65
|
+
const attributes = desired.get(element) ?? new Set();
|
|
66
|
+
attributes.add(attribute);
|
|
67
|
+
desired.set(element, attributes);
|
|
68
|
+
};
|
|
69
|
+
const workerVisible = [...doc.querySelectorAll('[data-sidebar-right-session] .cwn')].some(visible);
|
|
70
|
+
if (workerVisible) {
|
|
71
|
+
for (const menu of doc.querySelectorAll(MENU)) {
|
|
72
|
+
if (!visible(menu) || !menu.parentElement?.querySelector(':scope > button[aria-expanded="true"]'))
|
|
73
|
+
continue;
|
|
74
|
+
const title = menu.closest('[data-slot="conversation.session.header"] > div');
|
|
75
|
+
if (!(title instanceof view.HTMLElement))
|
|
76
|
+
continue;
|
|
77
|
+
add(title, LAYER);
|
|
78
|
+
const menuBox = menu.getBoundingClientRect();
|
|
79
|
+
for (let parent = menu.parentElement; parent && parent !== doc.body; parent = parent.parentElement) {
|
|
80
|
+
const css = view.getComputedStyle(parent);
|
|
81
|
+
const previous = marks.find((mark) => mark.element === parent && mark.attribute === OVERFLOW)?.clip;
|
|
82
|
+
const clip = previous ?? { overflowX: css.overflowX, overflowY: css.overflowY };
|
|
83
|
+
if (!clipsNativeJobMenu(menuBox, parent.getBoundingClientRect(), clip))
|
|
84
|
+
continue;
|
|
85
|
+
clips.set(parent, clip);
|
|
86
|
+
add(parent, OVERFLOW);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
for (const mark of marks)
|
|
91
|
+
if (!desired.get(mark.element)?.has(mark.attribute))
|
|
92
|
+
restore(mark);
|
|
93
|
+
const retained = marks.filter((mark) => desired.get(mark.element)?.has(mark.attribute));
|
|
94
|
+
for (const [element, attributes] of desired) {
|
|
95
|
+
for (const attribute of attributes) {
|
|
96
|
+
if (retained.some((mark) => mark.element === element && mark.attribute === attribute))
|
|
97
|
+
continue;
|
|
98
|
+
retained.push({ element, attribute, previous: element.getAttribute(attribute), clip: clips.get(element) });
|
|
99
|
+
element.setAttribute(attribute, '');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
marks = retained;
|
|
103
|
+
};
|
|
104
|
+
const schedule = () => {
|
|
105
|
+
if (!disposed && frame === undefined)
|
|
106
|
+
frame = view.requestAnimationFrame(reconcile);
|
|
107
|
+
};
|
|
108
|
+
const observer = new view.MutationObserver(schedule);
|
|
109
|
+
observer.observe(doc.body, {
|
|
110
|
+
childList: true,
|
|
111
|
+
subtree: true,
|
|
112
|
+
attributes: true,
|
|
113
|
+
attributeFilter: ['hidden', 'aria-hidden', 'aria-expanded', 'data-sidebar-right-open', 'class', 'style'],
|
|
114
|
+
});
|
|
115
|
+
view.addEventListener('resize', schedule);
|
|
116
|
+
reconcile();
|
|
117
|
+
return () => {
|
|
118
|
+
disposed = true;
|
|
119
|
+
observer.disconnect();
|
|
120
|
+
view.removeEventListener('resize', schedule);
|
|
121
|
+
if (frame !== undefined)
|
|
122
|
+
view.cancelAnimationFrame(frame);
|
|
123
|
+
for (const mark of marks)
|
|
124
|
+
restore(mark);
|
|
125
|
+
marks = [];
|
|
126
|
+
style.remove();
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=native-job-overlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-job-overlay.js","sourceRoot":"","sources":["../../../src/client/native-job-overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Keep transport traces out of the conversation and selection options. */
|
|
2
|
+
export function operationMessage(error) {
|
|
3
|
+
const text = String(error);
|
|
4
|
+
if (/HTTP 404/.test(text))
|
|
5
|
+
return '插件服务尚未更新,请重启 DeepSeek Harness 后重试。现有记录不会丢失。';
|
|
6
|
+
if (/transport failure|Failed to fetch|NetworkError/.test(text))
|
|
7
|
+
return '暂时无法连接插件服务,请稍后重试。';
|
|
8
|
+
return text
|
|
9
|
+
.replace(/^.*cliworker\/unavailable[^:]*:\s*/, '')
|
|
10
|
+
.replace(/^(?:(?:[A-Za-z_$][\w$]*Error|Error):\s*)+/, '');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=operation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-error.js","sourceRoot":"","sources":["../../../src/client/operation-error.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,6CAA6C,CAAA;IAC/E,IAAI,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,mBAAmB,CAAA;IAC3F,OAAO,IAAI;SACR,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;SACjD,OAAO,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAA;AAC7D,CAAC"}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { ComposerTelemetry } from "./telemetry.js";
|
|
3
|
+
import { ConversationTimeline } from "./conversation-timeline.js";
|
|
4
|
+
import { displayModelName } from "../shared/model-presentation.js";
|
|
5
|
+
import { operationMessage } from "./operation-error.js";
|
|
6
|
+
import { useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from 'react';
|
|
7
|
+
import { Button, Input, Tooltip, StateDot, IconChevronDownOutlineRegular, IconTrashOutlineRegular, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
8
|
+
import { createComposerKeymap } from "./composer-keymap.js";
|
|
9
|
+
import { active, CLI_IDS, CLI_LABELS, isRetiredCli, RETIRED_HARNESS_NOTICE, cliOf, workerName, } from "../shared/types.js";
|
|
10
|
+
import { useWorkers, value } from "./workers.js";
|
|
11
|
+
import { CopyText } from "./copy-text.js";
|
|
12
|
+
import { BrandIcon, Glyph } from "./icons.js";
|
|
13
|
+
import { WorkerModelMenu } from "./worker-model-menu.js";
|
|
14
|
+
import { SettingsDialog } from "./settings-dialog.js";
|
|
15
|
+
import { RenameWorker } from "./rename-worker.js";
|
|
16
|
+
import { WorkerCard } from "./worker-card.js";
|
|
17
|
+
const status = {
|
|
18
|
+
queued: '排队中',
|
|
19
|
+
running: '运行中',
|
|
20
|
+
stopping: '正在停止',
|
|
21
|
+
completed: '已完成',
|
|
22
|
+
failed: '失败',
|
|
23
|
+
interrupted: '已中断',
|
|
24
|
+
};
|
|
25
|
+
export function Panel(props) {
|
|
26
|
+
// In-memory only: project content is never copied into browser localStorage.
|
|
27
|
+
const [drafts, setDrafts] = useState({});
|
|
28
|
+
return (_jsx(SessionPanel, { ...props, drafts: drafts, editDraft: (id, text) => setDrafts((old) => ({ ...old, [id]: text })), clearSubmitted: (id, submitted) => setDrafts((old) => (old[id] === submitted ? { ...old, [id]: '' } : old)) }, props.sessionId));
|
|
29
|
+
}
|
|
30
|
+
function SessionPanel({ sessionId, api, openNativeSettings, drafts, editDraft, clearSubmitted, }) {
|
|
31
|
+
const [selected, select] = useState('');
|
|
32
|
+
const [collapsed, setCollapsed] = useState({});
|
|
33
|
+
const cliGroupId = useId();
|
|
34
|
+
const overview = useRef(null), overviewScroll = useRef(0);
|
|
35
|
+
const back = useRef(null), lastWorker = useRef('');
|
|
36
|
+
useLayoutEffect(() => {
|
|
37
|
+
if (selected)
|
|
38
|
+
back.current?.focus();
|
|
39
|
+
else if (overview.current) {
|
|
40
|
+
overview.current.scrollTop = overviewScroll.current;
|
|
41
|
+
overview.current
|
|
42
|
+
.querySelector(`[data-open-worker-id='${lastWorker.current}']`)
|
|
43
|
+
?.focus({ preventScroll: true });
|
|
44
|
+
}
|
|
45
|
+
}, [selected]);
|
|
46
|
+
const openWorker = (id) => {
|
|
47
|
+
lastWorker.current = id;
|
|
48
|
+
setSettings(false);
|
|
49
|
+
select(id);
|
|
50
|
+
};
|
|
51
|
+
const [query, setQuery] = useState(''), [filter, setFilter] = useState('all');
|
|
52
|
+
const [showArchived, setShowArchived] = useState(false);
|
|
53
|
+
const [historyPage, setHistoryPage] = useState();
|
|
54
|
+
const history = historyPage?.workerId === selected ? historyPage : undefined;
|
|
55
|
+
const { snapshot, error: streamError, connecting, reconnect } = useWorkers(api, sessionId, selected);
|
|
56
|
+
const [errors, setErrors] = useState({}), [busy, setBusy] = useState(false);
|
|
57
|
+
const error = errors[selected] ?? '';
|
|
58
|
+
const setError = (text) => setErrors((old) => ({ ...old, [selected]: text }));
|
|
59
|
+
const pendingAction = useRef(false);
|
|
60
|
+
const managementAbort = useRef();
|
|
61
|
+
const [following, setFollowing] = useState(true);
|
|
62
|
+
const alive = useRef(true), currentSelection = useRef(selected);
|
|
63
|
+
currentSelection.current = selected;
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
alive.current = true;
|
|
66
|
+
return () => {
|
|
67
|
+
alive.current = false;
|
|
68
|
+
managementAbort.current?.abort();
|
|
69
|
+
};
|
|
70
|
+
}, []);
|
|
71
|
+
const [settingsCli, setSettingsCli] = useState('antigravity');
|
|
72
|
+
const [settings, setSettings] = useState(false);
|
|
73
|
+
const [renaming, setRenaming] = useState();
|
|
74
|
+
const [restartFor, setRestartFor] = useState('');
|
|
75
|
+
const nativeSettingsRequested = useRef(false);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
// The native command must run after our Modal releases its focus/inert seat.
|
|
78
|
+
if (!settings && nativeSettingsRequested.current) {
|
|
79
|
+
nativeSettingsRequested.current = false;
|
|
80
|
+
try {
|
|
81
|
+
openNativeSettings?.();
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
setError('无法打开原生设置。请从 Harness 左侧打开「设置 → 模型」管理 API 登录。');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, [settings, openNativeSettings]);
|
|
88
|
+
const feed = useRef(null), stick = useRef(true);
|
|
89
|
+
const worker = snapshot.selected;
|
|
90
|
+
const retired = !!worker && isRetiredCli(cliOf(worker.preference));
|
|
91
|
+
const prompt = drafts[selected] ?? '';
|
|
92
|
+
const composerInput = useRef(null);
|
|
93
|
+
const composerForm = useRef(null);
|
|
94
|
+
const submitEnabled = useRef(false);
|
|
95
|
+
const composerKeys = useMemo(() => createComposerKeymap(() => submitEnabled.current, () => composerForm.current?.requestSubmit()), [selected]);
|
|
96
|
+
useLayoutEffect(() => {
|
|
97
|
+
const el = composerInput.current;
|
|
98
|
+
if (!el)
|
|
99
|
+
return;
|
|
100
|
+
el.style.height = '36px';
|
|
101
|
+
el.style.height = `${Math.max(36, Math.min(el.scrollHeight, 336))}px`;
|
|
102
|
+
}, [prompt, selected, snapshot.selected?.id]);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
stick.current = true;
|
|
105
|
+
setFollowing(true);
|
|
106
|
+
setHistoryPage(undefined);
|
|
107
|
+
setRestartFor('');
|
|
108
|
+
}, [selected]);
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
if (restartFor)
|
|
111
|
+
composerInput.current?.focus({ preventScroll: true });
|
|
112
|
+
}, [restartFor]);
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
if (!history && stick.current && feed.current)
|
|
115
|
+
feed.current.scrollTop = feed.current.scrollHeight;
|
|
116
|
+
}, [snapshot.timeline, selected, history]);
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
if (history && feed.current)
|
|
119
|
+
feed.current.scrollTop = 0;
|
|
120
|
+
}, [history]);
|
|
121
|
+
async function perform(action) {
|
|
122
|
+
if (pendingAction.current)
|
|
123
|
+
return;
|
|
124
|
+
pendingAction.current = true;
|
|
125
|
+
const origin = selected;
|
|
126
|
+
const isCurrent = () => alive.current && currentSelection.current === origin;
|
|
127
|
+
setBusy(true);
|
|
128
|
+
setError('');
|
|
129
|
+
try {
|
|
130
|
+
await action(isCurrent);
|
|
131
|
+
}
|
|
132
|
+
catch (e) {
|
|
133
|
+
if (alive.current)
|
|
134
|
+
setErrors((old) => ({ ...old, [origin]: operationMessage(e) }));
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
pendingAction.current = false;
|
|
138
|
+
if (alive.current)
|
|
139
|
+
setBusy(false);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const running = worker && active(worker.status);
|
|
143
|
+
const unavailable = connecting || !!streamError;
|
|
144
|
+
const startingNew = !!worker && restartFor === worker.id;
|
|
145
|
+
const resumeBlocked = snapshot.resumeBlockedReason;
|
|
146
|
+
const canResume = (startingNew || (worker?.conversationId && !resumeBlocked)) && !retired && !running && !unavailable;
|
|
147
|
+
submitEnabled.current = !!prompt.trim() && !!canResume && !busy;
|
|
148
|
+
const jumpToLatest = () => {
|
|
149
|
+
setHistoryPage(undefined);
|
|
150
|
+
stick.current = true;
|
|
151
|
+
setFollowing(true);
|
|
152
|
+
if (feed.current)
|
|
153
|
+
feed.current.scrollTop = feed.current.scrollHeight;
|
|
154
|
+
};
|
|
155
|
+
const visibleWorkers = snapshot.workers.filter((w) => {
|
|
156
|
+
const matches = `${CLI_LABELS[cliOf(w.preference)]} ${workerName(w)} ${w.title} ${w.preference.model} ${w.preference.effort}`
|
|
157
|
+
.toLowerCase()
|
|
158
|
+
.includes(query.trim().toLowerCase());
|
|
159
|
+
return (matches &&
|
|
160
|
+
(filter === 'all' ||
|
|
161
|
+
(filter === 'active'
|
|
162
|
+
? active(w.status)
|
|
163
|
+
: filter === 'attention'
|
|
164
|
+
? w.status === 'failed' || w.status === 'interrupted'
|
|
165
|
+
: w.status === 'completed')));
|
|
166
|
+
});
|
|
167
|
+
const archivedWorkers = snapshot.archivedWorkers ?? [];
|
|
168
|
+
const manageWorker = (target, action) => {
|
|
169
|
+
if (action === 'name' || action === 'title') {
|
|
170
|
+
setRenaming({ worker: target, mode: action });
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
void perform(async (isCurrent) => {
|
|
174
|
+
const controller = new AbortController();
|
|
175
|
+
managementAbort.current = controller;
|
|
176
|
+
try {
|
|
177
|
+
value(await api.cliworker.deleteWorker(sessionId, target.id, controller.signal));
|
|
178
|
+
}
|
|
179
|
+
finally {
|
|
180
|
+
if (managementAbort.current === controller)
|
|
181
|
+
managementAbort.current = undefined;
|
|
182
|
+
}
|
|
183
|
+
if (isCurrent()) {
|
|
184
|
+
if (selected === target.id)
|
|
185
|
+
select('');
|
|
186
|
+
setShowArchived(true);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
const displayedTimeline = history?.items ?? snapshot.timeline;
|
|
191
|
+
const loadHistory = (direction) => {
|
|
192
|
+
const anchor = direction === 'before' ? displayedTimeline[0]?.id : displayedTimeline.at(-1)?.id;
|
|
193
|
+
if (!worker || !anchor)
|
|
194
|
+
return;
|
|
195
|
+
void perform(async (isCurrent) => {
|
|
196
|
+
const page = JSON.parse(value(await api.cliworker.history(sessionId, worker.id, anchor, direction)));
|
|
197
|
+
if (!isCurrent())
|
|
198
|
+
return;
|
|
199
|
+
if (page.workerId !== worker.id)
|
|
200
|
+
throw new Error('收到不匹配的历史记录');
|
|
201
|
+
if (!page.items.length) {
|
|
202
|
+
jumpToLatest();
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
stick.current = false;
|
|
206
|
+
setFollowing(false);
|
|
207
|
+
setHistoryPage(page);
|
|
208
|
+
});
|
|
209
|
+
};
|
|
210
|
+
return (_jsxs("section", { className: "cwn", "aria-label": "CLI Worker Now", children: [_jsx("header", { className: "cwn-head", children: selected ? (_jsxs(_Fragment, { children: [_jsx(Tooltip, { label: "\u8FD4\u56DE\u5B50 Agent \u5217\u8868", side: "bottom", portal: true, children: _jsx(Button, { ref: back, type: "button", variant: "outline", size: "sm", className: "cwn-back", "aria-label": "\u8FD4\u56DE\u5B50 Agent \u5217\u8868", onClick: () => {
|
|
211
|
+
setSettings(false);
|
|
212
|
+
select('');
|
|
213
|
+
}, children: _jsx(Glyph, { name: "back" }) }) }), _jsx("h2", { title: worker ? `${workerName(worker)}|${worker.title}` : undefined, children: (() => {
|
|
214
|
+
const current = worker ?? snapshot.workers.find((w) => w.id === selected);
|
|
215
|
+
return current ? `${workerName(current)}|${current.title}` : '正在加载…';
|
|
216
|
+
})() }), _jsxs("details", { className: "cwn-actions", children: [_jsx("summary", { "aria-label": "\u4EFB\u52A1\u9009\u9879", title: "\u4EFB\u52A1\u9009\u9879", children: _jsx(Glyph, { name: "more" }) }), _jsxs("div", { className: "cwn-action-menu", children: [worker && (_jsxs(_Fragment, { children: [_jsx("strong", { children: CLI_LABELS[cliOf(worker.preference)] }), _jsx("p", { children: worker.mode === 'plan' ? 'CLI 规划模式' : '可编辑任务' }), worker.role && _jsxs("p", { title: worker.role.summary, children: ["\u89D2\u8272\uFF1A", worker.role.name] }), _jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: () => manageWorker(worker, 'name'), disabled: unavailable || busy, children: "\u4FEE\u6539\u667A\u80FD\u4F53\u540D\u79F0" }), _jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: () => manageWorker(worker, 'title'), disabled: unavailable || busy, children: "\u4FEE\u6539\u804A\u5929\u6807\u9898" }), _jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: () => manageWorker(worker, 'delete'), disabled: unavailable || busy || !!running, children: "\u5220\u9664" }), worker.observedModel && worker.observedModel !== worker.preference.model && (_jsxs("p", { children: ["CLI \u5B9E\u9645\u6A21\u578B\uFF1A", displayModelName({ ...worker.preference, model: worker.observedModel })] })), worker.lastResult && (_jsx(CopyText, { text: worker.lastResult, label: "\u590D\u5236\u6700\u65B0\u7ED3\u679C" }, `${worker.id}:${worker.runId}`))] })), _jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: () => {
|
|
217
|
+
setSettingsCli(worker && !retired ? cliOf(worker.preference) : settingsCli);
|
|
218
|
+
setSettings(true);
|
|
219
|
+
}, disabled: retired, children: "\u9ED8\u8BA4\u8BBE\u7F6E" })] })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "cwn-wordmark", children: [_jsx(BrandIcon, { size: 36, tone: "monochrome" }), _jsxs("h2", { "aria-label": "CLI Worker Now", children: [_jsx("span", { children: "CLI Worker" }), _jsx("small", { children: "NOW" })] })] }), _jsx(Tooltip, { label: "\u9ED8\u8BA4\u8BBE\u7F6E", side: "bottom", portal: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "md", className: "cwn-settings-button", "aria-label": "\u9ED8\u8BA4\u8BBE\u7F6E", onClick: () => setSettings(true), children: _jsx(Glyph, { name: "settings" }) }) })] })) }), selected && worker && !retired && !running && (resumeBlocked || startingNew) && (_jsxs("div", { className: "cwn-resume-banner", role: "status", "aria-label": "\u5BF9\u8BDD\u72B6\u6001", children: [_jsx("span", { children: startingNew
|
|
220
|
+
? '新对话将沿用原设定'
|
|
221
|
+
: resumeBlocked === '此历史任务缺少账号记录,请新建任务'
|
|
222
|
+
? '历史账号记录缺失'
|
|
223
|
+
: resumeBlocked }), _jsx(Button, { type: "button", size: "sm", variant: "ghost", "aria-label": startingNew ? '取消新建' : '新建对话', disabled: busy || (!startingNew && unavailable), onClick: () => setRestartFor(startingNew ? '' : worker.id), children: startingNew ? '取消' : '新建对话' })] })), renaming && (_jsx(RenameWorker, { api: api, sessionId: sessionId, worker: renaming.worker, mode: renaming.mode, onClose: () => setRenaming(undefined) }, `${renaming.worker.id}:${renaming.mode}`)), _jsx(SettingsDialog, { openNativeSettings: openNativeSettings
|
|
224
|
+
? () => {
|
|
225
|
+
nativeSettingsRequested.current = true;
|
|
226
|
+
setSettings(false);
|
|
227
|
+
}
|
|
228
|
+
: undefined, open: settings, onClose: () => setSettings(false), api: api, sessionId: sessionId, initialCli: settingsCli }), !selected && (_jsxs("div", { className: "cwn-overview", children: [_jsxs("div", { className: "cwn-overview-controls", children: [_jsx(Input, { className: "cwn-search", icon: _jsx(Glyph, { name: "search" }), type: "search", "aria-label": "\u7B5B\u9009\u5B50 Agent", placeholder: "\u641C\u7D22\u667A\u80FD\u4F53\u3001\u8BDD\u9898\u6216\u6A21\u578B\u2026", value: query, onChange: (e) => setQuery(e.target.value) }), _jsxs("div", { className: "cwn-filter-row", children: [_jsx("div", { className: "cwn-filters", role: "group", "aria-label": "\u4EFB\u52A1\u72B6\u6001\u7B5B\u9009", children: [
|
|
229
|
+
['all', '全部'],
|
|
230
|
+
['active', '进行中'],
|
|
231
|
+
['completed', '已完成'],
|
|
232
|
+
['attention', '异常'],
|
|
233
|
+
].map(([id, label]) => (_jsx(Button, { type: "button", variant: "outline", size: "md", "aria-pressed": !showArchived && filter === id, onClick: () => {
|
|
234
|
+
setShowArchived(false);
|
|
235
|
+
setFilter(id);
|
|
236
|
+
}, children: label }, id))) }), _jsx(Tooltip, { label: showArchived ? '返回列表' : '已删除', side: "bottom", portal: true, children: _jsx(Button, { type: "button", size: "md", variant: "ghost", className: "cwn-archive-toggle", "aria-label": showArchived ? '返回列表' : '已删除', "aria-pressed": showArchived, onClick: () => setShowArchived((shown) => !shown), children: _jsx(IconTrashOutlineRegular, {}) }) })] })] }), _jsxs("div", { className: "cwn-overview-list", ref: overview, onScroll: () => {
|
|
237
|
+
overviewScroll.current = overview.current?.scrollTop ?? 0;
|
|
238
|
+
}, children: [showArchived ? (_jsxs("div", { className: "cwn-archived-list", "aria-label": "\u5DF2\u5220\u9664\u5BF9\u8BDD", children: [archivedWorkers.length === 0 && _jsx("div", { className: "cwn-empty", children: "\u6CA1\u6709\u5DF2\u5220\u9664\u7684\u5BF9\u8BDD" }), archivedWorkers.map((archived) => (_jsxs("article", { className: "cwn-archived-row", children: [_jsxs("div", { children: [_jsx("strong", { children: archived.title }), _jsx("small", { children: workerName(archived) })] }), _jsx(Button, { type: "button", size: "sm", variant: "outline", "aria-label": `恢复对话 ${archived.title}`, disabled: busy || unavailable, onClick: () => {
|
|
239
|
+
void perform(async () => {
|
|
240
|
+
const controller = new AbortController();
|
|
241
|
+
managementAbort.current = controller;
|
|
242
|
+
try {
|
|
243
|
+
value(await api.cliworker.restoreWorker(sessionId, archived.id, controller.signal));
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
if (managementAbort.current === controller)
|
|
247
|
+
managementAbort.current = undefined;
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}, children: "\u6062\u590D" })] }, archived.id)))] })) : (_jsx("nav", { "aria-label": "\u5B50 Agent", children: [...CLI_IDS, 'harness'].map((cli) => {
|
|
251
|
+
const rows = visibleWorkers.filter((w) => cliOf(w.preference) === cli);
|
|
252
|
+
if (!rows.length)
|
|
253
|
+
return null;
|
|
254
|
+
return (_jsxs("section", { className: "cwn-cli-group", "aria-label": `${CLI_LABELS[cli]} 子 Agent`, children: [_jsxs("button", { className: "cwn-cli-heading", type: "button", "aria-expanded": !collapsed[cli], "aria-controls": `${cliGroupId}-${cli}`, onClick: () => setCollapsed((old) => ({ ...old, [cli]: !old[cli] })), children: [_jsx(BrandIcon, { cli: cli }), _jsx("strong", { children: CLI_LABELS[cli] }), _jsxs("span", { children: [rows.length, " \u4E2A Agent"] }), _jsx(Glyph, { name: "chevron" })] }), _jsx("div", { id: `${cliGroupId}-${cli}`, className: "cwn-cli-rows", "data-expanded": !collapsed[cli], "aria-hidden": !!collapsed[cli], ...(collapsed[cli] ? { inert: '' } : {}), children: _jsx("div", { className: "cwn-cli-rows-inner", children: rows.map((w) => (_jsx(WorkerCard, { worker: w, collapsed: !!collapsed[cli], unavailable: unavailable, busy: busy, onOpen: () => openWorker(w.id), onManage: (action) => manageWorker(w, action) }, w.id))) }) })] }, cli));
|
|
255
|
+
}) })), snapshot.configuring && (_jsx("div", { className: "cwn-notice", children: "\u7B49\u5F85\u786E\u8BA4\u8BBE\u5B9A\u3002\u8BF7\u5728\u4E3B\u5BF9\u8BDD\u7684\u95EE\u9898\u5361\u7247\u4E2D\u9009\u62E9\u3002" })), !connecting &&
|
|
256
|
+
!streamError &&
|
|
257
|
+
!snapshot.workers.length &&
|
|
258
|
+
!snapshot.configuring &&
|
|
259
|
+
!showArchived &&
|
|
260
|
+
!query &&
|
|
261
|
+
filter === 'all' && (_jsxs("div", { className: "cwn-empty cwn-start-empty", children: [_jsx("h3", { children: "\u628A\u60F3\u505A\u7684\u4E8B\uFF0C\u4EA4\u7ED9\u5408\u9002\u7684\u4F19\u4F34\u3002" }), _jsx("p", { children: "\u5728\u4E3B\u5BF9\u8BDD\u4E2D\u53D1\u8D77\u4EFB\u52A1\uFF0C\u534F\u4F5C\u4F1A\u5728\u8FD9\u91CC\u5C55\u5F00\u3002" })] }))] })] })), streamError && (_jsxs("div", { role: "alert", className: "cwn-error", children: [_jsx("div", { children: "\u5B9E\u65F6\u8FDE\u63A5\u5DF2\u65AD\u5F00\uFF0C\u5DF2\u6536\u5230\u7684\u8BB0\u5F55\u4FDD\u7559\u5728\u8FD9\u91CC\u3002\u91CD\u65B0\u8FDE\u63A5\u4E0D\u4F1A\u91CD\u65B0\u6267\u884C\u4EFB\u52A1\u3002" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", onClick: reconnect, children: "\u91CD\u65B0\u8FDE\u63A5" }), _jsxs("details", { children: [_jsx("summary", { children: "\u8FDE\u63A5\u8BE6\u60C5" }), streamError] })] })), connecting && (_jsxs("div", { className: "cwn-notice", role: "status", children: [_jsx(StateDot, { state: "ongoing", size: 14 }), " \u6B63\u5728\u8FDE\u63A5\u5E76\u6062\u590D\u8BB0\u5F55\u2026"] })), error && !settings && (_jsx("div", { role: "alert", className: "cwn-notice", children: error })), worker?.error && (_jsx("div", { role: "status", className: "cwn-error", children: worker.error })), selected && history && (_jsxs("div", { className: "cwn-history-nav", "aria-label": "\u5386\u53F2\u7FFB\u9875", children: [_jsxs("span", { children: ["\u5386\u53F2\u8BB0\u5F55 ", history.start + 1, "\u2013", history.end, " \u00B7 \u8BFB\u53D6\u65F6\u5171 ", history.total, " \u6761"] }), _jsxs("div", { children: [_jsx(Button, { type: "button", size: "sm", variant: "outline", disabled: busy || unavailable || !history.hasOlder, onClick: () => loadHistory('before'), children: "\u66F4\u65E9\u8BB0\u5F55" }), _jsx(Button, { type: "button", size: "sm", variant: "outline", disabled: busy || unavailable || !history.hasNewer, onClick: () => loadHistory('after'), children: "\u8F83\u65B0\u8BB0\u5F55" }), _jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: jumpToLatest, children: "\u8FD4\u56DE\u5B9E\u65F6" })] }), _jsx("small", { children: "\u5386\u53F2\u9875\u4FDD\u6301\u9759\u6B62\uFF0C\u8FD4\u56DE\u5B9E\u65F6\u53EF\u67E5\u770B\u6700\u65B0\u8FDB\u5C55\u3002" })] })), selected && (_jsxs("div", { className: "cwn-conversation", children: [_jsxs("div", { className: "cwn-feed", ref: feed, onScroll: () => {
|
|
262
|
+
if (history)
|
|
263
|
+
return;
|
|
264
|
+
const el = feed.current;
|
|
265
|
+
// Harness rc.2 ScrollFollow uses a 25px bottom tolerance.
|
|
266
|
+
stick.current = el.scrollHeight - el.scrollTop - el.clientHeight <= 25;
|
|
267
|
+
setFollowing(stick.current);
|
|
268
|
+
}, "aria-label": "\u5BF9\u8BDD\u8BB0\u5F55", "aria-busy": running || false, children: [snapshot.configuring && (_jsx("div", { className: "cwn-notice", children: "\u7B49\u5F85\u786E\u8BA4\u8BBE\u5B9A\u3002\u8BF7\u5728\u4E3B\u5BF9\u8BDD\u7684\u95EE\u9898\u5361\u7247\u4E2D\u9009\u62E9\u3002" })), !history && snapshot.truncated && (_jsxs("div", { className: "cwn-history-start", children: [_jsxs("span", { children: ["\u5F53\u524D\u663E\u793A\u6700\u8FD1 ", snapshot.timeline.length, " \u6761\u8BB0\u5F55"] }), _jsx(Button, { type: "button", size: "sm", variant: "outline", disabled: busy || unavailable, onClick: () => loadHistory('before'), children: "\u67E5\u770B\u66F4\u65E9\u8BB0\u5F55" })] })), _jsx(ConversationTimeline, { items: displayedTimeline, latestItems: snapshot.timeline, worker: worker })] }), !history && !following && worker && (_jsx("div", { className: "cwn-jump", children: _jsx("button", { className: "cwn-jump-button", type: "button", "aria-label": "\u56DE\u5230\u6700\u65B0\u6D88\u606F", onClick: jumpToLatest, children: _jsx(IconChevronDownOutlineRegular, {}) }) }))] })), selected && worker && (_jsxs("form", { ref: composerForm, className: "cwn-compose", onSubmit: (e) => {
|
|
269
|
+
e.preventDefault();
|
|
270
|
+
if (!prompt.trim() || !canResume || busy)
|
|
271
|
+
return;
|
|
272
|
+
void perform(async (isCurrent) => {
|
|
273
|
+
if (startingNew) {
|
|
274
|
+
const controller = new AbortController();
|
|
275
|
+
managementAbort.current = controller;
|
|
276
|
+
let receipt;
|
|
277
|
+
try {
|
|
278
|
+
receipt = JSON.parse(value(await api.cliworker.restartWorker(sessionId, worker.id, prompt, controller.signal)));
|
|
279
|
+
}
|
|
280
|
+
finally {
|
|
281
|
+
if (managementAbort.current === controller)
|
|
282
|
+
managementAbort.current = undefined;
|
|
283
|
+
}
|
|
284
|
+
if (!receipt.workerId || receipt.workerId === worker.id)
|
|
285
|
+
throw new Error('新对话未返回有效的智能体记录');
|
|
286
|
+
clearSubmitted(worker.id, prompt);
|
|
287
|
+
if (isCurrent()) {
|
|
288
|
+
lastWorker.current = receipt.workerId;
|
|
289
|
+
setRestartFor('');
|
|
290
|
+
select(receipt.workerId);
|
|
291
|
+
}
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
value(await api.cliworker.followup(sessionId, worker.id, prompt));
|
|
295
|
+
clearSubmitted(worker.id, prompt);
|
|
296
|
+
if (isCurrent())
|
|
297
|
+
jumpToLatest();
|
|
298
|
+
});
|
|
299
|
+
}, children: [retired && _jsx("p", { className: "cwn-resume-hint", children: RETIRED_HARNESS_NOTICE }), _jsxs("div", { className: "cwn-compose-box", children: [_jsx("textarea", { ref: composerInput, "aria-label": startingNew ? '新建对话内容' : '继续对话', value: prompt, onChange: (e) => editDraft(worker.id, e.target.value), onKeyDown: composerKeys.onKeyDown, onCompositionStart: composerKeys.onCompositionStart, onCompositionEnd: composerKeys.onCompositionEnd, disabled: !canResume || busy, maxLength: 100000, placeholder: startingNew
|
|
300
|
+
? '输入新对话的任务…'
|
|
301
|
+
: running
|
|
302
|
+
? '本轮完成后可以继续对话'
|
|
303
|
+
: '给这个子 Agent 分配下一步…', rows: 1 }), _jsxs("div", { className: "cwn-compose-bottom", children: [_jsx(WorkerModelMenu, { worker: worker, api: api, sessionId: sessionId, disabled: retired || busy || unavailable || !!running || startingNew || !!resumeBlocked }, worker.id), running ? (_jsx(Button, { type: "button", size: "sm", variant: "outline", className: "cwn-send", "aria-label": "\u505C\u6B62", title: "\u505C\u6B62", disabled: busy || worker.status === 'stopping', onClick: () => void perform(async () => {
|
|
304
|
+
value(await api.cliworker.stop(sessionId, worker.id));
|
|
305
|
+
}), children: _jsx(Glyph, { name: "stop" }) })) : (_jsx("button", { type: "submit", className: "cwn-send", "aria-label": startingNew ? '新建对话并发送' : '继续对话', title: startingNew ? '新建对话并发送' : '继续对话', disabled: !canResume || busy || !prompt.trim(), onMouseDown: (e) => {
|
|
306
|
+
e.preventDefault();
|
|
307
|
+
composerInput.current?.focus({ preventScroll: true });
|
|
308
|
+
}, children: _jsx(Glyph, { name: "send" }) }))] })] }), _jsx(ComposerTelemetry, { worker: worker, telemetry: snapshot.telemetry, statusLabel: status[worker.status] })] }))] }));
|
|
309
|
+
}
|
|
310
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../../../src/client/panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const renameCopyStyles = "\n.cwn-rename-dialog{padding-bottom:16px;gap:12px}\n.cwn-rename-content>:first-child{padding-top:16px;padding-bottom:8px}\n.cwn-rename-content>:last-child{margin-top:12px}\n.cwn-rename-form{display:flex;flex-direction:column;gap:12px;min-width:0;width:100%}\n.cwn-rename-form>.cwn-rename-input{display:flex;box-sizing:border-box;width:100%;min-width:0}\n.cwn-rename-input>input{width:100%;min-width:0}\n.cwn-rename-form>p{margin:0;font-size:var(--dsw-font-xxs-12-font-size);color:var(--dsw-alias-label-tertiary);line-height:20px}\n.cwn-rename-error{font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere}\n.cwn-rename-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}\n.cwn-name-copy{min-width:0;max-width:38%;display:inline-flex;position:relative;flex-shrink:1}\n.cwn .cwn-worker-name{display:inline-flex;align-items:center;flex:1;max-width:none;min-width:0;gap:0;border:0;border-radius:var(--dsw-radius-sm);padding:2px 8px;margin:0 -4px;background:transparent;color:inherit;font:inherit;user-select:text;transition:background-color .1s,color .1s}\n.cwn-worker-name>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n.cwn-name-divider{display:block;width:1px;height:12px;background:currentColor;flex:none}\n.cwn-worker-meta>.cwn-worker-model{margin-inline-start:4px}\n.cwn .cwn-worker-name:hover,.cwn .cwn-worker-name:focus-visible{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}\n.cwn-name-copy-failure{position:absolute;top:100%;left:0;z-index:1;max-width:260px;width:max-content;padding:4px 8px;border-radius:var(--dsw-radius-sm);background:var(--dsw-specific-menu);color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px;white-space:normal}\n@media(prefers-reduced-motion:reduce){.cwn-worker-name{transition:none!important}}\n";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Local placement for the native Modal/Input and independent name-copy action.
|
|
2
|
+
export const renameCopyStyles = `
|
|
3
|
+
.cwn-rename-dialog{padding-bottom:16px;gap:12px}
|
|
4
|
+
.cwn-rename-content>:first-child{padding-top:16px;padding-bottom:8px}
|
|
5
|
+
.cwn-rename-content>:last-child{margin-top:12px}
|
|
6
|
+
.cwn-rename-form{display:flex;flex-direction:column;gap:12px;min-width:0;width:100%}
|
|
7
|
+
.cwn-rename-form>.cwn-rename-input{display:flex;box-sizing:border-box;width:100%;min-width:0}
|
|
8
|
+
.cwn-rename-input>input{width:100%;min-width:0}
|
|
9
|
+
.cwn-rename-form>p{margin:0;font-size:var(--dsw-font-xxs-12-font-size);color:var(--dsw-alias-label-tertiary);line-height:20px}
|
|
10
|
+
.cwn-rename-error{font-size:var(--dsw-font-xxs-12-font-size);line-height:20px;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere}
|
|
11
|
+
.cwn-rename-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
|
|
12
|
+
.cwn-name-copy{min-width:0;max-width:38%;display:inline-flex;position:relative;flex-shrink:1}
|
|
13
|
+
.cwn .cwn-worker-name{display:inline-flex;align-items:center;flex:1;max-width:none;min-width:0;gap:0;border:0;border-radius:var(--dsw-radius-sm);padding:2px 8px;margin:0 -4px;background:transparent;color:inherit;font:inherit;user-select:text;transition:background-color .1s,color .1s}
|
|
14
|
+
.cwn-worker-name>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
15
|
+
.cwn-name-divider{display:block;width:1px;height:12px;background:currentColor;flex:none}
|
|
16
|
+
.cwn-worker-meta>.cwn-worker-model{margin-inline-start:4px}
|
|
17
|
+
.cwn .cwn-worker-name:hover,.cwn .cwn-worker-name:focus-visible{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}
|
|
18
|
+
.cwn-name-copy-failure{position:absolute;top:100%;left:0;z-index:1;max-width:260px;width:max-content;padding:4px 8px;border-radius:var(--dsw-radius-sm);background:var(--dsw-specific-menu);color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px;white-space:normal}
|
|
19
|
+
@media(prefers-reduced-motion:reduce){.cwn-worker-name{transition:none!important}}
|
|
20
|
+
`;
|
|
21
|
+
//# sourceMappingURL=rename-copy-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rename-copy-styles.js","sourceRoot":"","sources":["../../../src/client/rename-copy-styles.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;CAkB/B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Worker } from '../shared/types.ts';
|
|
2
|
+
import { type API } from './workers.ts';
|
|
3
|
+
export declare function RenameWorker({ api, sessionId, worker, mode, onClose, }: {
|
|
4
|
+
api: API;
|
|
5
|
+
sessionId: string;
|
|
6
|
+
worker: Worker;
|
|
7
|
+
mode?: 'name' | 'title';
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|