@qqbrowser/qbot-dsh 0.1.6 → 0.1.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 (254) hide show
  1. package/lib/client.js +1 -1
  2. package/lib/sandbox-local.js +1 -1
  3. package/node_modules/@aws-sdk/core/package.json +1 -1
  4. package/node_modules/@aws-sdk/credential-provider-env/package.json +1 -1
  5. package/node_modules/@aws-sdk/credential-provider-http/package.json +1 -1
  6. package/node_modules/@aws-sdk/credential-provider-ini/package.json +1 -1
  7. package/node_modules/@aws-sdk/credential-provider-login/package.json +1 -1
  8. package/node_modules/@aws-sdk/credential-provider-node/package.json +1 -1
  9. package/node_modules/@aws-sdk/credential-provider-process/package.json +1 -1
  10. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +8 -4
  11. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +8 -4
  12. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +1 -1
  13. package/node_modules/@aws-sdk/credential-provider-sso/package.json +1 -1
  14. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +1 -1
  15. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +1 -1
  16. package/node_modules/@aws-sdk/middleware-eventstream/package.json +1 -1
  17. package/node_modules/@aws-sdk/middleware-websocket/package.json +1 -1
  18. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  19. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  20. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  21. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  22. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  23. package/node_modules/@aws-sdk/nested-clients/package.json +1 -1
  24. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -1
  25. package/node_modules/@aws-sdk/types/package.json +1 -1
  26. package/node_modules/@aws-sdk/xml-builder/package.json +1 -1
  27. package/node_modules/@deepseek-ai/dsh-agent/package.json +1 -1
  28. package/node_modules/@deepseek-ai/dsh-agent-default-model/package.json +1 -1
  29. package/node_modules/@deepseek-ai/dsh-agent-instructions/package.json +1 -1
  30. package/node_modules/@deepseek-ai/dsh-agent-loop/package.json +1 -1
  31. package/node_modules/@deepseek-ai/dsh-agent-presets/package.json +1 -1
  32. package/node_modules/@deepseek-ai/dsh-agent-tool-presentation/package.json +1 -1
  33. package/node_modules/@deepseek-ai/dsh-anonymous-user-id/package.json +1 -1
  34. package/node_modules/@deepseek-ai/dsh-api-remotes/package.json +1 -1
  35. package/node_modules/@deepseek-ai/dsh-app-boot/package.json +1 -1
  36. package/node_modules/@deepseek-ai/dsh-atomic-write/package.json +1 -1
  37. package/node_modules/@deepseek-ai/dsh-attachment/package.json +1 -1
  38. package/node_modules/@deepseek-ai/dsh-attachment-local/package.json +1 -1
  39. package/node_modules/@deepseek-ai/dsh-base/package.json +1 -1
  40. package/node_modules/@deepseek-ai/dsh-bash-local/package.json +1 -1
  41. package/node_modules/@deepseek-ai/dsh-bash-sandbox/package.json +1 -1
  42. package/node_modules/@deepseek-ai/dsh-browser-jsapi/package.json +1 -1
  43. package/node_modules/@deepseek-ai/dsh-client-connection/package.json +1 -1
  44. package/node_modules/@deepseek-ai/dsh-client-hmr/package.json +1 -1
  45. package/node_modules/@deepseek-ai/dsh-client-locale/lib/client.js +1 -1
  46. package/node_modules/@deepseek-ai/dsh-client-locale/package.json +1 -1
  47. package/node_modules/@deepseek-ai/dsh-client-runtime/package.json +1 -1
  48. package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/lib/client.js +1 -1
  49. package/node_modules/@deepseek-ai/dsh-client-ui-agent-preset/package.json +1 -1
  50. package/node_modules/@deepseek-ai/dsh-client-ui-attachment/package.json +1 -1
  51. package/node_modules/@deepseek-ai/dsh-client-ui-commands/lib/client.js +1 -1
  52. package/node_modules/@deepseek-ai/dsh-client-ui-commands/package.json +1 -1
  53. package/node_modules/@deepseek-ai/dsh-client-ui-conversation/lib/client.js +5 -5
  54. package/node_modules/@deepseek-ai/dsh-client-ui-conversation/package.json +1 -1
  55. package/node_modules/@deepseek-ai/dsh-client-ui-cordis/lib/client.js +1 -1
  56. package/node_modules/@deepseek-ai/dsh-client-ui-cordis/package.json +1 -1
  57. package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/lib/client.js +1 -1
  58. package/node_modules/@deepseek-ai/dsh-client-ui-deliverables/package.json +1 -1
  59. package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/lib/client.js +1 -1
  60. package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-browse/package.json +1 -1
  61. package/node_modules/@deepseek-ai/dsh-client-ui-directory-picker-native/package.json +1 -1
  62. package/node_modules/@deepseek-ai/dsh-client-ui-goal/lib/client.js +1 -1
  63. package/node_modules/@deepseek-ai/dsh-client-ui-goal/package.json +1 -1
  64. package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/lib/client.js +1 -1
  65. package/node_modules/@deepseek-ai/dsh-client-ui-input-trigger/package.json +1 -1
  66. package/node_modules/@deepseek-ai/dsh-client-ui-jobs/lib/client.js +1 -1
  67. package/node_modules/@deepseek-ai/dsh-client-ui-jobs/package.json +1 -1
  68. package/node_modules/@deepseek-ai/dsh-client-ui-jsapi-bridge/package.json +1 -1
  69. package/node_modules/@deepseek-ai/dsh-client-ui-layout/lib/client.js +1 -1
  70. package/node_modules/@deepseek-ai/dsh-client-ui-layout/package.json +1 -1
  71. package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/lib/client.js +1 -1
  72. package/node_modules/@deepseek-ai/dsh-client-ui-message-feedback/package.json +1 -1
  73. package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/lib/client.js +1 -1
  74. package/node_modules/@deepseek-ai/dsh-client-ui-model-selection/package.json +1 -1
  75. package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/lib/client.js +1 -1
  76. package/node_modules/@deepseek-ai/dsh-client-ui-permission-presets/package.json +1 -1
  77. package/node_modules/@deepseek-ai/dsh-client-ui-plan/lib/client.js +1 -1
  78. package/node_modules/@deepseek-ai/dsh-client-ui-plan/package.json +1 -1
  79. package/node_modules/@deepseek-ai/dsh-client-ui-settings/package.json +1 -1
  80. package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
  81. package/node_modules/@deepseek-ai/dsh-client-ui-settings-general/package.json +1 -1
  82. package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/lib/client.js +1 -1
  83. package/node_modules/@deepseek-ai/dsh-client-ui-settings-models/package.json +1 -1
  84. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/lib/client.js +1 -1
  85. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugin-inventory/package.json +1 -1
  86. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/lib/client.js +1 -1
  87. package/node_modules/@deepseek-ai/dsh-client-ui-settings-plugins/package.json +1 -1
  88. package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
  89. package/node_modules/@deepseek-ai/dsh-client-ui-sidebar/package.json +1 -1
  90. package/node_modules/@deepseek-ai/dsh-client-ui-skill/lib/client.js +1 -1
  91. package/node_modules/@deepseek-ai/dsh-client-ui-skill/package.json +1 -1
  92. package/node_modules/@deepseek-ai/dsh-client-ui-subagent/lib/client.js +1 -1
  93. package/node_modules/@deepseek-ai/dsh-client-ui-subagent/package.json +1 -1
  94. package/node_modules/@deepseek-ai/dsh-client-ui-theme/package.json +1 -1
  95. package/node_modules/@deepseek-ai/dsh-client-ui-tool/lib/client.js +1 -1
  96. package/node_modules/@deepseek-ai/dsh-client-ui-tool/package.json +1 -1
  97. package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/lib/client.js +3 -3
  98. package/node_modules/@deepseek-ai/dsh-client-ui-trajectory/package.json +1 -1
  99. package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/lib/client.js +1 -1
  100. package/node_modules/@deepseek-ai/dsh-client-ui-user-questions/package.json +1 -1
  101. package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/lib/client.js +1 -1
  102. package/node_modules/@deepseek-ai/dsh-client-ui-workflow-run/package.json +1 -1
  103. package/node_modules/@deepseek-ai/dsh-client-ui-workspace/lib/client.js +1 -1
  104. package/node_modules/@deepseek-ai/dsh-client-ui-workspace/package.json +1 -1
  105. package/node_modules/@deepseek-ai/dsh-client-web/package.json +1 -1
  106. package/node_modules/@deepseek-ai/dsh-cmdline/package.json +1 -1
  107. package/node_modules/@deepseek-ai/dsh-code-runtime-worker-thread/package.json +1 -1
  108. package/node_modules/@deepseek-ai/dsh-command-compact/package.json +1 -1
  109. package/node_modules/@deepseek-ai/dsh-command-feedback/package.json +1 -1
  110. package/node_modules/@deepseek-ai/dsh-command-goal/package.json +1 -1
  111. package/node_modules/@deepseek-ai/dsh-commands/package.json +1 -1
  112. package/node_modules/@deepseek-ai/dsh-compaction/package.json +1 -1
  113. package/node_modules/@deepseek-ai/dsh-compaction-basic/package.json +1 -1
  114. package/node_modules/@deepseek-ai/dsh-compaction-tool-result-pruner/package.json +1 -1
  115. package/node_modules/@deepseek-ai/dsh-cordis-client-runner/package.json +1 -1
  116. package/node_modules/@deepseek-ai/dsh-cordis-host-runner/package.json +1 -1
  117. package/node_modules/@deepseek-ai/dsh-credentials/package.json +1 -1
  118. package/node_modules/@deepseek-ai/dsh-credentials-local/package.json +1 -1
  119. package/node_modules/@deepseek-ai/dsh-fs/package.json +1 -1
  120. package/node_modules/@deepseek-ai/dsh-fs-local/package.json +1 -1
  121. package/node_modules/@deepseek-ai/dsh-fs-sandbox/package.json +1 -1
  122. package/node_modules/@deepseek-ai/dsh-goal/package.json +1 -1
  123. package/node_modules/@deepseek-ai/dsh-goal-round-driver/package.json +1 -1
  124. package/node_modules/@deepseek-ai/dsh-headless/package.json +1 -1
  125. package/node_modules/@deepseek-ai/dsh-home-paths/package.json +1 -1
  126. package/node_modules/@deepseek-ai/dsh-host-apiproxy/package.json +1 -1
  127. package/node_modules/@deepseek-ai/dsh-host-directory-picker-auto/package.json +1 -1
  128. package/node_modules/@deepseek-ai/dsh-host-directory-picker-browse/package.json +1 -1
  129. package/node_modules/@deepseek-ai/dsh-host-directory-picker-native/package.json +1 -1
  130. package/node_modules/@deepseek-ai/dsh-host-frontend-static/package.json +1 -1
  131. package/node_modules/@deepseek-ai/dsh-host-plugin-inventory/package.json +1 -1
  132. package/node_modules/@deepseek-ai/dsh-jobs/package.json +1 -1
  133. package/node_modules/@deepseek-ai/dsh-jobs-local/package.json +1 -1
  134. package/node_modules/@deepseek-ai/dsh-llm/package.json +1 -1
  135. package/node_modules/@deepseek-ai/dsh-llm-deepseek/package.json +1 -1
  136. package/node_modules/@deepseek-ai/dsh-llm-pi-ai/package.json +1 -1
  137. package/node_modules/@deepseek-ai/dsh-llm-retry/package.json +1 -1
  138. package/node_modules/@deepseek-ai/dsh-mcp-client/package.json +1 -1
  139. package/node_modules/@deepseek-ai/dsh-message-feedback/package.json +1 -1
  140. package/node_modules/@deepseek-ai/dsh-permission-presets/package.json +1 -1
  141. package/node_modules/@deepseek-ai/dsh-plan-mode/package.json +1 -1
  142. package/node_modules/@deepseek-ai/dsh-pwsh-local/package.json +1 -1
  143. package/node_modules/@deepseek-ai/dsh-pwsh-sandbox/package.json +1 -1
  144. package/node_modules/@deepseek-ai/dsh-repeat-tool-reminder/package.json +1 -1
  145. package/node_modules/@deepseek-ai/dsh-sandbox/package.json +1 -1
  146. package/node_modules/@deepseek-ai/dsh-sandbox-local/package.json +1 -1
  147. package/node_modules/@deepseek-ai/dsh-sandbox-policy/package.json +1 -1
  148. package/node_modules/@deepseek-ai/dsh-schedule/package.json +1 -1
  149. package/node_modules/@deepseek-ai/dsh-session/package.json +1 -1
  150. package/node_modules/@deepseek-ai/dsh-session-checkpoint-policy/package.json +1 -1
  151. package/node_modules/@deepseek-ai/dsh-session-log-export/package.json +1 -1
  152. package/node_modules/@deepseek-ai/dsh-session-persistence/package.json +1 -1
  153. package/node_modules/@deepseek-ai/dsh-session-persistence-jsonl/package.json +1 -1
  154. package/node_modules/@deepseek-ai/dsh-session-projection/package.json +1 -1
  155. package/node_modules/@deepseek-ai/dsh-session-projection-cache/package.json +1 -1
  156. package/node_modules/@deepseek-ai/dsh-session-query/package.json +1 -1
  157. package/node_modules/@deepseek-ai/dsh-session-query-sqlite/package.json +1 -1
  158. package/node_modules/@deepseek-ai/dsh-session-reference/package.json +1 -1
  159. package/node_modules/@deepseek-ai/dsh-session-telemetry/package.json +1 -1
  160. package/node_modules/@deepseek-ai/dsh-session-telemetry-otel/package.json +1 -1
  161. package/node_modules/@deepseek-ai/dsh-session-title/package.json +1 -1
  162. package/node_modules/@deepseek-ai/dsh-session-title-first-prompt-llm/package.json +1 -1
  163. package/node_modules/@deepseek-ai/dsh-session-title-llm/package.json +1 -1
  164. package/node_modules/@deepseek-ai/dsh-settings/package.json +1 -1
  165. package/node_modules/@deepseek-ai/dsh-shell/package.json +1 -1
  166. package/node_modules/@deepseek-ai/dsh-shell-env/package.json +1 -1
  167. package/node_modules/@deepseek-ai/dsh-skill/package.json +1 -1
  168. package/node_modules/@deepseek-ai/dsh-skill-filesystem/package.json +1 -1
  169. package/node_modules/@deepseek-ai/dsh-spill/package.json +1 -1
  170. package/node_modules/@deepseek-ai/dsh-spill-local/package.json +1 -1
  171. package/node_modules/@deepseek-ai/dsh-spill-policy/package.json +1 -1
  172. package/node_modules/@deepseek-ai/dsh-storage-domain/package.json +1 -1
  173. package/node_modules/@deepseek-ai/dsh-storage-json/package.json +1 -1
  174. package/node_modules/@deepseek-ai/dsh-subagent/package.json +1 -1
  175. package/node_modules/@deepseek-ai/dsh-subagent-fork-in-process/package.json +1 -1
  176. package/node_modules/@deepseek-ai/dsh-subagent-in-process-driver/package.json +1 -1
  177. package/node_modules/@deepseek-ai/dsh-subagent-spawn-in-process/package.json +1 -1
  178. package/node_modules/@deepseek-ai/dsh-subprocess-local/package.json +1 -1
  179. package/node_modules/@deepseek-ai/dsh-system-prompt/package.json +1 -1
  180. package/node_modules/@deepseek-ai/dsh-terminal/package.json +1 -1
  181. package/node_modules/@deepseek-ai/dsh-terminal-bash/package.json +1 -1
  182. package/node_modules/@deepseek-ai/dsh-time-context/package.json +1 -1
  183. package/node_modules/@deepseek-ai/dsh-timeout/package.json +1 -1
  184. package/node_modules/@deepseek-ai/dsh-tmux-context/package.json +1 -1
  185. package/node_modules/@deepseek-ai/dsh-token-meter/package.json +1 -1
  186. package/node_modules/@deepseek-ai/dsh-tool-ask-user/package.json +1 -1
  187. package/node_modules/@deepseek-ai/dsh-tool-bash/package.json +1 -1
  188. package/node_modules/@deepseek-ai/dsh-tool-bash-persistent/package.json +1 -1
  189. package/node_modules/@deepseek-ai/dsh-tool-browser/lib/index.js +1 -1
  190. package/node_modules/@deepseek-ai/dsh-tool-browser/package.json +1 -1
  191. package/node_modules/@deepseek-ai/dsh-tool-call-timeout-policy/package.json +1 -1
  192. package/node_modules/@deepseek-ai/dsh-tool-cordis/package.json +1 -1
  193. package/node_modules/@deepseek-ai/dsh-tool-fs/package.json +1 -1
  194. package/node_modules/@deepseek-ai/dsh-tool-fs-search/package.json +1 -1
  195. package/node_modules/@deepseek-ai/dsh-tool-goal/package.json +1 -1
  196. package/node_modules/@deepseek-ai/dsh-tool-jobs/package.json +1 -1
  197. package/node_modules/@deepseek-ai/dsh-tool-pwsh/package.json +1 -1
  198. package/node_modules/@deepseek-ai/dsh-tool-ralph/package.json +1 -1
  199. package/node_modules/@deepseek-ai/dsh-tool-skill/package.json +1 -1
  200. package/node_modules/@deepseek-ai/dsh-tool-str-replace-editor/package.json +1 -1
  201. package/node_modules/@deepseek-ai/dsh-tool-subagent/package.json +1 -1
  202. package/node_modules/@deepseek-ai/dsh-tool-subagent-control/package.json +1 -1
  203. package/node_modules/@deepseek-ai/dsh-tool-subagent-report/package.json +1 -1
  204. package/node_modules/@deepseek-ai/dsh-tool-todo/package.json +1 -1
  205. package/node_modules/@deepseek-ai/dsh-tool-web/package.json +1 -1
  206. package/node_modules/@deepseek-ai/dsh-tool-workflow/package.json +1 -1
  207. package/node_modules/@deepseek-ai/dsh-tools/package.json +1 -1
  208. package/node_modules/@deepseek-ai/dsh-typert-loader/package.json +1 -1
  209. package/node_modules/@deepseek-ai/dsh-typert-registry/package.json +1 -1
  210. package/node_modules/@deepseek-ai/dsh-user-approval/package.json +1 -1
  211. package/node_modules/@deepseek-ai/dsh-user-questions/package.json +1 -1
  212. package/node_modules/@deepseek-ai/dsh-web-app/package.json +1 -1
  213. package/node_modules/@deepseek-ai/dsh-web-search-deepseek/package.json +1 -1
  214. package/node_modules/@deepseek-ai/dsh-workflow/package.json +1 -1
  215. package/node_modules/@deepseek-ai/dsh-workflow-worker-thread/package.json +1 -1
  216. package/node_modules/@deepseek-ai/dsh-workspace/package.json +1 -1
  217. package/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +1 -1
  218. package/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +1 -1
  219. package/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +1 -1
  220. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +1 -1
  221. package/node_modules/jose/dist/webapi/jwe/general/encrypt.js +1 -1
  222. package/node_modules/jose/dist/webapi/jwk/embedded.js +1 -1
  223. package/node_modules/jose/dist/webapi/jwk/thumbprint.js +1 -1
  224. package/node_modules/jose/dist/webapi/jwks/local.js +1 -1
  225. package/node_modules/jose/dist/webapi/jwks/remote.js +1 -1
  226. package/node_modules/jose/dist/webapi/jws/compact/sign.js +1 -1
  227. package/node_modules/jose/dist/webapi/jws/flattened/sign.js +1 -1
  228. package/node_modules/jose/dist/webapi/jws/flattened/verify.js +1 -1
  229. package/node_modules/jose/dist/webapi/jws/general/sign.js +1 -1
  230. package/node_modules/jose/dist/webapi/jws/general/verify.js +1 -1
  231. package/node_modules/jose/dist/webapi/jwt/decrypt.js +1 -1
  232. package/node_modules/jose/dist/webapi/jwt/encrypt.js +1 -1
  233. package/node_modules/jose/dist/webapi/jwt/sign.js +1 -1
  234. package/node_modules/jose/dist/webapi/jwt/unsecured.js +1 -1
  235. package/node_modules/jose/dist/webapi/key/generate_key_pair.js +1 -1
  236. package/node_modules/jose/dist/webapi/key/generate_secret.js +1 -1
  237. package/node_modules/jose/dist/webapi/key/import.js +1 -1
  238. package/node_modules/jose/dist/webapi/lib/asn1.js +4 -4
  239. package/node_modules/jose/dist/webapi/lib/content_encryption.js +1 -1
  240. package/node_modules/jose/dist/webapi/lib/deflate.js +1 -1
  241. package/node_modules/jose/dist/webapi/lib/helpers.js +1 -1
  242. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +1 -1
  243. package/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +1 -1
  244. package/node_modules/jose/dist/webapi/lib/jwk_metadata.js +1 -0
  245. package/node_modules/jose/dist/webapi/lib/jws_sign.js +1 -1
  246. package/node_modules/jose/dist/webapi/lib/jws_verify.js +1 -1
  247. package/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +1 -1
  248. package/node_modules/jose/dist/webapi/lib/key.js +1 -1
  249. package/node_modules/jose/dist/webapi/lib/key_management.js +1 -1
  250. package/node_modules/jose/dist/webapi/lib/key_options.js +1 -0
  251. package/node_modules/jose/dist/webapi/lib/options.js +1 -1
  252. package/node_modules/jose/dist/webapi/lib/type_checks.js +1 -1
  253. package/node_modules/jose/package.json +1 -1
  254. package/package.json +1 -1
