@dsh-electron/dsh-plugin-multi-root-workspace 0.1.13 → 0.1.14

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 (42) hide show
  1. package/CHANGELOG.en.md +17 -1
  2. package/CHANGELOG.md +17 -1
  3. package/README.en.md +8 -8
  4. package/README.md +8 -8
  5. package/detail/DETAIL.en.md +1 -0
  6. package/detail/DETAIL.md +1 -0
  7. package/detail/preview.svg +1 -0
  8. package/detail/preview.zh.svg +1 -0
  9. package/lib/client.js +392 -63
  10. package/lib/client.js.map +1 -1
  11. package/lib/{command-B9855H7y.js → command-Dcz6nULo.js} +25 -3
  12. package/lib/command.js +1 -1
  13. package/lib/{compat-Bg2HFVMX.js → compat-veDqCOoa.js} +3 -1
  14. package/lib/compat.js +1 -1
  15. package/lib/{fs-CfzJq2wd.js → fs-Uws0ZpmV.js} +38 -0
  16. package/lib/fs.js +1 -1
  17. package/lib/index.js +4 -4
  18. package/lib/{native-win32-2waCRkPI.js → native-win32-CRNXr11U.js} +2 -1
  19. package/lib/{protocol-CJOvAvOS.js → protocol-CnR1KTXy.js} +49 -7
  20. package/lib/{registry-Bv431TfO.js → registry-DR_sMuvS.js} +3 -3
  21. package/lib/{registry-lease-win32-DVTq9d4D.js → registry-lease-win32-DDO-c7ig.js} +2 -1
  22. package/lib/registry.js +2 -2
  23. package/lib/types/client/RootSwitcher.d.ts +2 -0
  24. package/lib/types/client/auto-review-settings.d.ts +18 -0
  25. package/lib/types/client/files-tree/FilesTree.d.ts +4 -1
  26. package/lib/types/client/files-tree/locales.d.ts +1 -1
  27. package/lib/types/client/locales.d.ts +12 -0
  28. package/lib/types/client/open-in-app/locales.d.ts +1 -1
  29. package/lib/types/client/skills-settings.d.ts +12 -0
  30. package/lib/types/client/styles.d.ts +1 -1
  31. package/lib/types/compat/auto-review-client.d.ts +58 -0
  32. package/lib/types/compat/connection-rpc.d.ts +12 -0
  33. package/lib/types/compat/dsh-version.d.ts +1 -1
  34. package/lib/types/compat/files-tree.d.ts +36 -0
  35. package/lib/types/compat/fs-patch.d.ts +6 -0
  36. package/lib/types/compat/koffi.d.ts +2 -0
  37. package/lib/types/fs.d.ts +3 -1
  38. package/locale/en.json +7 -0
  39. package/locale/zh.json +7 -0
  40. package/package.json +89 -82
  41. package/src/auto-review/README.en.md +1 -1
  42. package/src/auto-review/README.md +1 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Client seam for the optional Auto Review loader row.
