@xmoon76/dsh-pi-tui 0.4.1 → 0.4.5

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.
@@ -5,7 +5,7 @@ import { Context } from "@deepseek-ai/cordis";
5
5
  declare const name = "tui-startup";
6
6
  /** Services required before the flags can be resolved. */
7
7
  declare const inject: string[];
8
- /** One incompatible dsh harness range and the guidance it deserves. Add a
8
+ /** Incompatible dsh harness ranges and the guidance each deserves. Add a
9
9
  * new entry here whenever a future bundle release stops supporting an
10
10
  * older (or newer) harness line; entries are checked in ORDER and the
11
11
  * first whose range covers the installed dsh version wins.
@@ -18,6 +18,11 @@ declare const inject: string[];
18
18
  * `since` names the bundle release line that FIRST imposed the constraint:
19
19
  * it is shown as the fallback version label (`>= <since>`) when the
20
20
  * bundle's own version cannot be read, so the message stays truthful.
21
+ *
22
+ * The 0.4.5 line has a minimum of the published npm release dsh-v0.1.5-rc.1
23
+ * and is also compatible with dsh-v0.1.5-rc.2. The recovery guidance names
24
+ * the recommended published upgrade target and allows its native install
25
+ * scripts.
21
26
  */
22
27
  interface HarnessCompatEntry {
23
28
  /** Inclusive lower bound of the incompatible range; absent = unbounded below. */
@@ -26,17 +31,18 @@ interface HarnessCompatEntry {
26
31
  max?: string;
27
32
  /** The bundle release line that first required this constraint. */
28
33
  since: string;
29
- /** Human-readable requirement, e.g. `DeepSeek Harness 0.1.2-alpha.4 or later`. */
34
+ /** Human-readable requirement, e.g. `DeepSeek Harness 0.1.5-rc.1 or later`. */
30
35
  requires: string;
31
36
  /** The target DSH version to install when the current runtime is too old. */
32
37
  upgradeDsh?: string;
38
+ /** An exact install command when the target needs install-script flags. */
39
+ upgradeCommand?: string;
33
40
  /** The compatible TUI line to install when keeping an old DSH runtime. */
34
41
  fallbackTui?: string;
35
42
  /** Special guidance for a range that is not covered by the normal recovery
36
43
  * commands, such as an unvalidated future DSH line. */
37
44
  guidance?: string;
38
45
  }
39
- /** The compatibility table. */
40
46
  declare const HARNESS_COMPAT: readonly HarnessCompatEntry[];
41
47
  /** The compat entry covering the installed dsh version, or undefined when
42
48
  * the harness is supported. */
package/dist/startup.mjs CHANGED
@@ -66,30 +66,70 @@ function versionAtLeast(version, minimum) {
66
66
  const name = "tui-startup";
67
67
  /** Services required before the flags can be resolved. */
68
68
  const inject = ["cmdlineArgs"];
69
- /** The compatibility table. */
69
+ /** The compatibility table. Entries are ordered from oldest to newest so
70
+ * `harnessCompatEntryFor()` can return the first matching historical range. */
71
+ const CURRENT_DSH_REQUIREMENT = {
72
+ since: "0.4.5",
73
+ requires: "DeepSeek Harness 0.1.5-rc.1 or later",
74
+ upgradeDsh: "0.1.5-rc.2",
75
+ upgradeCommand: "npm install -g --allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs,fs-ext @deepseek-ai/dsh@0.1.5-rc.2",
76
+ guidance: "This 0.4.5 release is validated with the published DeepSeek Harness 0.1.5-rc.1 distribution and is also compatible with 0.1.5-rc.2; see docs/dsh-compatibility.md."
77
+ };
70
78
  const HARNESS_COMPAT = [
71
79
  {
72
- min: "0.1.2-alpha.4",
73
- max: "0.1.2-rc.1",
74
- since: "0.4.0",
75
- requires: "DeepSeek Harness 0.1.2-rc.1 or later",
76
- upgradeDsh: "0.1.2-rc.1",
77
- fallbackTui: "0.4.0-alpha.2"
80
+ ...CURRENT_DSH_REQUIREMENT,
81
+ max: "0.1.0-rc.8"
78
82
  },
79
83
  {
84
+ ...CURRENT_DSH_REQUIREMENT,
85
+ min: "0.1.0-rc.8",
86
+ max: "0.1.1-rc.1",
87
+ fallbackTui: "0.2"
88
+ },
89
+ {
90
+ ...CURRENT_DSH_REQUIREMENT,
91
+ min: "0.1.1-rc.1",
92
+ max: "0.1.2-alpha.1",
93
+ fallbackTui: "0.3"
94
+ },
95
+ {
96
+ ...CURRENT_DSH_REQUIREMENT,
97
+ min: "0.1.2-alpha.1",
98
+ max: "0.1.2-alpha.2"
99
+ },
100
+ {
101
+ ...CURRENT_DSH_REQUIREMENT,
80
102
  min: "0.1.2-alpha.2",
81
103
  max: "0.1.2-alpha.4",
82
- since: "0.4.0-alpha.2",
83
- requires: "DeepSeek Harness 0.1.2-alpha.4 or later",
84
- upgradeDsh: "0.1.2-rc.1",
85
104
  fallbackTui: "0.4.0-alpha.1"
86
105
  },
87
106
  {
88
- max: "0.1.2-alpha.2",
89
- since: "0.4.0-alpha.1",
90
- requires: "DeepSeek Harness 0.1.2-alpha.2 or later",
91
- upgradeDsh: "0.1.2-rc.1",
92
- fallbackTui: "0.3"
107
+ ...CURRENT_DSH_REQUIREMENT,
108
+ min: "0.1.2-alpha.4",
109
+ max: "0.1.2-rc.1",
110
+ fallbackTui: "0.4.0-alpha.2"
111
+ },
112
+ {
113
+ ...CURRENT_DSH_REQUIREMENT,
114
+ min: "0.1.2-rc.1",
115
+ max: "0.1.3-alpha.1",
116
+ fallbackTui: "0.4.1"
117
+ },
118
+ {
119
+ ...CURRENT_DSH_REQUIREMENT,
120
+ min: "0.1.3-alpha.1",
121
+ max: "0.1.3-alpha.2"
122
+ },
123
+ {
124
+ ...CURRENT_DSH_REQUIREMENT,
125
+ min: "0.1.3-alpha.2",
126
+ max: "0.1.5-alpha.1",
127
+ fallbackTui: "0.4.3-alpha.2"
128
+ },
129
+ {
130
+ ...CURRENT_DSH_REQUIREMENT,
131
+ min: "0.1.5-alpha.1",
132
+ max: "0.1.5-rc.1"
93
133
  }
94
134
  ];
95
135
  /** The compat entry covering the installed dsh version, or undefined when
@@ -115,7 +155,7 @@ function bundleVersionLabel(since) {
115
155
  * guarantee that its output precedes another row's import failure. */
116
156
  function incompatibleHarnessMessage(installed, entry) {
117
157
  const recovery = [];
118
- if (entry.upgradeDsh !== void 0) recovery.push("Upgrade DeepSeek Harness:", ` npm install -g @deepseek-ai/dsh@${entry.upgradeDsh}`);
158
+ if (entry.upgradeDsh !== void 0) recovery.push("Upgrade DeepSeek Harness:", ` ${entry.upgradeCommand ?? `npm install -g @deepseek-ai/dsh@${entry.upgradeDsh}`}`);
119
159
  if (entry.fallbackTui !== void 0) recovery.push("Or keep your current Harness and use the compatible TUI line:", ` dsh plugin --profile pi-tui -- add @xmoon76/dsh-pi-tui@${entry.fallbackTui}`);
120
160
  if (entry.guidance !== void 0) recovery.push(entry.guidance);
121
161
  return [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmoon76/dsh-pi-tui",
3
- "version": "0.4.1",
3
+ "version": "0.4.5",
4
4
  "description": "The dsh-pi-tui bundle: a TUI surface for DeepSeek Harness profiles (dsh --profile pi-tui)",
5
5
  "license": "MIT",
6
6
  "author": "XMoon <xmoonox@gmail.com>",
@@ -53,8 +53,6 @@
53
53
  },
54
54
  "files": [
55
55
  "dist",
56
- "scripts/repair-session.mjs",
57
- "scripts/repair-core.mjs",
58
56
  "cordis.patch.yml",
59
57
  "README.md",
60
58
  "README.en.md",
@@ -77,71 +75,73 @@
77
75
  "peerDependencies": {
78
76
  "@deepseek-ai/cordis": "^4.0.2",
79
77
  "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
80
- "@deepseek-ai/dsh-agent": ">=0.1.2-rc.1",
81
- "@deepseek-ai/dsh-agent-default-model": ">=0.1.2-rc.1",
82
- "@deepseek-ai/dsh-agent-presets": ">=0.1.2-rc.1",
83
- "@deepseek-ai/dsh-authorization": ">=0.1.2-rc.1",
84
- "@deepseek-ai/dsh-cmdline": ">=0.1.2-rc.1",
85
- "@deepseek-ai/dsh-commands": ">=0.1.2-rc.1",
86
- "@deepseek-ai/dsh-credentials": ">=0.1.2-rc.1",
87
- "@deepseek-ai/dsh-goal": ">=0.1.2-rc.1",
88
- "@deepseek-ai/dsh-jobs": ">=0.1.2-rc.1",
89
- "@deepseek-ai/dsh-llm": ">=0.1.2-rc.1",
90
- "@deepseek-ai/dsh-llm-retry": ">=0.1.2-rc.1",
91
- "@deepseek-ai/dsh-permission-presets": ">=0.1.2-rc.1",
92
- "@deepseek-ai/dsh-plan-mode": ">=0.1.2-rc.1",
93
- "@deepseek-ai/dsh-sandbox-policy": ">=0.1.2-rc.1",
94
- "@deepseek-ai/dsh-session": ">=0.1.2-rc.1",
95
- "@deepseek-ai/dsh-session-persistence": ">=0.1.2-rc.1",
96
- "@deepseek-ai/dsh-session-title": ">=0.1.2-rc.1",
97
- "@deepseek-ai/dsh-settings": ">=0.1.2-rc.1",
98
- "@deepseek-ai/dsh-shell": ">=0.1.2-rc.1",
99
- "@deepseek-ai/dsh-skill": ">=0.1.2-rc.1",
100
- "@deepseek-ai/dsh-subagent": ">=0.1.2-rc.1",
101
- "@deepseek-ai/dsh-token-meter": ">=0.1.2-rc.1",
102
- "@deepseek-ai/dsh-tool-todo": ">=0.1.2-rc.1",
103
- "@deepseek-ai/dsh-tool-workflow": ">=0.1.2-rc.1",
104
- "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1",
105
- "@deepseek-ai/dsh-user-approval": ">=0.1.2-rc.1",
106
- "@deepseek-ai/dsh-user-questions": ">=0.1.2-rc.1",
78
+ "@deepseek-ai/dsh-agent": ">=0.1.5-rc.1",
79
+ "@deepseek-ai/dsh-agent-default-model": ">=0.1.5-rc.1",
80
+ "@deepseek-ai/dsh-agent-presets": ">=0.1.5-rc.1",
81
+ "@deepseek-ai/dsh-authorization": ">=0.1.5-rc.1",
82
+ "@deepseek-ai/dsh-cmdline": ">=0.1.5-rc.1",
83
+ "@deepseek-ai/dsh-commands": ">=0.1.5-rc.1",
84
+ "@deepseek-ai/dsh-credentials": ">=0.1.5-rc.1",
85
+ "@deepseek-ai/dsh-goal": ">=0.1.5-rc.1",
86
+ "@deepseek-ai/dsh-jobs": ">=0.1.5-rc.1",
87
+ "@deepseek-ai/dsh-llm": ">=0.1.5-rc.1",
88
+ "@deepseek-ai/dsh-llm-retry": ">=0.1.5-rc.1",
89
+ "@deepseek-ai/dsh-permission-presets": ">=0.1.5-rc.1",
90
+ "@deepseek-ai/dsh-plan-mode": ">=0.1.5-rc.1",
91
+ "@deepseek-ai/dsh-sandbox-policy": ">=0.1.5-rc.1",
92
+ "@deepseek-ai/dsh-session": ">=0.1.5-rc.1",
93
+ "@deepseek-ai/dsh-session-log-export": ">=0.1.5-rc.1",
94
+ "@deepseek-ai/dsh-session-persistence": ">=0.1.5-rc.1",
95
+ "@deepseek-ai/dsh-session-title": ">=0.1.5-rc.1",
96
+ "@deepseek-ai/dsh-settings": ">=0.1.5-rc.1",
97
+ "@deepseek-ai/dsh-shell": ">=0.1.5-rc.1",
98
+ "@deepseek-ai/dsh-skill": ">=0.1.5-rc.1",
99
+ "@deepseek-ai/dsh-subagent": ">=0.1.5-rc.1",
100
+ "@deepseek-ai/dsh-token-meter": ">=0.1.5-rc.1",
101
+ "@deepseek-ai/dsh-tool-todo": ">=0.1.5-rc.1",
102
+ "@deepseek-ai/dsh-tool-workflow": ">=0.1.5-rc.1",
103
+ "@deepseek-ai/dsh-tools": ">=0.1.5-rc.1",
104
+ "@deepseek-ai/dsh-user-approval": ">=0.1.5-rc.1",
105
+ "@deepseek-ai/dsh-user-questions": ">=0.1.5-rc.1",
107
106
  "@deepseek-ai/schemastery": "^3.18.1"
108
107
  },
109
108
  "devDependencies": {
110
109
  "@deepseek-ai/cordis-plugin-loader": "^1.0.2",
111
- "@deepseek-ai/dsh-agent": "0.1.2-rc.1",
112
- "@deepseek-ai/dsh-agent-default-model": "0.1.2-rc.1",
113
- "@deepseek-ai/dsh-agent-loop": "0.1.2-rc.1",
114
- "@deepseek-ai/dsh-agent-presets": "0.1.2-rc.1",
115
- "@deepseek-ai/dsh-attachment": "0.1.2-rc.1",
116
- "@deepseek-ai/dsh-authorization": "0.1.2-rc.1",
117
- "@deepseek-ai/dsh-brand": "0.1.2-rc.1",
118
- "@deepseek-ai/dsh-cmdline": "0.1.2-rc.1",
119
- "@deepseek-ai/dsh-commands": "0.1.2-rc.1",
120
- "@deepseek-ai/dsh-credentials": "0.1.2-rc.1",
121
- "@deepseek-ai/dsh-goal": "0.1.2-rc.1",
122
- "@deepseek-ai/dsh-invariants": "0.1.2-rc.1",
123
- "@deepseek-ai/dsh-jobs": "0.1.2-rc.1",
124
- "@deepseek-ai/dsh-llm": "0.1.2-rc.1",
125
- "@deepseek-ai/dsh-llm-retry": "0.1.2-rc.1",
126
- "@deepseek-ai/dsh-permission-presets": "0.1.2-rc.1",
127
- "@deepseek-ai/dsh-plan-mode": "0.1.2-rc.1",
128
- "@deepseek-ai/dsh-sandbox-policy": "0.1.2-rc.1",
129
- "@deepseek-ai/dsh-scope": "0.1.2-rc.1",
130
- "@deepseek-ai/dsh-session": "0.1.2-rc.1",
131
- "@deepseek-ai/dsh-session-persistence": "0.1.2-rc.1",
132
- "@deepseek-ai/dsh-session-title": "0.1.2-rc.1",
133
- "@deepseek-ai/dsh-settings": "0.1.2-rc.1",
134
- "@deepseek-ai/dsh-shell": "0.1.2-rc.1",
135
- "@deepseek-ai/dsh-skill": "0.1.2-rc.1",
136
- "@deepseek-ai/dsh-subagent": "0.1.2-rc.1",
137
- "@deepseek-ai/dsh-system-prompt": "0.1.2-rc.1",
138
- "@deepseek-ai/dsh-timeout": "0.1.2-rc.1",
139
- "@deepseek-ai/dsh-token-meter": "0.1.2-rc.1",
140
- "@deepseek-ai/dsh-tool-todo": "0.1.2-rc.1",
141
- "@deepseek-ai/dsh-tool-workflow": "0.1.2-rc.1",
142
- "@deepseek-ai/dsh-tools": "0.1.2-rc.1",
143
- "@deepseek-ai/dsh-user-approval": "0.1.2-rc.1",
144
- "@deepseek-ai/dsh-user-questions": "0.1.2-rc.1",
110
+ "@deepseek-ai/dsh-agent": "0.1.5-rc.1",
111
+ "@deepseek-ai/dsh-agent-default-model": "0.1.5-rc.1",
112
+ "@deepseek-ai/dsh-agent-loop": "0.1.5-rc.1",
113
+ "@deepseek-ai/dsh-agent-presets": "0.1.5-rc.1",
114
+ "@deepseek-ai/dsh-attachment": "0.1.5-rc.1",
115
+ "@deepseek-ai/dsh-authorization": "0.1.5-rc.1",
116
+ "@deepseek-ai/dsh-brand": "0.1.5-rc.1",
117
+ "@deepseek-ai/dsh-cmdline": "0.1.5-rc.1",
118
+ "@deepseek-ai/dsh-commands": "0.1.5-rc.1",
119
+ "@deepseek-ai/dsh-credentials": "0.1.5-rc.1",
120
+ "@deepseek-ai/dsh-goal": "0.1.5-rc.1",
121
+ "@deepseek-ai/dsh-invariants": "0.1.5-rc.1",
122
+ "@deepseek-ai/dsh-jobs": "0.1.5-rc.1",
123
+ "@deepseek-ai/dsh-llm": "0.1.5-rc.1",
124
+ "@deepseek-ai/dsh-llm-retry": "0.1.5-rc.1",
125
+ "@deepseek-ai/dsh-permission-presets": "0.1.5-rc.1",
126
+ "@deepseek-ai/dsh-plan-mode": "0.1.5-rc.1",
127
+ "@deepseek-ai/dsh-sandbox-policy": "0.1.5-rc.1",
128
+ "@deepseek-ai/dsh-scope": "0.1.5-rc.1",
129
+ "@deepseek-ai/dsh-session": "0.1.5-rc.1",
130
+ "@deepseek-ai/dsh-session-log-export": "0.1.5-rc.1",
131
+ "@deepseek-ai/dsh-session-persistence": "0.1.5-rc.1",
132
+ "@deepseek-ai/dsh-session-title": "0.1.5-rc.1",
133
+ "@deepseek-ai/dsh-settings": "0.1.5-rc.1",
134
+ "@deepseek-ai/dsh-shell": "0.1.5-rc.1",
135
+ "@deepseek-ai/dsh-skill": "0.1.5-rc.1",
136
+ "@deepseek-ai/dsh-subagent": "0.1.5-rc.1",
137
+ "@deepseek-ai/dsh-system-prompt": "0.1.5-rc.1",
138
+ "@deepseek-ai/dsh-timeout": "0.1.5-rc.1",
139
+ "@deepseek-ai/dsh-token-meter": "0.1.5-rc.1",
140
+ "@deepseek-ai/dsh-tool-todo": "0.1.5-rc.1",
141
+ "@deepseek-ai/dsh-tool-workflow": "0.1.5-rc.1",
142
+ "@deepseek-ai/dsh-tools": "0.1.5-rc.1",
143
+ "@deepseek-ai/dsh-user-approval": "0.1.5-rc.1",
144
+ "@deepseek-ai/dsh-user-questions": "0.1.5-rc.1",
145
145
  "@deepseek-ai/schemastery": "^3.18.1",
146
146
  "@types/node": "^22.0.0",
147
147
  "@xmoon76/pi-tui": "^0.84.4",
@@ -151,32 +151,32 @@
151
151
  "tsdown": "0.22.0",
152
152
  "tsx": "^4.23.12",
153
153
  "typescript": "^5.9.0",
154
- "@deepseek-ai/dsh-session-projection": "0.1.2-rc.1",
155
- "@deepseek-ai/dsh-persona": "0.1.2-rc.1",
156
- "@deepseek-ai/dsh-agent-instructions": "0.1.2-rc.1",
157
- "@deepseek-ai/dsh-tool-fs": "0.1.2-rc.1",
158
- "@deepseek-ai/dsh-tool-fs-search": "0.1.2-rc.1",
159
- "@deepseek-ai/dsh-tool-jobs": "0.1.2-rc.1",
160
- "@deepseek-ai/dsh-skill-filesystem": "0.1.2-rc.1",
161
- "@deepseek-ai/dsh-tool-skill": "0.1.2-rc.1",
162
- "@deepseek-ai/dsh-command-goal": "0.1.2-rc.1",
163
- "@deepseek-ai/dsh-tool-goal": "0.1.2-rc.1",
164
- "@deepseek-ai/dsh-compaction-basic": "0.1.2-rc.1",
165
- "@deepseek-ai/dsh-command-compact": "0.1.2-rc.1",
166
- "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.2-rc.1",
167
- "@deepseek-ai/dsh-tool-subagent-control": "0.1.2-rc.1",
168
- "@deepseek-ai/dsh-tool-subagent": "0.1.2-rc.1",
169
- "@deepseek-ai/dsh-workflow-worker-thread": "0.1.2-rc.1",
170
- "@deepseek-ai/dsh-tool-ralph": "0.1.2-rc.1",
171
- "@deepseek-ai/dsh-tool-ask-user": "0.1.2-rc.1",
172
- "@deepseek-ai/dsh-tool-web": "0.1.2-rc.1",
173
- "@deepseek-ai/dsh-agent-tool-presentation": "0.1.2-rc.1",
174
- "@deepseek-ai/dsh-terminal": "0.1.2-rc.1",
175
- "@deepseek-ai/dsh-fs-local": "0.1.2-rc.1",
176
- "@deepseek-ai/dsh-tool-str-replace-editor": "0.1.2-rc.1",
177
- "@deepseek-ai/dsh-tool-cordis": "0.1.2-rc.1",
178
- "@deepseek-ai/dsh-agent-loop-testkit": "0.1.2-rc.1",
179
- "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.2-rc.1"
154
+ "@deepseek-ai/dsh-session-projection": "0.1.5-rc.1",
155
+ "@deepseek-ai/dsh-persona": "0.1.5-rc.1",
156
+ "@deepseek-ai/dsh-agent-instructions": "0.1.5-rc.1",
157
+ "@deepseek-ai/dsh-tool-fs": "0.1.5-rc.1",
158
+ "@deepseek-ai/dsh-tool-fs-search": "0.1.5-rc.1",
159
+ "@deepseek-ai/dsh-tool-jobs": "0.1.5-rc.1",
160
+ "@deepseek-ai/dsh-skill-filesystem": "0.1.5-rc.1",
161
+ "@deepseek-ai/dsh-tool-skill": "0.1.5-rc.1",
162
+ "@deepseek-ai/dsh-command-goal": "0.1.5-rc.1",
163
+ "@deepseek-ai/dsh-tool-goal": "0.1.5-rc.1",
164
+ "@deepseek-ai/dsh-compaction-basic": "0.1.5-rc.1",
165
+ "@deepseek-ai/dsh-command-compact": "0.1.5-rc.1",
166
+ "@deepseek-ai/dsh-compaction-tool-result-pruner": "0.1.5-rc.1",
167
+ "@deepseek-ai/dsh-tool-subagent-control": "0.1.5-rc.1",
168
+ "@deepseek-ai/dsh-tool-subagent": "0.1.5-rc.1",
169
+ "@deepseek-ai/dsh-workflow-worker-thread": "0.1.5-rc.1",
170
+ "@deepseek-ai/dsh-tool-ralph": "0.1.5-rc.1",
171
+ "@deepseek-ai/dsh-tool-ask-user": "0.1.5-rc.1",
172
+ "@deepseek-ai/dsh-tool-web": "0.1.5-rc.1",
173
+ "@deepseek-ai/dsh-agent-tool-presentation": "0.1.5-rc.1",
174
+ "@deepseek-ai/dsh-terminal": "0.1.5-rc.1",
175
+ "@deepseek-ai/dsh-fs-local": "0.1.5-rc.1",
176
+ "@deepseek-ai/dsh-tool-str-replace-editor": "0.1.5-rc.1",
177
+ "@deepseek-ai/dsh-tool-cordis": "0.1.5-rc.1",
178
+ "@deepseek-ai/dsh-agent-loop-testkit": "0.1.5-rc.1",
179
+ "@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.5-rc.1"
180
180
  },
181
181
  "engines": {
182
182
  "node": "^22.19.0 || >=24"
@@ -209,6 +209,7 @@
209
209
  "gate:source-leak": "node scripts/dsh-source-leak-gate.mjs",
210
210
  "gate:installation-doc": "node scripts/installation-doc-gate.mjs",
211
211
  "gate:temp-hygiene": "node scripts/temp-hygiene-gate.mjs",
212
+ "gate:raw-persistence": "node scripts/raw-persistence-coupling-gate.mjs",
212
213
  "generate:pi-divergences": "node scripts/generate-pi-divergences.mjs",
213
214
  "gate:pi-divergence-ledger": "node scripts/pi-divergence-ledger-gate.mjs",
214
215
  "gate:pi-vendor-diff": "node scripts/pi-vendor-diff-gate.mjs",
@@ -222,11 +223,11 @@
222
223
  "dev:doctor": "node scripts/dev-doctor.mjs",
223
224
  "dev:bootstrap": "node scripts/dev-bootstrap.mjs",
224
225
  "dev:shell": "node scripts/dev-shell.mjs",
225
- "verify:prepush": "pnpm typecheck:fork && pnpm test:fork && pnpm test:docs && pnpm test:tooling && pnpm gate:installation-doc && pnpm gate:pi-divergence-ledger && pnpm gate:pi-vendor-diff --strict && node scripts/naming-gate.mjs && pnpm gate:temp-hygiene && node scripts/check-no-session-events.mjs && pnpm gate:boundary && pnpm gate:keybindings && pnpm audit --prod --audit-level high && pnpm pack:release",
226
- "verify:prepush:nofork": "pnpm test:docs && pnpm test:tooling && pnpm gate:installation-doc && pnpm gate:pi-divergence-ledger && pnpm gate:pi-vendor-diff --strict && node scripts/naming-gate.mjs && pnpm gate:temp-hygiene && node scripts/check-no-session-events.mjs && pnpm gate:boundary && pnpm gate:keybindings && pnpm audit --prod --audit-level high && pnpm pack:release",
226
+ "verify:prepush": "pnpm typecheck:fork && pnpm test:fork && pnpm test:docs && pnpm test:tooling && pnpm gate:installation-doc && pnpm gate:pi-divergence-ledger && pnpm gate:pi-vendor-diff --strict && node scripts/naming-gate.mjs && node scripts/check-no-session-events.mjs && pnpm gate:boundary && pnpm gate:keybindings && pnpm audit --prod --audit-level high && pnpm pack:release",
227
+ "verify:prepush:nofork": "pnpm test:docs && pnpm test:tooling && pnpm gate:installation-doc && pnpm gate:pi-divergence-ledger && pnpm gate:pi-vendor-diff --strict && node scripts/naming-gate.mjs && node scripts/check-no-session-events.mjs && pnpm gate:boundary && pnpm gate:keybindings && pnpm audit --prod --audit-level high && pnpm pack:release",
227
228
  "gate:boundary": "node scripts/client-boundary-gate.mjs",
228
229
  "gate:keybindings": "node --import tsx/esm scripts/check-host-keybindings.mts",
229
- "test:tooling": "node scripts/run-with-temp-root.mjs node --test test/dev-environment.test.mjs test/dev-bootstrap-ephemeral.test.mjs test/pre-push-hook.test.mjs test/pre-push-stages.test.mjs test/dsh-ci-context.test.mjs test/dsh-distribution.test.mjs test/dsh-npm-verify.test.mjs test/dsh-peer-window.test.mjs test/dsh-process.test.mjs test/dsh-runtime-boundary.test.mjs test/dsh-source-identity.test.mjs test/dsh-source-leak.test.mjs test/release-context.test.mjs test/release-notes.test.mjs test/source-mode-rules.test.mjs test/client-boundary-gate.test.mjs test/tarball-source-install.test.mjs test/pi2dsh-compat-smoke.test.mjs test/temp-hygiene-gate.test.mjs test/pi-vendor-diff-gate.test.mjs test/pi-divergence-ledger-gate.test.mjs test/run-with-temp-root.test.mjs",
230
- "test:product": "node scripts/run-with-temp-root.mjs node --test test/*.test.ts test/repair.test.mjs test/tarball-smoke.test.mjs"
230
+ "test:tooling": "node scripts/run-with-temp-root.mjs node --test test/dev-environment.test.mjs test/dev-bootstrap-ephemeral.test.mjs test/pre-push-hook.test.mjs test/pre-push-stages.test.mjs test/dsh-ci-context.test.mjs test/dsh-distribution.test.mjs test/dsh-npm-verify.test.mjs test/dsh-peer-window.test.mjs test/dsh-process.test.mjs test/dsh-runtime-boundary.test.mjs test/dsh-source-identity.test.mjs test/dsh-source-leak.test.mjs test/release-context.test.mjs test/release-notes.test.mjs test/source-mode-rules.test.mjs test/client-boundary-gate.test.mjs test/tarball-source-install.test.mjs test/pi2dsh-compat-smoke.test.mjs test/temp-hygiene-gate.test.mjs test/pi-vendor-diff-gate.test.mjs test/pi-divergence-ledger-gate.test.mjs test/run-with-temp-root.test.mjs test/raw-persistence-coupling-gate.test.mjs",
231
+ "test:product": "node scripts/run-with-temp-root.mjs node --test test/*.test.ts test/tarball-smoke.test.mjs"
231
232
  }
232
233
  }