@@ -1 +1 @@
1
- var X=Object.defineProperty;var a=(p,x)=>X(p,"name",{value:x,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-input-trigger",factory:a(p=>{var x={exports:{}},g=x.exports;Object.defineProperty(g,Symbol.toStringTag,{value:"Module"});let O=p("@deepseek-ai/cordis"),w=p("@deepseek-ai/dsh-client-runtime/client"),h=p("react/jsx-runtime"),f=p("react"),M=p("@deepseek-ai/dsh-client-ui-primitives");const C=/[\p{L}\p{N}_]/u,y=/\s/u;function A(e,t,i){if(t===0)return!0;const s=e.charAt(t-1);return y.test(s)?!0:!(C.test(s)||i==="/"&&(s==="/"||s===":"&&t>=2&&!y.test(e.charAt(t-2))))}a(A,"boundaryOk");const $=a((e,t,i)=>{if(i.tier==="frozen")return null;for(let s=t-1;s>=0;s--){const r=e.charAt(s);if(y.test(r))return null;if(!(r!=="/"&&r!=="@")&&!(i.tier==="claimed"&&r==="/")&&A(e,s,r))return{trigger:r,query:e.slice(s+1,t),position:e.search(/\S/)===s?"leading":"inline",span:{start:s,end:t,draftRev:0}}}return null},"detectTrigger"),F={open:!1,hit:null,generation:0,groups:[],highlight:null};function _(e,t){return{...e,groups:t.map(i=>({source:i,status:"pending",items:[]})),highlight:null}}a(_,"seedGroups");const v=a(e=>e.open||e.hit!==null||e.groups.length>0||e.highlight!==null?{open:!1,hit:null,generation:e.generation,groups:[],highlight:null}:e,"closed");function S(e){for(const t of e)if(t.status==="ready"&&t.items.length>0)return{source:t.source,index:0};return null}a(S,"firstHighlight");function j(e,t){if(!e)return null;const i=t.find(s=>s.source===e.source);return i&&i.status==="ready"&&e.index<i.items.length?e:null}a(j,"validHighlight");function R(e){const t=[];for(const i of e)if(i.status==="ready")for(let s=0;s<i.items.length;s++)t.push({source:i.source,index:s});return t}a(R,"positions");const k=a(e=>e.every(t=>t.status==="ready"&&t.items.length===0),"allReadyEmpty"),z=a((e,t)=>{switch(t.type){case"hit":return t.hit===null?v(e):{open:!0,hit:t.hit,generation:e.generation+1,groups:e.groups.map(i=>({source:i.source,status:"pending",items:[]})),highlight:null};case"source-settled":{if(!e.open||t.generation!==e.generation)return e;const i=e.groups.findIndex(n=>n.source===t.source);if(i<0)return e;const s=t.items??[],r=e.groups.map((n,c)=>c===i?{source:n.source,status:"ready",items:s}:n);if(k(r))return v(e);const o=j(e.highlight,r)??S(r);return{...e,groups:r,highlight:o}}case"source-failed":{if(!e.open||t.generation!==e.generation||!e.groups.some(r=>r.source===t.source))return e;const i=e.groups.filter(r=>r.source!==t.source);if(i.length===0||k(i))return v(e);const s=j(e.highlight,i)??S(i);return{...e,groups:i,highlight:s}}case"move":{if(!e.open)return e;const i=R(e.groups);if(i.length===0)return e;const s=e.highlight,r=s?i.findIndex(n=>n.source===s.source&&n.index===s.index):-1,o=i[r<0?t.dir===1?0:i.length-1:(r+t.dir+i.length)%i.length];return o===void 0||s&&o.source===s.source&&o.index===s.index?e:{...e,highlight:o}}case"close":return v(e)}},"menuReduce");var E=class{static{a(this,"InputTriggerController")}deps;menu=(0,w.createSnapshotStore)(F);launcher=(0,w.createSnapshotStore)(null);lexicon=(0,w.createSnapshotStore)(new Map);hit=null;fetch=null;disposed=!1;lexiconOffs=new Map;constructor(e){this.deps=e;const t=this.project();for(const i of e.roster.all())i.warm?.(t),this.watchLexicon(i,t);this.refreshLexicon()}track(e,t,i,s){if(this.disposed)return;const r=this.launcher.getSnapshot()!==null;this.clearLauncher();const o=$(e,t,i);if(o===null){this.hit=null,this.stopFetch(),this.reduce({type:"close"});return}const n={...o,span:{...o.span,draftRev:s}},c=this.menu.getSnapshot(),l=!r&&c.open&&c.hit!==null&&c.hit.trigger===n.trigger&&c.hit.query===n.query&&c.hit.span.start===n.span.start&&c.hit.span.end===n.span.end;if(this.hit=n,l)return;const u=this.deps.roster.sources(n.trigger);if(u.length===0){this.stopFetch(),this.reduce({type:"close"});return}(r||!c.open||c.hit===null||c.hit.trigger!==n.trigger)&&this.menu.set(_(this.menu.getSnapshot(),u.map(m=>m.name))),this.reduce({type:"hit",hit:n}),this.fetchCandidates(n,u)}toggleSource(e,t){if(this.disposed)return;if(this.launcher.getSnapshot()===e&&this.menu.getSnapshot().open){this.dismiss();return}const i=this.deps.roster.sources(t.trigger).find(s=>s.name===e);if(i===void 0){this.dismiss();return}this.stopFetch(),this.hit=t,this.launcher.set(e),this.menu.set(_(this.menu.getSnapshot(),[e])),this.reduce({type:"hit",hit:t}),this.fetchCandidates(t,[i])}pick(e,t){const i=this.menu.getSnapshot(),s=this.hit;if(this.disposed||!i.open||s===null)return;const r=i.groups.find(l=>l.source===e),o=r!==void 0&&r.status==="ready"?r.items[t]:void 0;if(o===void 0)return;const n=this.deps.roster.sources(s.trigger).find(l=>l.name===e);if(n===void 0)return;const c=n.onPick({candidate:o,session:this.project(),position:s.position,via:"menu",span:s.span});this.stopFetch(),this.reduce({type:"close"}),this.execute(c,s.span)}arbitrate(e,t){if(t||this.disposed)return"pass";const i=this.menu.getSnapshot();if(!i.open)return"pass";switch(e){case"up":return this.reduce({type:"move",dir:-1}),"consumed";case"down":return this.reduce({type:"move",dir:1}),"consumed";case"escape":return this.stopFetch(),this.reduce({type:"close"}),"consumed";case"enter":return i.highlight===null?"pass":(this.pick(i.highlight.source,i.highlight.index),"pick-highlighted")}}onSpace(){const e=this.hit;if(this.disposed||e===null||e.position!=="leading")return!1;const t=e.trigger+e.query,i=this.project();for(const s of this.deps.roster.sources(e.trigger)){if(s.matchSpace===void 0)continue;const r=s.matchSpace(i,t);if(r!==void 0)return r==="handled"?!0:this.execute(r,e.span)}return!1}serializeReference(e,t,i){const s=this.deps.roster.all().find(r=>r.name===e);return s?.codec===void 0?Promise.reject(new Error(`slash: no serializer for reference source "${e}"`)):s.codec.serialize(t,i)}async adjudicate(e,t){const i=this.project();for(const s of this.deps.roster.all()){if(t.aborted)throw t.reason instanceof Error?t.reason:new Error("slash adjudication aborted");if(s.matchEnter===void 0||!e.startsWith(s.trigger))continue;const r=await s.matchEnter(i,e,t);if(r!==void 0)return r}}sourceRemoved(e){const t=this.menu.getSnapshot();t.open&&t.hit!==null&&t.hit.trigger===e.trigger&&this.reduce({type:"source-failed",generation:t.generation,source:e.name}),this.lexiconOffs.get(e)?.(),this.lexiconOffs.delete(e),this.refreshLexicon()}sourceAdded(e){const t=this.project();e.warm?.(t),this.watchLexicon(e,t),this.refreshLexicon()}dismiss(){this.disposed||(this.stopFetch(),this.reduce({type:"close"}))}dispose(){this.disposed=!0,this.stopFetch(),this.reduce({type:"close"}),this.hit=null;for(const e of this.lexiconOffs.values())e();this.lexiconOffs.clear()}project(){return{sessionId:this.deps.sessionId}}execute(e,t){const{actx:i}=this.deps;return e===void 0||e==="handled"?!1:"claim"in e?i.bail(i,"slash/input-begin-command",{claim:e.claim,span:t})===!0:"text"in e?i.bail(i,"slash/input-insert-text",{text:e.text,span:t})===!0:i.bail(i,"slash/input-insert-reference",{reference:e.insert,span:t})===!0}refreshLexicon(){const e=this.project(),t=new Map;for(const i of this.deps.roster.all()){if(i.lexicon===void 0)continue;let s;try{s=i.lexicon(e)}catch(o){console.error(`[ui-input-trigger] source "${i.name}" lexicon failed:`,o);continue}if(s===void 0)continue;const r=t.get(i.trigger);t.set(i.trigger,r===void 0?s:[...r,...s])}this.lexicon.set(t)}watchLexicon(e,t){e.lexicon===void 0||e.subscribeLexicon===void 0||this.lexiconOffs.set(e,e.subscribeLexicon(t,()=>{this.refreshLexicon()}))}fetchCandidates(e,t){this.stopFetch();const i=new AbortController;this.fetch=i;const s=this.menu.getSnapshot().generation,r=this.project();for(const o of t)o.candidates(r,{query:e.query,position:e.position,signal:i.signal}).then(n=>{i.signal.aborted||this.reduce({type:"source-settled",generation:s,source:o.name,items:n})},n=>{i.signal.aborted||(console.error(`[ui-input-trigger] source "${o.name}" candidates failed:`,n),this.reduce({type:"source-failed",generation:s,source:o.name}))})}stopFetch(){this.fetch?.abort(),this.fetch=null}clearLauncher(){this.launcher.getSnapshot()!==null&&this.launcher.set(null)}reduce(e){const t=this.menu.getSnapshot(),i=z(t,e);i!==t&&this.menu.set(i),i.open||this.clearLauncher()}},G=class extends O.Service{static{a(this,"InputTriggerService")}static inject=["sessions"];live={sources:[],controllers:new Map};constructor(e){super(e,"inputTriggers")}registerSource(e){const{live:t}=this;if(t.sources.some(i=>i.trigger===e.trigger&&i.name===e.name))throw new Error(`slash source "${e.trigger}${e.name}" is already registered`);t.sources.push(e);for(const i of t.controllers.values())try{i.sourceAdded(e)}catch(s){console.error(`[ui-input-trigger] source "${e.trigger}${e.name}" late-registration setup failed:`,s)}return()=>{const i=t.sources.indexOf(e);if(!(i<0)){t.sources.splice(i,1);for(const s of t.controllers.values())s.sourceRemoved(e)}}}sessionOf(e){const t=this.sessions().scopeOf(e);if(t===void 0)throw new Error("slash.sessionOf requires a session scope");const{live:i}=this,s=i.controllers.get(t);if(s!==void 0)return s;const r=new E({actx:e,sessionId:t,roster:{sources:a(o=>i.sources.filter(n=>n.trigger===o).sort((n,c)=>(n.order??0)-(c.order??0)),"sources"),all:a(()=>i.sources,"all")}});return i.controllers.set(t,r),e.effect(()=>()=>{r.dispose(),i.controllers.delete(t)},"slash: session controller"),r}sessions(){const e=this.ctx.get("sessions");if(e===void 0)throw new Error("ui-input-trigger: sessions service unavailable");return e}};function L(e){var t,i,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(i=L(e[t]))&&(s&&(s+=" "),s+=i)}else for(i in e)e[i]&&(s&&(s+=" "),s+=i);return s}a(L,"r");function D(){for(var e,t,i=0,s="",r=arguments.length;i<r;i++)(e=arguments[i])&&(t=L(e))&&(s&&(s+=" "),s+=t);return s}a(D,"clsx");const H=".xmc66G_menu{z-index:100;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);min-width:min(260px,100%);max-width:min(537px,100%);max-height:320px;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;overflow:hidden}.xmc66G_viewport{flex-direction:column;min-height:0;display:flex;overflow-y:auto}.xmc66G_item{cursor:pointer;width:100%;min-height:40px;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:flex}.xmc66G_item:hover,.xmc66G_item.xmc66G_active{background:var(--dsw-alias-interactive-bg-hover)}.xmc66G_itemIcon{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.xmc66G_itemName{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}.xmc66G_itemDescription{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:1;overflow:hidden}.xmc66G_groupTitle{color:var(--dsw-alias-label-tertiary);padding:8px 10px;font-size:12px;line-height:16px}.xmc66G_loading{min-height:40px;color:var(--dsw-alias-label-dimmed);align-items:center;padding:8px 10px;font-size:14px;line-height:22px;display:flex}",I="@deepseek-ai/dsh-client-ui-input-trigger/MenuView.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(I)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-input-trigger",e.dataset.pluginCss=I,e.textContent=H,document.head.appendChild(e)}var d={menu:"xmc66G_menu",itemDescription:"xmc66G_itemDescription",itemIcon:"xmc66G_itemIcon",groupTitle:"xmc66G_groupTitle",active:"xmc66G_active",item:"xmc66G_item",loading:"xmc66G_loading",itemName:"xmc66G_itemName",viewport:"xmc66G_viewport"};const P=320;function b(e,t){return`dsh-slash-option-${e}-${t}`}a(b,"optionId");function q({menu:e,onPick:t,onDismiss:i,t:s}){const r=(0,f.useSyncExternalStore)(l=>e.subscribe(l),()=>e.getSnapshot()),o=(0,f.useRef)(null),n=(0,M.useAnchoredMaxHeight)(o,P,r),c=r.open?r.highlight:null;return(0,f.useEffect)(()=>{c!==null&&document.getElementById(b(c.source,c.index))?.scrollIntoView({block:"nearest"})},[c]),(0,f.useEffect)(()=>{if(!r.open)return;const l=a(u=>{u.target instanceof Node&&(o.current?.contains(u.target)||o.current?.closest("[data-composer-card]")?.contains(u.target)||i())},"onPointerDown");return document.addEventListener("pointerdown",l,!0),()=>{document.removeEventListener("pointerdown",l,!0)}},[r.open,i]),r.open?(0,h.jsx)("div",{ref:o,className:d.menu,style:{maxHeight:n},role:"listbox","aria-label":s("suggestions.aria"),"aria-activedescendant":c!==null?b(c.source,c.index):void 0,children:(0,h.jsx)("div",{className:d.viewport,children:r.groups.map(l=>l.status==="ready"&&l.items.length===0?null:(0,h.jsxs)(f.Fragment,{children:[(0,h.jsx)("div",{className:d.groupTitle,role:"presentation","data-source":l.source,children:s(l.source)}),l.status==="pending"?(0,h.jsx)("div",{className:d.loading,"data-source":l.source,children:s("loading")}):l.items.map((u,m)=>{const T=c!==null&&c.source===l.source&&c.index===m;return(0,h.jsxs)("button",{id:b(l.source,m),type:"button",role:"option","aria-selected":T,className:D(d.item,T&&d.active),onMouseDown:a(J=>{J.preventDefault(),t(l.source,m)},"onMouseDown"),children:[u.icon!==void 0&&(0,h.jsx)("span",{className:d.itemIcon,"aria-hidden":!0,children:u.icon}),(0,h.jsx)("span",{className:d.itemName,children:u.name}),u.description!==void 0&&(0,h.jsx)("span",{className:d.itemDescription,children:u.description})]},`${l.source}:${u.name}`)})]},l.source))})}):null}a(q,"MenuView");const V={command:"命令",skill:"技能",subagent:"子智能体",loading:"正在加载…","suggestions.aria":"触发候选建议"},W={command:"Commands",skill:"Skills",subagent:"Subagents",loading:"Loading…","suggestions.aria":"Trigger suggestions"},N="slash.menu",U=["sessions","locale"];function B(e){e.plugin(G),e.effect(()=>e.locale.register(N,{zh:V,en:W}),"ui-input-trigger: menu dictionaries"),e.inject(["slots","inputTriggers","sessions"],t=>{const i=t.inputTriggers,s=t.sessions;t.slots.inject("conversation.input.overlay",()=>t.slots.register({name:"conversation.input.overlay",id:"slash-menu",order:0,locale:N,inject:a(r=>{const o=s.scope(r);if(o===void 0)throw new Error(`ui-input-trigger: session "${String(r)}" resolved no scope`);const n=i.sessionOf(o);return{menu:n.menu,onPick:a((c,l)=>{n.pick(c,l)},"onPick"),onDismiss:a(()=>{n.dismiss()},"onDismiss")}},"inject")},q))})}return a(B,"apply"),g.InputTriggerController=E,g.InputTriggerService=G,g.apply=B,g.inject=U,x.exports},"factory")});
1
+ var X=Object.defineProperty;var a=(p,x)=>X(p,"name",{value:x,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-input-trigger",factory:a(p=>{var x={exports:{}},g=x.exports;Object.defineProperty(g,Symbol.toStringTag,{value:"Module"});let O=p("@deepseek-ai/cordis"),w=p("@deepseek-ai/dsh-client-runtime/client"),h=p("react/jsx-runtime"),f=p("react"),M=p("@deepseek-ai/dsh-client-ui-primitives");const C=/[\p{L}\p{N}_]/u,y=/\s/u;function A(e,t,i){if(t===0)return!0;const s=e.charAt(t-1);return y.test(s)?!0:!(C.test(s)||i==="/"&&(s==="/"||s===":"&&t>=2&&!y.test(e.charAt(t-2))))}a(A,"boundaryOk");const $=a((e,t,i)=>{if(i.tier==="frozen")return null;for(let s=t-1;s>=0;s--){const r=e.charAt(s);if(y.test(r))return null;if(!(r!=="/"&&r!=="@")&&!(i.tier==="claimed"&&r==="/")&&A(e,s,r))return{trigger:r,query:e.slice(s+1,t),position:e.search(/\S/)===s?"leading":"inline",span:{start:s,end:t,draftRev:0}}}return null},"detectTrigger"),F={open:!1,hit:null,generation:0,groups:[],highlight:null};function _(e,t){return{...e,groups:t.map(i=>({source:i,status:"pending",items:[]})),highlight:null}}a(_,"seedGroups");const v=a(e=>e.open||e.hit!==null||e.groups.length>0||e.highlight!==null?{open:!1,hit:null,generation:e.generation,groups:[],highlight:null}:e,"closed");function S(e){for(const t of e)if(t.status==="ready"&&t.items.length>0)return{source:t.source,index:0};return null}a(S,"firstHighlight");function j(e,t){if(!e)return null;const i=t.find(s=>s.source===e.source);return i&&i.status==="ready"&&e.index<i.items.length?e:null}a(j,"validHighlight");function R(e){const t=[];for(const i of e)if(i.status==="ready")for(let s=0;s<i.items.length;s++)t.push({source:i.source,index:s});return t}a(R,"positions");const k=a(e=>e.every(t=>t.status==="ready"&&t.items.length===0),"allReadyEmpty"),z=a((e,t)=>{switch(t.type){case"hit":return t.hit===null?v(e):{open:!0,hit:t.hit,generation:e.generation+1,groups:e.groups.map(i=>({source:i.source,status:"pending",items:[]})),highlight:null};case"source-settled":{if(!e.open||t.generation!==e.generation)return e;const i=e.groups.findIndex(n=>n.source===t.source);if(i<0)return e;const s=t.items??[],r=e.groups.map((n,c)=>c===i?{source:n.source,status:"ready",items:s}:n);if(k(r))return v(e);const o=j(e.highlight,r)??S(r);return{...e,groups:r,highlight:o}}case"source-failed":{if(!e.open||t.generation!==e.generation||!e.groups.some(r=>r.source===t.source))return e;const i=e.groups.filter(r=>r.source!==t.source);if(i.length===0||k(i))return v(e);const s=j(e.highlight,i)??S(i);return{...e,groups:i,highlight:s}}case"move":{if(!e.open)return e;const i=R(e.groups);if(i.length===0)return e;const s=e.highlight,r=s?i.findIndex(n=>n.source===s.source&&n.index===s.index):-1,o=i[r<0?t.dir===1?0:i.length-1:(r+t.dir+i.length)%i.length];return o===void 0||s&&o.source===s.source&&o.index===s.index?e:{...e,highlight:o}}case"close":return v(e)}},"menuReduce");var E=class{static{a(this,"InputTriggerController")}deps;menu=(0,w.createSnapshotStore)(F);launcher=(0,w.createSnapshotStore)(null);lexicon=(0,w.createSnapshotStore)(new Map);hit=null;fetch=null;disposed=!1;lexiconOffs=new Map;constructor(e){this.deps=e;const t=this.project();for(const i of e.roster.all())i.warm?.(t),this.watchLexicon(i,t);this.refreshLexicon()}track(e,t,i,s){if(this.disposed)return;const r=this.launcher.getSnapshot()!==null;this.clearLauncher();const o=$(e,t,i);if(o===null){this.hit=null,this.stopFetch(),this.reduce({type:"close"});return}const n={...o,span:{...o.span,draftRev:s}},c=this.menu.getSnapshot(),l=!r&&c.open&&c.hit!==null&&c.hit.trigger===n.trigger&&c.hit.query===n.query&&c.hit.span.start===n.span.start&&c.hit.span.end===n.span.end;if(this.hit=n,l)return;const u=this.deps.roster.sources(n.trigger);if(u.length===0){this.stopFetch(),this.reduce({type:"close"});return}(r||!c.open||c.hit===null||c.hit.trigger!==n.trigger)&&this.menu.set(_(this.menu.getSnapshot(),u.map(m=>m.name))),this.reduce({type:"hit",hit:n}),this.fetchCandidates(n,u)}toggleSource(e,t){if(this.disposed)return;if(this.launcher.getSnapshot()===e&&this.menu.getSnapshot().open){this.dismiss();return}const i=this.deps.roster.sources(t.trigger).find(s=>s.name===e);if(i===void 0){this.dismiss();return}this.stopFetch(),this.hit=t,this.launcher.set(e),this.menu.set(_(this.menu.getSnapshot(),[e])),this.reduce({type:"hit",hit:t}),this.fetchCandidates(t,[i])}pick(e,t){const i=this.menu.getSnapshot(),s=this.hit;if(this.disposed||!i.open||s===null)return;const r=i.groups.find(l=>l.source===e),o=r!==void 0&&r.status==="ready"?r.items[t]:void 0;if(o===void 0)return;const n=this.deps.roster.sources(s.trigger).find(l=>l.name===e);if(n===void 0)return;const c=n.onPick({candidate:o,session:this.project(),position:s.position,via:"menu",span:s.span});this.stopFetch(),this.reduce({type:"close"}),this.execute(c,s.span)}arbitrate(e,t){if(t||this.disposed)return"pass";const i=this.menu.getSnapshot();if(!i.open)return"pass";switch(e){case"up":return this.reduce({type:"move",dir:-1}),"consumed";case"down":return this.reduce({type:"move",dir:1}),"consumed";case"escape":return this.stopFetch(),this.reduce({type:"close"}),"consumed";case"enter":return i.highlight===null?"pass":(this.pick(i.highlight.source,i.highlight.index),"pick-highlighted")}}onSpace(){const e=this.hit;if(this.disposed||e===null||e.position!=="leading")return!1;const t=e.trigger+e.query,i=this.project();for(const s of this.deps.roster.sources(e.trigger)){if(s.matchSpace===void 0)continue;const r=s.matchSpace(i,t);if(r!==void 0)return r==="handled"?!0:this.execute(r,e.span)}return!1}serializeReference(e,t,i){const s=this.deps.roster.all().find(r=>r.name===e);return s?.codec===void 0?Promise.reject(new Error(`slash: no serializer for reference source "${e}"`)):s.codec.serialize(t,i)}async adjudicate(e,t){const i=this.project();for(const s of this.deps.roster.all()){if(t.aborted)throw t.reason instanceof Error?t.reason:new Error("slash adjudication aborted");if(s.matchEnter===void 0||!e.startsWith(s.trigger))continue;const r=await s.matchEnter(i,e,t);if(r!==void 0)return r}}sourceRemoved(e){const t=this.menu.getSnapshot();t.open&&t.hit!==null&&t.hit.trigger===e.trigger&&this.reduce({type:"source-failed",generation:t.generation,source:e.name}),this.lexiconOffs.get(e)?.(),this.lexiconOffs.delete(e),this.refreshLexicon()}sourceAdded(e){const t=this.project();e.warm?.(t),this.watchLexicon(e,t),this.refreshLexicon()}dismiss(){this.disposed||(this.stopFetch(),this.reduce({type:"close"}))}dispose(){this.disposed=!0,this.stopFetch(),this.reduce({type:"close"}),this.hit=null;for(const e of this.lexiconOffs.values())e();this.lexiconOffs.clear()}project(){return{sessionId:this.deps.sessionId}}execute(e,t){const{actx:i}=this.deps;return e===void 0||e==="handled"?!1:"claim"in e?i.bail(i,"slash/input-begin-command",{claim:e.claim,span:t})===!0:"text"in e?i.bail(i,"slash/input-insert-text",{text:e.text,span:t})===!0:i.bail(i,"slash/input-insert-reference",{reference:e.insert,span:t})===!0}refreshLexicon(){const e=this.project(),t=new Map;for(const i of this.deps.roster.all()){if(i.lexicon===void 0)continue;let s;try{s=i.lexicon(e)}catch(o){console.error(`[ui-input-trigger] source "${i.name}" lexicon failed:`,o);continue}if(s===void 0)continue;const r=t.get(i.trigger);t.set(i.trigger,r===void 0?s:[...r,...s])}this.lexicon.set(t)}watchLexicon(e,t){e.lexicon===void 0||e.subscribeLexicon===void 0||this.lexiconOffs.set(e,e.subscribeLexicon(t,()=>{this.refreshLexicon()}))}fetchCandidates(e,t){this.stopFetch();const i=new AbortController;this.fetch=i;const s=this.menu.getSnapshot().generation,r=this.project();for(const o of t)o.candidates(r,{query:e.query,position:e.position,signal:i.signal}).then(n=>{i.signal.aborted||this.reduce({type:"source-settled",generation:s,source:o.name,items:n})},n=>{i.signal.aborted||(console.error(`[ui-input-trigger] source "${o.name}" candidates failed:`,n),this.reduce({type:"source-failed",generation:s,source:o.name}))})}stopFetch(){this.fetch?.abort(),this.fetch=null}clearLauncher(){this.launcher.getSnapshot()!==null&&this.launcher.set(null)}reduce(e){const t=this.menu.getSnapshot(),i=z(t,e);i!==t&&this.menu.set(i),i.open||this.clearLauncher()}},G=class extends O.Service{static{a(this,"InputTriggerService")}static inject=["sessions"];live={sources:[],controllers:new Map};constructor(e){super(e,"inputTriggers")}registerSource(e){const{live:t}=this;if(t.sources.some(i=>i.trigger===e.trigger&&i.name===e.name))throw new Error(`slash source "${e.trigger}${e.name}" is already registered`);t.sources.push(e);for(const i of t.controllers.values())try{i.sourceAdded(e)}catch(s){console.error(`[ui-input-trigger] source "${e.trigger}${e.name}" late-registration setup failed:`,s)}return()=>{const i=t.sources.indexOf(e);if(!(i<0)){t.sources.splice(i,1);for(const s of t.controllers.values())s.sourceRemoved(e)}}}sessionOf(e){const t=this.sessions().scopeOf(e);if(t===void 0)throw new Error("slash.sessionOf requires a session scope");const{live:i}=this,s=i.controllers.get(t);if(s!==void 0)return s;const r=new E({actx:e,sessionId:t,roster:{sources:a(o=>i.sources.filter(n=>n.trigger===o).sort((n,c)=>(n.order??0)-(c.order??0)),"sources"),all:a(()=>i.sources,"all")}});return i.controllers.set(t,r),e.effect(()=>()=>{r.dispose(),i.controllers.delete(t)},"slash: session controller"),r}sessions(){const e=this.ctx.get("sessions");if(e===void 0)throw new Error("ui-input-trigger: sessions service unavailable");return e}};function L(e){var t,i,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(i=L(e[t]))&&(s&&(s+=" "),s+=i)}else for(i in e)e[i]&&(s&&(s+=" "),s+=i);return s}a(L,"r");function D(){for(var e,t,i=0,s="",r=arguments.length;i<r;i++)(e=arguments[i])&&(t=L(e))&&(s&&(s+=" "),s+=t);return s}a(D,"clsx");const H=".xmc66G_menu{z-index:100;--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);min-width:min(260px,100%);max-width:min(537px,100%);max-height:320px;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0;overflow:hidden}.xmc66G_viewport{flex-direction:column;min-height:0;display:flex;overflow-y:auto}.xmc66G_item{cursor:pointer;width:100%;min-height:40px;color:var(--dsw-alias-label-primary);text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:flex}.xmc66G_item:hover,.xmc66G_item.xmc66G_active{background:var(--dsw-alias-interactive-bg-hover)}.xmc66G_itemIcon{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.xmc66G_itemName{text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}.xmc66G_itemDescription{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:1;overflow:hidden}.xmc66G_groupTitle{color:var(--dsw-alias-label-tertiary);padding:8px 10px;font-size:12px;line-height:16px}.xmc66G_loading{min-height:40px;color:var(--dsw-alias-label-dimmed);align-items:center;padding:8px 10px;font-size:14px;line-height:22px;display:flex}",I="@deepseek-ai/dsh-client-ui-input-trigger/MenuView.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(I)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-input-trigger",e.dataset.pluginCss=I,e.textContent=H,document.head.appendChild(e)}var d={loading:"xmc66G_loading",itemDescription:"xmc66G_itemDescription",viewport:"xmc66G_viewport",item:"xmc66G_item",itemName:"xmc66G_itemName",menu:"xmc66G_menu",itemIcon:"xmc66G_itemIcon",active:"xmc66G_active",groupTitle:"xmc66G_groupTitle"};const P=320;function b(e,t){return`dsh-slash-option-${e}-${t}`}a(b,"optionId");function q({menu:e,onPick:t,onDismiss:i,t:s}){const r=(0,f.useSyncExternalStore)(l=>e.subscribe(l),()=>e.getSnapshot()),o=(0,f.useRef)(null),n=(0,M.useAnchoredMaxHeight)(o,P,r),c=r.open?r.highlight:null;return(0,f.useEffect)(()=>{c!==null&&document.getElementById(b(c.source,c.index))?.scrollIntoView({block:"nearest"})},[c]),(0,f.useEffect)(()=>{if(!r.open)return;const l=a(u=>{u.target instanceof Node&&(o.current?.contains(u.target)||o.current?.closest("[data-composer-card]")?.contains(u.target)||i())},"onPointerDown");return document.addEventListener("pointerdown",l,!0),()=>{document.removeEventListener("pointerdown",l,!0)}},[r.open,i]),r.open?(0,h.jsx)("div",{ref:o,className:d.menu,style:{maxHeight:n},role:"listbox","aria-label":s("suggestions.aria"),"aria-activedescendant":c!==null?b(c.source,c.index):void 0,children:(0,h.jsx)("div",{className:d.viewport,children:r.groups.map(l=>l.status==="ready"&&l.items.length===0?null:(0,h.jsxs)(f.Fragment,{children:[(0,h.jsx)("div",{className:d.groupTitle,role:"presentation","data-source":l.source,children:s(l.source)}),l.status==="pending"?(0,h.jsx)("div",{className:d.loading,"data-source":l.source,children:s("loading")}):l.items.map((u,m)=>{const T=c!==null&&c.source===l.source&&c.index===m;return(0,h.jsxs)("button",{id:b(l.source,m),type:"button",role:"option","aria-selected":T,className:D(d.item,T&&d.active),onMouseDown:a(J=>{J.preventDefault(),t(l.source,m)},"onMouseDown"),children:[u.icon!==void 0&&(0,h.jsx)("span",{className:d.itemIcon,"aria-hidden":!0,children:u.icon}),(0,h.jsx)("span",{className:d.itemName,children:u.name}),u.description!==void 0&&(0,h.jsx)("span",{className:d.itemDescription,children:u.description})]},`${l.source}:${u.name}`)})]},l.source))})}):null}a(q,"MenuView");const V={command:"命令",skill:"技能",subagent:"子智能体",loading:"正在加载…","suggestions.aria":"触发候选建议"},W={command:"Commands",skill:"Skills",subagent:"Subagents",loading:"Loading…","suggestions.aria":"Trigger suggestions"},N="slash.menu",U=["sessions","locale"];function B(e){e.plugin(G),e.effect(()=>e.locale.register(N,{zh:V,en:W}),"ui-input-trigger: menu dictionaries"),e.inject(["slots","inputTriggers","sessions"],t=>{const i=t.inputTriggers,s=t.sessions;t.slots.inject("conversation.input.overlay",()=>t.slots.register({name:"conversation.input.overlay",id:"slash-menu",order:0,locale:N,inject:a(r=>{const o=s.scope(r);if(o===void 0)throw new Error(`ui-input-trigger: session "${String(r)}" resolved no scope`);const n=i.sessionOf(o);return{menu:n.menu,onPick:a((c,l)=>{n.pick(c,l)},"onPick"),onDismiss:a(()=>{n.dismiss()},"onDismiss")}},"inject")},q))})}return a(B,"apply"),g.InputTriggerController=E,g.InputTriggerService=G,g.apply=B,g.inject=U,x.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-input-trigger","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"license":"MIT","dependencies":{"clsx":"^2.0.0"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-input-trigger","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-locale"],"platform":"web"}},"license":"MIT","dependencies":{"clsx":"^2.0.0"},"peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1"}}
@@ -1 +1 @@
1
- var $=Object.defineProperty;var l=(p,g)=>$(p,"name",{value:g,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-jobs",factory:l(p=>{var g={exports:{}},h=g.exports;Object.defineProperty(h,Symbol.toStringTag,{value:"Module"});let a=p("react/jsx-runtime"),u=p("react"),w=p("@deepseek-ai/dsh-client-ui-primitives");const k=".Awy8zq_root{position:relative}.Awy8zq_trigger{min-height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:3px;padding:3px 2px;font-size:12px;line-height:18px;display:inline-flex}.Awy8zq_trigger:hover,.Awy8zq_trigger:focus-visible{color:var(--dsw-alias-label-secondary)}.Awy8zq_trigger svg{transition:transform .12s}.Awy8zq_triggerOpen{transform:rotate(180deg)}.Awy8zq_triggerDot{flex:none}.Awy8zq_count{margin:0 5px}.Awy8zq_menu{z-index:100;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);width:336px;max-width:min(400px,100vw - 32px);max-height:min(420px,100vh - 140px);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;gap:1px;margin:0;padding:4px;list-style:none;display:flex;position:absolute;top:calc(100% + 5px);left:0;overflow:auto}.Awy8zq_row{box-sizing:border-box;width:100%;min-height:32px;color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;line-height:18px;display:flex}.Awy8zq_rowSettled{color:var(--dsw-alias-label-tertiary)}.Awy8zq_rowDot{flex:none}.Awy8zq_kind{background:var(--dsw-alias-fill-l2);color:var(--dsw-alias-label-secondary);border-radius:5px;flex:none;padding:0 6px;font-size:11px;line-height:18px}.Awy8zq_label{min-width:0;font-family:var(--dsw-font-mono);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.Awy8zq_status,.Awy8zq_duration{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;line-height:18px}.Awy8zq_status{white-space:nowrap;text-overflow:ellipsis;max-width:40%;overflow:hidden}.Awy8zq_duration{font-variant-numeric:tabular-nums}",y="@deepseek-ai/dsh-client-ui-jobs/JobListAction.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(y)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-jobs",e.dataset.pluginCss=y,e.textContent=k,document.head.appendChild(e)}var i={trigger:"Awy8zq_trigger",rowSettled:"Awy8zq_rowSettled",menu:"Awy8zq_menu",kind:"Awy8zq_kind",status:"Awy8zq_status",duration:"Awy8zq_duration",label:"Awy8zq_label",count:"Awy8zq_count",rowDot:"Awy8zq_rowDot",root:"Awy8zq_root",triggerDot:"Awy8zq_triggerDot",row:"Awy8zq_row",triggerOpen:"Awy8zq_triggerOpen"};const j=[];function f(e){return e.status==="running"||e.status==="stopping"}l(f,"isLive");function b(e){throw new Error(`unhandled job status: ${JSON.stringify(e)}`)}l(b,"assertNever");function D(e){switch(e){case"running":return"ongoing";case"stopping":return"warning";case"completed":return"done";case"killed":return"warning";case"failed":return"error";default:return b(e)}}l(D,"dotState");function N(e,n){switch(e){case"running":return n("status.running");case"stopping":return n("status.stopping");case"completed":return n("status.completed");case"killed":return n("status.killed");case"failed":return n("status.failed");default:return b(e)}}l(N,"statusLabel");function S(e,n){const r=Math.max(0,Math.floor(e/1e3)),s=r%60,o=Math.floor(r/60)%60,d=Math.floor(r/3600);return d>0?n("duration.hours",{hours:d,minutes:o}):o>0?n("duration.minutes",{minutes:o,seconds:s}):n("duration.seconds",{seconds:s})}l(S,"formatDuration");function O(e){return[...e].sort((n,r)=>{const s=f(n);if(s!==f(r))return s?-1:1;if(s)return n.startedAt-r.startedAt;const o=(r.finishedAt??r.startedAt)-(n.finishedAt??n.startedAt);return o!==0?o:n.startedAt-r.startedAt})}l(O,"ordered");function L({sessionId:e,useSessions:n,t:r}){const s=n(t=>t.jobsBySession[e])??j,[o,d]=(0,u.useState)(!1),[R,m]=(0,u.useState)(()=>Date.now()),v=(0,u.useRef)(null),A=(0,u.useRef)(null),I=(0,u.useMemo)(()=>O(s),[s]),c=(0,u.useMemo)(()=>s.filter(f).length,[s]);if((0,w.useDismissOnOutsidePointer)(v,o,d),(0,u.useEffect)(()=>{if(!o||c===0)return;m(Date.now());const t=setInterval(()=>{m(Date.now())},1e3);return()=>{clearInterval(t)}},[o,c]),(0,u.useEffect)(()=>{s.length===0&&o&&d(!1)},[s.length,o]),s.length===0)return null;const _=r(c>0?c===1?"count.live.one":"count.live.other":s.length===1?"count.idle.one":"count.idle.other",{count:c>0?c:s.length}),T=l(t=>{t.key!=="Escape"||!o||(t.preventDefault(),d(!1),A.current?.focus())},"onKeyDown");return(0,a.jsxs)("div",{ref:v,className:i.root,onKeyDown:T,children:[(0,a.jsxs)("button",{ref:A,type:"button",className:i.trigger,"aria-expanded":o,"aria-label":_,onClick:l(()=>{m(Date.now()),d(t=>!t)},"onClick"),children:[c>0?(0,a.jsx)(w.StateDot,{state:"ongoing",className:i.triggerDot}):null,(0,a.jsx)("span",{className:i.count,children:_}),(0,a.jsx)(w.IconChevronDownOutline14,{className:o?i.triggerOpen:void 0})]}),o?(0,a.jsx)("ul",{className:i.menu,"aria-label":r("list.aria"),children:I.map(t=>{const x=f(t),z=S(x?R-t.startedAt:(t.finishedAt??t.startedAt)-t.startedAt,r),q=N(t.status,r);return(0,a.jsxs)("li",{className:x?i.row:`${i.row} ${i.rowSettled}`,children:[(0,a.jsx)(w.StateDot,{state:D(t.status),className:i.rowDot}),(0,a.jsx)("span",{className:i.kind,children:t.kind}),(0,a.jsx)("span",{className:i.label,title:t.label,children:t.label}),(0,a.jsx)("span",{className:i.status,title:t.detail??q,children:t.detail??q}),(0,a.jsx)("span",{className:i.duration,title:r(x?"duration.title.live":"duration.title.done",{duration:z}),children:z})]},t.id)})}):null]})}l(L,"JobListAction");const M={"count.live.one":"{count} 个后台任务运行中","count.live.other":"{count} 个后台任务运行中","count.idle.one":"{count} 个后台任务","count.idle.other":"{count} 个后台任务","list.aria":"后台任务","status.running":"运行中","status.stopping":"正在停止","status.completed":"已完成","status.killed":"已取消","status.failed":"已失败","duration.seconds":"{seconds}秒","duration.minutes":"{minutes}分{seconds}秒","duration.hours":"{hours}小时{minutes}分","duration.title.live":"已运行 {duration}","duration.title.done":"耗时 {duration}"},C={"count.live.one":"{count} background job running","count.live.other":"{count} background jobs running","count.idle.one":"{count} background job","count.idle.other":"{count} background jobs","list.aria":"Background jobs","status.running":"running","status.stopping":"stopping","status.completed":"completed","status.killed":"cancelled","status.failed":"failed","duration.seconds":"{seconds}s","duration.minutes":"{minutes}m {seconds}s","duration.hours":"{hours}h {minutes}m","duration.title.live":"Running for {duration}","duration.title.done":"Took {duration}"},E=["sessions","slots","locale"];function J(e){e.effect(()=>e.locale.register("job",{zh:M,en:C}),"ui-job: dictionaries"),e.slots.inject("conversation.session.header.actions",()=>e.slots.register({name:"conversation.session.header.actions",id:"job-list",order:20,locale:"job"},L))}return l(J,"apply"),h.apply=J,h.inject=E,g.exports},"factory")});
1
+ var $=Object.defineProperty;var l=(p,g)=>$(p,"name",{value:g,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-jobs",factory:l(p=>{var g={exports:{}},h=g.exports;Object.defineProperty(h,Symbol.toStringTag,{value:"Module"});let a=p("react/jsx-runtime"),u=p("react"),w=p("@deepseek-ai/dsh-client-ui-primitives");const k=".Awy8zq_root{position:relative}.Awy8zq_trigger{min-height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:3px;padding:3px 2px;font-size:12px;line-height:18px;display:inline-flex}.Awy8zq_trigger:hover,.Awy8zq_trigger:focus-visible{color:var(--dsw-alias-label-secondary)}.Awy8zq_trigger svg{transition:transform .12s}.Awy8zq_triggerOpen{transform:rotate(180deg)}.Awy8zq_triggerDot{flex:none}.Awy8zq_count{margin:0 5px}.Awy8zq_menu{z-index:100;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-specific-menu);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);width:336px;max-width:min(400px,100vw - 32px);max-height:min(420px,100vh - 140px);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;gap:1px;margin:0;padding:4px;list-style:none;display:flex;position:absolute;top:calc(100% + 5px);left:0;overflow:auto}.Awy8zq_row{box-sizing:border-box;width:100%;min-height:32px;color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;line-height:18px;display:flex}.Awy8zq_rowSettled{color:var(--dsw-alias-label-tertiary)}.Awy8zq_rowDot{flex:none}.Awy8zq_kind{background:var(--dsw-alias-fill-l2);color:var(--dsw-alias-label-secondary);border-radius:5px;flex:none;padding:0 6px;font-size:11px;line-height:18px}.Awy8zq_label{min-width:0;font-family:var(--dsw-font-mono);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.Awy8zq_status,.Awy8zq_duration{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;line-height:18px}.Awy8zq_status{white-space:nowrap;text-overflow:ellipsis;max-width:40%;overflow:hidden}.Awy8zq_duration{font-variant-numeric:tabular-nums}",y="@deepseek-ai/dsh-client-ui-jobs/JobListAction.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(y)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-jobs",e.dataset.pluginCss=y,e.textContent=k,document.head.appendChild(e)}var i={triggerOpen:"Awy8zq_triggerOpen",count:"Awy8zq_count",duration:"Awy8zq_duration",triggerDot:"Awy8zq_triggerDot",rowSettled:"Awy8zq_rowSettled",menu:"Awy8zq_menu",kind:"Awy8zq_kind",label:"Awy8zq_label",rowDot:"Awy8zq_rowDot",status:"Awy8zq_status",root:"Awy8zq_root",trigger:"Awy8zq_trigger",row:"Awy8zq_row"};const j=[];function f(e){return e.status==="running"||e.status==="stopping"}l(f,"isLive");function b(e){throw new Error(`unhandled job status: ${JSON.stringify(e)}`)}l(b,"assertNever");function D(e){switch(e){case"running":return"ongoing";case"stopping":return"warning";case"completed":return"done";case"killed":return"warning";case"failed":return"error";default:return b(e)}}l(D,"dotState");function N(e,n){switch(e){case"running":return n("status.running");case"stopping":return n("status.stopping");case"completed":return n("status.completed");case"killed":return n("status.killed");case"failed":return n("status.failed");default:return b(e)}}l(N,"statusLabel");function S(e,n){const r=Math.max(0,Math.floor(e/1e3)),s=r%60,o=Math.floor(r/60)%60,d=Math.floor(r/3600);return d>0?n("duration.hours",{hours:d,minutes:o}):o>0?n("duration.minutes",{minutes:o,seconds:s}):n("duration.seconds",{seconds:s})}l(S,"formatDuration");function O(e){return[...e].sort((n,r)=>{const s=f(n);if(s!==f(r))return s?-1:1;if(s)return n.startedAt-r.startedAt;const o=(r.finishedAt??r.startedAt)-(n.finishedAt??n.startedAt);return o!==0?o:n.startedAt-r.startedAt})}l(O,"ordered");function L({sessionId:e,useSessions:n,t:r}){const s=n(t=>t.jobsBySession[e])??j,[o,d]=(0,u.useState)(!1),[R,m]=(0,u.useState)(()=>Date.now()),v=(0,u.useRef)(null),A=(0,u.useRef)(null),I=(0,u.useMemo)(()=>O(s),[s]),c=(0,u.useMemo)(()=>s.filter(f).length,[s]);if((0,w.useDismissOnOutsidePointer)(v,o,d),(0,u.useEffect)(()=>{if(!o||c===0)return;m(Date.now());const t=setInterval(()=>{m(Date.now())},1e3);return()=>{clearInterval(t)}},[o,c]),(0,u.useEffect)(()=>{s.length===0&&o&&d(!1)},[s.length,o]),s.length===0)return null;const _=r(c>0?c===1?"count.live.one":"count.live.other":s.length===1?"count.idle.one":"count.idle.other",{count:c>0?c:s.length}),T=l(t=>{t.key!=="Escape"||!o||(t.preventDefault(),d(!1),A.current?.focus())},"onKeyDown");return(0,a.jsxs)("div",{ref:v,className:i.root,onKeyDown:T,children:[(0,a.jsxs)("button",{ref:A,type:"button",className:i.trigger,"aria-expanded":o,"aria-label":_,onClick:l(()=>{m(Date.now()),d(t=>!t)},"onClick"),children:[c>0?(0,a.jsx)(w.StateDot,{state:"ongoing",className:i.triggerDot}):null,(0,a.jsx)("span",{className:i.count,children:_}),(0,a.jsx)(w.IconChevronDownOutline14,{className:o?i.triggerOpen:void 0})]}),o?(0,a.jsx)("ul",{className:i.menu,"aria-label":r("list.aria"),children:I.map(t=>{const x=f(t),z=S(x?R-t.startedAt:(t.finishedAt??t.startedAt)-t.startedAt,r),q=N(t.status,r);return(0,a.jsxs)("li",{className:x?i.row:`${i.row} ${i.rowSettled}`,children:[(0,a.jsx)(w.StateDot,{state:D(t.status),className:i.rowDot}),(0,a.jsx)("span",{className:i.kind,children:t.kind}),(0,a.jsx)("span",{className:i.label,title:t.label,children:t.label}),(0,a.jsx)("span",{className:i.status,title:t.detail??q,children:t.detail??q}),(0,a.jsx)("span",{className:i.duration,title:r(x?"duration.title.live":"duration.title.done",{duration:z}),children:z})]},t.id)})}):null]})}l(L,"JobListAction");const M={"count.live.one":"{count} 个后台任务运行中","count.live.other":"{count} 个后台任务运行中","count.idle.one":"{count} 个后台任务","count.idle.other":"{count} 个后台任务","list.aria":"后台任务","status.running":"运行中","status.stopping":"正在停止","status.completed":"已完成","status.killed":"已取消","status.failed":"已失败","duration.seconds":"{seconds}秒","duration.minutes":"{minutes}分{seconds}秒","duration.hours":"{hours}小时{minutes}分","duration.title.live":"已运行 {duration}","duration.title.done":"耗时 {duration}"},C={"count.live.one":"{count} background job running","count.live.other":"{count} background jobs running","count.idle.one":"{count} background job","count.idle.other":"{count} background jobs","list.aria":"Background jobs","status.running":"running","status.stopping":"stopping","status.completed":"completed","status.killed":"cancelled","status.failed":"failed","duration.seconds":"{seconds}s","duration.minutes":"{minutes}m {seconds}s","duration.hours":"{hours}h {minutes}m","duration.title.live":"Running for {duration}","duration.title.done":"Took {duration}"},E=["sessions","slots","locale"];function J(e){e.effect(()=>e.locale.register("job",{zh:M,en:C}),"ui-job: dictionaries"),e.slots.inject("conversation.session.header.actions",()=>e.slots.register({name:"conversation.session.header.actions",id:"job-list",order:20,locale:"job"},L))}return l(J,"apply"),h.apply=J,h.inject=E,g.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-jobs","version":"0.1.0-rc.7","type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-primitives"],"platform":"web"}},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"react":"^18.2.0"},"peerDependencies":{"@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-jobs","version":"0.1.0-rc.7","type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-primitives"],"platform":"web"}},"license":"MIT","publishConfig":{"access":"public"},"dependencies":{"react":"^18.2.0"},"peerDependencies":{"@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-jsapi-bridge","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"license":"MIT","dependencies":{"@deepseek-ai/dsh-browser-jsapi":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-jsapi-bridge","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime"],"platform":"web"}},"license":"MIT","dependencies":{"@deepseek-ai/dsh-browser-jsapi":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/schemastery":"^3.18.1"},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7"}}
@@ -1 +1 @@
1
- var G=Object.defineProperty;var s=(p,v)=>G(p,"name",{value:v,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-layout",factory:s(p=>{var v={exports:{}},y=v.exports;Object.defineProperty(y,Symbol.toStringTag,{value:"Module"});let d=p("react/jsx-runtime"),a=p("react"),P=p("@deepseek-ai/dsh-client-runtime/client");const A=1024;function I(e,n,t){return Math.min(t,Math.max(n,Math.round(e)))}s(I,"clampWidth");function M(e,n,t){const r=n===0?56:I(n,264,420),o=t===0?0:I(t,300,520);if(r+o+640<=e)return{sidebar:r,center:e-r-o,details:o};const l=o===0?0:Math.max(300,e-r-640);return r+l+640<=e?{sidebar:r,center:640,details:l}:{sidebar:r,center:Math.max(0,e-r),details:0}}s(M,"computeColumns");const L='.FIq4Iq_frame{background:var(--dsw-alias-bg-base);height:100%;transition:grid-template-columns var(--ds-transition-duration-slow) var(--ds-ease-in-out);grid-template-rows:100%;display:grid;position:relative;overflow:hidden}.FIq4Iq_frame[data-dragging]{transition:none}@media (prefers-reduced-motion:reduce){.FIq4Iq_frame{transition:none}}.FIq4Iq_sidebarCol{background:var(--dsw-specific-sidebar-fill);border-right:1px solid var(--dsw-alias-border-l1);min-width:0;overflow:hidden}.FIq4Iq_centerCol{flex-direction:column;min-width:0;display:flex;overflow:hidden}.FIq4Iq_detailsCol{border-left:1px solid var(--dsw-alias-border-l2);min-width:0;overflow:hidden}.FIq4Iq_frame[data-details-collapsed] .FIq4Iq_detailsCol{border-left:none}.FIq4Iq_handle{cursor:col-resize;z-index:2;touch-action:none;width:8px;transition:left var(--ds-transition-duration-slow) var(--ds-ease-in-out);margin-left:-4px;position:absolute;top:0;bottom:0}.FIq4Iq_frame[data-dragging] .FIq4Iq_handle{transition:none}@media (prefers-reduced-motion:reduce){.FIq4Iq_handle{transition:none}}.FIq4Iq_handle[data-side=details]:after{content:"";box-sizing:border-box;background:var(--dsw-alias-button-floating-fill);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);opacity:0;width:12px;height:32px;transition:opacity var(--ds-transition-duration-slow) var(--ds-ease-in-out), background var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.FIq4Iq_detailsCol:hover~.FIq4Iq_handle[data-side=details]:after,.FIq4Iq_handle[data-side=details]:hover:after,.FIq4Iq_handle[data-side=details][data-dragging=true]:after{opacity:1}.FIq4Iq_handle[data-side=details]:hover:after,.FIq4Iq_handle[data-side=details][data-dragging=true]:after{background:var(--dsw-alias-button-floating-hover);border-color:var(--dsw-alias-border-l3)}.FIq4Iq_overlayLayer{z-index:20;pointer-events:none;position:absolute;inset:0}.FIq4Iq_overlayLayer>*{pointer-events:auto}',k="@deepseek-ai/dsh-client-ui-layout/AppFrame.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(k)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-layout",e.dataset.pluginCss=k,e.textContent=L,document.head.appendChild(e)}var h={centerCol:"FIq4Iq_centerCol",detailsCol:"FIq4Iq_detailsCol",sidebarCol:"FIq4Iq_sidebarCol",handle:"FIq4Iq_handle",frame:"FIq4Iq_frame",overlayLayer:"FIq4Iq_overlayLayer"};function N(e){return(0,d.jsx)("div",{className:h.centerCol,children:e.children})}s(N,"CenterColumn");function O(e){return(0,d.jsx)("div",{className:h.detailsCol,children:e.children})}s(O,"DetailsColumn");function F(e){const[n,t]=(0,a.useState)(!1),r=(0,a.useRef)(0),o=(0,a.useRef)(0),l=(0,a.useRef)(null),m=(0,a.useRef)({onStart:e.onStart,onDrag:e.onDrag,onEnd:e.onEnd});m.current={onStart:e.onStart,onDrag:e.onDrag,onEnd:e.onEnd};const g=(0,a.useCallback)(i=>{i.preventDefault(),i.currentTarget.setPointerCapture(i.pointerId),r.current=i.clientX,o.current=i.clientX,m.current.onStart(),t(!0)},[]),w=(0,a.useCallback)(i=>{i.currentTarget.hasPointerCapture(i.pointerId)&&(o.current=i.clientX,l.current??=requestAnimationFrame(()=>{l.current=null,m.current.onDrag(o.current-r.current)}))},[]),b=(0,a.useCallback)(i=>{i.currentTarget.hasPointerCapture(i.pointerId)&&(i.currentTarget.releasePointerCapture(i.pointerId),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),m.current.onDrag(o.current-r.current),t(!1),m.current.onEnd())},[]);return(0,d.jsx)("div",{className:h.handle,style:{left:e.left},"data-side":e.side,"data-dragging":n||void 0,onPointerDown:g,onPointerMove:w,onPointerUp:b})}s(F,"DragHandle");function z({useStore:e,useSessions:n,actions:t,renderSlot:r}){const o=e(c=>c),l=n(c=>{const f=c.current;return f!==void 0&&c.byId[f]?.blank===!1?f:void 0}),m=(0,a.useRef)(null),[g,w]=(0,a.useState)(()=>window.innerWidth),b=(0,a.useRef)(l);(0,a.useLayoutEffect)(()=>{l!==void 0&&(b.current!==void 0&&b.current!==l&&t.closeDetails(),b.current=l)},[t,l]),(0,a.useEffect)(()=>{const c=m.current;if(c===null)return;let f=null;const T=new ResizeObserver(()=>{f??=requestAnimationFrame(()=>{f=null;const R=c.getBoundingClientRect().width;R>0&&w(R)})});return T.observe(c),()=>{T.disconnect(),f!==null&&cancelAnimationFrame(f)}},[]);const i=g<A;(0,a.useEffect)(()=>{t.setNarrow(i)},[t,i]);const q=i?!o.narrowExpanded:o.sidebar===0,u=M(g,q?0:o.sidebar===0?280:o.sidebar,l===void 0?0:o.details),_=(0,a.useRef)(u);_.current=u;const S=(0,a.useRef)(0),E=(0,a.useRef)(0),[$,x]=(0,a.useState)(!1),j=(0,a.useCallback)(()=>{x(!1)},[]),H=(0,a.useCallback)(()=>{S.current=_.current.sidebar,x(!0)},[]),J=(0,a.useCallback)(()=>{E.current=_.current.details,x(!0)},[]),K=(0,a.useCallback)(c=>{t.setSidebar(S.current+c)},[t]),V=(0,a.useCallback)(c=>{t.setDetails(E.current-c)},[t]);return(0,d.jsxs)("div",{ref:m,className:h.frame,style:{gridTemplateColumns:`${u.sidebar}px minmax(0, 1fr) ${u.details}px`},"data-sidebar-collapsed":q||void 0,"data-details-collapsed":u.details===0||void 0,"data-dragging":$||void 0,children:[(0,d.jsx)("div",{className:h.sidebarCol,children:r("sidebar",{collapsed:q,width:u.sidebar})}),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(N,{children:r("conversation",{})}),(0,d.jsx)(O,{children:r("details",{})})]}),(0,d.jsx)("div",{className:h.overlayLayer,"data-shell-overlay":!0,children:r("shell.overlay",{})}),!q&&(0,d.jsx)(F,{side:"sidebar",left:u.sidebar,onStart:H,onDrag:K,onEnd:j}),u.details>0&&(0,d.jsx)(F,{side:"details",left:g-u.details,onStart:J,onDrag:V,onEnd:j})]})}s(z,"AppFrame");function B(){return(0,P.defineStore)({init:s(()=>({sidebar:280,details:0,narrow:!1,narrowExpanded:!1}),"init"),actions:{setSidebar:s((e,n)=>{e.sidebar=I(n,264,420)},"setSidebar"),setDetails:s((e,n)=>{e.details=I(n,300,520)},"setDetails"),toggleSidebar:s(e=>{e.narrow?e.narrowExpanded=!e.narrowExpanded:e.sidebar=e.sidebar===0?280:0},"toggleSidebar"),setNarrow:s((e,n)=>{e.narrow!==n&&(e.narrow=n,e.narrowExpanded=!1)},"setNarrow"),openDetails:s(e=>{e.details===0&&(e.details=360)},"openDetails"),closeDetails:s(e=>{e.details=0},"closeDetails")}})}s(B,"createLayoutStore");var D=class{static{s(this,"LayoutController")}#e;attachPanels(e){this.#e=e}toggleSidebar(){this.#t().toggleSidebar()}openDetails(){this.#t().openDetails()}closeDetails(){this.#t().closeDetails()}#t(){if(this.#e===void 0)throw new Error("layout: panel actions not wired (root entry not mounted)");return this.#e}};const C="data-ds-dark-theme";var U=class{static{s(this,"ThemePresenter")}appliedTokens=[];themeColorMeta;constructor(){this.themeColorMeta=document.createElement("meta"),this.themeColorMeta.name="theme-color"}apply(e){const n=e.active.colorScheme;document.documentElement.style.colorScheme=n;const t=document.body;n==="dark"?t.setAttribute(C,""):t.removeAttribute(C);for(const r of this.appliedTokens)t.style.removeProperty(r);this.appliedTokens=[];for(const[r,o]of Object.entries(e.active.tokens))t.style.setProperty(r,o),this.appliedTokens.push(r);this.themeColorMeta.content=getComputedStyle(t).backgroundColor,this.themeColorMeta.isConnected||document.head.append(this.themeColorMeta)}dispose(){document.documentElement.style.removeProperty("color-scheme");const e=document.body;e.removeAttribute(C);for(const n of this.appliedTokens)e.style.removeProperty(n);this.appliedTokens=[],this.themeColorMeta.remove()}};const X=["slots","theme"];function W(e){const n=new D;e.effect(()=>{const t=e.reflect.provide("layout",n),r=e.slots.register({name:"root",children:{sidebar:{kind:"single",scope:"root"},conversation:{kind:"single",scope:"session-maybe"},details:{kind:"single",scope:"session"},"shell.overlay":{kind:"list",scope:"root"}},store:B,inject:s(o=>(n.attachPanels(o),{}),"inject")},z);return()=>{r(),t()}},"ui-layout: service + root registration"),e.effect(()=>{const t=new U;t.apply(e.theme.getTheme());const r=e.on("theme/change",o=>{t.apply(o)});return()=>{r(),t.dispose()}},"ui-layout: theme presenter")}return s(W,"apply"),y.LayoutController=D,y.apply=W,y.inject=X,v.exports},"factory")});
1
+ var G=Object.defineProperty;var s=(p,v)=>G(p,"name",{value:v,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-layout",factory:s(p=>{var v={exports:{}},y=v.exports;Object.defineProperty(y,Symbol.toStringTag,{value:"Module"});let d=p("react/jsx-runtime"),a=p("react"),P=p("@deepseek-ai/dsh-client-runtime/client");const A=1024;function I(e,n,t){return Math.min(t,Math.max(n,Math.round(e)))}s(I,"clampWidth");function M(e,n,t){const r=n===0?56:I(n,264,420),o=t===0?0:I(t,300,520);if(r+o+640<=e)return{sidebar:r,center:e-r-o,details:o};const l=o===0?0:Math.max(300,e-r-640);return r+l+640<=e?{sidebar:r,center:640,details:l}:{sidebar:r,center:Math.max(0,e-r),details:0}}s(M,"computeColumns");const L='.FIq4Iq_frame{background:var(--dsw-alias-bg-base);height:100%;transition:grid-template-columns var(--ds-transition-duration-slow) var(--ds-ease-in-out);grid-template-rows:100%;display:grid;position:relative;overflow:hidden}.FIq4Iq_frame[data-dragging]{transition:none}@media (prefers-reduced-motion:reduce){.FIq4Iq_frame{transition:none}}.FIq4Iq_sidebarCol{background:var(--dsw-specific-sidebar-fill);border-right:1px solid var(--dsw-alias-border-l1);min-width:0;overflow:hidden}.FIq4Iq_centerCol{flex-direction:column;min-width:0;display:flex;overflow:hidden}.FIq4Iq_detailsCol{border-left:1px solid var(--dsw-alias-border-l2);min-width:0;overflow:hidden}.FIq4Iq_frame[data-details-collapsed] .FIq4Iq_detailsCol{border-left:none}.FIq4Iq_handle{cursor:col-resize;z-index:2;touch-action:none;width:8px;transition:left var(--ds-transition-duration-slow) var(--ds-ease-in-out);margin-left:-4px;position:absolute;top:0;bottom:0}.FIq4Iq_frame[data-dragging] .FIq4Iq_handle{transition:none}@media (prefers-reduced-motion:reduce){.FIq4Iq_handle{transition:none}}.FIq4Iq_handle[data-side=details]:after{content:"";box-sizing:border-box;background:var(--dsw-alias-button-floating-fill);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);opacity:0;width:12px;height:32px;transition:opacity var(--ds-transition-duration-slow) var(--ds-ease-in-out), background var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.FIq4Iq_detailsCol:hover~.FIq4Iq_handle[data-side=details]:after,.FIq4Iq_handle[data-side=details]:hover:after,.FIq4Iq_handle[data-side=details][data-dragging=true]:after{opacity:1}.FIq4Iq_handle[data-side=details]:hover:after,.FIq4Iq_handle[data-side=details][data-dragging=true]:after{background:var(--dsw-alias-button-floating-hover);border-color:var(--dsw-alias-border-l3)}.FIq4Iq_overlayLayer{z-index:20;pointer-events:none;position:absolute;inset:0}.FIq4Iq_overlayLayer>*{pointer-events:auto}',k="@deepseek-ai/dsh-client-ui-layout/AppFrame.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(k)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-layout",e.dataset.pluginCss=k,e.textContent=L,document.head.appendChild(e)}var h={centerCol:"FIq4Iq_centerCol",detailsCol:"FIq4Iq_detailsCol",frame:"FIq4Iq_frame",sidebarCol:"FIq4Iq_sidebarCol",handle:"FIq4Iq_handle",overlayLayer:"FIq4Iq_overlayLayer"};function N(e){return(0,d.jsx)("div",{className:h.centerCol,children:e.children})}s(N,"CenterColumn");function O(e){return(0,d.jsx)("div",{className:h.detailsCol,children:e.children})}s(O,"DetailsColumn");function F(e){const[n,t]=(0,a.useState)(!1),r=(0,a.useRef)(0),o=(0,a.useRef)(0),l=(0,a.useRef)(null),m=(0,a.useRef)({onStart:e.onStart,onDrag:e.onDrag,onEnd:e.onEnd});m.current={onStart:e.onStart,onDrag:e.onDrag,onEnd:e.onEnd};const g=(0,a.useCallback)(i=>{i.preventDefault(),i.currentTarget.setPointerCapture(i.pointerId),r.current=i.clientX,o.current=i.clientX,m.current.onStart(),t(!0)},[]),w=(0,a.useCallback)(i=>{i.currentTarget.hasPointerCapture(i.pointerId)&&(o.current=i.clientX,l.current??=requestAnimationFrame(()=>{l.current=null,m.current.onDrag(o.current-r.current)}))},[]),b=(0,a.useCallback)(i=>{i.currentTarget.hasPointerCapture(i.pointerId)&&(i.currentTarget.releasePointerCapture(i.pointerId),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null),m.current.onDrag(o.current-r.current),t(!1),m.current.onEnd())},[]);return(0,d.jsx)("div",{className:h.handle,style:{left:e.left},"data-side":e.side,"data-dragging":n||void 0,onPointerDown:g,onPointerMove:w,onPointerUp:b})}s(F,"DragHandle");function z({useStore:e,useSessions:n,actions:t,renderSlot:r}){const o=e(c=>c),l=n(c=>{const f=c.current;return f!==void 0&&c.byId[f]?.blank===!1?f:void 0}),m=(0,a.useRef)(null),[g,w]=(0,a.useState)(()=>window.innerWidth),b=(0,a.useRef)(l);(0,a.useLayoutEffect)(()=>{l!==void 0&&(b.current!==void 0&&b.current!==l&&t.closeDetails(),b.current=l)},[t,l]),(0,a.useEffect)(()=>{const c=m.current;if(c===null)return;let f=null;const T=new ResizeObserver(()=>{f??=requestAnimationFrame(()=>{f=null;const R=c.getBoundingClientRect().width;R>0&&w(R)})});return T.observe(c),()=>{T.disconnect(),f!==null&&cancelAnimationFrame(f)}},[]);const i=g<A;(0,a.useEffect)(()=>{t.setNarrow(i)},[t,i]);const q=i?!o.narrowExpanded:o.sidebar===0,u=M(g,q?0:o.sidebar===0?280:o.sidebar,l===void 0?0:o.details),_=(0,a.useRef)(u);_.current=u;const S=(0,a.useRef)(0),E=(0,a.useRef)(0),[$,x]=(0,a.useState)(!1),j=(0,a.useCallback)(()=>{x(!1)},[]),H=(0,a.useCallback)(()=>{S.current=_.current.sidebar,x(!0)},[]),J=(0,a.useCallback)(()=>{E.current=_.current.details,x(!0)},[]),K=(0,a.useCallback)(c=>{t.setSidebar(S.current+c)},[t]),V=(0,a.useCallback)(c=>{t.setDetails(E.current-c)},[t]);return(0,d.jsxs)("div",{ref:m,className:h.frame,style:{gridTemplateColumns:`${u.sidebar}px minmax(0, 1fr) ${u.details}px`},"data-sidebar-collapsed":q||void 0,"data-details-collapsed":u.details===0||void 0,"data-dragging":$||void 0,children:[(0,d.jsx)("div",{className:h.sidebarCol,children:r("sidebar",{collapsed:q,width:u.sidebar})}),(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(N,{children:r("conversation",{})}),(0,d.jsx)(O,{children:r("details",{})})]}),(0,d.jsx)("div",{className:h.overlayLayer,"data-shell-overlay":!0,children:r("shell.overlay",{})}),!q&&(0,d.jsx)(F,{side:"sidebar",left:u.sidebar,onStart:H,onDrag:K,onEnd:j}),u.details>0&&(0,d.jsx)(F,{side:"details",left:g-u.details,onStart:J,onDrag:V,onEnd:j})]})}s(z,"AppFrame");function B(){return(0,P.defineStore)({init:s(()=>({sidebar:280,details:0,narrow:!1,narrowExpanded:!1}),"init"),actions:{setSidebar:s((e,n)=>{e.sidebar=I(n,264,420)},"setSidebar"),setDetails:s((e,n)=>{e.details=I(n,300,520)},"setDetails"),toggleSidebar:s(e=>{e.narrow?e.narrowExpanded=!e.narrowExpanded:e.sidebar=e.sidebar===0?280:0},"toggleSidebar"),setNarrow:s((e,n)=>{e.narrow!==n&&(e.narrow=n,e.narrowExpanded=!1)},"setNarrow"),openDetails:s(e=>{e.details===0&&(e.details=360)},"openDetails"),closeDetails:s(e=>{e.details=0},"closeDetails")}})}s(B,"createLayoutStore");var D=class{static{s(this,"LayoutController")}#e;attachPanels(e){this.#e=e}toggleSidebar(){this.#t().toggleSidebar()}openDetails(){this.#t().openDetails()}closeDetails(){this.#t().closeDetails()}#t(){if(this.#e===void 0)throw new Error("layout: panel actions not wired (root entry not mounted)");return this.#e}};const C="data-ds-dark-theme";var U=class{static{s(this,"ThemePresenter")}appliedTokens=[];themeColorMeta;constructor(){this.themeColorMeta=document.createElement("meta"),this.themeColorMeta.name="theme-color"}apply(e){const n=e.active.colorScheme;document.documentElement.style.colorScheme=n;const t=document.body;n==="dark"?t.setAttribute(C,""):t.removeAttribute(C);for(const r of this.appliedTokens)t.style.removeProperty(r);this.appliedTokens=[];for(const[r,o]of Object.entries(e.active.tokens))t.style.setProperty(r,o),this.appliedTokens.push(r);this.themeColorMeta.content=getComputedStyle(t).backgroundColor,this.themeColorMeta.isConnected||document.head.append(this.themeColorMeta)}dispose(){document.documentElement.style.removeProperty("color-scheme");const e=document.body;e.removeAttribute(C);for(const n of this.appliedTokens)e.style.removeProperty(n);this.appliedTokens=[],this.themeColorMeta.remove()}};const X=["slots","theme"];function W(e){const n=new D;e.effect(()=>{const t=e.reflect.provide("layout",n),r=e.slots.register({name:"root",children:{sidebar:{kind:"single",scope:"root"},conversation:{kind:"single",scope:"session-maybe"},details:{kind:"single",scope:"session"},"shell.overlay":{kind:"list",scope:"root"}},store:B,inject:s(o=>(n.attachPanels(o),{}),"inject")},z);return()=>{r(),t()}},"ui-layout: service + root registration"),e.effect(()=>{const t=new U;t.apply(e.theme.getTheme());const r=e.on("theme/change",o=>{t.apply(o)});return()=>{r(),t.dispose()}},"ui-layout: theme presenter")}return s(W,"apply"),y.LayoutController=D,y.apply=W,y.inject=X,v.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-layout","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-theme":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-layout","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-theme"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-theme":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1"}}
@@ -1 +1 @@
1
- var $=Object.defineProperty;var o=(f,v)=>$(f,"name",{value:v,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-message-feedback",factory:o(f=>{var v={exports:{}},y=v.exports;Object.defineProperty(y,Symbol.toStringTag,{value:"Module"});let a=f("react/jsx-runtime"),c=f("react"),b=f("@deepseek-ai/dsh-client-ui-primitives");const B=Object.freeze({status:"cold",items:new Map,error:null}),m=Object.freeze({ok:!0}),F=Object.freeze({ok:!1,error:Object.freeze({code:"disposed",message:"feedback controller is disposed"})});function E(e){switch(e){case"session-not-found":return"this session is no longer persisted";case"target-not-found":return"this message is not a persisted assistant message";case"version-conflict":return"feedback changed elsewhere";case"note-blank":return"a note must contain a non-whitespace character";case"note-too-large":return"the note is too long";default:return e}}o(E,"describe");function x(e){return{ok:!1,error:{code:e,message:E(e)}}}o(x,"fail");function C(e){return{ok:!1,error:{code:e.code,message:e.message}}}o(C,"carrierFailure");var G=class{static{o(this,"MessageFeedbackController")}remote;sessionId;view=B;listeners=new Set;loadPromise=null;operationTail=Promise.resolve();disposed=!1;constructor(e,t){this.remote=e,this.sessionId=t}getSnapshot=o(()=>this.view,"getSnapshot");subscribe=o(e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),"subscribe");ensure(){return this.view.status==="ready"?Promise.resolve(m):this.refresh()}refresh(){if(this.loadPromise!==null)return this.loadPromise;this.publish({status:"loading",items:this.view.items,error:null});const e=this.load();return this.loadPromise=e,e.finally(()=>{this.loadPromise=null})}resync(){return this.mutate(()=>this.refresh(),{seed:!1})}rate(e,t,r){return this.mutate(async()=>{const s=this.view.items.get(e);return await this.putCommitted(e,t,r??s?.note,s)})}toggle(e,t){return this.mutate(async()=>{const r=this.view.items.get(e);return r?.rating===t?await this.deleteCommitted(e,r):await this.putCommitted(e,t,r?.note,r)})}clearNote(e){return this.mutate(async()=>{const t=this.view.items.get(e);return t===void 0||t.note===void 0?m:await this.putCommitted(e,t.rating,void 0,t)})}clear(e){return this.mutate(async()=>{const t=this.view.items.get(e);return t===void 0?m:await this.deleteCommitted(e,t)})}async putCommitted(e,t,r,s){const i=await this.remote.put({sessionId:this.sessionId,messageId:e,rating:t,...r===void 0?{}:{note:r},ifVersion:s?.version??null});if(!i.ok)return C(i.error);const l=i.value;return l.ok?(this.commit(e,l.value),m):(l.error.code==="version-conflict"&&this.commit(e,l.error.current),x(l.error.code))}async deleteCommitted(e,t){const r=await this.remote.delete({sessionId:this.sessionId,messageId:e,ifVersion:t.version});if(!r.ok)return C(r.error);const s=r.value;return s.ok?(this.commit(e,null),m):(s.error.code==="version-conflict"&&this.commit(e,s.error.current),x(s.error.code))}dispose(){this.disposed=!0,this.listeners.clear()}async load(){try{const e=await this.remote.list({sessionId:this.sessionId});if(this.disposed)return m;if(!e.ok)return this.publish({status:"error",items:this.view.items,error:e.error.message}),C(e.error);const t=e.value;if(!t.ok)return this.publish({status:"error",items:this.view.items,error:E(t.error.code)}),x(t.error.code);const r=new Map;for(const s of t.value.items)r.set(s.messageId,s);return this.publish({status:"ready",items:r,error:null}),m}catch(e){if(this.disposed)return m;const t=e instanceof Error?e.message:"message feedback list failed";return this.publish({status:"error",items:this.view.items,error:t}),{ok:!1,error:{code:"transport",message:t}}}}mutate(e,t={}){const r=o(async()=>{if(this.disposed)return F;if(t.seed!==!1){const i=await this.ensure();if(!i.ok)return i;if(this.disposed)return F}try{return await e()}catch(i){return{ok:!1,error:{code:"transport",message:i instanceof Error?i.message:"message feedback mutation failed"}}}},"guarded"),s=this.operationTail.then(r,r);return this.operationTail=s.then(()=>{}),s}commit(e,t){const r=new Map(this.view.items);t===null?r.delete(e):r.set(e,t),this.publish({status:"ready",items:r,error:null})}publish(e){this.view=Object.freeze(e);for(const t of this.listeners)try{t()}catch(r){console.error("[ui-message-feedback] subscriber threw:",r)}}};const J="._m5Dtq_action{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}._m5Dtq_action:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._m5Dtq_action:disabled{cursor:default;opacity:.4}._m5Dtq_action[data-active]{color:var(--dsw-alias-label-primary)}._m5Dtq_noteOpen{max-width:220px;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:none;border-radius:14px;padding:0 8px;font-size:13px;line-height:28px;overflow:hidden}._m5Dtq_noteOpen:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._m5Dtq_noteEditor{align-items:flex-start;gap:6px;display:inline-flex}._m5Dtq_noteInput{border:1px solid var(--dsw-alias-border-secondary);background:var(--dsw-alias-bg-primary);width:260px;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:8px;padding:6px 8px;font-size:13px}._m5Dtq_noteSave,._m5Dtq_noteCancel{cursor:pointer;border:none;border-radius:14px;height:28px;padding:0 10px;font-size:13px}._m5Dtq_noteSave{background:var(--dsw-alias-interactive-bg-primary);color:var(--dsw-alias-label-inverse)}._m5Dtq_noteSave:disabled{cursor:default;opacity:.4}._m5Dtq_noteCancel{color:var(--dsw-alias-label-tertiary);background:0 0}._m5Dtq_noteCancel:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._m5Dtq_failure{color:var(--dsw-alias-label-tertiary);padding-left:4px;font-size:13px;line-height:28px}",P="@deepseek-ai/dsh-client-ui-message-feedback/MessageFeedbackActions.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(P)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-message-feedback",e.dataset.pluginCss=P,e.textContent=J,document.head.appendChild(e)}var u={noteCancel:"_m5Dtq_noteCancel",noteEditor:"_m5Dtq_noteEditor",noteSave:"_m5Dtq_noteSave",failure:"_m5Dtq_failure",noteOpen:"_m5Dtq_noteOpen",action:"_m5Dtq_action",noteInput:"_m5Dtq_noteInput"};function K({messageId:e,ensure:t,rate:r,toggle:s,clearNote:i,useFeedback:l,t:n}){const h=l(d=>d.items.get(e)),j=l(d=>d.status==="error"),p=h?.rating,[A,g]=(0,c.useState)(!1),[D,M]=(0,c.useState)(""),[S,q]=(0,c.useState)(!1),[O,k]=(0,c.useState)(null),T=(0,c.useRef)(!1),w=(0,c.useCallback)(()=>{T.current||(T.current=!0,t())},[t]),N=(0,c.useRef)(!0);(0,c.useEffect)(()=>()=>{N.current=!1},[]);const _=(0,c.useCallback)(d=>{if(N.current){if(q(!1),d.ok){k(null);return}k(d.error?.code==="version-conflict"?n("error.conflict"):n("error.generic"))}},[n]),L=(0,c.useCallback)(d=>{q(!0),k(null),g(!1),s(e,d).then(_)},[e,_,s]),Y=(0,c.useCallback)(d=>{const V=D.trim();q(!0),k(null),(V.length===0?i(e):r(e,d,V)).then(W=>{_(W),W.ok&&N.current&&g(!1)})},[i,D,e,r,_]),Z=(0,c.useCallback)(()=>{M(h?.note??""),g(!0)},[h?.note]),R=n(p==="positive"?"action.likeActive":"action.like"),I=n(p==="negative"?"action.dislikeActive":"action.dislike");return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.Tooltip,{label:R,side:"bottom",children:(0,a.jsx)("button",{type:"button",className:u.action,"aria-label":R,"aria-pressed":p==="positive","data-active":p==="positive"||void 0,disabled:S,onFocus:w,onPointerEnter:w,onClick:o(()=>{L("positive")},"onClick"),children:(0,a.jsx)(b.IconLikeOutline16,{})})}),(0,a.jsx)(b.Tooltip,{label:I,side:"bottom",children:(0,a.jsx)("button",{type:"button",className:u.action,"aria-label":I,"aria-pressed":p==="negative","data-active":p==="negative"||void 0,disabled:S,onFocus:w,onPointerEnter:w,onClick:o(()=>{L("negative")},"onClick"),children:(0,a.jsx)(b.IconDislikeOutline16,{})})}),p!==void 0&&!A&&(0,a.jsx)("button",{type:"button",className:u.noteOpen,onClick:Z,children:h?.note===void 0?n("note.open"):h.note}),p!==void 0&&A&&(0,a.jsxs)("span",{className:u.noteEditor,children:[(0,a.jsx)("textarea",{className:u.noteInput,"aria-label":n("note.aria"),placeholder:n("note.placeholder"),value:D,rows:2,onChange:o(d=>{M(d.target.value)},"onChange")}),(0,a.jsx)("button",{type:"button",className:u.noteSave,disabled:S,onClick:o(()=>{Y(p)},"onClick"),children:n("note.save")}),(0,a.jsx)("button",{type:"button",className:u.noteCancel,onClick:o(()=>{g(!1)},"onClick"),children:n("note.cancel")})]}),O===null&&j&&(0,a.jsx)("span",{className:u.failure,role:"status",children:n("error.load")}),O!==null&&(0,a.jsx)("span",{className:u.failure,role:"status",children:O})]})}o(K,"MessageFeedbackActions");const H={"action.like":"好的回答","action.likeActive":"取消标记","action.dislike":"有问题的回答","action.dislikeActive":"取消标记","note.open":"补充说明","note.placeholder":"这条回答哪里好,或哪里有问题?(可选)","note.save":"保存","note.cancel":"取消","note.aria":"反馈说明","error.conflict":"这条反馈已在别处改动,已显示最新状态","error.load":"反馈状态加载失败","error.generic":"反馈保存失败"},Q={"action.like":"Good response","action.likeActive":"Remove rating","action.dislike":"Bad response","action.dislikeActive":"Remove rating","note.open":"Add a note","note.placeholder":"What was good, or what went wrong? (optional)","note.save":"Save","note.cancel":"Cancel","note.aria":"Feedback note","error.conflict":"This feedback changed elsewhere; the latest state is shown","error.load":"Could not load feedback","error.generic":"Could not save feedback"},z="feedback",U=["slots","remote","remote.messageFeedback","locale"];function X(e){e.effect(()=>e.locale.register(z,{zh:H,en:Q}),"ui-message-feedback: dictionaries");const t=new Map,r=o(s=>{let i=t.get(s);return i===void 0&&(i=new G(e.remote.messageFeedback,s),t.set(s,i)),i},"controllerFor");e.on("connection/reset",()=>{for(const s of t.values())s.getSnapshot().status!=="cold"&&s.resync()}),e.slots.inject("conversation.chat.assistant-actions",()=>{const s=e.slots.register({name:"conversation.chat.assistant-actions",id:"feedback",order:10,locale:z,inject:o(i=>{const l=r(i);return{hooks:{feedback:l},ensure:o(()=>l.ensure(),"ensure"),rate:o((n,h,j)=>l.rate(n,h,j),"rate"),toggle:o((n,h)=>l.toggle(n,h),"toggle"),clearNote:o(n=>l.clearNote(n),"clearNote"),clear:o(n=>l.clear(n),"clear")}},"inject")},K);return()=>{s();for(const i of t.values())i.dispose();t.clear()}})}return o(X,"apply"),y.apply=X,y.inject=U,v.exports},"factory")});
1
+ var $=Object.defineProperty;var o=(f,v)=>$(f,"name",{value:v,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-message-feedback",factory:o(f=>{var v={exports:{}},y=v.exports;Object.defineProperty(y,Symbol.toStringTag,{value:"Module"});let a=f("react/jsx-runtime"),c=f("react"),b=f("@deepseek-ai/dsh-client-ui-primitives");const B=Object.freeze({status:"cold",items:new Map,error:null}),m=Object.freeze({ok:!0}),F=Object.freeze({ok:!1,error:Object.freeze({code:"disposed",message:"feedback controller is disposed"})});function E(e){switch(e){case"session-not-found":return"this session is no longer persisted";case"target-not-found":return"this message is not a persisted assistant message";case"version-conflict":return"feedback changed elsewhere";case"note-blank":return"a note must contain a non-whitespace character";case"note-too-large":return"the note is too long";default:return e}}o(E,"describe");function x(e){return{ok:!1,error:{code:e,message:E(e)}}}o(x,"fail");function C(e){return{ok:!1,error:{code:e.code,message:e.message}}}o(C,"carrierFailure");var G=class{static{o(this,"MessageFeedbackController")}remote;sessionId;view=B;listeners=new Set;loadPromise=null;operationTail=Promise.resolve();disposed=!1;constructor(e,t){this.remote=e,this.sessionId=t}getSnapshot=o(()=>this.view,"getSnapshot");subscribe=o(e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),"subscribe");ensure(){return this.view.status==="ready"?Promise.resolve(m):this.refresh()}refresh(){if(this.loadPromise!==null)return this.loadPromise;this.publish({status:"loading",items:this.view.items,error:null});const e=this.load();return this.loadPromise=e,e.finally(()=>{this.loadPromise=null})}resync(){return this.mutate(()=>this.refresh(),{seed:!1})}rate(e,t,r){return this.mutate(async()=>{const s=this.view.items.get(e);return await this.putCommitted(e,t,r??s?.note,s)})}toggle(e,t){return this.mutate(async()=>{const r=this.view.items.get(e);return r?.rating===t?await this.deleteCommitted(e,r):await this.putCommitted(e,t,r?.note,r)})}clearNote(e){return this.mutate(async()=>{const t=this.view.items.get(e);return t===void 0||t.note===void 0?m:await this.putCommitted(e,t.rating,void 0,t)})}clear(e){return this.mutate(async()=>{const t=this.view.items.get(e);return t===void 0?m:await this.deleteCommitted(e,t)})}async putCommitted(e,t,r,s){const i=await this.remote.put({sessionId:this.sessionId,messageId:e,rating:t,...r===void 0?{}:{note:r},ifVersion:s?.version??null});if(!i.ok)return C(i.error);const l=i.value;return l.ok?(this.commit(e,l.value),m):(l.error.code==="version-conflict"&&this.commit(e,l.error.current),x(l.error.code))}async deleteCommitted(e,t){const r=await this.remote.delete({sessionId:this.sessionId,messageId:e,ifVersion:t.version});if(!r.ok)return C(r.error);const s=r.value;return s.ok?(this.commit(e,null),m):(s.error.code==="version-conflict"&&this.commit(e,s.error.current),x(s.error.code))}dispose(){this.disposed=!0,this.listeners.clear()}async load(){try{const e=await this.remote.list({sessionId:this.sessionId});if(this.disposed)return m;if(!e.ok)return this.publish({status:"error",items:this.view.items,error:e.error.message}),C(e.error);const t=e.value;if(!t.ok)return this.publish({status:"error",items:this.view.items,error:E(t.error.code)}),x(t.error.code);const r=new Map;for(const s of t.value.items)r.set(s.messageId,s);return this.publish({status:"ready",items:r,error:null}),m}catch(e){if(this.disposed)return m;const t=e instanceof Error?e.message:"message feedback list failed";return this.publish({status:"error",items:this.view.items,error:t}),{ok:!1,error:{code:"transport",message:t}}}}mutate(e,t={}){const r=o(async()=>{if(this.disposed)return F;if(t.seed!==!1){const i=await this.ensure();if(!i.ok)return i;if(this.disposed)return F}try{return await e()}catch(i){return{ok:!1,error:{code:"transport",message:i instanceof Error?i.message:"message feedback mutation failed"}}}},"guarded"),s=this.operationTail.then(r,r);return this.operationTail=s.then(()=>{}),s}commit(e,t){const r=new Map(this.view.items);t===null?r.delete(e):r.set(e,t),this.publish({status:"ready",items:r,error:null})}publish(e){this.view=Object.freeze(e);for(const t of this.listeners)try{t()}catch(r){console.error("[ui-message-feedback] subscriber threw:",r)}}};const J="._m5Dtq_action{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:6px;display:inline-flex}._m5Dtq_action:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._m5Dtq_action:disabled{cursor:default;opacity:.4}._m5Dtq_action[data-active]{color:var(--dsw-alias-label-primary)}._m5Dtq_noteOpen{max-width:220px;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:none;border-radius:14px;padding:0 8px;font-size:13px;line-height:28px;overflow:hidden}._m5Dtq_noteOpen:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._m5Dtq_noteEditor{align-items:flex-start;gap:6px;display:inline-flex}._m5Dtq_noteInput{border:1px solid var(--dsw-alias-border-secondary);background:var(--dsw-alias-bg-primary);width:260px;color:var(--dsw-alias-label-primary);font:inherit;resize:vertical;border-radius:8px;padding:6px 8px;font-size:13px}._m5Dtq_noteSave,._m5Dtq_noteCancel{cursor:pointer;border:none;border-radius:14px;height:28px;padding:0 10px;font-size:13px}._m5Dtq_noteSave{background:var(--dsw-alias-interactive-bg-primary);color:var(--dsw-alias-label-inverse)}._m5Dtq_noteSave:disabled{cursor:default;opacity:.4}._m5Dtq_noteCancel{color:var(--dsw-alias-label-tertiary);background:0 0}._m5Dtq_noteCancel:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}._m5Dtq_failure{color:var(--dsw-alias-label-tertiary);padding-left:4px;font-size:13px;line-height:28px}",P="@deepseek-ai/dsh-client-ui-message-feedback/MessageFeedbackActions.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(P)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-message-feedback",e.dataset.pluginCss=P,e.textContent=J,document.head.appendChild(e)}var u={noteOpen:"_m5Dtq_noteOpen",failure:"_m5Dtq_failure",action:"_m5Dtq_action",noteEditor:"_m5Dtq_noteEditor",noteSave:"_m5Dtq_noteSave",noteInput:"_m5Dtq_noteInput",noteCancel:"_m5Dtq_noteCancel"};function K({messageId:e,ensure:t,rate:r,toggle:s,clearNote:i,useFeedback:l,t:n}){const h=l(d=>d.items.get(e)),j=l(d=>d.status==="error"),p=h?.rating,[A,g]=(0,c.useState)(!1),[D,M]=(0,c.useState)(""),[S,q]=(0,c.useState)(!1),[O,k]=(0,c.useState)(null),T=(0,c.useRef)(!1),w=(0,c.useCallback)(()=>{T.current||(T.current=!0,t())},[t]),N=(0,c.useRef)(!0);(0,c.useEffect)(()=>()=>{N.current=!1},[]);const _=(0,c.useCallback)(d=>{if(N.current){if(q(!1),d.ok){k(null);return}k(d.error?.code==="version-conflict"?n("error.conflict"):n("error.generic"))}},[n]),L=(0,c.useCallback)(d=>{q(!0),k(null),g(!1),s(e,d).then(_)},[e,_,s]),Y=(0,c.useCallback)(d=>{const V=D.trim();q(!0),k(null),(V.length===0?i(e):r(e,d,V)).then(W=>{_(W),W.ok&&N.current&&g(!1)})},[i,D,e,r,_]),Z=(0,c.useCallback)(()=>{M(h?.note??""),g(!0)},[h?.note]),R=n(p==="positive"?"action.likeActive":"action.like"),I=n(p==="negative"?"action.dislikeActive":"action.dislike");return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.Tooltip,{label:R,side:"bottom",children:(0,a.jsx)("button",{type:"button",className:u.action,"aria-label":R,"aria-pressed":p==="positive","data-active":p==="positive"||void 0,disabled:S,onFocus:w,onPointerEnter:w,onClick:o(()=>{L("positive")},"onClick"),children:(0,a.jsx)(b.IconLikeOutline16,{})})}),(0,a.jsx)(b.Tooltip,{label:I,side:"bottom",children:(0,a.jsx)("button",{type:"button",className:u.action,"aria-label":I,"aria-pressed":p==="negative","data-active":p==="negative"||void 0,disabled:S,onFocus:w,onPointerEnter:w,onClick:o(()=>{L("negative")},"onClick"),children:(0,a.jsx)(b.IconDislikeOutline16,{})})}),p!==void 0&&!A&&(0,a.jsx)("button",{type:"button",className:u.noteOpen,onClick:Z,children:h?.note===void 0?n("note.open"):h.note}),p!==void 0&&A&&(0,a.jsxs)("span",{className:u.noteEditor,children:[(0,a.jsx)("textarea",{className:u.noteInput,"aria-label":n("note.aria"),placeholder:n("note.placeholder"),value:D,rows:2,onChange:o(d=>{M(d.target.value)},"onChange")}),(0,a.jsx)("button",{type:"button",className:u.noteSave,disabled:S,onClick:o(()=>{Y(p)},"onClick"),children:n("note.save")}),(0,a.jsx)("button",{type:"button",className:u.noteCancel,onClick:o(()=>{g(!1)},"onClick"),children:n("note.cancel")})]}),O===null&&j&&(0,a.jsx)("span",{className:u.failure,role:"status",children:n("error.load")}),O!==null&&(0,a.jsx)("span",{className:u.failure,role:"status",children:O})]})}o(K,"MessageFeedbackActions");const H={"action.like":"好的回答","action.likeActive":"取消标记","action.dislike":"有问题的回答","action.dislikeActive":"取消标记","note.open":"补充说明","note.placeholder":"这条回答哪里好,或哪里有问题?(可选)","note.save":"保存","note.cancel":"取消","note.aria":"反馈说明","error.conflict":"这条反馈已在别处改动,已显示最新状态","error.load":"反馈状态加载失败","error.generic":"反馈保存失败"},Q={"action.like":"Good response","action.likeActive":"Remove rating","action.dislike":"Bad response","action.dislikeActive":"Remove rating","note.open":"Add a note","note.placeholder":"What was good, or what went wrong? (optional)","note.save":"Save","note.cancel":"Cancel","note.aria":"Feedback note","error.conflict":"This feedback changed elsewhere; the latest state is shown","error.load":"Could not load feedback","error.generic":"Could not save feedback"},z="feedback",U=["slots","remote","remote.messageFeedback","locale"];function X(e){e.effect(()=>e.locale.register(z,{zh:H,en:Q}),"ui-message-feedback: dictionaries");const t=new Map,r=o(s=>{let i=t.get(s);return i===void 0&&(i=new G(e.remote.messageFeedback,s),t.set(s,i)),i},"controllerFor");e.on("connection/reset",()=>{for(const s of t.values())s.getSnapshot().status!=="cold"&&s.resync()}),e.slots.inject("conversation.chat.assistant-actions",()=>{const s=e.slots.register({name:"conversation.chat.assistant-actions",id:"feedback",order:10,locale:z,inject:o(i=>{const l=r(i);return{hooks:{feedback:l},ensure:o(()=>l.ensure(),"ensure"),rate:o((n,h,j)=>l.rate(n,h,j),"rate"),toggle:o((n,h)=>l.toggle(n,h),"toggle"),clearNote:o(n=>l.clearNote(n),"clearNote"),clear:o(n=>l.clear(n),"clear")}},"inject")},K);return()=>{s();for(const i of t.values())i.dispose();t.clear()}})}return o(X,"apply"),y.apply=X,y.inject=U,v.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-message-feedback","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-message-feedback":"^0.1.0-rc.7","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-message-feedback","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-typert-protocol":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-message-feedback":"^0.1.0-rc.7"}}
@@ -1 +1 @@
1
- var me=Object.defineProperty;var l=(v,E)=>me(v,"name",{value:E,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-model-selection",factory:l(v=>{var E={exports:{}},q=E.exports;Object.defineProperty(q,Symbol.toStringTag,{value:"Module"});let Q=v("@deepseek-ai/cordis"),X=v("@deepseek-ai/dsh-client-runtime/client"),i=v("react/jsx-runtime"),p=v("react"),b=v("@deepseek-ai/dsh-client-ui-primitives");var T=class{static{l(this,"ModelDirectory")}sessions;sessionId;available;store=(0,X.createSnapshotStore)({current:null,routable:null,groups:[],failures:[],status:"idle",error:null});generation=0;disposed=!1;constructor(e,n,t){this.sessions=e,this.sessionId=n,this.available=t}async load(){this.assertAvailable();const e=++this.generation;this.store.update(s=>{s.status="loading",s.error=null});const{result:n}=await this.sessions.models({sessionId:this.sessionId});if(this.disposed||e!==this.generation){if(!n.ok)throw new Error(`${n.error.code}: ${n.error.message}`);return n.value}if(!n.ok)throw this.store.update(s=>{s.status="error",s.error=`${n.error.code}: ${n.error.message}`}),new Error(`session.models failed: ${n.error.code}: ${n.error.message}`);const{current:t,routable:o,groups:c,failures:d}=n.value;return this.store.update(s=>{s.current=t,s.routable=o,s.groups=c,s.failures=d,s.status="ready",s.error=null}),n.value}async select(e){this.assertAvailable();const n=++this.generation;this.store.update(o=>{o.status="selecting",o.error=null});const{result:t}=await this.sessions.selectModel({sessionId:this.sessionId,provider:e.provider,model:e.model,...e.reasoningEffort===void 0?{}:{reasoningEffort:e.reasoningEffort}});if(this.disposed||n!==this.generation){if(!t.ok)throw new Error(`${t.error.code}: ${t.error.message}`);return}if(!t.ok)throw this.store.update(o=>{o.status="error",o.error=`${t.error.code}: ${t.error.message}`}),new Error(`session.selectModel failed: ${t.error.code}: ${t.error.message}`);this.store.update(o=>{o.current=t.value.selected,o.routable=!0,o.status="ready",o.error=null})}resetConnected(){this.disposed||(++this.generation,this.store.update(e=>{e.current=null,e.routable=null,e.groups=[],e.failures=[],e.status="idle",e.error=null}),this.available()&&this.load().catch(()=>{}))}dispose(){this.disposed=!0}assertAvailable(){if(!this.available())throw new Error("model selection is unavailable for addressed subagent sessions")}},z=class extends Q.Service{static{l(this,"ModelDirectoryResolver")}static inject=["connection","sessions","remote"];live={directories:new Map};blockReason;constructor(e,n){super(e,"modelDirectories"),this.blockReason=n.blockReason,e.on("connection/reset",()=>{for(const o of this.live.directories.values())o.resetConnected()});const t=l(()=>{for(const o of this.live.directories.values())o.load().catch(()=>{})},"refresh");e.remote.$on("llm/adapters-updated",t),e.remote.$on("settings/document-updated",t)}directoryFor(e){const{live:n}=this,t=n.directories.get(e);if(t!==void 0)return t;const o=this.ctx.get("sessions"),c=o.scope(e);if(c===void 0)throw new Error(`ui-model-selection: session "${String(e)}" resolved no scope`);const d=new T(this.ctx.get("connection").api.sessions,e,()=>o.subagentAddress(e)===void 0);n.directories.set(e,d);const s=this.ctx.get("conversation");if(s!==void 0){const g=l(()=>{s.blocks.set(e,d.store.getSnapshot().routable===!1?{reason:this.blockReason()}:void 0)},"publish");g(),c.effect(()=>{const f=d.store.subscribe(g);return()=>{f(),s.blocks.set(e,void 0)}},"ui-model-selection: composer block")}return c.effect(()=>()=>{d.dispose(),n.directories.delete(e)},"ui-model-selection: session directory"),d}};function F(e){var n,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var c=e.length;for(n=0;n<c;n++)e[n]&&(t=F(e[n]))&&(o&&(o+=" "),o+=t)}else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}l(F,"r");function C(){for(var e,n,t=0,o="",c=arguments.length;t<c;t++)(e=arguments[t])&&(n=F(e))&&(o&&(o+=" "),o+=n);return o}l(C,"clsx");const Y=".gBNP8q_root{min-width:0;position:relative}.gBNP8q_trigger{min-width:0;max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:24px;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:500;line-height:20px;display:flex}.gBNP8q_trigger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.gBNP8q_trigger:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-border-l3)}.gBNP8q_trigger:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.gBNP8q_triggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gBNP8q_triggerEffort{color:var(--dsw-alias-label-caption);flex:none}.gBNP8q_chevron{color:var(--dsw-alias-label-caption);flex:none;transition:transform .12s}.gBNP8q_chevronOpen{transform:rotate(180deg)}.gBNP8q_menu{z-index:20;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);width:min(240px,100vw - 32px);max-height:min(360px,100vh - 96px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden}.gBNP8q_status,.gBNP8q_empty{color:var(--dsw-alias-label-tertiary);padding:10px;font-size:13px;line-height:20px}.gBNP8q_error,.gBNP8q_warning{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;padding:7px 8px;font-size:12px;line-height:18px;display:flex}.gBNP8q_warning{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-state-warn-label)}.gBNP8q_retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:600}.gBNP8q_groups{min-height:0;overflow-y:auto}.gBNP8q_group+.gBNP8q_group{margin-top:4px}.gBNP8q_groupTitle{z-index:1;background:var(--dsw-specific-menu);color:var(--dsw-alias-label-tertiary);padding:5px 8px 3px;font-size:12px;font-weight:500;line-height:18px;position:sticky;top:0}.gBNP8q_option{width:100%;min-height:38px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;outline:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.gBNP8q_option:hover:not(:disabled),.gBNP8q_option:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}.gBNP8q_selected{background:0 0}.gBNP8q_option:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.gBNP8q_optionCopy{flex-direction:column;flex:1;min-width:0;display:flex}.gBNP8q_modelName{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;overflow:hidden}.gBNP8q_description{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.gBNP8q_check{color:var(--dsw-alias-label-primary);flex:0 0 18px;place-items:center;display:grid}.gBNP8q_cell{width:100%;height:40px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:0 10px;font-size:14px;line-height:22px;display:flex}.gBNP8q_cell:hover{background:var(--dsw-alias-interactive-bg-hover)}.gBNP8q_cellLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gBNP8q_cellValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:0 auto;overflow:hidden}.gBNP8q_cellChevron{color:var(--dsw-alias-label-tertiary);flex:none}",V="@deepseek-ai/dsh-client-ui-model-selection/ModelSelect.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(V)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-model-selection",e.dataset.pluginCss=V,e.textContent=Y,document.head.appendChild(e)}var a={modelName:"gBNP8q_modelName",warning:"gBNP8q_warning",trigger:"gBNP8q_trigger",check:"gBNP8q_check",empty:"gBNP8q_empty",cell:"gBNP8q_cell",root:"gBNP8q_root",triggerEffort:"gBNP8q_triggerEffort",chevron:"gBNP8q_chevron",groups:"gBNP8q_groups",group:"gBNP8q_group",selected:"gBNP8q_selected",status:"gBNP8q_status",description:"gBNP8q_description",chevronOpen:"gBNP8q_chevronOpen",cellChevron:"gBNP8q_cellChevron",retry:"gBNP8q_retry",cellLabel:"gBNP8q_cellLabel",menu:"gBNP8q_menu",groupTitle:"gBNP8q_groupTitle",error:"gBNP8q_error",optionCopy:"gBNP8q_optionCopy",option:"gBNP8q_option",cellValue:"gBNP8q_cellValue",triggerLabel:"gBNP8q_triggerLabel"};function Z({locked:e,available:n,directory:t,load:o,select:c,t:d}){const s=(0,p.useSyncExternalStore)(r=>t.subscribe(r),()=>t.getSnapshot()),[g,f]=(0,p.useState)(!1),[x,B]=(0,p.useState)("root"),_=(0,p.useRef)("load"),[R,K]=(0,p.useState)(null),J=(0,p.useRef)(0),j=(0,p.useRef)(null),W=(0,p.useRef)(null),M=(0,p.useRef)([]),A=(0,p.useId)(),L=(0,p.useMemo)(()=>s.groups.flatMap(r=>r.models.map(u=>({group:r,model:u,selection:{provider:r.id,model:u.id,...u.reasoning?.defaultEffort===void 0?{}:{reasoningEffort:u.reasoning.defaultEffort}}}))),[s.groups]),O=L[s.current===null?-1:L.findIndex(r=>r.selection.provider===s.current?.provider&&r.selection.model===s.current.model)],h=O?.model.reasoning,w=s.current?.reasoningEffort??h?.defaultEffort,N=h===void 0?void 0:w===void 0?d("effort.providerDefault"):h.efforts.find(r=>r.id===w)?.name??w,G=(0,p.useMemo)(()=>h===void 0?[]:[...h.defaultEffort===void 0?[{key:"provider-default",effort:void 0,label:d("effort.providerDefault")}]:[],...h.efforts.map(r=>({key:`effort:${r.id}`,effort:r.id,label:r.name,...r.description===void 0?{}:{description:r.description}}))],[h,d]),I=s.status==="selecting",S=l(()=>{_.current="load",o()},"reload");if((0,p.useEffect)(()=>{n&&(_.current="load",o())},[n,o]),(0,p.useEffect)(()=>{if(!g)return;const r=l(u=>{j.current?.contains(u.target)||f(!1)},"closeOutside");return document.addEventListener("mousedown",r),()=>{document.removeEventListener("mousedown",r)}},[g]),!n)return null;const ne=l(()=>{B("root"),f(!0),S()},"show"),k=l((r=!1)=>{f(!1),B("root"),r&&queueMicrotask(()=>{W.current?.focus()})},"close"),ae=l(r=>{const u=M.current.filter(y=>y!==null);if(u.length===0)return;const m=u.findIndex(y=>y===document.activeElement);u[(Math.max(m,0)+r+u.length)%u.length]?.focus()},"moveFocus"),le=l(r=>{if(r.key==="Escape"&&g){r.preventDefault(),x!=="root"?B("root"):k(!0);return}g&&(r.key==="ArrowDown"||r.key==="ArrowUp")&&(r.preventDefault(),ae(r.key==="ArrowDown"?1:-1))},"onRootKeyDown"),de=l(r=>{r.relatedTarget instanceof Node&&j.current?.contains(r.relatedTarget)||k()},"onBlur"),H=l(r=>{if(r){j.current!==null&&k(!0);return}const u=t.getSnapshot().error;u!==null&&(J.current+=1,K({seq:J.current,text:d("error.action",{message:u})}))},"settleSelection"),ce=l(r=>{if(s.current?.provider===r.provider&&s.current.model===r.model){k(!0);return}_.current="select",c(r).then(H)},"choose"),ue=l(r=>{if(s.current===null)return;if(w===r){k(!0);return}const u={provider:s.current.provider,model:s.current.model,...r===void 0?{}:{reasoningEffort:r}};_.current="select",c(u).then(H)},"chooseEffort"),P=O?.model.name??d("trigger.fallback"),ge=N===void 0?P:`${P} · ${N}`,pe=O===void 0?d("trigger.selectAria"):N===void 0?d("trigger.aria",{model:P}):d("trigger.ariaEffort",{model:P,effort:N});M.current=[];let fe=0;const $=l(()=>{const r=fe++;return u=>{M.current[r]=u}},"itemRef");return(0,i.jsxs)("div",{ref:j,className:a.root,onKeyDown:le,onBlur:de,children:[(0,i.jsxs)("button",{ref:W,type:"button",className:a.trigger,"aria-label":pe,"aria-haspopup":"menu","aria-expanded":g,"aria-controls":g?`${A}-menu`:void 0,title:ge,disabled:e,onClick:l(()=>{g?k():ne()},"onClick"),children:[(0,i.jsx)("span",{className:a.triggerLabel,children:P}),N!==void 0&&(0,i.jsx)("span",{className:a.triggerEffort,children:N}),(0,i.jsx)(b.IconChevronDownOutline14,{className:C(a.chevron,g&&a.chevronOpen)})]}),g&&(0,i.jsxs)("div",{id:`${A}-menu`,className:a.menu,role:"menu","aria-label":d("menu.aria"),"aria-busy":s.status==="loading"||I,children:[x==="root"&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitem",className:a.cell,onClick:l(()=>{B("model")},"onClick"),children:[(0,i.jsx)("span",{className:a.cellLabel,children:d("menu.model")}),(0,i.jsx)("span",{className:a.cellValue,children:P}),(0,i.jsx)(b.IconChevronRightOutline14,{className:a.cellChevron})]}),h!==void 0&&(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitem",className:a.cell,onClick:l(()=>{B("effort")},"onClick"),children:[(0,i.jsx)("span",{className:a.cellLabel,children:d("menu.effort")}),(0,i.jsx)("span",{className:a.cellValue,children:N}),(0,i.jsx)(b.IconChevronRightOutline14,{className:a.cellChevron})]})]}),x==="model"&&(0,i.jsxs)(i.Fragment,{children:[s.status==="loading"&&(0,i.jsx)("div",{className:a.status,children:d("status.loading")}),s.error!==null&&_.current==="load"&&(0,i.jsxs)("div",{className:a.error,children:[(0,i.jsx)("span",{children:d("error.action",{message:s.error})}),(0,i.jsx)("button",{type:"button",className:a.retry,onClick:S,children:d("retry")})]}),s.failures.map(r=>(0,i.jsxs)("div",{className:a.warning,children:[(0,i.jsx)("span",{children:d("warning.groupLoad",{name:r.name,message:r.message})}),(0,i.jsx)("button",{type:"button",className:a.retry,onClick:S,children:d("retry")})]},r.id)),(0,i.jsx)("div",{className:C(a.groups,"scrollable"),children:s.groups.map(r=>{const u=`${A}-${r.id}`;return(0,i.jsxs)("section",{role:"group","aria-labelledby":u,className:a.group,children:[(0,i.jsx)("div",{className:a.groupTitle,id:u,children:r.name}),r.models.map(m=>{const y=s.current?.provider===r.id&&s.current.model===m.id;return(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitemradio","aria-checked":y,className:C(a.option,y&&a.selected),title:m.name,disabled:I,onClick:l(()=>{ce({provider:r.id,model:m.id})},"onClick"),children:[(0,i.jsxs)("span",{className:a.optionCopy,children:[(0,i.jsx)("span",{className:a.modelName,children:m.name}),m.description!==void 0&&(0,i.jsx)("span",{className:a.description,children:m.description})]}),(0,i.jsx)("span",{className:a.check,children:y?(0,i.jsx)(b.IconCheckOutline16,{}):null})]},m.id)})]},r.id)})}),s.status==="ready"&&L.length===0&&(0,i.jsx)("div",{className:a.empty,children:d("empty.models")})]}),x==="effort"&&(0,i.jsxs)(i.Fragment,{children:[s.error!==null&&_.current==="load"&&(0,i.jsxs)("div",{className:a.error,children:[(0,i.jsx)("span",{children:d("error.action",{message:s.error})}),(0,i.jsx)("button",{type:"button",className:a.retry,onClick:S,children:d("action.reload")})]}),G.length===0?(0,i.jsx)("div",{className:a.empty,children:d("empty.efforts")}):G.map(r=>(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitemradio","aria-checked":w===r.effort,className:C(a.option,w===r.effort&&a.selected),disabled:I,onClick:l(()=>{ue(r.effort)},"onClick"),children:[(0,i.jsxs)("span",{className:a.optionCopy,children:[(0,i.jsx)("span",{className:a.modelName,children:r.label}),r.description!==void 0&&(0,i.jsx)("span",{className:a.description,children:r.description})]}),(0,i.jsx)("span",{className:a.check,children:w===r.effort?(0,i.jsx)(b.IconCheckOutline16,{}):null})]},r.key))]})]}),R!==null&&(0,i.jsx)(b.Toast,{text:R.text,icon:(0,i.jsx)(b.IconWarningOutline16,{}),anchor:j.current?.closest("[data-composer-card]")??null,onDone:l(()=>{K(null)},"onDone")},R.seq)]})}l(Z,"ModelSelect");const ee={"command.description":"选择本会话使用的模型","option.loadError":"目录加载失败:{message}","trigger.fallback":"选择模型","trigger.selectAria":"选择模型","trigger.aria":"选择模型,当前 {model}","trigger.ariaEffort":"选择模型,当前 {model},推理等级 {effort}","menu.aria":"模型与推理等级","menu.model":"模型","menu.effort":"推理等级","effort.providerDefault":"Default","status.loading":"正在刷新模型列表…","error.action":"模型操作失败:{message}","action.reload":"重新加载","warning.groupLoad":"{name} 加载失败:{message}","empty.models":"没有可用的模型。","blocked.composer":"当前模型不可用,请先选择模型","empty.efforts":"当前模型未提供推理等级。"},re={"command.description":"Select the model for this conversation","option.loadError":"Catalog failed to load: {message}","trigger.fallback":"Select model","trigger.selectAria":"Select model","trigger.aria":"Select model, current {model}","trigger.ariaEffort":"Select model, current {model}, reasoning effort {effort}","menu.aria":"Model and reasoning effort","menu.model":"Model","menu.effort":"Effort","effort.providerDefault":"Default","status.loading":"Refreshing model list…","error.action":"Model operation failed: {message}","action.reload":"Reload","warning.groupLoad":"{name} failed to load: {message}","empty.models":"No models available.","blocked.composer":"This model is unavailable — select one to continue","empty.efforts":"This model provides no reasoning effort levels."};function U(e,n){return`${e}/${n}`}l(U,"rowId");function oe(e,n){const t=[];for(const o of e.groups)for(const c of o.models)t.push({id:U(o.id,c.id),label:c.name,detail:c.description!==void 0?`${o.name} · ${c.description}`:o.name,...e.current.provider===o.id&&e.current.model===c.id?{active:!0}:{}});for(const o of e.failures)t.push({id:`failure/${o.id}`,label:o.name,detail:n("option.loadError",{message:o.message})});return t}l(oe,"optionsOf");function te(e,n){for(const t of e.groups)for(const o of t.models){if(U(t.id,o.id)!==n)continue;const c=e.current?.provider===t.id&&e.current.model===o.id?e.current?.reasoningEffort??o.reasoning?.defaultEffort:o.reasoning?.defaultEffort;return{provider:t.id,model:o.id,...c===void 0?{}:{reasoningEffort:c}}}}l(te,"selectionOf");const D="model",se=["commandUi","connection","locale","sessions","slots","remote"];function ie(e){e.effect(()=>e.locale.register(D,{zh:ee,en:re}),"ui-model-selection: dictionaries");const n=e.locale.bind(D);e.plugin(z,{blockReason:l(()=>n("blocked.composer"),"blockReason")}),e.inject(["commandUi","modelDirectories"],t=>{const o=t.get("commandUi"),c=t.modelDirectories,d=t.sessions;t.effect(()=>o.register({name:"model",description:n("command.description"),available:l(s=>d.subagentAddress(s.sessionId)===void 0,"available"),ui:{kind:"popupSelect",options:l(async s=>{if(d.subagentAddress(s.sessionId)!==void 0)throw new Error("model selection is unavailable for addressed subagent sessions");return oe(await c.directoryFor(s.sessionId).load(),n)},"options"),onSelect:l(async(s,g)=>{if(d.subagentAddress(g.sessionId)!==void 0)throw new Error("model selection is unavailable for addressed subagent sessions");const f=c.directoryFor(g.sessionId),x=te(f.store.getSnapshot(),s.id);if(x===void 0)throw new Error("this provider's catalog failed to load — pick a model from a loaded group");await f.select(x)},"onSelect")}}),"ui-model-selection: /model contribution")}),e.inject(["slots","modelDirectories"],t=>{const o=t.modelDirectories,c=t.sessions;t.slots.inject("conversation.input.model",()=>t.slots.register({name:"conversation.input.model",locale:D,inject:l(d=>{const s=o.directoryFor(d),g=c.subagentAddress(d)===void 0;return{available:g,directory:s.store,load:l(()=>{g&&s.load().catch(()=>{})},"load"),select:l(f=>g?s.select(f).then(()=>!0,()=>!1):Promise.resolve(!1),"select")}},"inject")},Z))})}return l(ie,"apply"),q.ModelDirectory=T,q.ModelDirectoryResolver=z,q.apply=ie,q.inject=se,E.exports},"factory")});
1
+ var me=Object.defineProperty;var l=(v,E)=>me(v,"name",{value:E,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-model-selection",factory:l(v=>{var E={exports:{}},q=E.exports;Object.defineProperty(q,Symbol.toStringTag,{value:"Module"});let Q=v("@deepseek-ai/cordis"),X=v("@deepseek-ai/dsh-client-runtime/client"),i=v("react/jsx-runtime"),p=v("react"),b=v("@deepseek-ai/dsh-client-ui-primitives");var T=class{static{l(this,"ModelDirectory")}sessions;sessionId;available;store=(0,X.createSnapshotStore)({current:null,routable:null,groups:[],failures:[],status:"idle",error:null});generation=0;disposed=!1;constructor(e,n,t){this.sessions=e,this.sessionId=n,this.available=t}async load(){this.assertAvailable();const e=++this.generation;this.store.update(s=>{s.status="loading",s.error=null});const{result:n}=await this.sessions.models({sessionId:this.sessionId});if(this.disposed||e!==this.generation){if(!n.ok)throw new Error(`${n.error.code}: ${n.error.message}`);return n.value}if(!n.ok)throw this.store.update(s=>{s.status="error",s.error=`${n.error.code}: ${n.error.message}`}),new Error(`session.models failed: ${n.error.code}: ${n.error.message}`);const{current:t,routable:o,groups:c,failures:d}=n.value;return this.store.update(s=>{s.current=t,s.routable=o,s.groups=c,s.failures=d,s.status="ready",s.error=null}),n.value}async select(e){this.assertAvailable();const n=++this.generation;this.store.update(o=>{o.status="selecting",o.error=null});const{result:t}=await this.sessions.selectModel({sessionId:this.sessionId,provider:e.provider,model:e.model,...e.reasoningEffort===void 0?{}:{reasoningEffort:e.reasoningEffort}});if(this.disposed||n!==this.generation){if(!t.ok)throw new Error(`${t.error.code}: ${t.error.message}`);return}if(!t.ok)throw this.store.update(o=>{o.status="error",o.error=`${t.error.code}: ${t.error.message}`}),new Error(`session.selectModel failed: ${t.error.code}: ${t.error.message}`);this.store.update(o=>{o.current=t.value.selected,o.routable=!0,o.status="ready",o.error=null})}resetConnected(){this.disposed||(++this.generation,this.store.update(e=>{e.current=null,e.routable=null,e.groups=[],e.failures=[],e.status="idle",e.error=null}),this.available()&&this.load().catch(()=>{}))}dispose(){this.disposed=!0}assertAvailable(){if(!this.available())throw new Error("model selection is unavailable for addressed subagent sessions")}},z=class extends Q.Service{static{l(this,"ModelDirectoryResolver")}static inject=["connection","sessions","remote"];live={directories:new Map};blockReason;constructor(e,n){super(e,"modelDirectories"),this.blockReason=n.blockReason,e.on("connection/reset",()=>{for(const o of this.live.directories.values())o.resetConnected()});const t=l(()=>{for(const o of this.live.directories.values())o.load().catch(()=>{})},"refresh");e.remote.$on("llm/adapters-updated",t),e.remote.$on("settings/document-updated",t)}directoryFor(e){const{live:n}=this,t=n.directories.get(e);if(t!==void 0)return t;const o=this.ctx.get("sessions"),c=o.scope(e);if(c===void 0)throw new Error(`ui-model-selection: session "${String(e)}" resolved no scope`);const d=new T(this.ctx.get("connection").api.sessions,e,()=>o.subagentAddress(e)===void 0);n.directories.set(e,d);const s=this.ctx.get("conversation");if(s!==void 0){const g=l(()=>{s.blocks.set(e,d.store.getSnapshot().routable===!1?{reason:this.blockReason()}:void 0)},"publish");g(),c.effect(()=>{const f=d.store.subscribe(g);return()=>{f(),s.blocks.set(e,void 0)}},"ui-model-selection: composer block")}return c.effect(()=>()=>{d.dispose(),n.directories.delete(e)},"ui-model-selection: session directory"),d}};function F(e){var n,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var c=e.length;for(n=0;n<c;n++)e[n]&&(t=F(e[n]))&&(o&&(o+=" "),o+=t)}else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}l(F,"r");function C(){for(var e,n,t=0,o="",c=arguments.length;t<c;t++)(e=arguments[t])&&(n=F(e))&&(o&&(o+=" "),o+=n);return o}l(C,"clsx");const Y=".gBNP8q_root{min-width:0;position:relative}.gBNP8q_trigger{min-width:0;max-width:220px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:24px;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:500;line-height:20px;display:flex}.gBNP8q_trigger:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.gBNP8q_trigger:focus-visible{box-shadow:0 0 0 2px var(--dsw-alias-border-l3)}.gBNP8q_trigger:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.gBNP8q_triggerLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.gBNP8q_triggerEffort{color:var(--dsw-alias-label-caption);flex:none}.gBNP8q_chevron{color:var(--dsw-alias-label-caption);flex:none;transition:transform .12s}.gBNP8q_chevronOpen{transform:rotate(180deg)}.gBNP8q_menu{z-index:20;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);width:min(240px,100vw - 32px);max-height:min(360px,100vh - 96px);box-shadow:var(--dsw-shadow-lv3);color:var(--dsw-alias-label-primary);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden}.gBNP8q_status,.gBNP8q_empty{color:var(--dsw-alias-label-tertiary);padding:10px;font-size:13px;line-height:20px}.gBNP8q_error,.gBNP8q_warning{background:var(--dsw-alias-interactive-bg-hover-danger);color:var(--dsw-alias-state-error-primary);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;padding:7px 8px;font-size:12px;line-height:18px;display:flex}.gBNP8q_warning{background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-state-warn-label)}.gBNP8q_retry{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:600}.gBNP8q_groups{min-height:0;overflow-y:auto}.gBNP8q_group+.gBNP8q_group{margin-top:4px}.gBNP8q_groupTitle{z-index:1;background:var(--dsw-specific-menu);color:var(--dsw-alias-label-tertiary);padding:5px 8px 3px;font-size:12px;font-weight:500;line-height:18px;position:sticky;top:0}.gBNP8q_option{width:100%;min-height:38px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;outline:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.gBNP8q_option:hover:not(:disabled),.gBNP8q_option:focus-visible{background:var(--dsw-alias-interactive-bg-hover)}.gBNP8q_selected{background:0 0}.gBNP8q_option:disabled{color:var(--dsw-alias-label-dimmed);cursor:default}.gBNP8q_optionCopy{flex-direction:column;flex:1;min-width:0;display:flex}.gBNP8q_modelName{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;overflow:hidden}.gBNP8q_description{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}.gBNP8q_check{color:var(--dsw-alias-label-primary);flex:0 0 18px;place-items:center;display:grid}.gBNP8q_cell{width:100%;height:40px;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:0 10px;font-size:14px;line-height:22px;display:flex}.gBNP8q_cell:hover{background:var(--dsw-alias-interactive-bg-hover)}.gBNP8q_cellLabel{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.gBNP8q_cellValue{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-tertiary);flex:0 auto;overflow:hidden}.gBNP8q_cellChevron{color:var(--dsw-alias-label-tertiary);flex:none}",V="@deepseek-ai/dsh-client-ui-model-selection/ModelSelect.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(V)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-model-selection",e.dataset.pluginCss=V,e.textContent=Y,document.head.appendChild(e)}var a={chevronOpen:"gBNP8q_chevronOpen",check:"gBNP8q_check",cellLabel:"gBNP8q_cellLabel",cellValue:"gBNP8q_cellValue",empty:"gBNP8q_empty",error:"gBNP8q_error",status:"gBNP8q_status",cell:"gBNP8q_cell",cellChevron:"gBNP8q_cellChevron",triggerLabel:"gBNP8q_triggerLabel",trigger:"gBNP8q_trigger",menu:"gBNP8q_menu",option:"gBNP8q_option",modelName:"gBNP8q_modelName",chevron:"gBNP8q_chevron",triggerEffort:"gBNP8q_triggerEffort",group:"gBNP8q_group",root:"gBNP8q_root",retry:"gBNP8q_retry",groups:"gBNP8q_groups",description:"gBNP8q_description",warning:"gBNP8q_warning",groupTitle:"gBNP8q_groupTitle",selected:"gBNP8q_selected",optionCopy:"gBNP8q_optionCopy"};function Z({locked:e,available:n,directory:t,load:o,select:c,t:d}){const s=(0,p.useSyncExternalStore)(r=>t.subscribe(r),()=>t.getSnapshot()),[g,f]=(0,p.useState)(!1),[x,B]=(0,p.useState)("root"),_=(0,p.useRef)("load"),[R,K]=(0,p.useState)(null),J=(0,p.useRef)(0),j=(0,p.useRef)(null),W=(0,p.useRef)(null),M=(0,p.useRef)([]),A=(0,p.useId)(),L=(0,p.useMemo)(()=>s.groups.flatMap(r=>r.models.map(u=>({group:r,model:u,selection:{provider:r.id,model:u.id,...u.reasoning?.defaultEffort===void 0?{}:{reasoningEffort:u.reasoning.defaultEffort}}}))),[s.groups]),O=L[s.current===null?-1:L.findIndex(r=>r.selection.provider===s.current?.provider&&r.selection.model===s.current.model)],h=O?.model.reasoning,w=s.current?.reasoningEffort??h?.defaultEffort,N=h===void 0?void 0:w===void 0?d("effort.providerDefault"):h.efforts.find(r=>r.id===w)?.name??w,G=(0,p.useMemo)(()=>h===void 0?[]:[...h.defaultEffort===void 0?[{key:"provider-default",effort:void 0,label:d("effort.providerDefault")}]:[],...h.efforts.map(r=>({key:`effort:${r.id}`,effort:r.id,label:r.name,...r.description===void 0?{}:{description:r.description}}))],[h,d]),I=s.status==="selecting",S=l(()=>{_.current="load",o()},"reload");if((0,p.useEffect)(()=>{n&&(_.current="load",o())},[n,o]),(0,p.useEffect)(()=>{if(!g)return;const r=l(u=>{j.current?.contains(u.target)||f(!1)},"closeOutside");return document.addEventListener("mousedown",r),()=>{document.removeEventListener("mousedown",r)}},[g]),!n)return null;const ne=l(()=>{B("root"),f(!0),S()},"show"),k=l((r=!1)=>{f(!1),B("root"),r&&queueMicrotask(()=>{W.current?.focus()})},"close"),ae=l(r=>{const u=M.current.filter(y=>y!==null);if(u.length===0)return;const m=u.findIndex(y=>y===document.activeElement);u[(Math.max(m,0)+r+u.length)%u.length]?.focus()},"moveFocus"),le=l(r=>{if(r.key==="Escape"&&g){r.preventDefault(),x!=="root"?B("root"):k(!0);return}g&&(r.key==="ArrowDown"||r.key==="ArrowUp")&&(r.preventDefault(),ae(r.key==="ArrowDown"?1:-1))},"onRootKeyDown"),de=l(r=>{r.relatedTarget instanceof Node&&j.current?.contains(r.relatedTarget)||k()},"onBlur"),H=l(r=>{if(r){j.current!==null&&k(!0);return}const u=t.getSnapshot().error;u!==null&&(J.current+=1,K({seq:J.current,text:d("error.action",{message:u})}))},"settleSelection"),ce=l(r=>{if(s.current?.provider===r.provider&&s.current.model===r.model){k(!0);return}_.current="select",c(r).then(H)},"choose"),ue=l(r=>{if(s.current===null)return;if(w===r){k(!0);return}const u={provider:s.current.provider,model:s.current.model,...r===void 0?{}:{reasoningEffort:r}};_.current="select",c(u).then(H)},"chooseEffort"),P=O?.model.name??d("trigger.fallback"),ge=N===void 0?P:`${P} · ${N}`,pe=O===void 0?d("trigger.selectAria"):N===void 0?d("trigger.aria",{model:P}):d("trigger.ariaEffort",{model:P,effort:N});M.current=[];let fe=0;const $=l(()=>{const r=fe++;return u=>{M.current[r]=u}},"itemRef");return(0,i.jsxs)("div",{ref:j,className:a.root,onKeyDown:le,onBlur:de,children:[(0,i.jsxs)("button",{ref:W,type:"button",className:a.trigger,"aria-label":pe,"aria-haspopup":"menu","aria-expanded":g,"aria-controls":g?`${A}-menu`:void 0,title:ge,disabled:e,onClick:l(()=>{g?k():ne()},"onClick"),children:[(0,i.jsx)("span",{className:a.triggerLabel,children:P}),N!==void 0&&(0,i.jsx)("span",{className:a.triggerEffort,children:N}),(0,i.jsx)(b.IconChevronDownOutline14,{className:C(a.chevron,g&&a.chevronOpen)})]}),g&&(0,i.jsxs)("div",{id:`${A}-menu`,className:a.menu,role:"menu","aria-label":d("menu.aria"),"aria-busy":s.status==="loading"||I,children:[x==="root"&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitem",className:a.cell,onClick:l(()=>{B("model")},"onClick"),children:[(0,i.jsx)("span",{className:a.cellLabel,children:d("menu.model")}),(0,i.jsx)("span",{className:a.cellValue,children:P}),(0,i.jsx)(b.IconChevronRightOutline14,{className:a.cellChevron})]}),h!==void 0&&(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitem",className:a.cell,onClick:l(()=>{B("effort")},"onClick"),children:[(0,i.jsx)("span",{className:a.cellLabel,children:d("menu.effort")}),(0,i.jsx)("span",{className:a.cellValue,children:N}),(0,i.jsx)(b.IconChevronRightOutline14,{className:a.cellChevron})]})]}),x==="model"&&(0,i.jsxs)(i.Fragment,{children:[s.status==="loading"&&(0,i.jsx)("div",{className:a.status,children:d("status.loading")}),s.error!==null&&_.current==="load"&&(0,i.jsxs)("div",{className:a.error,children:[(0,i.jsx)("span",{children:d("error.action",{message:s.error})}),(0,i.jsx)("button",{type:"button",className:a.retry,onClick:S,children:d("retry")})]}),s.failures.map(r=>(0,i.jsxs)("div",{className:a.warning,children:[(0,i.jsx)("span",{children:d("warning.groupLoad",{name:r.name,message:r.message})}),(0,i.jsx)("button",{type:"button",className:a.retry,onClick:S,children:d("retry")})]},r.id)),(0,i.jsx)("div",{className:C(a.groups,"scrollable"),children:s.groups.map(r=>{const u=`${A}-${r.id}`;return(0,i.jsxs)("section",{role:"group","aria-labelledby":u,className:a.group,children:[(0,i.jsx)("div",{className:a.groupTitle,id:u,children:r.name}),r.models.map(m=>{const y=s.current?.provider===r.id&&s.current.model===m.id;return(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitemradio","aria-checked":y,className:C(a.option,y&&a.selected),title:m.name,disabled:I,onClick:l(()=>{ce({provider:r.id,model:m.id})},"onClick"),children:[(0,i.jsxs)("span",{className:a.optionCopy,children:[(0,i.jsx)("span",{className:a.modelName,children:m.name}),m.description!==void 0&&(0,i.jsx)("span",{className:a.description,children:m.description})]}),(0,i.jsx)("span",{className:a.check,children:y?(0,i.jsx)(b.IconCheckOutline16,{}):null})]},m.id)})]},r.id)})}),s.status==="ready"&&L.length===0&&(0,i.jsx)("div",{className:a.empty,children:d("empty.models")})]}),x==="effort"&&(0,i.jsxs)(i.Fragment,{children:[s.error!==null&&_.current==="load"&&(0,i.jsxs)("div",{className:a.error,children:[(0,i.jsx)("span",{children:d("error.action",{message:s.error})}),(0,i.jsx)("button",{type:"button",className:a.retry,onClick:S,children:d("action.reload")})]}),G.length===0?(0,i.jsx)("div",{className:a.empty,children:d("empty.efforts")}):G.map(r=>(0,i.jsxs)("button",{ref:$(),type:"button",role:"menuitemradio","aria-checked":w===r.effort,className:C(a.option,w===r.effort&&a.selected),disabled:I,onClick:l(()=>{ue(r.effort)},"onClick"),children:[(0,i.jsxs)("span",{className:a.optionCopy,children:[(0,i.jsx)("span",{className:a.modelName,children:r.label}),r.description!==void 0&&(0,i.jsx)("span",{className:a.description,children:r.description})]}),(0,i.jsx)("span",{className:a.check,children:w===r.effort?(0,i.jsx)(b.IconCheckOutline16,{}):null})]},r.key))]})]}),R!==null&&(0,i.jsx)(b.Toast,{text:R.text,icon:(0,i.jsx)(b.IconWarningOutline16,{}),anchor:j.current?.closest("[data-composer-card]")??null,onDone:l(()=>{K(null)},"onDone")},R.seq)]})}l(Z,"ModelSelect");const ee={"command.description":"选择本会话使用的模型","option.loadError":"目录加载失败:{message}","trigger.fallback":"选择模型","trigger.selectAria":"选择模型","trigger.aria":"选择模型,当前 {model}","trigger.ariaEffort":"选择模型,当前 {model},推理等级 {effort}","menu.aria":"模型与推理等级","menu.model":"模型","menu.effort":"推理等级","effort.providerDefault":"Default","status.loading":"正在刷新模型列表…","error.action":"模型操作失败:{message}","action.reload":"重新加载","warning.groupLoad":"{name} 加载失败:{message}","empty.models":"没有可用的模型。","blocked.composer":"当前模型不可用,请先选择模型","empty.efforts":"当前模型未提供推理等级。"},re={"command.description":"Select the model for this conversation","option.loadError":"Catalog failed to load: {message}","trigger.fallback":"Select model","trigger.selectAria":"Select model","trigger.aria":"Select model, current {model}","trigger.ariaEffort":"Select model, current {model}, reasoning effort {effort}","menu.aria":"Model and reasoning effort","menu.model":"Model","menu.effort":"Effort","effort.providerDefault":"Default","status.loading":"Refreshing model list…","error.action":"Model operation failed: {message}","action.reload":"Reload","warning.groupLoad":"{name} failed to load: {message}","empty.models":"No models available.","blocked.composer":"This model is unavailable — select one to continue","empty.efforts":"This model provides no reasoning effort levels."};function U(e,n){return`${e}/${n}`}l(U,"rowId");function oe(e,n){const t=[];for(const o of e.groups)for(const c of o.models)t.push({id:U(o.id,c.id),label:c.name,detail:c.description!==void 0?`${o.name} · ${c.description}`:o.name,...e.current.provider===o.id&&e.current.model===c.id?{active:!0}:{}});for(const o of e.failures)t.push({id:`failure/${o.id}`,label:o.name,detail:n("option.loadError",{message:o.message})});return t}l(oe,"optionsOf");function te(e,n){for(const t of e.groups)for(const o of t.models){if(U(t.id,o.id)!==n)continue;const c=e.current?.provider===t.id&&e.current.model===o.id?e.current?.reasoningEffort??o.reasoning?.defaultEffort:o.reasoning?.defaultEffort;return{provider:t.id,model:o.id,...c===void 0?{}:{reasoningEffort:c}}}}l(te,"selectionOf");const D="model",se=["commandUi","connection","locale","sessions","slots","remote"];function ie(e){e.effect(()=>e.locale.register(D,{zh:ee,en:re}),"ui-model-selection: dictionaries");const n=e.locale.bind(D);e.plugin(z,{blockReason:l(()=>n("blocked.composer"),"blockReason")}),e.inject(["commandUi","modelDirectories"],t=>{const o=t.get("commandUi"),c=t.modelDirectories,d=t.sessions;t.effect(()=>o.register({name:"model",description:n("command.description"),available:l(s=>d.subagentAddress(s.sessionId)===void 0,"available"),ui:{kind:"popupSelect",options:l(async s=>{if(d.subagentAddress(s.sessionId)!==void 0)throw new Error("model selection is unavailable for addressed subagent sessions");return oe(await c.directoryFor(s.sessionId).load(),n)},"options"),onSelect:l(async(s,g)=>{if(d.subagentAddress(g.sessionId)!==void 0)throw new Error("model selection is unavailable for addressed subagent sessions");const f=c.directoryFor(g.sessionId),x=te(f.store.getSnapshot(),s.id);if(x===void 0)throw new Error("this provider's catalog failed to load — pick a model from a loaded group");await f.select(x)},"onSelect")}}),"ui-model-selection: /model contribution")}),e.inject(["slots","modelDirectories"],t=>{const o=t.modelDirectories,c=t.sessions;t.slots.inject("conversation.input.model",()=>t.slots.register({name:"conversation.input.model",locale:D,inject:l(d=>{const s=o.directoryFor(d),g=c.subagentAddress(d)===void 0;return{available:g,directory:s.store,load:l(()=>{g&&s.load().catch(()=>{})},"load"),select:l(f=>g?s.select(f).then(()=>!0,()=>!1):Promise.resolve(!1),"select")}},"inject")},Z))})}return l(ie,"apply"),q.ModelDirectory=T,q.ModelDirectoryResolver=z,q.apply=ie,q.inject=se,E.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-model-selection","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"license":"MIT","peerDependencies":{"clsx":"^2.1.1","react":"^18.2.0","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-commands":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-input-trigger":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-model-selection","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"license":"MIT","peerDependencies":{"clsx":"^2.1.1","react":"^18.2.0","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-commands":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-input-trigger":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1"}}
@@ -1 +1 @@
1
- var G=Object.defineProperty;var r=(m,_)=>G(m,"name",{value:_,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-permission-presets",factory:r(m=>{var _={exports:{}},k=_.exports;Object.defineProperty(k,Symbol.toStringTag,{value:"Module"});let d=m("react/jsx-runtime"),v=m("react"),F=m("@deepseek-ai/dsh-client-ui-primitives"),j=m("@deepseek-ai/dsh-client-runtime/client"),E=m("@deepseek-ai/dsh-client-schema-form");const W="danger-full-access";function q(e){return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)?e.split("-").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" "):e}r(q,"displayPresetName");function x(e,s){return e==="danger-full-access"?"Full access":q(s)}r(x,"displayPermissionPreset");const N=".qAtrFW_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.qAtrFW_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.qAtrFW_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.qAtrFW_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.qAtrFW_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.qAtrFW_selector:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.qAtrFW_selector:disabled{cursor:default}.qAtrFW_chevron{flex:none}",A="@deepseek-ai/dsh-client-ui-permission-presets/PermissionRow.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(A)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-permission-presets",e.dataset.pluginCss=A,e.textContent=N,document.head.appendChild(e)}var h={row:"qAtrFW_row",desc:"qAtrFW_desc",selector:"qAtrFW_selector",chevron:"qAtrFW_chevron",title:"qAtrFW_title",rowText:"qAtrFW_rowText"};function L({load:e,select:s,usePermission:t,t:i}){const n=t(c=>c),[o,u]=(0,v.useState)(!1),[y,g]=(0,v.useState)(!1),[a,l]=(0,v.useState)(!1);if((0,v.useEffect)(()=>{e()},[e]),(0,v.useEffect)(()=>{n.writable&&n.status!=="unavailable"||(u(!1),l(!1),g(!1))},[n.status,n.writable]),n.status==="unavailable")return null;const f=n.options.find(c=>c.id===n.currentValue),p=n.status==="loading"||n.status==="saving"||y,$=f?.label??i(p?"loading":"unavailable"),D=n.error??i("description");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:h.row,children:[(0,d.jsxs)("div",{className:h.rowText,children:[(0,d.jsx)("div",{className:h.title,children:i("title")}),(0,d.jsx)("div",{className:h.desc,role:n.error===null?void 0:"alert",children:D})]}),(0,d.jsx)(F.Menu,{open:o,onClose:r(()=>{u(!1)},"onClose"),items:n.options.map(c=>({id:c.id,label:c.label})),selectedId:n.currentValue,onSelect:r(c=>{if(u(!1),c!==n.currentValue){if(c==="danger-full-access"){l(!1),g(!0);return}s(c)}},"onSelect"),align:"end",portal:!0,anchor:(0,d.jsxs)("button",{type:"button",className:h.selector,"aria-haspopup":"menu","aria-expanded":o,disabled:p||!n.writable||n.options.length===0,onClick:r(()=>{u(c=>!c)},"onClick"),children:[$,(0,d.jsx)(F.IconChevronDownOutline14,{className:h.chevron})]})})]}),(0,d.jsx)(F.RiskConfirmation,{open:y,title:i("confirm.title"),description:i("confirm.description"),acknowledgeLabel:i("confirm.acknowledge"),cancelLabel:i("confirm.cancel"),confirmLabel:i("confirm.enable"),acknowledged:a,disabled:!n.writable||n.status==="saving",onAcknowledgedChange:l,onCancel:r(()=>{l(!1),g(!1)},"onCancel"),onConfirm:r(()=>{l(!1),g(!1),s(W)},"onConfirm")})]})}r(L,"PermissionRow");const O={title:"权限",description:"选择新会话的默认权限模式",loading:"加载中",unavailable:"不可用","confirm.title":"确认启用 Full access?","confirm.description":"启用 Full access 后,新会话将减少确认步骤,并且可以直接执行更多操作,包括敏感操作、文件修改或外部命令。仅建议在你信任后续任务时使用。","confirm.acknowledge":"我已了解风险,并愿意继续","confirm.cancel":"取消","confirm.enable":"启用 Full access"},I={title:"Permission",description:"Choose the default permission mode for new sessions",loading:"Loading",unavailable:"Unavailable","confirm.title":"Enable Full access?","confirm.description":"Full access lets new sessions reduce confirmation steps and perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust subsequent tasks.","confirm.acknowledge":"I understand the risks and want to continue","confirm.cancel":"Cancel","confirm.enable":"Enable Full access"},w={"confirm.title":"确认启用 Full access?","confirm.description":"启用 Full access 后,agent 将减少确认步骤,并且可以直接执行更多操作,包括敏感操作、文件修改或外部命令。仅建议在你信任当前任务时使用。","confirm.acknowledge":"我已了解风险,并愿意继续","confirm.cancel":"取消","confirm.enable":"启用 Full access"},b={"confirm.title":"Enable Full access?","confirm.description":"Full access reduces confirmation steps and lets the agent perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust the current task.","confirm.acknowledge":"I understand the risks and want to continue","confirm.cancel":"Cancel","confirm.enable":"Enable Full access"},C="permission";function V(e){const s=e.value?.defaultPreset;if(typeof s!="string")throw new Error("permission settings has no defaultPreset value");const t=(0,E.nodeAtPath)((0,E.rehydrateSchema)(e.schema),["defaultPreset"]);if(t===void 0)throw new Error("permission settings schema has no defaultPreset field");const i=(t.type==="union"?t.list??[]:[t]).flatMap(n=>{const o=n;if(o.type!=="const"||typeof o.value!="string")return[];const u=o.meta?.description;return[{id:o.value,label:typeof u=="string"&&u.length>0?x(o.value,u):x(o.value,o.value)}]});if(i.length===0||!i.some(n=>n.id===s))throw new Error("permission settings schema does not advertise its current preset");return{currentValue:s,options:i}}r(V,"permissionDefaultOf");var z=class{static{r(this,"PermissionPresetSettingsController")}api;store=(0,j.createSnapshotStore)({status:"idle",error:null,writable:!1,currentValue:"",options:[],revision:0});generation=0;view;constructor(e){this.api=e}async load(){const e=++this.generation;this.store.update(s=>{s.status="loading",s.error=null});try{const s=await this.api.settings.describe({});if(!s.result.ok)throw new Error(s.result.error.message);if(e!==this.generation)return;const t=s.result.value.namespaces.find(i=>i.ns===C);if(t===void 0){this.view=void 0,this.store.update(i=>{i.status="unavailable",i.writable=!1,i.currentValue="",i.options=[]});return}this.accept(t,s.result.value.writable)}catch(s){if(e!==this.generation)return;this.fail(s)}}async select(e){const s=this.view,t=this.store.getSnapshot();if(s===void 0||!t.writable)return;const i=++this.generation;this.store.update(n=>{n.status="saving",n.error=null});try{const n=await this.api.settings.mutate({ns:C,ops:[{op:"set",path:["defaultPreset"],value:e}],expectedRevision:s.revision});if(i!==this.generation)return;if(!n.result.ok)throw new Error(n.result.error.message);this.accept(n.result.value,!0)}catch(n){if(i!==this.generation)return;this.fail(n)}}dispose(){this.generation+=1,this.view=void 0}accept(e,s){const t=V(e);this.view=e,this.store.update(i=>{i.status="ready",i.error=null,i.writable=s,i.currentValue=t.currentValue,i.options=t.options,i.revision=e.revision})}fail(e){this.store.update(s=>{s.status="error",s.error=e instanceof Error?e.message:String(e)})}};function T(e){e.store.getSnapshot().status!=="idle"&&e.load()}r(T,"refreshPermissionIfLoaded");const R=["commandUi","sessions","slots","locale","connection","remote"],S="permission.access";function P(e){return e?.projections.faceOf("permissions").getSnapshot()}r(P,"selectOf");function M(e,s){return e.options.filter(t=>t.value!=="custom").map(t=>({id:t.value,label:x(t.value,t.name),...t.description!==void 0?{detail:t.description}:{},...t.value===e.currentValue?{active:!0}:{},...t.value==="danger-full-access"?{confirmation:{title:s("confirm.title"),description:s("confirm.description"),acknowledgeLabel:s("confirm.acknowledge"),cancelLabel:s("confirm.cancel"),confirmLabel:s("confirm.enable")}}:{}}))}r(M,"optionsOf");function U(e){const s=e.get("commandUi"),t=e.sessions;e.effect(()=>{const a=[e.locale.register(S,"zh",{"confirm.title":w["confirm.title"],"confirm.description":w["confirm.description"],"confirm.acknowledge":w["confirm.acknowledge"],"confirm.cancel":w["confirm.cancel"],"confirm.enable":w["confirm.enable"]}),e.locale.register(S,"en",{"confirm.title":b["confirm.title"],"confirm.description":b["confirm.description"],"confirm.acknowledge":b["confirm.acknowledge"],"confirm.cancel":b["confirm.cancel"],"confirm.enable":b["confirm.enable"]})];return()=>{for(const l of a)l()}},"ui-permission: Full access confirmation dictionaries");const i=e.locale.bind(S),n=r(a=>t.binding(a.sessionId)?.session,"sessionFor");e.effect(()=>e.locale.register("settings.permission",{zh:O,en:I}),"ui-permission: settings row dictionaries");const o=new z(e.get("connection").api),u=r(()=>o.load(),"load"),y=r(a=>o.select(a),"select"),g=r(()=>({hooks:{permission:o.store},load:u,select:y}),"injected");e.effect(()=>{const a=r(()=>{T(o)},"refresh"),l=[e.remote.$on("settings/document-updated",f=>{f==="permission"&&a()}),e.on("connection/reset",()=>{a()})];return()=>{o.dispose();for(const f of l)f()}},"ui-permission: settings invalidations"),e.slots.inject("settings.general.item",()=>e.slots.register({name:"settings.general.item",id:"permission",order:-20,locale:"settings.permission",inject:g},L)),e.effect(()=>s.decorate({name:"permission",available:r(a=>P(n(a))!==void 0,"available"),ui:{kind:"popupSelect",options:r(a=>{const l=P(n(a));if(l===void 0)throw new Error("permission presets are not available on this host");return Promise.resolve(M(l,i))},"options"),onSelect:r(async(a,l)=>{const f=n(l);if(f===void 0)throw new Error("this session is not materialized yet");const p=await f.command(`/permission ${a.id}`);if(!p.ok)throw new Error(`permission switch failed: ${p.error.code}: ${p.error.message}`);if(!p.value.matched)throw new Error("the host offers no /permission command")},"onSelect")}}),"ui-permission: /permission decoration")}return r(U,"apply"),k.apply=U,k.inject=R,_.exports},"factory")});
1
+ var G=Object.defineProperty;var r=(m,_)=>G(m,"name",{value:_,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-permission-presets",factory:r(m=>{var _={exports:{}},k=_.exports;Object.defineProperty(k,Symbol.toStringTag,{value:"Module"});let d=m("react/jsx-runtime"),v=m("react"),F=m("@deepseek-ai/dsh-client-ui-primitives"),j=m("@deepseek-ai/dsh-client-runtime/client"),E=m("@deepseek-ai/dsh-client-schema-form");const W="danger-full-access";function q(e){return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)?e.split("-").map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" "):e}r(q,"displayPresetName");function x(e,s){return e==="danger-full-access"?"Full access":q(s)}r(x,"displayPermissionPreset");const N=".qAtrFW_row{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.qAtrFW_rowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.qAtrFW_title{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.qAtrFW_desc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.qAtrFW_selector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.qAtrFW_selector:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.qAtrFW_selector:disabled{cursor:default}.qAtrFW_chevron{flex:none}",A="@deepseek-ai/dsh-client-ui-permission-presets/PermissionRow.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(A)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-permission-presets",e.dataset.pluginCss=A,e.textContent=N,document.head.appendChild(e)}var h={desc:"qAtrFW_desc",selector:"qAtrFW_selector",rowText:"qAtrFW_rowText",title:"qAtrFW_title",chevron:"qAtrFW_chevron",row:"qAtrFW_row"};function L({load:e,select:s,usePermission:t,t:i}){const n=t(c=>c),[o,u]=(0,v.useState)(!1),[y,g]=(0,v.useState)(!1),[a,l]=(0,v.useState)(!1);if((0,v.useEffect)(()=>{e()},[e]),(0,v.useEffect)(()=>{n.writable&&n.status!=="unavailable"||(u(!1),l(!1),g(!1))},[n.status,n.writable]),n.status==="unavailable")return null;const f=n.options.find(c=>c.id===n.currentValue),p=n.status==="loading"||n.status==="saving"||y,$=f?.label??i(p?"loading":"unavailable"),D=n.error??i("description");return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:h.row,children:[(0,d.jsxs)("div",{className:h.rowText,children:[(0,d.jsx)("div",{className:h.title,children:i("title")}),(0,d.jsx)("div",{className:h.desc,role:n.error===null?void 0:"alert",children:D})]}),(0,d.jsx)(F.Menu,{open:o,onClose:r(()=>{u(!1)},"onClose"),items:n.options.map(c=>({id:c.id,label:c.label})),selectedId:n.currentValue,onSelect:r(c=>{if(u(!1),c!==n.currentValue){if(c==="danger-full-access"){l(!1),g(!0);return}s(c)}},"onSelect"),align:"end",portal:!0,anchor:(0,d.jsxs)("button",{type:"button",className:h.selector,"aria-haspopup":"menu","aria-expanded":o,disabled:p||!n.writable||n.options.length===0,onClick:r(()=>{u(c=>!c)},"onClick"),children:[$,(0,d.jsx)(F.IconChevronDownOutline14,{className:h.chevron})]})})]}),(0,d.jsx)(F.RiskConfirmation,{open:y,title:i("confirm.title"),description:i("confirm.description"),acknowledgeLabel:i("confirm.acknowledge"),cancelLabel:i("confirm.cancel"),confirmLabel:i("confirm.enable"),acknowledged:a,disabled:!n.writable||n.status==="saving",onAcknowledgedChange:l,onCancel:r(()=>{l(!1),g(!1)},"onCancel"),onConfirm:r(()=>{l(!1),g(!1),s(W)},"onConfirm")})]})}r(L,"PermissionRow");const O={title:"权限",description:"选择新会话的默认权限模式",loading:"加载中",unavailable:"不可用","confirm.title":"确认启用 Full access?","confirm.description":"启用 Full access 后,新会话将减少确认步骤,并且可以直接执行更多操作,包括敏感操作、文件修改或外部命令。仅建议在你信任后续任务时使用。","confirm.acknowledge":"我已了解风险,并愿意继续","confirm.cancel":"取消","confirm.enable":"启用 Full access"},I={title:"Permission",description:"Choose the default permission mode for new sessions",loading:"Loading",unavailable:"Unavailable","confirm.title":"Enable Full access?","confirm.description":"Full access lets new sessions reduce confirmation steps and perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust subsequent tasks.","confirm.acknowledge":"I understand the risks and want to continue","confirm.cancel":"Cancel","confirm.enable":"Enable Full access"},w={"confirm.title":"确认启用 Full access?","confirm.description":"启用 Full access 后,agent 将减少确认步骤,并且可以直接执行更多操作,包括敏感操作、文件修改或外部命令。仅建议在你信任当前任务时使用。","confirm.acknowledge":"我已了解风险,并愿意继续","confirm.cancel":"取消","confirm.enable":"启用 Full access"},b={"confirm.title":"Enable Full access?","confirm.description":"Full access reduces confirmation steps and lets the agent perform more actions directly, including sensitive operations, file changes, or external commands. Only use it when you trust the current task.","confirm.acknowledge":"I understand the risks and want to continue","confirm.cancel":"Cancel","confirm.enable":"Enable Full access"},C="permission";function V(e){const s=e.value?.defaultPreset;if(typeof s!="string")throw new Error("permission settings has no defaultPreset value");const t=(0,E.nodeAtPath)((0,E.rehydrateSchema)(e.schema),["defaultPreset"]);if(t===void 0)throw new Error("permission settings schema has no defaultPreset field");const i=(t.type==="union"?t.list??[]:[t]).flatMap(n=>{const o=n;if(o.type!=="const"||typeof o.value!="string")return[];const u=o.meta?.description;return[{id:o.value,label:typeof u=="string"&&u.length>0?x(o.value,u):x(o.value,o.value)}]});if(i.length===0||!i.some(n=>n.id===s))throw new Error("permission settings schema does not advertise its current preset");return{currentValue:s,options:i}}r(V,"permissionDefaultOf");var z=class{static{r(this,"PermissionPresetSettingsController")}api;store=(0,j.createSnapshotStore)({status:"idle",error:null,writable:!1,currentValue:"",options:[],revision:0});generation=0;view;constructor(e){this.api=e}async load(){const e=++this.generation;this.store.update(s=>{s.status="loading",s.error=null});try{const s=await this.api.settings.describe({});if(!s.result.ok)throw new Error(s.result.error.message);if(e!==this.generation)return;const t=s.result.value.namespaces.find(i=>i.ns===C);if(t===void 0){this.view=void 0,this.store.update(i=>{i.status="unavailable",i.writable=!1,i.currentValue="",i.options=[]});return}this.accept(t,s.result.value.writable)}catch(s){if(e!==this.generation)return;this.fail(s)}}async select(e){const s=this.view,t=this.store.getSnapshot();if(s===void 0||!t.writable)return;const i=++this.generation;this.store.update(n=>{n.status="saving",n.error=null});try{const n=await this.api.settings.mutate({ns:C,ops:[{op:"set",path:["defaultPreset"],value:e}],expectedRevision:s.revision});if(i!==this.generation)return;if(!n.result.ok)throw new Error(n.result.error.message);this.accept(n.result.value,!0)}catch(n){if(i!==this.generation)return;this.fail(n)}}dispose(){this.generation+=1,this.view=void 0}accept(e,s){const t=V(e);this.view=e,this.store.update(i=>{i.status="ready",i.error=null,i.writable=s,i.currentValue=t.currentValue,i.options=t.options,i.revision=e.revision})}fail(e){this.store.update(s=>{s.status="error",s.error=e instanceof Error?e.message:String(e)})}};function T(e){e.store.getSnapshot().status!=="idle"&&e.load()}r(T,"refreshPermissionIfLoaded");const R=["commandUi","sessions","slots","locale","connection","remote"],S="permission.access";function P(e){return e?.projections.faceOf("permissions").getSnapshot()}r(P,"selectOf");function M(e,s){return e.options.filter(t=>t.value!=="custom").map(t=>({id:t.value,label:x(t.value,t.name),...t.description!==void 0?{detail:t.description}:{},...t.value===e.currentValue?{active:!0}:{},...t.value==="danger-full-access"?{confirmation:{title:s("confirm.title"),description:s("confirm.description"),acknowledgeLabel:s("confirm.acknowledge"),cancelLabel:s("confirm.cancel"),confirmLabel:s("confirm.enable")}}:{}}))}r(M,"optionsOf");function U(e){const s=e.get("commandUi"),t=e.sessions;e.effect(()=>{const a=[e.locale.register(S,"zh",{"confirm.title":w["confirm.title"],"confirm.description":w["confirm.description"],"confirm.acknowledge":w["confirm.acknowledge"],"confirm.cancel":w["confirm.cancel"],"confirm.enable":w["confirm.enable"]}),e.locale.register(S,"en",{"confirm.title":b["confirm.title"],"confirm.description":b["confirm.description"],"confirm.acknowledge":b["confirm.acknowledge"],"confirm.cancel":b["confirm.cancel"],"confirm.enable":b["confirm.enable"]})];return()=>{for(const l of a)l()}},"ui-permission: Full access confirmation dictionaries");const i=e.locale.bind(S),n=r(a=>t.binding(a.sessionId)?.session,"sessionFor");e.effect(()=>e.locale.register("settings.permission",{zh:O,en:I}),"ui-permission: settings row dictionaries");const o=new z(e.get("connection").api),u=r(()=>o.load(),"load"),y=r(a=>o.select(a),"select"),g=r(()=>({hooks:{permission:o.store},load:u,select:y}),"injected");e.effect(()=>{const a=r(()=>{T(o)},"refresh"),l=[e.remote.$on("settings/document-updated",f=>{f==="permission"&&a()}),e.on("connection/reset",()=>{a()})];return()=>{o.dispose();for(const f of l)f()}},"ui-permission: settings invalidations"),e.slots.inject("settings.general.item",()=>e.slots.register({name:"settings.general.item",id:"permission",order:-20,locale:"settings.permission",inject:g},L)),e.effect(()=>s.decorate({name:"permission",available:r(a=>P(n(a))!==void 0,"available"),ui:{kind:"popupSelect",options:r(a=>{const l=P(n(a));if(l===void 0)throw new Error("permission presets are not available on this host");return Promise.resolve(M(l,i))},"options"),onSelect:r(async(a,l)=>{const f=n(l);if(f===void 0)throw new Error("this session is not materialized yet");const p=await f.command(`/permission ${a.id}`);if(!p.ok)throw new Error(`permission switch failed: ${p.error.code}: ${p.error.message}`);if(!p.value.matched)throw new Error("the host offers no /permission command")},"onSelect")}}),"ui-permission: /permission decoration")}return r(U,"apply"),k.apply=U,k.inject=R,_.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-permission-presets","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-commands":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.7","@deepseek-ai/dsh-client-schema-form":"^0.1.0-rc.7","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-input-trigger":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-permission-presets":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-permission-presets","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-commands","@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-ui-settings"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-schema-form":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-commands":"^0.1.0-rc.7","@deepseek-ai/dsh-permission-presets":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-input-trigger":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-settings":"^0.1.0-rc.7"}}
@@ -1 +1 @@
1
- var P=Object.defineProperty;var n=(a,l)=>P(a,"name",{value:l,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-plan",factory:n(a=>{var l={exports:{}},d=l.exports;Object.defineProperty(d,Symbol.toStringTag,{value:"Module"});let r=a("react/jsx-runtime"),o=a("react"),_=a("@deepseek-ai/dsh-client-ui-primitives");const w=".vWrRaG_wrap{align-items:center;gap:6px;display:inline-flex}.vWrRaG_chip{background:var(--dsw-alias-state-warn-tertiary);min-width:34px;color:var(--dsw-alias-state-warn-label);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.vWrRaG_chip:hover:not(:disabled){color:var(--dsw-alias-state-warn-primary)}.vWrRaG_chip:focus-visible{outline:2px solid var(--dsw-alias-state-warn-label);outline-offset:2px}.vWrRaG_chip:disabled{opacity:.6;cursor:default}.vWrRaG_close{color:currentColor;align-items:center;display:inline-flex}.vWrRaG_error{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}",h="@deepseek-ai/dsh-client-ui-plan/PlanModeControl.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(h)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-plan",e.dataset.pluginCss=h,e.textContent=w,document.head.appendChild(e)}var s={error:"vWrRaG_error",wrap:"vWrRaG_wrap",chip:"vWrRaG_chip",close:"vWrRaG_close"};function y({useProjection:e,locked:u,exitPlanMode:t,t:g}){const c=e("plan"),[G,f]=(0,o.useState)(!1),[x,m]=(0,o.useState)(null),p=(0,o.useRef)(!0);if((0,o.useEffect)(()=>(p.current=!0,()=>{p.current=!1}),[]),c===void 0||!(c.pending?!c.active:c.active))return null;const W=n(()=>{f(!0),m(null),t().then(i=>{p.current&&(f(!1),m(i))},i=>{p.current&&(f(!1),m(i instanceof Error?i.message:String(i)))})},"off");return(0,r.jsxs)("span",{className:s.wrap,children:[(0,r.jsxs)("button",{type:"button",className:s.chip,"aria-label":g("chip.on.aria"),title:g("chip.on.title"),disabled:u||G,onClick:W,children:["Plan",(0,r.jsx)("span",{className:s.close,"aria-hidden":!0,children:(0,r.jsx)(_.IconCloseFill14,{size:12})})]}),x!==null&&(0,r.jsx)("span",{className:s.error,role:"status",title:x,children:"failed to exit plan mode"})]})}n(y,"PlanChip");const b={"chip.on.aria":"plan mode 已开启,按下关闭","chip.on.title":"plan mode 已开启 — 点击关闭(/plan off)","chip.off.aria":"plan mode 已关闭,按下开启","chip.off.title":"plan mode 已关闭 — 点击开启(/plan)"},R={"chip.on.aria":"Plan mode on, press to turn off","chip.on.title":"Plan mode on — click to turn off (/plan off)","chip.off.aria":"Plan mode off, press to turn on","chip.off.title":"Plan mode off — click to turn on (/plan)"},v="plan",j=["slots","remote","remote.commands","locale"];function k(e){e.effect(()=>e.locale.register(v,{zh:b,en:R}),"ui-plan: dictionaries"),e.slots.inject("conversation.input.plan",()=>e.slots.register({name:"conversation.input.plan",locale:v,inject:n(u=>({exitPlanMode:n(async()=>{const t=await e.remote.commands.execute(u,"/plan off");return t.ok?t.value===void 0?"unknown command: /plan off":null:`${t.error.message} (${t.error.code})`},"exitPlanMode")}),"inject")},y))}return n(k,"apply"),d.apply=k,d.inject=j,l.exports},"factory")});
1
+ var P=Object.defineProperty;var n=(a,l)=>P(a,"name",{value:l,configurable:!0});window.__ModuleLoader__.load({id:"@deepseek-ai/dsh-client-ui-plan",factory:n(a=>{var l={exports:{}},d=l.exports;Object.defineProperty(d,Symbol.toStringTag,{value:"Module"});let r=a("react/jsx-runtime"),o=a("react"),_=a("@deepseek-ai/dsh-client-ui-primitives");const w=".vWrRaG_wrap{align-items:center;gap:6px;display:inline-flex}.vWrRaG_chip{background:var(--dsw-alias-state-warn-tertiary);min-width:34px;color:var(--dsw-alias-state-warn-label);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.vWrRaG_chip:hover:not(:disabled){color:var(--dsw-alias-state-warn-primary)}.vWrRaG_chip:focus-visible{outline:2px solid var(--dsw-alias-state-warn-label);outline-offset:2px}.vWrRaG_chip:disabled{opacity:.6;cursor:default}.vWrRaG_close{color:currentColor;align-items:center;display:inline-flex}.vWrRaG_error{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}",h="@deepseek-ai/dsh-client-ui-plan/PlanModeControl.module.css";if(typeof document<"u"&&document.querySelector("style[data-plugin-css="+JSON.stringify(h)+"]")===null){const e=document.createElement("style");e.dataset.plugin="@deepseek-ai/dsh-client-ui-plan",e.dataset.pluginCss=h,e.textContent=w,document.head.appendChild(e)}var s={wrap:"vWrRaG_wrap",chip:"vWrRaG_chip",error:"vWrRaG_error",close:"vWrRaG_close"};function y({useProjection:e,locked:u,exitPlanMode:t,t:g}){const c=e("plan"),[G,f]=(0,o.useState)(!1),[x,m]=(0,o.useState)(null),p=(0,o.useRef)(!0);if((0,o.useEffect)(()=>(p.current=!0,()=>{p.current=!1}),[]),c===void 0||!(c.pending?!c.active:c.active))return null;const W=n(()=>{f(!0),m(null),t().then(i=>{p.current&&(f(!1),m(i))},i=>{p.current&&(f(!1),m(i instanceof Error?i.message:String(i)))})},"off");return(0,r.jsxs)("span",{className:s.wrap,children:[(0,r.jsxs)("button",{type:"button",className:s.chip,"aria-label":g("chip.on.aria"),title:g("chip.on.title"),disabled:u||G,onClick:W,children:["Plan",(0,r.jsx)("span",{className:s.close,"aria-hidden":!0,children:(0,r.jsx)(_.IconCloseFill14,{size:12})})]}),x!==null&&(0,r.jsx)("span",{className:s.error,role:"status",title:x,children:"failed to exit plan mode"})]})}n(y,"PlanChip");const b={"chip.on.aria":"plan mode 已开启,按下关闭","chip.on.title":"plan mode 已开启 — 点击关闭(/plan off)","chip.off.aria":"plan mode 已关闭,按下开启","chip.off.title":"plan mode 已关闭 — 点击开启(/plan)"},R={"chip.on.aria":"Plan mode on, press to turn off","chip.on.title":"Plan mode on — click to turn off (/plan off)","chip.off.aria":"Plan mode off, press to turn on","chip.off.title":"Plan mode off — click to turn on (/plan)"},v="plan",j=["slots","remote","remote.commands","locale"];function k(e){e.effect(()=>e.locale.register(v,{zh:b,en:R}),"ui-plan: dictionaries"),e.slots.inject("conversation.input.plan",()=>e.slots.register({name:"conversation.input.plan",locale:v,inject:n(u=>({exitPlanMode:n(async()=>{const t=await e.remote.commands.execute(u,"/plan off");return t.ok?t.value===void 0?"unknown command: /plan off":null:`${t.error.message} (${t.error.code})`},"exitPlanMode")}),"inject")},y))}return n(k,"apply"),d.apply=k,d.inject=j,l.exports},"factory")});
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-plan","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-plan-mode":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-plan","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-api-remotes","@deepseek-ai/dsh-client-locale","@deepseek-ai/dsh-client-ui-conversation"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-locale":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-primitives":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-conversation":"^0.1.0-rc.7","@deepseek-ai/dsh-plan-mode":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/cordis":"^4.0.1"}}
@@ -1 +1 @@
1
- {"name":"@deepseek-ai/dsh-client-ui-settings","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-client-schema-form":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-settings":"^0.1.0-rc.7"}}
1
+ {"name":"@deepseek-ai/dsh-client-ui-settings","version":"0.1.0-rc.7","publishConfig":{"access":"public"},"type":"module","main":"lib/index.js","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./invariant":{"types":"./lib/types/invariant.d.ts","default":"./lib/invariant.js"},"./client":{"types":"./lib/types/client/index.d.ts","default":"./lib/client.js"},"./src/*":"./src/*","./package.json":"./package.json"},"dsh":{"client":{"inject":["@deepseek-ai/dsh-client-connection","@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-api-remotes"],"platform":"web"}},"license":"MIT","peerDependencies":{"react":"^18.2.0","@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-runtime":"^0.1.0-rc.7","@deepseek-ai/dsh-api-remotes":"^0.1.0-rc.7","@deepseek-ai/dsh-client-ui-slots":"^0.1.0-rc.7","@deepseek-ai/dsh-invariants":"^0.1.0-rc.7","@deepseek-ai/dsh-settings":"^0.1.0-rc.7","@deepseek-ai/dsh-client-connection":"^0.1.0-rc.7","@deepseek-ai/dsh-client-schema-form":"^0.1.0-rc.7"}}