3
+ *
4
+ * The row ships `disabled: true` in `cordis.patch.yml`; its only switch is the
5
+ * Loader entry's own enablement, which the Plugin Manager persists as a
6
+ * profile `{ id, disabled }` override through `pluginManager.setPluginEnabled`.
7
+ * This module binds that Remote namespace lazily — hosts without the Plugin
8
+ * Manager simply never attach, and the settings row stays hidden — and mirrors
9
+ * the Plugin Manager's own row semantics: the same entry id, the same
10
+ * `plugin-manager/changed` refresh, and the same `applied` /
11
+ * `restart-required` outcome split.
12
+ *
13
+ * Everything here is structural on purpose: the namespace is an optional
14
+ * service, so no module-level `inject` may name it, and the wire shapes are
15
+ * narrowed to the fields this card reads rather than imported from the
16
+ * generated Remote types.
17
+ *
18
+ * @module @dsh-electron/dsh-plugin-multi-root-workspace/compat/auto-review-client
19
+ */
20
+ import type { Context } from '@deepseek-ai/cordis';
21
+ /** The module specifier `cordis.patch.yml` gives the optional row. */
22
+ export declare const AUTO_REVIEW_MODULE = "@dsh-electron/dsh-plugin-multi-root-workspace/auto-review";
23
+ /** The row's live state, narrowed to what the settings card renders. */
24
+ export interface AutoReviewRowView {
25
+ readonly entryId: string;
26
+ readonly enabled: boolean;
27
+ /** Whether `setPluginEnabled` may address this entry (no read-only reason). */
28
+ readonly writable: boolean;
29
+ /** Startup failure text while the entry's fiber is failed. */
30
+ readonly diagnostic?: string;
31
+ }
32
+ export interface AutoReviewSnapshot {
33
+ /**
34
+ * `unavailable` — the `pluginManager` namespace never attached (old host or
35
+ * headless composition): the row renders nothing. `loading` — attached, the
36
+ * first `listPlugins` is in flight. `ready` — `row` is present exactly when
37
+ * the composition lists our module. `error` — the last read failed.
38
+ */
39
+ readonly status: 'unavailable' | 'loading' | 'ready' | 'error';
40
+ readonly row?: AutoReviewRowView;
41
+ }
42
+ /** What one enable/disable write resolved to. */
43
+ export type AutoReviewWriteResult = 'applied' | 'restart-required' | 'failed';
44
+ /** The card's handle: a snapshot source plus the row's one write. */
45
+ export interface AutoReviewForm {
46
+ getSnapshot(): AutoReviewSnapshot;
47
+ subscribe(listener: () => void): () => void;
48
+ setEnabled(enabled: boolean): Promise<AutoReviewWriteResult>;
49
+ }
50
+ /**
51
+ * Create the card's Auto Review handle and attach it when the host's
52
+ * `pluginManager` namespace arrives. The returned form exists immediately with
53
+ * status `unavailable` and publishes on every attach/detach/read, so callers
54
+ * only need `subscribe` — no separate availability callback.
55
+ * @param ctx - the client root context.
56
+ * @returns the stable form the settings row renders.
57
+ */
58
+ export declare function installAutoReviewSettings(ctx: Context): AutoReviewForm;
@@ -0,0 +1,12 @@
1
+ /** Bind Connection's public RPC getter to the fiber that owns the route. */
2
+ import type { Context } from '@deepseek-ai/cordis';
3
+ import type { HostConnectionHandle, HostConnectionRpc } from '@deepseek-ai/dsh-client-connection';
4
+ /**
5
+ * Newer Cordis keeps a service getter's definition site when tracing it, so
6
+ * even reading Connection from the root can make its RPC getter capture the
7
+ * provider's context (which does not inject webServer). Invoke the public
8
+ * accessor with the actual consumer context instead. A data property is used
9
+ * unchanged for simpler Connection implementations. The service is not
10
+ * modified and the route remains owned by the injecting fiber.
11
+ */
12
+ export declare function connectionRpcFor(ctx: Context, connection: HostConnectionHandle): HostConnectionRpc;
@@ -28,7 +28,7 @@
28
28
  * the upgrade smoke passed on that exact version — a green CI run on an
29
29
  * unlisted release is evidence, not authorization (ADR-0009).
30
30
  */
31
- export declare const SUPPORTED_DSH_RELEASES: readonly ["0.1.5-rc.2", "0.1.6-alpha.1", "0.1.6-alpha.2", "0.1.7-alpha.1", "0.1.7-alpha.2", "0.1.7-rc.1", "0.1.7-rc.2", "0.2.0-rc.1", "0.2.0-rc.2", "0.2.1-alpha.1", "0.2.1-alpha.2", "0.2.1-alpha.3", "0.2.1-alpha.4", "0.2.1-alpha.5", "0.2.1-rc.1", "0.2.1-rc.2", "0.2.1-rc.3", "0.2.1-rc.4", "0.2.1-rc.5", "0.2.2-alpha.2"];
31
+ export declare const SUPPORTED_DSH_RELEASES: readonly ["0.1.5-rc.2", "0.1.6-alpha.1", "0.1.6-alpha.2", "0.1.7-alpha.1", "0.1.7-alpha.2", "0.1.7-rc.1", "0.1.7-rc.2", "0.2.0-rc.1", "0.2.0-rc.2", "0.2.1-alpha.1", "0.2.1-alpha.2", "0.2.1-alpha.3", "0.2.1-alpha.4", "0.2.1-alpha.5", "0.2.1-rc.1", "0.2.1-rc.2", "0.2.1-rc.3", "0.2.1-rc.4", "0.2.1-rc.5", "0.2.2-alpha.2", "0.2.2-alpha.3", "0.2.2-rc.1"];
32
32
  /** One release this plugin claims to support. */
