@lemoncat7/dsh-partner 2.8.3 → 2.8.6

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 (248) hide show
  1. package/README.md +27 -406
  2. package/docs/THIRD_PARTY_LICENSES.md +4 -0
  3. package/docs/bark-notifications.md +27 -0
  4. package/docs/concern-workflow.md +39 -0
  5. package/docs/director-skills.md +8 -3
  6. package/docs/dsh-021-compatibility.md +9 -0
  7. package/docs/package-distribution.md +11 -0
  8. package/docs/releases/1.12.0.md +16 -0
  9. package/docs/releases/1.14.2.md +8 -0
  10. package/docs/releases/1.15.0.md +15 -0
  11. package/docs/releases/1.16.0.md +15 -0
  12. package/docs/releases/1.16.1.md +12 -0
  13. package/docs/releases/1.16.2.md +12 -0
  14. package/docs/releases/2.0.0.md +19 -0
  15. package/docs/releases/2.1.0.md +8 -0
  16. package/docs/releases/2.2.0.md +8 -0
  17. package/docs/releases/2.3.0.md +8 -0
  18. package/docs/releases/2.4.0.md +8 -0
  19. package/docs/releases/2.5.0.md +8 -0
  20. package/docs/releases/2.8.0.md +6 -0
  21. package/docs/releases/2.8.4.md +35 -0
  22. package/docs/releases/2.8.5.md +23 -0
  23. package/docs/releases/2.8.6.md +22 -0
  24. package/docs/releases/README.md +14 -0
  25. package/lib/agent-runtime.d.ts +1 -0
  26. package/lib/agent-runtime.d.ts.map +1 -1
  27. package/lib/agent-runtime.js +14 -5
  28. package/lib/agent-runtime.js.map +1 -1
  29. package/lib/api/features/push-api.d.ts +4 -0
  30. package/lib/api/features/push-api.d.ts.map +1 -0
  31. package/lib/api/features/push-api.js +47 -0
  32. package/lib/api/features/push-api.js.map +1 -0
  33. package/lib/api.d.ts +2 -0
  34. package/lib/api.d.ts.map +1 -1
  35. package/lib/api.js +5 -1
  36. package/lib/api.js.map +1 -1
  37. package/lib/autonomy.d.ts.map +1 -1
  38. package/lib/autonomy.js +5 -4
  39. package/lib/autonomy.js.map +1 -1
  40. package/lib/channels/direct/message-format.js +13 -8
  41. package/lib/channels/direct/message-format.js.map +3 -3
  42. package/lib/client-api.d.ts +1 -0
  43. package/lib/client-api.d.ts.map +1 -1
  44. package/lib/client-api.js.map +1 -1
  45. package/lib/client.d.ts.map +1 -1
  46. package/lib/client.js +1170 -646
  47. package/lib/client.js.map +4 -4
  48. package/lib/collaboration/composition.d.ts.map +1 -1
  49. package/lib/collaboration/composition.js +1 -0
  50. package/lib/collaboration/composition.js.map +1 -1
  51. package/lib/collaboration/ssh-task-access.d.ts +33 -0
  52. package/lib/collaboration/ssh-task-access.d.ts.map +1 -0
  53. package/lib/collaboration/ssh-task-access.js +26 -0
  54. package/lib/collaboration/ssh-task-access.js.map +1 -0
  55. package/lib/companions/removal.d.ts.map +1 -1
  56. package/lib/companions/removal.js +4 -0
  57. package/lib/companions/removal.js.map +1 -1
  58. package/lib/concern-domain.d.ts +2 -0
  59. package/lib/concern-domain.d.ts.map +1 -1
  60. package/lib/concern-domain.js.map +1 -1
  61. package/lib/concern-execution-notes.d.ts +2 -0
  62. package/lib/concern-execution-notes.d.ts.map +1 -1
  63. package/lib/concern-execution-notes.js +9 -2
  64. package/lib/concern-execution-notes.js.map +1 -1
  65. package/lib/concern-execution-receipt.d.ts.map +1 -1
  66. package/lib/concern-execution-receipt.js +3 -2
  67. package/lib/concern-execution-receipt.js.map +1 -1
  68. package/lib/concern-execution.d.ts.map +1 -1
  69. package/lib/concern-execution.js +1 -0
  70. package/lib/concern-execution.js.map +1 -1
  71. package/lib/concern-knowledge-source.d.ts +23 -0
  72. package/lib/concern-knowledge-source.d.ts.map +1 -0
  73. package/lib/concern-knowledge-source.js +30 -0
  74. package/lib/concern-knowledge-source.js.map +1 -0
  75. package/lib/concern-note-source.d.ts +2 -1
  76. package/lib/concern-note-source.d.ts.map +1 -1
  77. package/lib/concern-note-source.js +6 -2
  78. package/lib/concern-note-source.js.map +1 -1
  79. package/lib/concern-store.d.ts.map +1 -1
  80. package/lib/concern-store.js +5 -0
  81. package/lib/concern-store.js.map +1 -1
  82. package/lib/domain.d.ts +2 -0
  83. package/lib/domain.d.ts.map +1 -1
  84. package/lib/domain.js.map +1 -1
  85. package/lib/index.d.ts.map +1 -1
  86. package/lib/index.js +18 -1
  87. package/lib/index.js.map +1 -1
  88. package/lib/notifications/bark-adapter.d.ts +9 -0
  89. package/lib/notifications/bark-adapter.d.ts.map +1 -0
  90. package/lib/notifications/bark-adapter.js +69 -0
  91. package/lib/notifications/bark-adapter.js.map +1 -0
  92. package/lib/notifications/push-config.d.ts +10 -0
  93. package/lib/notifications/push-config.d.ts.map +1 -0
  94. package/lib/notifications/push-config.js +79 -0
  95. package/lib/notifications/push-config.js.map +1 -0
  96. package/lib/notifications/push-credentials.d.ts +9 -0
  97. package/lib/notifications/push-credentials.d.ts.map +1 -0
  98. package/lib/notifications/push-credentials.js +16 -0
  99. package/lib/notifications/push-credentials.js.map +1 -0
  100. package/lib/notifications/push-domain.d.ts +66 -0
  101. package/lib/notifications/push-domain.d.ts.map +1 -0
  102. package/lib/notifications/push-domain.js +6 -0
  103. package/lib/notifications/push-domain.js.map +1 -0
  104. package/lib/notifications/push-observer.d.ts +19 -0
  105. package/lib/notifications/push-observer.d.ts.map +1 -0
  106. package/lib/notifications/push-observer.js +96 -0
  107. package/lib/notifications/push-observer.js.map +1 -0
  108. package/lib/notifications/push-service.d.ts +33 -0
  109. package/lib/notifications/push-service.d.ts.map +1 -0
  110. package/lib/notifications/push-service.js +228 -0
  111. package/lib/notifications/push-service.js.map +1 -0
  112. package/lib/notifications/push-state.d.ts +3 -0
  113. package/lib/notifications/push-state.d.ts.map +1 -0
  114. package/lib/notifications/push-state.js +23 -0
  115. package/lib/notifications/push-state.js.map +1 -0
  116. package/lib/observation-budget.d.ts +3 -2
  117. package/lib/observation-budget.d.ts.map +1 -1
  118. package/lib/observation-budget.js +5 -3
  119. package/lib/observation-budget.js.map +1 -1
  120. package/lib/observation-loop.d.ts +1 -0
  121. package/lib/observation-loop.d.ts.map +1 -1
  122. package/lib/observation-loop.js +129 -21
  123. package/lib/observation-loop.js.map +1 -1
  124. package/lib/observation-model-retry.d.ts +20 -0
  125. package/lib/observation-model-retry.d.ts.map +1 -0
  126. package/lib/observation-model-retry.js +48 -0
  127. package/lib/observation-model-retry.js.map +1 -0
  128. package/lib/observation-progress.d.ts +1 -0
  129. package/lib/observation-progress.d.ts.map +1 -1
  130. package/lib/observation-progress.js +24 -4
  131. package/lib/observation-progress.js.map +1 -1
  132. package/lib/observation-workflow.d.ts +40 -0
  133. package/lib/observation-workflow.d.ts.map +1 -0
  134. package/lib/observation-workflow.js +154 -0
  135. package/lib/observation-workflow.js.map +1 -0
  136. package/lib/recording-snapshot.d.ts.map +1 -1
  137. package/lib/recording-snapshot.js +12 -2
  138. package/lib/recording-snapshot.js.map +1 -1
  139. package/lib/skills/ai-camera-language-builtin.d.ts +3 -0
  140. package/lib/skills/ai-camera-language-builtin.d.ts.map +1 -0
  141. package/lib/skills/ai-camera-language-builtin.js +89 -0
  142. package/lib/skills/ai-camera-language-builtin.js.map +1 -0
  143. package/lib/skills/builtin.d.ts.map +1 -1
  144. package/lib/skills/builtin.js +2 -0
  145. package/lib/skills/builtin.js.map +1 -1
  146. package/lib/skills/story-builtins.js +2 -2
  147. package/lib/skills/story-builtins.js.map +1 -1
  148. package/lib/storage/migrate-layout.d.ts.map +1 -1
  149. package/lib/storage/migrate-layout.js +2 -0
  150. package/lib/storage/migrate-layout.js.map +1 -1
  151. package/lib/storage/split-state.js +2 -2
  152. package/lib/storage/split-state.js.map +1 -1
  153. package/lib/store.d.ts.map +1 -1
  154. package/lib/store.js +2 -0
  155. package/lib/store.js.map +1 -1
  156. package/lib/ui/capability-editor.d.ts.map +1 -1
  157. package/lib/ui/capability-editor.js +3 -5
  158. package/lib/ui/capability-editor.js.map +1 -1
  159. package/lib/ui/channels-panel.d.ts.map +1 -1
  160. package/lib/ui/channels-panel.js +7 -1
  161. package/lib/ui/channels-panel.js.map +1 -1
  162. package/lib/ui/push-channels.d.ts +11 -0
  163. package/lib/ui/push-channels.d.ts.map +1 -0
  164. package/lib/ui/push-channels.js +28 -0
  165. package/lib/ui/push-channels.js.map +1 -0
  166. package/lib/ui/push-draft.d.ts +30 -0
  167. package/lib/ui/push-draft.d.ts.map +1 -0
  168. package/lib/ui/push-draft.js +13 -0
  169. package/lib/ui/push-draft.js.map +1 -0
  170. package/lib/ui/push-editor.d.ts +10 -0
  171. package/lib/ui/push-editor.d.ts.map +1 -0
  172. package/lib/ui/push-editor.js +99 -0
  173. package/lib/ui/push-editor.js.map +1 -0
  174. package/lib/ui/runtime-settings.d.ts +18 -0
  175. package/lib/ui/runtime-settings.d.ts.map +1 -0
  176. package/lib/ui/runtime-settings.js +25 -0
  177. package/lib/ui/runtime-settings.js.map +1 -0
  178. package/lib/ui/workspace-components.d.ts +7 -1
  179. package/lib/ui/workspace-components.d.ts.map +1 -1
  180. package/lib/ui/workspace-components.js +8 -4
  181. package/lib/ui/workspace-components.js.map +1 -1
  182. package/package.json +56 -47
  183. package/resources/skills/ai-camera-language/manifest.json +26 -0
  184. package/resources/skills/ai-camera-language/references/camera-dictionary.md +315 -0
  185. package/resources/skills/ai-camera-language/references/prompt-workflow.md +186 -0
  186. package/resources/skills/ai-camera-language/references/video-summary.md +123 -0
  187. package/resources/skills/novel-game-creation/manifest.json +2 -245
  188. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/BUILD_BRIEF.md +0 -219
  189. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/.vercelignore +0 -3
  190. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/RUN.md +0 -138
  191. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  192. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  193. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  194. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  195. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  196. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  197. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  198. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  199. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  200. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  201. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  202. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  203. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  204. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  205. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  206. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  207. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  208. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  209. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  210. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  211. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  212. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  213. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  214. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  215. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  216. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  217. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  218. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  219. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  220. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  221. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  222. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  223. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  224. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  225. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  226. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  227. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  228. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  229. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  230. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  231. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  232. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/new-guofeng.css +0 -1494
  233. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/style.css +0 -2508
  234. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/index.html +0 -18
  235. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/assets.js +0 -147
  236. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/audio.js +0 -332
  237. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/data.js +0 -7470
  238. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/engine.js +0 -13066
  239. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/main.js +0 -3051
  240. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/text.js +0 -32
  241. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/package.json +0 -11
  242. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/vercel.json +0 -23
  243. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/art/generated-art.json +0 -161
  244. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/example.json +0 -12
  245. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/README.md +0 -26
  246. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/playable-model.json +0 -99
  247. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verification.json +0 -41
  248. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verify_playable_model.mjs +0 -152
