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.
Files changed (344) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +364 -0
  3. package/README.md +368 -2
  4. package/cordis.patch.yml +3 -0
  5. package/lib/account-models.mjs +262 -0
  6. package/lib/client.js +22139 -0
  7. package/lib/client.js.map +1 -0
  8. package/lib/grok-catalog.mjs +145 -0
  9. package/lib/hermes-native-entry.py +96 -0
  10. package/lib/hermes-nous-refresh.py +331 -0
  11. package/lib/index.js +14544 -0
  12. package/lib/index.js.map +1 -0
  13. package/lib/native-launch.mjs +234 -0
  14. package/lib/native-spawn.mjs +32 -0
  15. package/lib/own-account-lease.mjs +105 -0
  16. package/lib/pi-installation.mjs +87 -0
  17. package/lib/pi-login.mjs +80 -0
  18. package/lib/pi-native-catalog.mjs +417 -0
  19. package/lib/pi-omp-bridge.mjs +602 -0
  20. package/lib/pi-omp-environment.mjs +15 -0
  21. package/lib/pi-omp-refresh.mjs +324 -0
  22. package/lib/private-launch.mjs +23 -0
  23. package/lib/terminal-bridge.mjs +18 -0
  24. package/lib/typert.host.d.ts +3 -0
  25. package/lib/typert.host.js +1430 -0
  26. package/lib/typert.remote-client.d.ts +72 -0
  27. package/lib/typert.remote-client.d.ts.map +1 -0
  28. package/lib/typert.remote-client.js +1256 -0
  29. package/lib/types/client/account-query-queue.d.ts +16 -0
  30. package/lib/types/client/account-query-queue.js +61 -0
  31. package/lib/types/client/account-query-queue.js.map +1 -0
  32. package/lib/types/client/account-terminal-css.d.ts +1 -0
  33. package/lib/types/client/account-terminal-css.js +3 -0
  34. package/lib/types/client/account-terminal-css.js.map +1 -0
  35. package/lib/types/client/account-terminal.d.ts +17 -0
  36. package/lib/types/client/account-terminal.js +525 -0
  37. package/lib/types/client/account-terminal.js.map +1 -0
  38. package/lib/types/client/assets/antigravity.png +0 -0
  39. package/lib/types/client/assets/claude-code.png +0 -0
  40. package/lib/types/client/assets/cliworker-now-logo.png +0 -0
  41. package/lib/types/client/assets/codex.png +0 -0
  42. package/lib/types/client/assets/grok.png +0 -0
  43. package/lib/types/client/assets/hermes.png +0 -0
  44. package/lib/types/client/assets/kimi-dark.png +0 -0
  45. package/lib/types/client/assets/kimi-light.png +0 -0
  46. package/lib/types/client/assets/mimo-code.png +0 -0
  47. package/lib/types/client/assets/omp.png +0 -0
  48. package/lib/types/client/assets/opencode.png +0 -0
  49. package/lib/types/client/assets/pi.png +0 -0
  50. package/lib/types/client/assets/zcode.png +0 -0
  51. package/lib/types/client/composer-keymap.d.ts +18 -0
  52. package/lib/types/client/composer-keymap.js +49 -0
  53. package/lib/types/client/composer-keymap.js.map +1 -0
  54. package/lib/types/client/conversation-timeline.d.ts +6 -0
  55. package/lib/types/client/conversation-timeline.js +65 -0
  56. package/lib/types/client/conversation-timeline.js.map +1 -0
  57. package/lib/types/client/copy-text.d.ts +5 -0
  58. package/lib/types/client/copy-text.js +45 -0
  59. package/lib/types/client/copy-text.js.map +1 -0
  60. package/lib/types/client/icons.d.ts +21 -0
  61. package/lib/types/client/icons.js +68 -0
  62. package/lib/types/client/icons.js.map +1 -0
  63. package/lib/types/client/index.d.ts +3 -0
  64. package/lib/types/client/index.js +124 -0
  65. package/lib/types/client/index.js.map +1 -0
  66. package/lib/types/client/management-styles.d.ts +1 -0
  67. package/lib/types/client/management-styles.js +17 -0
  68. package/lib/types/client/management-styles.js.map +1 -0
  69. package/lib/types/client/name-copy.d.ts +5 -0
  70. package/lib/types/client/name-copy.js +107 -0
  71. package/lib/types/client/name-copy.js.map +1 -0
  72. package/lib/types/client/native-job-overlay.d.ts +11 -0
  73. package/lib/types/client/native-job-overlay.js +129 -0
  74. package/lib/types/client/native-job-overlay.js.map +1 -0
  75. package/lib/types/client/operation-error.d.ts +2 -0
  76. package/lib/types/client/operation-error.js +12 -0
  77. package/lib/types/client/operation-error.js.map +1 -0
  78. package/lib/types/client/panel.d.ts +8 -0
  79. package/lib/types/client/panel.js +310 -0
  80. package/lib/types/client/panel.js.map +1 -0
  81. package/lib/types/client/rename-copy-styles.d.ts +1 -0
  82. package/lib/types/client/rename-copy-styles.js +21 -0
  83. package/lib/types/client/rename-copy-styles.js.map +1 -0
  84. package/lib/types/client/rename-worker.d.ts +9 -0
  85. package/lib/types/client/rename-worker.js +53 -0
  86. package/lib/types/client/rename-worker.js.map +1 -0
  87. package/lib/types/client/role-presets.d.ts +6 -0
  88. package/lib/types/client/role-presets.js +111 -0
  89. package/lib/types/client/role-presets.js.map +1 -0
  90. package/lib/types/client/settings-dialog.d.ts +13 -0
  91. package/lib/types/client/settings-dialog.js +442 -0
  92. package/lib/types/client/settings-dialog.js.map +1 -0
  93. package/lib/types/client/stat-popover.d.ts +10 -0
  94. package/lib/types/client/stat-popover.js +32 -0
  95. package/lib/types/client/stat-popover.js.map +1 -0
  96. package/lib/types/client/styles.d.ts +9 -0
  97. package/lib/types/client/styles.js +221 -0
  98. package/lib/types/client/styles.js.map +1 -0
  99. package/lib/types/client/telemetry.d.ts +11 -0
  100. package/lib/types/client/telemetry.js +24 -0
  101. package/lib/types/client/telemetry.js.map +1 -0
  102. package/lib/types/client/worker-card.d.ts +10 -0
  103. package/lib/types/client/worker-card.js +75 -0
  104. package/lib/types/client/worker-card.js.map +1 -0
  105. package/lib/types/client/worker-model-menu.d.ts +9 -0
  106. package/lib/types/client/worker-model-menu.js +136 -0
  107. package/lib/types/client/worker-model-menu.js.map +1 -0
  108. package/lib/types/client/workers.d.ts +21 -0
  109. package/lib/types/client/workers.js +59 -0
  110. package/lib/types/client/workers.js.map +1 -0
  111. package/lib/types/client/zcode-login-link-provider.d.ts +9 -0
  112. package/lib/types/client/zcode-login-link-provider.js +105 -0
  113. package/lib/types/client/zcode-login-link-provider.js.map +1 -0
  114. package/lib/types/client/zcode-login-link.d.ts +16 -0
  115. package/lib/types/client/zcode-login-link.js +194 -0
  116. package/lib/types/client/zcode-login-link.js.map +1 -0
  117. package/lib/types/host/account-identity.d.ts +16 -0
  118. package/lib/types/host/account-identity.js +126 -0
  119. package/lib/types/host/account-identity.js.map +1 -0
  120. package/lib/types/host/account-login.d.ts +10 -0
  121. package/lib/types/host/account-login.js +126 -0
  122. package/lib/types/host/account-login.js.map +1 -0
  123. package/lib/types/host/account-models.d.mts +21 -0
  124. package/lib/types/host/account-models.mjs +262 -0
  125. package/lib/types/host/accounts.d.ts +42 -0
  126. package/lib/types/host/accounts.js +945 -0
  127. package/lib/types/host/accounts.js.map +1 -0
  128. package/lib/types/host/adapters.d.ts +24 -0
  129. package/lib/types/host/adapters.js +380 -0
  130. package/lib/types/host/adapters.js.map +1 -0
  131. package/lib/types/host/agy-context.d.ts +8 -0
  132. package/lib/types/host/agy-context.js +122 -0
  133. package/lib/types/host/agy-context.js.map +1 -0
  134. package/lib/types/host/agy-models.d.ts +5 -0
  135. package/lib/types/host/agy-models.js +37 -0
  136. package/lib/types/host/agy-models.js.map +1 -0
  137. package/lib/types/host/agy-windows-account.d.ts +14 -0
  138. package/lib/types/host/agy-windows-account.js +104 -0
  139. package/lib/types/host/agy-windows-account.js.map +1 -0
  140. package/lib/types/host/authorized-catalog.d.ts +14 -0
  141. package/lib/types/host/authorized-catalog.js +35 -0
  142. package/lib/types/host/authorized-catalog.js.map +1 -0
  143. package/lib/types/host/bridge-protocol.d.ts +15 -0
  144. package/lib/types/host/bridge-protocol.js +80 -0
  145. package/lib/types/host/bridge-protocol.js.map +1 -0
  146. package/lib/types/host/claude-native-oauth.d.ts +17 -0
  147. package/lib/types/host/claude-native-oauth.js +272 -0
  148. package/lib/types/host/claude-native-oauth.js.map +1 -0
  149. package/lib/types/host/claude-own-route.d.ts +33 -0
  150. package/lib/types/host/claude-own-route.js +250 -0
  151. package/lib/types/host/claude-own-route.js.map +1 -0
  152. package/lib/types/host/cli-account-binding.d.ts +33 -0
  153. package/lib/types/host/cli-account-binding.js +540 -0
  154. package/lib/types/host/cli-account-binding.js.map +1 -0
  155. package/lib/types/host/cli-protocol.d.ts +27 -0
  156. package/lib/types/host/cli-protocol.js +212 -0
  157. package/lib/types/host/cli-protocol.js.map +1 -0
  158. package/lib/types/host/codex-account.d.ts +8 -0
  159. package/lib/types/host/codex-account.js +143 -0
  160. package/lib/types/host/codex-account.js.map +1 -0
  161. package/lib/types/host/codex-models.d.ts +6 -0
  162. package/lib/types/host/codex-models.js +169 -0
  163. package/lib/types/host/codex-models.js.map +1 -0
  164. package/lib/types/host/extended-adapters.d.ts +44 -0
  165. package/lib/types/host/extended-adapters.js +207 -0
  166. package/lib/types/host/extended-adapters.js.map +1 -0
  167. package/lib/types/host/first-party-account-context.d.ts +26 -0
  168. package/lib/types/host/first-party-account-context.js +55 -0
  169. package/lib/types/host/first-party-account-context.js.map +1 -0
  170. package/lib/types/host/first-party-models.d.ts +29 -0
  171. package/lib/types/host/first-party-models.js +459 -0
  172. package/lib/types/host/first-party-models.js.map +1 -0
  173. package/lib/types/host/grok-adapter.d.ts +44 -0
  174. package/lib/types/host/grok-adapter.js +293 -0
  175. package/lib/types/host/grok-adapter.js.map +1 -0
  176. package/lib/types/host/grok-models.d.ts +47 -0
  177. package/lib/types/host/grok-models.js +320 -0
  178. package/lib/types/host/grok-models.js.map +1 -0
  179. package/lib/types/host/harness-opencode-accounts.d.ts +17 -0
  180. package/lib/types/host/harness-opencode-accounts.js +80 -0
  181. package/lib/types/host/harness-opencode-accounts.js.map +1 -0
  182. package/lib/types/host/hermes-account-context.d.ts +8 -0
  183. package/lib/types/host/hermes-account-context.js +99 -0
  184. package/lib/types/host/hermes-account-context.js.map +1 -0
  185. package/lib/types/host/hermes-accounts.d.ts +19 -0
  186. package/lib/types/host/hermes-accounts.js +356 -0
  187. package/lib/types/host/hermes-accounts.js.map +1 -0
  188. package/lib/types/host/hermes-adapter.d.ts +93 -0
  189. package/lib/types/host/hermes-adapter.js +455 -0
  190. package/lib/types/host/hermes-adapter.js.map +1 -0
  191. package/lib/types/host/hermes-env.d.ts +4 -0
  192. package/lib/types/host/hermes-env.js +22 -0
  193. package/lib/types/host/hermes-env.js.map +1 -0
  194. package/lib/types/host/hermes-installation.d.ts +10 -0
  195. package/lib/types/host/hermes-installation.js +181 -0
  196. package/lib/types/host/hermes-installation.js.map +1 -0
  197. package/lib/types/host/hermes-models.d.ts +26 -0
  198. package/lib/types/host/hermes-models.js +328 -0
  199. package/lib/types/host/hermes-models.js.map +1 -0
  200. package/lib/types/host/hermes-native-entry.py +96 -0
  201. package/lib/types/host/hermes-nous-refresh.py +331 -0
  202. package/lib/types/host/hermes-nous.d.ts +53 -0
  203. package/lib/types/host/hermes-nous.js +343 -0
  204. package/lib/types/host/hermes-nous.js.map +1 -0
  205. package/lib/types/host/hermes-renewal.d.ts +27 -0
  206. package/lib/types/host/hermes-renewal.js +292 -0
  207. package/lib/types/host/hermes-renewal.js.map +1 -0
  208. package/lib/types/host/hermes-suppression.d.ts +7 -0
  209. package/lib/types/host/hermes-suppression.js +69 -0
  210. package/lib/types/host/hermes-suppression.js.map +1 -0
  211. package/lib/types/host/hermes-windows-installation.d.ts +5 -0
  212. package/lib/types/host/hermes-windows-installation.js +91 -0
  213. package/lib/types/host/hermes-windows-installation.js.map +1 -0
  214. package/lib/types/host/index.d.ts +140 -0
  215. package/lib/types/host/index.js +947 -0
  216. package/lib/types/host/index.js.map +1 -0
  217. package/lib/types/host/kimi-accounts.d.ts +17 -0
  218. package/lib/types/host/kimi-accounts.js +220 -0
  219. package/lib/types/host/kimi-accounts.js.map +1 -0
  220. package/lib/types/host/kimi-oauth-models.d.ts +14 -0
  221. package/lib/types/host/kimi-oauth-models.js +246 -0
  222. package/lib/types/host/kimi-oauth-models.js.map +1 -0
  223. package/lib/types/host/managed-agent.d.ts +4 -0
  224. package/lib/types/host/managed-agent.js +127 -0
  225. package/lib/types/host/managed-agent.js.map +1 -0
  226. package/lib/types/host/mimo-configuration.d.ts +22 -0
  227. package/lib/types/host/mimo-configuration.js +258 -0
  228. package/lib/types/host/mimo-configuration.js.map +1 -0
  229. package/lib/types/host/mimo-metadata-cache.d.ts +22 -0
  230. package/lib/types/host/mimo-metadata-cache.js +121 -0
  231. package/lib/types/host/mimo-metadata-cache.js.map +1 -0
  232. package/lib/types/host/native-capability-cache.d.ts +11 -0
  233. package/lib/types/host/native-capability-cache.js +94 -0
  234. package/lib/types/host/native-capability-cache.js.map +1 -0
  235. package/lib/types/host/native-launch.d.mts +2 -0
  236. package/lib/types/host/native-launch.mjs +234 -0
  237. package/lib/types/host/native-process.d.ts +5 -0
  238. package/lib/types/host/native-process.js +41 -0
  239. package/lib/types/host/native-process.js.map +1 -0
  240. package/lib/types/host/native-spawn.mjs +32 -0
  241. package/lib/types/host/opencode-adapter.d.ts +94 -0
  242. package/lib/types/host/opencode-adapter.js +507 -0
  243. package/lib/types/host/opencode-adapter.js.map +1 -0
  244. package/lib/types/host/opencode-native.d.ts +27 -0
  245. package/lib/types/host/opencode-native.js +403 -0
  246. package/lib/types/host/opencode-native.js.map +1 -0
  247. package/lib/types/host/own-account-lease.d.mts +5 -0
  248. package/lib/types/host/own-account-lease.mjs +105 -0
  249. package/lib/types/host/pi-installation.d.mts +7 -0
  250. package/lib/types/host/pi-installation.mjs +87 -0
  251. package/lib/types/host/pi-omp-accounts.d.ts +28 -0
  252. package/lib/types/host/pi-omp-accounts.js +175 -0
  253. package/lib/types/host/pi-omp-accounts.js.map +1 -0
  254. package/lib/types/host/pi-omp-adapter.d.ts +32 -0
  255. package/lib/types/host/pi-omp-adapter.js +190 -0
  256. package/lib/types/host/pi-omp-adapter.js.map +1 -0
  257. package/lib/types/host/pi-omp-environment.d.mts +1 -0
  258. package/lib/types/host/pi-omp-environment.mjs +15 -0
  259. package/lib/types/host/pi-omp-identity.d.ts +2 -0
  260. package/lib/types/host/pi-omp-identity.js +142 -0
  261. package/lib/types/host/pi-omp-identity.js.map +1 -0
  262. package/lib/types/host/pi-omp-logout.d.ts +3 -0
  263. package/lib/types/host/pi-omp-logout.js +152 -0
  264. package/lib/types/host/pi-omp-logout.js.map +1 -0
  265. package/lib/types/host/pi-omp-native.d.ts +71 -0
  266. package/lib/types/host/pi-omp-native.js +753 -0
  267. package/lib/types/host/pi-omp-native.js.map +1 -0
  268. package/lib/types/host/pi-omp-refresh.d.mts +7 -0
  269. package/lib/types/host/pi-omp-refresh.mjs +324 -0
  270. package/lib/types/host/private-launch.mjs +23 -0
  271. package/lib/types/host/process.d.ts +43 -0
  272. package/lib/types/host/process.js +134 -0
  273. package/lib/types/host/process.js.map +1 -0
  274. package/lib/types/host/protocol.d.ts +23 -0
  275. package/lib/types/host/protocol.js +112 -0
  276. package/lib/types/host/protocol.js.map +1 -0
  277. package/lib/types/host/roles.d.ts +34 -0
  278. package/lib/types/host/roles.js +80 -0
  279. package/lib/types/host/roles.js.map +1 -0
  280. package/lib/types/host/routing.d.ts +31 -0
  281. package/lib/types/host/routing.js +248 -0
  282. package/lib/types/host/routing.js.map +1 -0
  283. package/lib/types/host/runtime.d.ts +60 -0
  284. package/lib/types/host/runtime.js +598 -0
  285. package/lib/types/host/runtime.js.map +1 -0
  286. package/lib/types/host/storage.d.ts +48 -0
  287. package/lib/types/host/storage.js +449 -0
  288. package/lib/types/host/storage.js.map +1 -0
  289. package/lib/types/host/telemetry.d.ts +17 -0
  290. package/lib/types/host/telemetry.js +158 -0
  291. package/lib/types/host/telemetry.js.map +1 -0
  292. package/lib/types/host/windows-account-bootstrap.ps1 +44 -0
  293. package/lib/types/host/windows-account-launch.mjs +47 -0
  294. package/lib/types/host/windows-account-owner.ps1 +137 -0
  295. package/lib/types/host/windows-account-stdio.mjs +19 -0
  296. package/lib/types/host/windows-account-terminal.d.ts +17 -0
  297. package/lib/types/host/windows-account-terminal.js +208 -0
  298. package/lib/types/host/windows-account-terminal.js.map +1 -0
  299. package/lib/types/host/windows-agy-account.ps1 +81 -0
  300. package/lib/types/host/windows-cli-installation.d.ts +31 -0
  301. package/lib/types/host/windows-cli-installation.js +157 -0
  302. package/lib/types/host/windows-cli-installation.js.map +1 -0
  303. package/lib/types/host/windows-hidden-launch.mjs +49 -0
  304. package/lib/types/host/windows-hidden-process.d.ts +12 -0
  305. package/lib/types/host/windows-hidden-process.js +116 -0
  306. package/lib/types/host/windows-hidden-process.js.map +1 -0
  307. package/lib/types/host/zcode-account-models.d.ts +16 -0
  308. package/lib/types/host/zcode-account-models.js +114 -0
  309. package/lib/types/host/zcode-account-models.js.map +1 -0
  310. package/lib/types/host/zcode-adapter.d.ts +93 -0
  311. package/lib/types/host/zcode-adapter.js +808 -0
  312. package/lib/types/host/zcode-adapter.js.map +1 -0
  313. package/lib/types/host/zcode-grok-accounts.d.ts +30 -0
  314. package/lib/types/host/zcode-grok-accounts.js +408 -0
  315. package/lib/types/host/zcode-grok-accounts.js.map +1 -0
  316. package/lib/types/shared/accounts.d.ts +47 -0
  317. package/lib/types/shared/accounts.js +2 -0
  318. package/lib/types/shared/accounts.js.map +1 -0
  319. package/lib/types/shared/builtin-presets.d.ts +2 -0
  320. package/lib/types/shared/builtin-presets.js +231 -0
  321. package/lib/types/shared/builtin-presets.js.map +1 -0
  322. package/lib/types/shared/cli-settings.d.ts +5 -0
  323. package/lib/types/shared/cli-settings.js +2 -0
  324. package/lib/types/shared/cli-settings.js.map +1 -0
  325. package/lib/types/shared/model-presentation.d.ts +10 -0
  326. package/lib/types/shared/model-presentation.js +95 -0
  327. package/lib/types/shared/model-presentation.js.map +1 -0
  328. package/lib/types/shared/models.d.ts +7 -0
  329. package/lib/types/shared/models.js +35 -0
  330. package/lib/types/shared/models.js.map +1 -0
  331. package/lib/types/shared/telemetry.d.ts +18 -0
  332. package/lib/types/shared/telemetry.js +16 -0
  333. package/lib/types/shared/telemetry.js.map +1 -0
  334. package/lib/types/shared/types.d.ts +127 -0
  335. package/lib/types/shared/types.js +147 -0
  336. package/lib/types/shared/types.js.map +1 -0
  337. package/lib/windows-account-bootstrap.ps1 +44 -0
  338. package/lib/windows-account-launch.mjs +47 -0
  339. package/lib/windows-account-owner.ps1 +137 -0
  340. package/lib/windows-account-stdio.mjs +19 -0
  341. package/lib/windows-agy-account.ps1 +81 -0
  342. package/lib/windows-hidden-launch.mjs +49 -0
  343. package/lib/zcode-resume.mjs +423 -0
  344. 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,2 @@
1
+ /** Keep transport traces out of the conversation and selection options. */
2
+ export declare function operationMessage(error: unknown): string;
@@ -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,8 @@
1
+ import { type API } from './workers.ts';
2
+ interface PanelProps {
3
+ sessionId: string;
4
+ api: API;
5
+ openNativeSettings?: () => void;
6
+ }
7
+ export declare function Panel(props: PanelProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -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;