33
33
  export type SupportedDshRelease = typeof SUPPORTED_DSH_RELEASES[number];
34
34
  /**
@@ -0,0 +1,36 @@
1
+ /** Adapt the legacy listing store to the host's optional controlled tree Factory. */
2
+ export interface NativeTreeEntry {
3
+ readonly path: string;
4
+ readonly name: string;
5
+ readonly meta: {
6
+ readonly kind: 'file' | 'directory' | 'other';
7
+ };
8
+ }
9
+ type Level<F> = {
10
+ readonly kind: 'loading';
11
+ } | {
12
+ readonly kind: 'failed';
13
+ readonly failure: F;
14
+ } | {
15
+ readonly kind: 'ready';
16
+ readonly level: {
17
+ readonly entries: readonly {
18
+ readonly name: string;
19
+ readonly type: 'file' | 'directory' | 'other';
20
+ }[];
21
+ readonly truncated: boolean;
22
+ };
23
+ readonly failure?: F;
24
+ };
25
+ /** Render function supplied to a slot occupant by newer renderer builds. */
26
+ export type NativeTreeRenderer = (name: string, input: object, options: {
27
+ fallback: unknown;
28
+ }) => unknown;
29
+ export declare function nativeTreeRenderer(value: unknown): NativeTreeRenderer | undefined;
30
+ /** The factory consumes absolute, slash-separated keys and already-localized errors. */
31
+ export declare function nativeTreeInput<F>(state: {
32
+ readonly root: string;
33
+ readonly levels: Readonly<Record<string, Level<F>>>;
34
+ readonly expanded: readonly string[];
35
+ }, failureLine: (failure: F) => string, toggle: (parent: string, path: string) => void, open: (path: string) => void): object;
36
+ export {};
@@ -0,0 +1,6 @@
1
+ export type AdditionalMutation = 'patchText' | 'deleteFile' | 'moveFile';
2
+ type Invoke = (args: unknown[]) => unknown;
3
+ type Fence<T> = (receiver: T, method: AdditionalMutation, args: unknown[], invoke: Invoke) => unknown;
4
+ /** Install only methods present on the actual backend, preserving the caller as `this`. */
5
+ export declare function installAdditionalMutations<T extends object>(prototype: T, fence: Fence<T>): void;
6
+ export {};
@@ -0,0 +1,2 @@
1
+ export type Koffi = (typeof import('koffi'))['default'];
2
+ export declare function loadHostKoffi(): Promise<Koffi>;
package/lib/types/fs.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * It extends the local backend so every text-storage mechanic — resolve, stat,
5
5
  * read/stream, listing, the atomic write and the read-match-write edit critical
6
6
  * section — stays the upstream implementation's, verbatim; this class adds only
7
- * the per-call POLICY fence on the two mutations, exactly as the upstream
7
+ * the per-call POLICY fence on mutations, exactly as the upstream
8
8
  * `SandboxedFileSystem` does, widened from one workspace root to the scope's
9
9
  * root set.
10
10
  *