@@ -0,0 +1,18 @@
1
+ import type { ModelCatalogView, PartnerSnapshot } from '../client-api.js';
2
+ type RuntimeSelection = {
3
+ presetId: string;
4
+ provider: string;
5
+ model: string;
6
+ };
7
+ /** Presentation only: CapabilityEditor retains autosave, rollback and permissions. */
8
+ export declare function RuntimeSettings({ value, catalog, presets, saving, error, saved, change }: {
9
+ value: RuntimeSelection;
10
+ catalog: ModelCatalogView | undefined;
11
+ presets: PartnerSnapshot['presets'];
12
+ saving: boolean;
13
+ error: string | undefined;
14
+ saved: boolean;
15
+ change(patch: Partial<RuntimeSelection>): void;
16
+ }): JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=runtime-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-settings.d.ts","sourceRoot":"","sources":["../../src/ui/runtime-settings.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,gBAAgB,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAA;AAIvE,KAAK,gBAAgB,GAAG;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAA;AAE3E,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAC,EAAE;IACvF,KAAK,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACnG,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAA;CAC3G,GAAG,GAAG,CAAC,OAAO,CA+Cd"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { IconCheckOutlineRegular } from '@deepseek-ai/dsh-client-ui-primitives';
4
+ import { FormField } from './partner-components.js';
5
+ import { WorkspaceDialog } from './workspace-components.js';
6
+ /** Presentation only: CapabilityEditor retains autosave, rollback and permissions. */
7
+ export function RuntimeSettings({ value, catalog, presets, saving, error, saved, change }) {
8
+ const [open, setOpen] = useState(false);
9
+ const [query, setQuery] = useState('');
10
+ const providerId = value.provider || catalog?.defaultSelection.provider || '';
11
+ const provider = catalog?.providers.find(item => item.id === providerId);
12
+ const models = provider?.models ?? [];
13
+ const presetName = presets.find(item => item.id === value.presetId)?.name || value.presetId || '跟随 DSH 默认';
14
+ const modelId = value.model || catalog?.defaultSelection.model || '';
15
+ const modelName = models.find(item => item.id === modelId)?.name || modelId || '跟随 DSH 默认';
16
+ const providerName = provider?.name || providerId;
17
+ const missingModel = Boolean(value.model) && !models.some(item => item.id === value.model);
18
+ const normalized = query.trim().toLocaleLowerCase();
19
+ const filtered = models.filter(item => `${item.name} ${item.id}`.toLocaleLowerCase().includes(normalized));
20
+ const close = () => { if (!saving)
21
+ setOpen(false); };
22
+ return _jsxs(_Fragment, { children: [_jsxs("section", { className: "dsh-partner-runtime-summary", "aria-label": "\u8FD0\u884C\u914D\u7F6E", children: [_jsxs("span", { children: [_jsx("small", { children: "Agent Preset" }), _jsx("strong", { title: presetName, children: presetName })] }), _jsxs("span", { children: [_jsxs("small", { children: ["\u6A21\u578B", providerName ? ` · ${providerName}` : ''] }), _jsx("strong", { title: `${providerName} / ${modelName}`, children: modelName })] }), _jsx("button", { type: "button", disabled: saving, "aria-haspopup": "dialog", onClick: () => { setQuery(''); setOpen(true); }, "aria-label": "\u8C03\u6574\u8FD0\u884C\u914D\u7F6E", children: "\u8C03\u6574" })] }), open && _jsx(WorkspaceDialog, { eyebrow: "", title: "\u8FD0\u884C\u914D\u7F6E", detail: "\u9009\u62E9\u81EA\u52A8\u4FDD\u5B58\uFF1B\u4F5C\u4E3A\u4F1A\u8BDD\u9ED8\u8BA4\u914D\u7F6E\uFF0C\u4E0D\u8986\u76D6\u5DF2\u6709\u4F1A\u8BDD\u7684\u9009\u62E9\u3002", close: close, className: "dsh-partner-runtime-dialog", children: _jsxs("div", { className: "dsh-partner-runtime-editor", children: [_jsxs("div", { className: "dsh-partner-runtime-options", children: [_jsx(FormField, { label: "Agent Preset", children: _jsxs("select", { "aria-label": "Agent Preset", disabled: saving, value: value.presetId, onChange: event => change({ presetId: event.target.value }), children: [_jsx("option", { value: "", children: "\u8DDF\u968F DSH \u9ED8\u8BA4" }), value.presetId && !presets.some(item => !item.broken && item.id === value.presetId) && _jsxs("option", { value: value.presetId, children: ["\u5F53\u524D\u914D\u7F6E \u00B7 ", value.presetId] }), presets.filter(item => !item.broken).map(item => _jsx("option", { value: item.id, children: item.name }, item.id))] }) }), _jsx(FormField, { label: "\u6A21\u578B\u63D0\u4F9B\u65B9", children: _jsxs("select", { "aria-label": "\u6A21\u578B\u63D0\u4F9B\u65B9", disabled: saving || !catalog, value: value.provider, onChange: event => { setQuery(''); change({ provider: event.target.value, model: '' }); }, children: [_jsxs("option", { value: "", children: ["\u8DDF\u968F DSH \u9ED8\u8BA4", catalog?.defaultSelection.provider ? ` · ${catalog.defaultSelection.provider}` : ''] }), value.provider && !catalog?.providers.some(item => item.id === value.provider) && _jsxs("option", { value: value.provider, children: ["\u5F53\u524D\u914D\u7F6E \u00B7 ", value.provider] }), catalog?.providers.map(item => _jsx("option", { value: item.id, children: item.name || item.id }, item.id))] }) })] }), _jsxs("label", { className: "dsh-partner-runtime-search", children: [_jsx("span", { children: "\u9009\u62E9\u6A21\u578B" }), _jsx("input", { type: "search", value: query, onChange: event => setQuery(event.target.value), placeholder: "\u641C\u7D22\u6A21\u578B\u540D\u79F0\u6216 ID" })] }), _jsxs("div", { className: "dsh-partner-runtime-models", role: "group", "aria-label": "\u53EF\u7528\u6A21\u578B", "aria-busy": saving, children: [[{ id: '', name: '跟随 DSH 默认模型', detail: catalog?.defaultSelection.model || '使用默认配置' }, ...(missingModel ? [{ id: value.model, name: value.model, detail: '当前配置 · 不在模型目录中' }] : []), ...filtered.map(item => ({ ...item, detail: item.id }))].map(item => _jsxs("button", { type: "button", disabled: saving, "aria-pressed": item.id === value.model, onClick: () => { if (item.id !== value.model)
23
+ change({ model: item.id }); }, children: [_jsxs("span", { children: [_jsx("strong", { children: item.name || item.id }), _jsx("small", { children: item.detail })] }), _jsx("i", { "aria-hidden": "true", children: item.id === value.model && _jsx(IconCheckOutlineRegular, { size: 16 }) })] }, item.id)), !catalog && _jsx("p", { role: "status", children: "\u6A21\u578B\u76EE\u5F55\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u91CD\u5F00\u6216\u5237\u65B0\u9875\u9762\u3002" }), catalog && !filtered.length && _jsx("p", { role: "status", children: query ? '没有匹配的模型,试试其他关键词。' : '当前提供方没有可选模型。' })] }), _jsx("footer", { children: _jsx("span", { role: "status", children: saving ? '正在保存…' : error ? '保存未成功' : saved ? '已保存,下一轮生效' : '选择自动保存' }) }), error && _jsx("p", { className: "dsh-partner-inline-error", role: "alert", children: error })] }) })] });
24
+ }
25
+ //# sourceMappingURL=runtime-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-settings.js","sourceRoot":"","sources":["../../src/ui/runtime-settings.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export declare function WorkspaceBlock({ title, detail, actions, children, class
12
12
  children: ReactNode;