@@ -64,6 +64,8 @@ export declare class MultiRootFileSystem extends LocalFileSystem {
64
64
  editText(target: FsTarget, edit: FsEditRequest, expected?: {
65
65
  version: FsVersion;
66
66
  }, signal?: AbortSignal, sandboxPolicy?: SandboxExecutionPolicy): Promise<FsEditOutcome>;
67
+ /** Fence every endpoint of a patch, delete, or move under one admission. */
68
+ private additionalMutation;
67
69
  /** The provider must also work without the gated registry (ADR-0009). */
68
70
  private withOperation;
69
71
  /**
package/locale/en.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "meta": {
3
+ "title": "Multi-root workspace",
4
+ "description": "Adds secondary working directories to a session: register a folder once and the agent reads and writes it beside the primary root through one shared sandbox scope — file tools, confined shells, and terminals included.",
5
+ "detail": "detail/DETAIL.en.md"
6
+ }
7
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "meta": {
3
+ "title": "多根工作区",
4
+ "description": "为会话添加附属工作目录:登记一次,Agent 即可在主工作目录之外读写该目录——文件工具、受限 shell 和终端都纳入同一共享沙箱范围。",
5
+ "detail": "detail/DETAIL.md"
6
+ }
7
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dsh-electron/dsh-plugin-multi-root-workspace",
3
3
  "description": "Multi-root Workspace for DeepSeek Harness: adds N additional roots to the workspace sandbox scope as an out-of-tree bundle",
4
- "version": "0.1.13",
4
+ "version": "0.1.14",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/types/index.d.ts",
@@ -47,6 +47,7 @@
47
47
  "default": "./lib/client.js"
48
48
  },
49
49
  "./package.json": "./package.json",
50
+ "./locale/*.json": "./locale/*.json",
50
51
  "./lsp": {
51
52
  "types": "./lib/types/lsp.d.ts",
52
53
  "default": "./lib/lsp.js"
@@ -81,6 +82,8 @@
81
82
  "lib/*.js.map",
82
83
  "lib/types/**/*.d.ts",
83
84
  "cordis.patch.yml",
85
+ "detail",
86
+ "locale",
84
87
  "README.md",
85
88
  "README.en.md",
86
89
  "CHANGELOG.md",
@@ -105,35 +108,37 @@
105
108
  },
106
109
  "license": "MIT",
107
110
  "peerDependencies": {
108
- "@deepseek-ai/cordis": ">=4.0.1 <5.0.0 || 4.0.5-alpha.1 || 4.0.5-alpha.2 || 4.0.6-alpha.1",
109
- "@deepseek-ai/dsh-agent": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
110
- "@deepseek-ai/dsh-agent-instructions": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
111
- "@deepseek-ai/dsh-api-workspace-files": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
112
- "@deepseek-ai/dsh-client-connection": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
113
- "@deepseek-ai/dsh-commands": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
114
- "@deepseek-ai/dsh-fs": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
115
- "@deepseek-ai/dsh-fs-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
116
- "@deepseek-ai/dsh-llm": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
117
- "@deepseek-ai/dsh-lsp": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
118
- "@deepseek-ai/dsh-lsp-stdio": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
119
- "@deepseek-ai/dsh-sandbox": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
120
- "@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
121
- "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
122
- "@deepseek-ai/dsh-sandbox-windows-acl": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
123
- "@deepseek-ai/dsh-session": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
124
- "@deepseek-ai/dsh-storage-domain": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
125
- "@deepseek-ai/dsh-subprocess": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
126
- "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
127
- "@deepseek-ai/dsh-tools": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
128
- "@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
129
- "@deepseek-ai/dsh-permission-presets": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
130
- "@deepseek-ai/dsh-util-values": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
131
- "@deepseek-ai/dsh-skill": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
132
- "@deepseek-ai/dsh-skill-filesystem": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
133
- "@deepseek-ai/dsh-settings": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
134
- "@deepseek-ai/dsh-api-session-controller": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
135
- "@deepseek-ai/dsh-session-query": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2",
136
- "@deepseek-ai/dsh-storage-json": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2"
111
+ "@deepseek-ai/cordis": ">=4.0.1 <5.0.0 || 4.0.5-alpha.1 || 4.0.5-alpha.2 || 4.0.6-alpha.1 || 4.0.6-alpha.2",
112
+ "@deepseek-ai/dsh-agent": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
113
+ "@deepseek-ai/dsh-agent-instructions": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
114
+ "@deepseek-ai/dsh-api-workspace-files": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
115
+ "@deepseek-ai/dsh-client-connection": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
116
+ "@deepseek-ai/dsh-commands": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
117
+ "@deepseek-ai/dsh-fs": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
118
+ "@deepseek-ai/dsh-fs-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
119
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
120
+ "@deepseek-ai/dsh-lsp": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
121
+ "@deepseek-ai/dsh-lsp-stdio": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
122
+ "@deepseek-ai/dsh-sandbox": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
123
+ "@deepseek-ai/dsh-sandbox-local": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
124
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
125
+ "@deepseek-ai/dsh-sandbox-windows-acl": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
126
+ "@deepseek-ai/dsh-session": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
127
+ "@deepseek-ai/dsh-storage-domain": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
128
+ "@deepseek-ai/dsh-subprocess": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
129
+ "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
130
+ "@deepseek-ai/dsh-tools": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
131
+ "@deepseek-ai/dsh-typert-protocol": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
132
+ "@deepseek-ai/dsh-permission-presets": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
133
+ "@deepseek-ai/dsh-util-values": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
134
+ "@deepseek-ai/dsh-skill": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
135
+ "@deepseek-ai/dsh-skill-filesystem": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
136
+ "@deepseek-ai/dsh-settings": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
137
+ "@deepseek-ai/dsh-api-session-controller": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
138
+ "@deepseek-ai/dsh-session-query": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
139
+ "@deepseek-ai/dsh-storage-json": "0.1.5-rc.2 || 0.1.6-alpha.1 || 0.1.6-alpha.2 || 0.1.7-alpha.1 || 0.1.7-alpha.2 || 0.1.7-rc.1 || 0.1.7-rc.2 || 0.2.0-rc.1 || 0.2.0-rc.2 || 0.2.1-alpha.1 || 0.2.1-alpha.2 || 0.2.1-alpha.3 || 0.2.1-alpha.4 || 0.2.1-alpha.5 || 0.2.1-rc.1 || 0.2.1-rc.2 || 0.2.1-rc.3 || 0.2.1-rc.4 || 0.2.1-rc.5 || 0.2.2-alpha.2 || 0.2.2-alpha.3 || 0.2.2-rc.1",
140
+ "@deepseek-ai/node-addon-system": "^0.1.2",
141
+ "@deepseek-ai/schemastery": ">=3.18.2 <4.0.0 || 3.18.5-alpha.1 || 3.18.5-alpha.2 || 3.18.6-alpha.1 || 3.18.6-alpha.2"
137
142
  },
138
143
  "peerDependenciesMeta": {
139
144
  "@deepseek-ai/dsh-agent": {
@@ -204,48 +209,48 @@
204
209
  }
205
210
  },
206
211
  "devDependencies": {
207
- "@deepseek-ai/cordis": "4.0.6-alpha.1",
208
- "@deepseek-ai/dsh": "0.2.2-alpha.2",
209
- "@deepseek-ai/dsh-agent": "0.2.2-alpha.2",
210
- "@deepseek-ai/dsh-agent-instructions": "0.2.2-alpha.2",
211
- "@deepseek-ai/dsh-api-remotes": "0.2.2-alpha.2",
212
- "@deepseek-ai/dsh-api-workspace-files": "0.2.2-alpha.2",
213
- "@deepseek-ai/dsh-app-boot": "0.2.2-alpha.2",
214
- "@deepseek-ai/dsh-base": "0.2.2-alpha.2",
215
- "@deepseek-ai/dsh-client-connection": "0.2.2-alpha.2",
216
- "@deepseek-ai/dsh-client-locale": "0.2.2-alpha.2",
217
- "@deepseek-ai/dsh-client-store": "0.2.2-alpha.2",
218
- "@deepseek-ai/dsh-client-ui-dockkit": "0.2.2-alpha.2",
219
- "@deepseek-ai/dsh-client-ui-primitives": "0.2.2-alpha.2",
220
- "@deepseek-ai/dsh-client-ui-renderer": "0.2.2-alpha.2",
221
- "@deepseek-ai/dsh-client-ui-session": "0.2.2-alpha.2",
222
- "@deepseek-ai/dsh-client-ui-sidebar": "0.2.2-alpha.2",
223
- "@deepseek-ai/dsh-client-ui-slots": "0.2.2-alpha.2",
224
- "@deepseek-ai/dsh-client-ui-workspace": "0.2.2-alpha.2",
225
- "@deepseek-ai/dsh-commands": "0.2.2-alpha.2",
226
- "@deepseek-ai/dsh-fs": "0.2.2-alpha.2",
227
- "@deepseek-ai/dsh-fs-local": "0.2.2-alpha.2",
228
- "@deepseek-ai/dsh-fs-sandbox": "0.2.2-alpha.2",
229
- "@deepseek-ai/dsh-host-open-in-app": "0.2.2-alpha.2",
230
- "@deepseek-ai/dsh-llm": "0.2.2-alpha.2",
231
- "@deepseek-ai/dsh-lsp": "0.2.2-alpha.2",
232
- "@deepseek-ai/dsh-lsp-stdio": "0.2.2-alpha.2",
233
- "@deepseek-ai/dsh-sandbox": "0.2.2-alpha.2",
234
- "@deepseek-ai/dsh-sandbox-local": "0.2.2-alpha.2",
235
- "@deepseek-ai/dsh-sandbox-policy": "0.2.2-alpha.2",
236
- "@deepseek-ai/dsh-sandbox-windows-acl": "0.2.2-alpha.2",
237
- "@deepseek-ai/dsh-session": "0.2.2-alpha.2",
238
- "@deepseek-ai/dsh-session-projection": "0.2.2-alpha.2",
239
- "@deepseek-ai/dsh-storage": "0.2.2-alpha.2",
240
- "@deepseek-ai/dsh-storage-domain": "0.2.2-alpha.2",
241
- "@deepseek-ai/dsh-storage-json": "0.2.2-alpha.2",
242
- "@deepseek-ai/dsh-subprocess": "0.2.2-alpha.2",
243
- "@deepseek-ai/dsh-subprocess-local": "0.2.2-alpha.2",
244
- "@deepseek-ai/dsh-system-prompt": "0.2.2-alpha.2",
245
- "@deepseek-ai/dsh-tools": "0.2.2-alpha.2",
246
- "@deepseek-ai/dsh-typert-protocol": "0.2.2-alpha.2",
247
- "@deepseek-ai/dsh-util-workspace-path": "0.2.2-alpha.2",
248
- "@deepseek-ai/dsh-workspace": "0.2.2-alpha.2",
212
+ "@deepseek-ai/cordis": "4.1.0",
213
+ "@deepseek-ai/dsh": "0.2.2-rc.1",
214
+ "@deepseek-ai/dsh-agent": "0.2.2-rc.1",
215
+ "@deepseek-ai/dsh-agent-instructions": "0.2.2-rc.1",
216
+ "@deepseek-ai/dsh-api-remotes": "0.2.2-rc.1",
217
+ "@deepseek-ai/dsh-api-workspace-files": "0.2.2-rc.1",
218
+ "@deepseek-ai/dsh-app-boot": "0.2.2-rc.1",
219
+ "@deepseek-ai/dsh-base": "0.2.2-rc.1",
220
+ "@deepseek-ai/dsh-client-connection": "0.2.2-rc.1",
221
+ "@deepseek-ai/dsh-client-locale": "0.2.2-rc.1",
222
+ "@deepseek-ai/dsh-client-store": "0.2.2-rc.1",
223
+ "@deepseek-ai/dsh-client-ui-dockkit": "0.2.2-rc.1",
224
+ "@deepseek-ai/dsh-client-ui-primitives": "0.2.2-rc.1",
225
+ "@deepseek-ai/dsh-client-ui-renderer": "0.2.2-rc.1",
226
+ "@deepseek-ai/dsh-client-ui-session": "0.2.2-rc.1",
227
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.2.2-rc.1",
228
+ "@deepseek-ai/dsh-client-ui-slots": "0.2.2-rc.1",
229
+ "@deepseek-ai/dsh-client-ui-workspace": "0.2.2-rc.1",
230
+ "@deepseek-ai/dsh-commands": "0.2.2-rc.1",
231
+ "@deepseek-ai/dsh-fs": "0.2.2-rc.1",
232
+ "@deepseek-ai/dsh-fs-local": "0.2.2-rc.1",
233
+ "@deepseek-ai/dsh-fs-sandbox": "0.2.2-rc.1",
234
+ "@deepseek-ai/dsh-host-open-in-app": "0.2.2-rc.1",
235
+ "@deepseek-ai/dsh-llm": "0.2.2-rc.1",
236
+ "@deepseek-ai/dsh-lsp": "0.2.2-rc.1",
237
+ "@deepseek-ai/dsh-lsp-stdio": "0.2.2-rc.1",
238
+ "@deepseek-ai/dsh-sandbox": "0.2.2-rc.1",
239
+ "@deepseek-ai/dsh-sandbox-local": "0.2.2-rc.1",
240
+ "@deepseek-ai/dsh-sandbox-policy": "0.2.2-rc.1",
241
+ "@deepseek-ai/dsh-sandbox-windows-acl": "0.2.2-rc.1",
242
+ "@deepseek-ai/dsh-session": "0.2.2-rc.1",
243
+ "@deepseek-ai/dsh-session-projection": "0.2.2-rc.1",
244
+ "@deepseek-ai/dsh-storage": "0.2.2-rc.1",
245
+ "@deepseek-ai/dsh-storage-domain": "0.2.2-rc.1",
246
+ "@deepseek-ai/dsh-storage-json": "0.2.2-rc.1",
247
+ "@deepseek-ai/dsh-subprocess": "0.2.2-rc.1",
248
+ "@deepseek-ai/dsh-subprocess-local": "0.2.2-rc.1",
249
+ "@deepseek-ai/dsh-system-prompt": "0.2.2-rc.1",
250
+ "@deepseek-ai/dsh-tools": "0.2.2-rc.1",
251
+ "@deepseek-ai/dsh-typert-protocol": "0.2.2-rc.1",
252
+ "@deepseek-ai/dsh-util-workspace-path": "0.2.2-rc.1",
253
+ "@deepseek-ai/dsh-workspace": "0.2.2-rc.1",
249
254
  "@testing-library/react": "^16.3.3",
250
255
  "@modelcontextprotocol/sdk": "^1.32.2",
251
256
  "@types/node": "^22.0.0",
@@ -262,12 +267,15 @@
262
267
  "vitest": "^4.1.12",
263
268
  "yaml": "^2.9.0",
264
269
  "zustand": "~4.5.7",
265
- "@deepseek-ai/dsh-skill": "0.2.2-alpha.2",
266
- "@deepseek-ai/dsh-skill-filesystem": "0.2.2-alpha.2",
267
- "@deepseek-ai/dsh-settings": "0.2.2-alpha.2",
268
- "@deepseek-ai/dsh-api-session-controller": "0.2.2-alpha.2",
269
- "@deepseek-ai/dsh-session-query": "0.2.2-alpha.2",
270
- "@deepseek-ai/dsh-tool-skill": "0.2.2-alpha.2"
270
+ "@deepseek-ai/dsh-skill": "0.2.2-rc.1",
271
+ "@deepseek-ai/dsh-skill-filesystem": "0.2.2-rc.1",
272
+ "@deepseek-ai/dsh-settings": "0.2.2-rc.1",
273
+ "@deepseek-ai/dsh-api-session-controller": "0.2.2-rc.1",
274
+ "@deepseek-ai/dsh-session-query": "0.2.2-rc.1",
275
+ "@deepseek-ai/dsh-tool-skill": "0.2.2-rc.1",
276
+ "@deepseek-ai/node-addon-system": "0.1.2",
277
+ "@deepseek-ai/schemastery": "3.19.0",
278
+ "fontkit": "2.0.4"
271
279
  },