13
13
  className?: string;
14
14
  }): JSX.Element;
15
- export declare function WorkspaceDialog({ eyebrow, title, detail, close, children, width, className }: {
15
+ export declare function WorkspaceDialog({ eyebrow, title, detail, close, children, width, className, confirmation }: {
16
16
  eyebrow?: string;
17
17
  title: string;
18
18
  detail: string;
@@ -20,6 +20,12 @@ export declare function WorkspaceDialog({ eyebrow, title, detail, close, childre
20
20
  children: ReactNode;
21
21
  width?: 'regular' | 'wide';
22
22
  className?: string;
23
+ confirmation?: boolean;
24
+ }): JSX.Element;
25
+ /** Shared, focus-safe confirmation; keep the underlying editor mounted. */
26
+ export declare function DiscardChangesDialog({ keepEditing, discard }: {
27
+ keepEditing(): void;
28
+ discard(): void;
23
29
  }): JSX.Element;
24
30
  export declare function WorkspaceNotice({ children, kind }: {
25
31
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-components.d.ts","sourceRoot":"","sources":["../../src/ui/workspace-components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpF,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAKvJ;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAc,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAKlM;AAED,wBAAgB,eAAe,CAAC,EAAE,OAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAiB,EAAE,SAAc,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA+B3R;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAc,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE1I;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE9H;AAED,wBAAgB,kBAAkB,CAAC,EAAE,IAAQ,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE/E;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE1F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAkE"}
1
+ {"version":3,"file":"workspace-components.d.ts","sourceRoot":"","sources":["../../src/ui/workspace-components.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAGpF,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAKvJ;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAc,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAKlM;AAED,wBAAgB,eAAe,CAAC,EAAE,OAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAiB,EAAE,SAAc,EAAE,YAAoB,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,IAAI,IAAI,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA+BzU;AAED,2EAA2E;AAC3E,wBAAgB,oBAAoB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IAAE,WAAW,IAAI,IAAI,CAAC;IAAC,OAAO,IAAI,IAAI,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAIpH;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAc,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE1I;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE9H;AAED,wBAAgB,kBAAkB,CAAC,EAAE,IAAQ,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE/E;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAE1F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAkE"}
@@ -7,7 +7,7 @@ export function WorkspaceHero({ eyebrow, title, detail, actions }) {
7
7
  export function WorkspaceBlock({ title, detail, actions, children, className = '' }) {
8
8
  return _jsxs("section", { className: `dsh-partner-feature-block${className ? ` ${className}` : ''}`, children: [_jsxs("header", { children: [_jsxs("span", { children: [_jsx("strong", { children: title }), detail && _jsx("small", { children: detail })] }), actions && _jsx("div", { children: actions })] }), children] });
9
9
  }
10
- export function WorkspaceDialog({ eyebrow = 'CREATE & CONFIGURE', title, detail, close, children, width = 'regular', className = '' }) {
10
+ export function WorkspaceDialog({ eyebrow = 'CREATE & CONFIGURE', title, detail, close, children, width = 'regular', className = '', confirmation = false }) {
11
11
  const titleId = useId();
12
12
  const detailId = useId();
13
13
  const layerRef = useRef(null);
@@ -18,7 +18,7 @@ export function WorkspaceDialog({ eyebrow = 'CREATE & CONFIGURE', title, detail,
18
18
  layer?.showModal();
19
19
  const frame = requestAnimationFrame(() => {
20
20
  const panel = panelRef.current;
21
- const target = panel?.querySelector('[autofocus]') ?? panel?.querySelector('input, textarea, select, button');
21
+ const target = panel?.querySelector('[data-dialog-initial-focus], [autofocus]') ?? panel?.querySelector('input:not([disabled]), textarea:not([disabled]), select:not([disabled]), button:not([disabled])');
22
22
  target?.focus({ preventScroll: true });
23
23
  });
24
24
  return () => { cancelAnimationFrame(frame); layer?.close(); if (previous?.isConnected)
@@ -47,8 +47,12 @@ export function WorkspaceDialog({ eyebrow = 'CREATE & CONFIGURE', title, detail,
47
47
  first?.focus();
48
48
  }
49
49
  };
50
- return _jsx("dialog", { ref: layerRef, className: "dsh-partner-workspace-dialog-layer", "aria-modal": "true", "aria-labelledby": titleId, "aria-describedby": detailId, onCancel: event => { event.preventDefault(); event.stopPropagation(); close(); }, onPointerDown: event => { if (event.target === event.currentTarget)
51
- close(); }, children: _jsxs("section", { ref: panelRef, className: `dsh-partner-workspace-dialog is-${width} ${className}`, onKeyDown: keyDown, children: [_jsxs("header", { children: [_jsxs("span", { children: [eyebrow && _jsx("small", { children: eyebrow }), _jsx("strong", { id: titleId, children: title }), _jsx("p", { id: detailId, children: detail })] }), _jsx("button", { type: "button", onClick: close, "aria-label": "\u5173\u95ED", children: _jsx(IconCloseOutline16, { size: 16 }) })] }), _jsx("div", { className: "dsh-partner-workspace-dialog-body", children: children })] }) });
50
+ return _jsx("dialog", { ref: layerRef, className: "dsh-partner-workspace-dialog-layer", role: confirmation ? 'alertdialog' : undefined, "aria-modal": "true", "aria-labelledby": titleId, "aria-describedby": detailId, onCancel: event => { event.preventDefault(); event.stopPropagation(); close(); }, onPointerDown: event => { if (event.target === event.currentTarget)
51
+ close(); }, children: _jsxs("section", { ref: panelRef, className: `dsh-partner-workspace-dialog is-${width}${confirmation ? ' is-confirmation' : ''} ${className}`, onKeyDown: keyDown, children: [_jsxs("header", { children: [_jsxs("span", { children: [eyebrow && _jsx("small", { children: eyebrow }), _jsx("strong", { id: titleId, children: title }), _jsx("p", { id: detailId, children: detail })] }), _jsx("button", { type: "button", onClick: close, "aria-label": "\u5173\u95ED", children: _jsx(IconCloseOutline16, { size: 16 }) })] }), _jsx("div", { className: "dsh-partner-workspace-dialog-body", children: children })] }) });
52
+ }
53
+ /** Shared, focus-safe confirmation; keep the underlying editor mounted. */
54
+ export function DiscardChangesDialog({ keepEditing, discard }) {
55
+ return _jsx(WorkspaceDialog, { confirmation: true, eyebrow: "", title: "\u653E\u5F03\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\uFF1F", detail: "\u5173\u95ED\u540E\u8FD9\u4E9B\u4FEE\u6539\u4E0D\u4F1A\u4FDD\u5B58\u3002\u4F60\u4E5F\u53EF\u4EE5\u7EE7\u7EED\u7F16\u8F91\u3002", close: keepEditing, children: _jsxs("div", { className: "dsh-partner-form-actions", children: [_jsx("button", { type: "button", "data-dialog-initial-focus": true, onClick: keepEditing, children: "\u7EE7\u7EED\u7F16\u8F91" }), _jsx("button", { type: "button", className: "is-danger", onClick: discard, children: "\u653E\u5F03\u4FEE\u6539" })] }) });
52
56
  }
53
57
  export function WorkspaceNotice({ children, kind = 'error' }) {
54
58
  return _jsxs("p", { className: `dsh-partner-workspace-notice is-${kind}`, role: kind === 'error' ? 'alert' : 'status', children: [_jsx("i", {}), children] });
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-components.js","sourceRoot":"","sources":["../../src/ui/workspace-components.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-components.js","sourceRoot":"","sources":["../../src/ui/workspace-components.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAsC,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,6BAA6B,IAAI,wBAAwB,EAAE,uBAAuB,IAAI,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAEhK,MAAM,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAA2E;IACxI,OAAO,kBAAQ,SAAS,EAAC,0BAA0B,aACjD,2BAAM,0BAAQ,OAAO,GAAS,EAAA,uBAAK,KAAK,GAAM,EAAA,sBAAI,MAAM,GAAK,IAAO,EACnE,OAAO,IAAI,cAAK,SAAS,EAAC,kCAAkC,YAAE,OAAO,GAAO,IACtE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAoG;IACnL,OAAO,mBAAS,SAAS,EAAE,4BAA4B,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,aACvF,6BAAQ,2BAAM,2BAAS,KAAK,GAAU,EAAC,MAAM,IAAI,0BAAQ,MAAM,GAAS,IAAQ,EAAC,OAAO,IAAI,wBAAM,OAAO,GAAO,IAAU,EACzH,QAAQ,IACD,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,GAAG,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,GAAG,SAAS,EAAE,SAAS,GAAG,EAAE,EAAE,YAAY,GAAG,KAAK,EAAmK;IAC1T,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;IAC1C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,YAAY,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC9B,KAAK,EAAE,SAAS,EAAE,CAAA;QAClB,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAA;YAC9B,MAAM,MAAM,GAAG,KAAK,EAAE,aAAa,CAAc,0CAA0C,CAAC,IAAI,KAAK,EAAE,aAAa,CAAc,iGAAiG,CAAC,CAAA;YACpO,MAAM,EAAE,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,WAAW;YAAE,QAAQ,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAA,CAAC,CAAC,CAAA;IAChI,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,OAAO,GAAG,CAAC,KAAiC,EAAQ,EAAE;QAC1D,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAAC,KAAK,EAAE,CAAC;YAAC,OAAM;QAAC,CAAC;QAChG,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE,OAAM;QAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAc,2IAA2I,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAC5Q,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAAC,IAAI,EAAE,KAAK,EAAE,CAAA;QAAC,CAAC;aAC5F,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAAC,KAAK,EAAE,KAAK,EAAE,CAAA;QAAC,CAAC;IACzG,CAAC,CAAA;IACD,OAAO,iBAAQ,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,oCAAoC,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,gBAAa,MAAM,qBAAkB,OAAO,sBAAoB,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,GAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA,CAAA,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,aAAa;YAAE,KAAK,EAAE,CAAA,CAAC,CAAC,YAC/V,mBAAS,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,mCAAmC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,aACrJ,6BAAQ,2BAAO,OAAO,IAAI,0BAAQ,OAAO,GAAS,EAAC,iBAAQ,EAAE,EAAE,OAAO,YAAG,KAAK,GAAU,EAAA,YAAG,EAAE,EAAE,QAAQ,YAAG,MAAM,GAAK,IAAO,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,gBAAa,cAAI,YAAC,KAAC,kBAAkB,IAAC,IAAI,EAAE,EAAE,GAAI,GAAS,IAAS,EACpO,cAAK,SAAS,EAAC,mCAAmC,YAAE,QAAQ,GAAO,IAC3D,GACH,CAAA;AACX,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,oBAAoB,CAAC,EAAE,WAAW,EAAE,OAAO,EAA4C;IACrG,OAAO,KAAC,eAAe,IAAC,YAAY,QAAC,OAAO,EAAC,EAAE,EAAC,KAAK,EAAC,wDAAW,EAAC,MAAM,EAAC,gIAAuB,EAAC,KAAK,EAAE,WAAW,YACjH,eAAK,SAAS,EAAC,0BAA0B,aAAC,iBAAQ,IAAI,EAAC,QAAQ,qCAA2B,OAAO,EAAE,WAAW,yCAAe,EAAA,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,WAAW,EAAC,OAAO,EAAE,OAAO,yCAAe,IAAM,GAC9L,CAAA;AACpB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,EAAmE;IAC3H,OAAO,aAAG,SAAS,EAAE,mCAAmC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,aAAE,aAAK,EAAC,QAAQ,IAAK,CAAA;AAClI,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAA0D;IAC/G,OAAO,eAAK,SAAS,EAAC,8BAA8B,aAAC,yBAAM,KAAC,wBAAwB,IAAC,IAAI,EAAE,EAAE,GAAI,GAAO,EAAA,2BAAS,KAAK,GAAU,EAAC,MAAM,IAAI,sBAAI,MAAM,GAAK,EAAE,MAAM,IAAO,CAAA;AAC3K,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAE,IAAI,GAAG,CAAC,EAAqB;IAChE,OAAO,cAAK,SAAS,EAAC,iCAAiC,gBAAY,0BAAM,eAAW,MAAM,YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,cAAQ,KAAK,CAAI,CAAC,GAAO,CAAA;AAClK,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAoC;IAC3E,OAAO,gBAAM,SAAS,EAAC,yBAAyB,aAAC,sBAAI,KAAK,GAAK,EAAC,KAAK,IAAQ,CAAA;AAC/E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,IAAY,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lemoncat7/dsh-partner",
3
- "version": "2.8.3",
3
+ "version": "2.8.6",
4
4
  "description": "Long-lived AI companions with WeChat, Matrix and Mattermost channels for DeepSeek Harness",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -26,6 +26,10 @@
26
26
  "./package.json": "./package.json"
27
27
  },
28
28
  "files": [
29
+ "docs/releases/2.8.6.md",
30
+ "docs/package-distribution.md",
31
+ "docs/releases/2.8.4.md",
32
+ "docs/concern-workflow.md",
29
33
  "docs/releases/2.8.3.md",
30
34
  "docs/pendant-loading.md",
31
35
  "docs/releases/2.8.2.md",
@@ -71,6 +75,7 @@
71
75
  "docs/long-task-continuation.md",
72
76
  "docs/channel-message-format.md",
73
77
  "docs/notification-delivery.md",
78
+ "docs/bark-notifications.md",
74
79
  "docs/direct-channels.md",
75
80
  "docs/THIRD_PARTY_LICENSES.md",
76
81
  "README.md",
@@ -78,7 +83,9 @@
78
83
  "docs/releases/2.7.1.md",
79
84
  "docs/releases/2.7.2.md",
80
85
  "docs/attachment-storage.md",
81
- "docs/dsh-020-compatibility.md"
86
+ "docs/dsh-020-compatibility.md",
87
+ "docs/dsh-021-compatibility.md",
88
+ "docs/releases/2.8.5.md"
82
89
  ],
83
90
  "dsh": {
84
91
  "bundle": {
@@ -98,17 +105,19 @@
98
105
  }
99
106
  },
100
107
  "engines": {
101
- "node": "^22.19.0 || >=24.0.0"
108
+ "node": "^22.19.0 || >=24.0.0",
109
+ "dsh": "^0.2.1-rc.2"
102
110
  },
103
111
  "scripts": {
104
112
  "clean": "node -e \"require('node:fs').rmSync('lib', { recursive: true, force: true })\"",
105
113
  "build": "tsc -p tsconfig.json && node scripts/build-client.mjs",
106
114
  "prepare": "npm run clean && npm run build",
107
115
  "test": "npm run build && node --test test/*.test.mjs",
108
- "pack:check": "npm pack --dry-run"
116
+ "pack:check": "npm pack --dry-run",
117
+ "pack:verify": "node scripts/check-package.mjs"
109
118
  },
110
119
  "dependencies": {
111
- "@deepseek-ai/schemastery": "~3.18.4",
120
+ "@deepseek-ai/schemastery": "~3.18.5",
112
121
  "@modelcontextprotocol/sdk": "^1.30.0",
113
122
  "mdast-util-from-markdown": "2.0.3",
114
123
  "mdast-util-gfm": "3.1.0",
@@ -116,50 +125,50 @@
116
125
  "micromark-extension-gfm": "3.0.0"
117
126
  },
118
127
  "peerDependencies": {
119
- "@deepseek-ai/cordis": "^4.0.4",
120
- "@deepseek-ai/dsh-agent": "^0.2.0-rc.2",
121
- "@deepseek-ai/dsh-agent-default-model": "^0.2.0-rc.2",
122
- "@deepseek-ai/dsh-agent-preset-registry": "^0.2.0-rc.2",
123
- "@deepseek-ai/dsh-attachment": "^0.2.0-rc.2",
124
- "@deepseek-ai/dsh-credentials": "^0.2.0-rc.2",
125
- "@deepseek-ai/dsh-llm": "^0.2.0-rc.2",
126
- "@deepseek-ai/dsh-scope": "^0.2.0-rc.2",
127
- "@deepseek-ai/dsh-session": "^0.2.0-rc.2",
128
- "@deepseek-ai/dsh-settings": "^0.2.0-rc.2",
129
- "@deepseek-ai/dsh-system-prompt": "^0.2.0-rc.2",
130
- "@deepseek-ai/dsh-tools": "^0.2.0-rc.2",
131
- "@deepseek-ai/dsh-user-questions": "^0.2.0-rc.2",
132
- "@deepseek-ai/dsh-workspace": "^0.2.0-rc.2"
128
+ "@deepseek-ai/cordis": "^4.0.5",
129
+ "@deepseek-ai/dsh-agent": "^0.2.1-rc.2",
130
+ "@deepseek-ai/dsh-agent-default-model": "^0.2.1-rc.2",
131
+ "@deepseek-ai/dsh-agent-preset-registry": "^0.2.1-rc.2",
132
+ "@deepseek-ai/dsh-attachment": "^0.2.1-rc.2",
133
+ "@deepseek-ai/dsh-credentials": "^0.2.1-rc.2",
134
+ "@deepseek-ai/dsh-llm": "^0.2.1-rc.2",
135
+ "@deepseek-ai/dsh-scope": "^0.2.1-rc.2",
136
+ "@deepseek-ai/dsh-session": "^0.2.1-rc.2",
137
+ "@deepseek-ai/dsh-settings": "^0.2.1-rc.2",
138
+ "@deepseek-ai/dsh-system-prompt": "^0.2.1-rc.2",
139
+ "@deepseek-ai/dsh-tools": "^0.2.1-rc.2",
140
+ "@deepseek-ai/dsh-user-questions": "^0.2.1-rc.2",
141
+ "@deepseek-ai/dsh-workspace": "^0.2.1-rc.2"
133
142
  },
134
143
  "devDependencies": {
135
- "@deepseek-ai/cordis": "~4.0.4",
136
- "@deepseek-ai/dsh-agent": "0.2.0-rc.2",
137
- "@deepseek-ai/dsh-agent-default-model": "0.2.0-rc.2",
138
- "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.2",
139
- "@deepseek-ai/dsh-api-remotes": "0.2.0-rc.2",
140
- "@deepseek-ai/dsh-api-session-controller": "0.2.0-rc.2",
141
- "@deepseek-ai/dsh-attachment": "0.2.0-rc.2",
142
- "@deepseek-ai/dsh-client-ui-conversation": "0.2.0-rc.2",
143
- "@deepseek-ai/dsh-client-ui-layout": "0.2.0-rc.2",
144
- "@deepseek-ai/dsh-client-ui-primitives": "0.2.0-rc.2",
145
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.0-rc.2",
146
- "@deepseek-ai/dsh-client-ui-sidebar": "0.2.0-rc.2",
147
- "@deepseek-ai/dsh-client-ui-slots": "0.2.0-rc.2",
148
- "@deepseek-ai/dsh-client-ui-theme": "0.2.0-rc.2",
149
- "@deepseek-ai/dsh-client-ui-workspace": "0.2.0-rc.2",
150
- "@deepseek-ai/dsh-credentials": "0.2.0-rc.2",
151
- "@deepseek-ai/dsh-llm": "0.2.0-rc.2",
152
- "@deepseek-ai/dsh-ptc-runtime": "0.2.0-rc.2",
153
- "@deepseek-ai/dsh-sandbox": "0.2.0-rc.2",
154
- "@deepseek-ai/dsh-sandbox-policy": "0.2.0-rc.2",
155
- "@deepseek-ai/dsh-scope": "0.2.0-rc.2",
156
- "@deepseek-ai/dsh-session": "0.2.0-rc.2",
157
- "@deepseek-ai/dsh-settings": "0.2.0-rc.2",
158
- "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
159
- "@deepseek-ai/dsh-tools": "0.2.0-rc.2",
160
- "@deepseek-ai/dsh-user-approval": "0.2.0-rc.2",
161
- "@deepseek-ai/dsh-user-questions": "0.2.0-rc.2",
162
- "@deepseek-ai/dsh-workspace": "0.2.0-rc.2",
144
+ "@deepseek-ai/cordis": "~4.0.5",
145
+ "@deepseek-ai/dsh-agent": "0.2.1-rc.2",
146
+ "@deepseek-ai/dsh-agent-default-model": "0.2.1-rc.2",
147
+ "@deepseek-ai/dsh-agent-preset-registry": "0.2.1-rc.2",
148
+ "@deepseek-ai/dsh-api-remotes": "0.2.1-rc.2",
149
+ "@deepseek-ai/dsh-api-session-controller": "0.2.1-rc.2",
150
+ "@deepseek-ai/dsh-attachment": "0.2.1-rc.2",
151
+ "@deepseek-ai/dsh-client-ui-conversation": "0.2.1-rc.2",
152
+ "@deepseek-ai/dsh-client-ui-layout": "0.2.1-rc.2",
153
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.1-rc.2",
154
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.1-rc.2",
155
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.2.1-rc.2",
156
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.1-rc.2",
157
+ "@deepseek-ai/dsh-client-ui-theme": "0.2.1-rc.2",
158
+ "@deepseek-ai/dsh-client-ui-workspace": "0.2.1-rc.2",
159
+ "@deepseek-ai/dsh-credentials": "0.2.1-rc.2",
160
+ "@deepseek-ai/dsh-llm": "0.2.1-rc.2",
161
+ "@deepseek-ai/dsh-ptc-runtime": "0.2.1-rc.2",
162
+ "@deepseek-ai/dsh-sandbox": "0.2.1-rc.2",
163
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.1-rc.2",
164
+ "@deepseek-ai/dsh-scope": "0.2.1-rc.2",
165
+ "@deepseek-ai/dsh-session": "0.2.1-rc.2",
166
+ "@deepseek-ai/dsh-settings": "0.2.1-rc.2",
167
+ "@deepseek-ai/dsh-system-prompt": "0.2.1-rc.2",
168
+ "@deepseek-ai/dsh-tools": "0.2.1-rc.2",
169
+ "@deepseek-ai/dsh-user-approval": "0.2.1-rc.2",
170
+ "@deepseek-ai/dsh-user-questions": "0.2.1-rc.2",
171
+ "@deepseek-ai/dsh-workspace": "0.2.1-rc.2",
163
172
  "@dimforge/rapier3d-compat": "0.20.0",
164
173
  "@types/node": "^24.0.0",
165
174
  "@types/react": "18.3.28",
@@ -0,0 +1,26 @@
1
+ {
2
+ "schemaVersion": 2,
3
+ "source": "builtin",
4
+ "version": "1.0.0",
5
+ "provenance": {
6
+ "package": "ai-camera-language.zip",
7
+ "archiveSha256": "31874daf0f04dd71f1e76b3e6042b213231724bbce8bed17e0677328182654e0",
8
+ "entrySha256": "7b3983b68371b17a925245c79c565bac13edf6dd8d643c0b1c5bf017739b9cbd",
9
+ "origin": "User-provided skill package; reference documents preserved verbatim",
10
+ "videoSource": "https://www.xinpianchang.com/a13724439"
11
+ },
12
+ "files": [
13
+ {
14
+ "path": "references/camera-dictionary.md",
15
+ "sha256": "66becb7148de2517010d49256da468ba4b67786e754cbe9ae26e0194d9dfba90"
16
+ },
17
+ {
18
+ "path": "references/prompt-workflow.md",
19
+ "sha256": "b5b40bbc09e8c7d1430af11295bfcc868a958a180ff75add2e12be2d7ad7c6b0"
20
+ },
21
+ {
22
+ "path": "references/video-summary.md",
23
+ "sha256": "e408da1a1d122b07ba2ea1064b432520e963aac3ebe852ef55cdc3b4ac106690"
24
+ }
25
+ ]
26
+ }