272
280
  "dsh": {
273
281
  "bundle": {
@@ -284,10 +292,8 @@
284
292
  }
285
293
  },
286
294
  "dependencies": {
287
- "@deepseek-ai/node-addon-system": "^0.1.2",
288
295
  "koffi": "^3.1.0",
289
- "zod": "^4.6.7",
290
- "@deepseek-ai/schemastery": "^3.18.2"
296
+ "zod": "^4.6.7"
291
297
  },
292
298
  "scripts": {
293
299
  "bench:roots": "node --experimental-transform-types scripts/bench-root-scale.mjs",
@@ -312,6 +318,7 @@
312
318
  "auto-review:fork": "node scripts/check-auto-review-fork.mjs",
313
319
  "smoke:auto-review": "node scripts/verify-auto-review.mjs",
314
320
  "registry:probe": "node scripts/check-registry-authority.mjs",
315
- "soak:tui-registry": "node scripts/observe-tui-registry.mjs"
321
+ "soak:tui-registry": "node scripts/observe-tui-registry.mjs",
322
+ "preview:gen": "node scripts/gen-detail-preview.mjs"
316
323
  }
317
324
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  中文:[README.md](./README.md)
4
4
 
5
- Auto Review is included at `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review` and supports only DSH `0.2.1-rc.2`. After installing the main package, expand Multi-root Workspace's row list in the Plugin Manager and enable the `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review` row (its `cordis.patch.yml` row id is `multi-root-auto-review`). This row ships disabled: while off, it mounts neither the reviewer nor review context and does not register the Auto preset. Profiles without hot reload require a restart, as reported by the manager.
5
+ Auto Review is included at `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review` and supports only DSH `0.2.1-rc.2`. After installing the main package, expand Multi-root Workspace's row list in the Plugin Manager and enable the `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review` row (its `cordis.patch.yml` row id is `multi-root-auto-review`). This row ships disabled: while off, it mounts neither the reviewer nor review context and does not register the Auto preset. Profiles without hot reload require a restart, as reported by the manager. The same detail page's settings card also carries an "experimental"-tagged "Multi-root Auto Review" switch below the additional-root Skills one; it writes the same persisted override and reads the same live state as the row switch, and it is off by default as well. On hosts without the plugin-manager Remote the switch does not render.
6
6
 
7
7
  The one switch mounts both current multi-root context and the reviewer, taking over the sibling official `@deepseek-ai/dsh-experimental-auto-review` row at runtime. Either bundle order works, and subsequent reloads retain one owner. Takeover does not change the official row's saved configuration. After disabling, reload/restart restores the official owner only if its bundle is still selected and its original configuration allows it to run; an unselected official bundle is not installed or enabled automatically. When the official bundle is not selected, the row still provides the same reviewer standalone (it registers the Auto preset itself); there is simply no official owner to take over.
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  English: [README.en.md](./README.en.md)
4
4
 
5
- Auto Review 已内置于 `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review`,仅支持 DSH `0.2.1-rc.2`。安装主包后,在插件管理器中展开 Multi-root Workspace 的行列表,打开 `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review` 行(`cordis.patch.yml` 中的行 id 为 `multi-root-auto-review`)。该行出厂关闭;关闭时不挂载 reviewer 或 review context,也不注册 Auto preset。无热重载的 profile 需要按管理器提示重启。
5
+ Auto Review 已内置于 `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review`,仅支持 DSH `0.2.1-rc.2`。安装主包后,在插件管理器中展开 Multi-root Workspace 的行列表,打开 `@dsh-electron/dsh-plugin-multi-root-workspace/auto-review` 行(`cordis.patch.yml` 中的行 id 为 `multi-root-auto-review`)。该行出厂关闭;关闭时不挂载 reviewer 或 review context,也不注册 Auto preset。无热重载的 profile 需要按管理器提示重启。同一详情页的设置卡里还有一个标注「实验性」的「多根 Auto Review」开关(位于附属根 Skills 开关之下),它与行开关写入同一份持久覆盖、读同一份实时状态,默认同样关闭;宿主没有插件管理 Remote 时该开关不显示。
6
6
 
7
7
  启用后,同一个开关挂载当前多根 context 与 reviewer,并在运行时停止同组官方 `@deepseek-ai/dsh-experimental-auto-review` 行。官方 bundle 位于主包前后均可;后续 reload 仍保持单一 owner。接管不修改官方的持久配置。关闭后,官方仅在仍被选择且原配置允许启用时随 reload/restart 恢复;官方未被选择时不会自动安装或启用。官方 bundle 未被选择时,该行仍独立提供同一份 reviewer(自带注册 Auto preset),只是没有可接管的官方 owner。
8
8