@chatcode/chatcode-cli 3.0.2 → 3.0.3
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.
- package/README.i18n.yaml +6 -6
- package/README.md +11 -1
- package/README.zh.md +11 -1
- package/lib/bin.js +11 -67
- package/lib/{command-errors-CIYn1nnW.js → command-errors-CBJRI2gy.js} +12 -12
- package/lib/{command-trees-8o99Bws7.js → command-trees-Dvq4C7a4.js} +2 -2
- package/lib/{component-identity-CnmIKHEF.js → component-identity-DPdJglJO.js} +3 -3
- package/lib/{dist-DxjlHHph.js → dist-w_sIm4VD.js} +203 -197
- package/lib/dsh-ecosystem-spec/protocols/profile-definitions.d.ts +13 -0
- package/lib/dsh-ecosystem-spec/protocols/profile-definitions.js +59 -0
- package/lib/dsh-ecosystem-spec/protocols/tui-channel-http.d.ts +15 -0
- package/lib/dsh-ecosystem-spec/protocols/tui-channel-http.js +32 -0
- package/lib/dsh-ecosystem-spec/protocols/tui-channel.d.ts +59 -0
- package/lib/dsh-ecosystem-spec/protocols/tui-channel.js +166 -0
- package/lib/dsh-ecosystem-spec/protocols/tui-contributions.d.ts +42 -0
- package/lib/dsh-ecosystem-spec/protocols/tui-contributions.js +143 -0
- package/lib/dsh-ecosystem-spec/registry/README.md +14 -0
- package/lib/dsh-ecosystem-spec/registry/contracts/decision-events-v1alpha1.json +13 -0
- package/lib/dsh-ecosystem-spec/registry/contracts/scene-v1alpha1.json +13 -0
- package/lib/dsh-ecosystem-spec/registry/contracts/settings-section-v1alpha1.json +13 -0
- package/lib/dsh-ecosystem-spec/registry/contracts/tui-channel-v1alpha1.json +30 -0
- package/lib/dsh-ecosystem-spec/registry/contracts/workspace-provider-v1alpha1.json +6 -0
- package/lib/dsh-ecosystem-spec/registry/host-descriptor.tui.example.json +56 -0
- package/lib/dsh-ecosystem-spec/registry/permissions-0.1.json +13 -0
- package/lib/dsh-ecosystem-spec/registry/registry-0.15.json +149 -0
- package/lib/dsh-ecosystem-spec/schemas/conformance-claim.schema.json +15 -0
- package/lib/dsh-ecosystem-spec/schemas/effect-ledger-record.schema.json +16 -0
- package/lib/dsh-ecosystem-spec/schemas/host-descriptor.schema.json +26 -0
- package/lib/{dump-config-BSTrhTT_.js → dump-config-CauO75nE.js} +1 -1
- package/lib/dump-config-CijLv_kn.js +2 -0
- package/lib/{dump-config-schema-Cz4A13GB.js → dump-config-schema-CObLWWaW.js} +2 -2
- package/lib/{extension-events-DciGPKJa.js → extension-events-Be9LWvHD.js} +20 -20
- package/lib/{home-migration-DLaSvmfn.js → home-migration-BjDmRwBB.js} +23 -4
- package/lib/{host-access-CmD27uhQ.js → host-access-DeCjoRQP.js} +1 -1
- package/lib/{keymap-CFChEJ2W.js → keymap-CRUxM_qn.js} +2 -2
- package/lib/{plugin-jvd9PCVt.js → plugin-CDFSDE_y.js} +1491 -743
- package/lib/{plugin-DYHtreEd.js → plugin-Cn-hyYY8.js} +1 -1
- package/lib/{profile-boot-Blq7uqhx.js → profile-boot-SJGbpLgN.js} +13 -1
- package/lib/profile-boot.js +1 -1
- package/lib/{scenes-ai_8sHDs.js → scenes-D6jV1EEi.js} +3 -3
- package/lib/{settings-sections-QQ1-2lhL.js → settings-sections-DJQRNBo9.js} +3 -3
- package/lib/startup-diagnostics-C_hRCp-q.js +91 -0
- package/lib/{themes-DTzG_9I_.js → themes-BCly4_y9.js} +12 -12
- package/lib/tui-compat-command-trees.js +1 -1
- package/lib/tui-compat-extensions.js +4 -4
- package/lib/tui-compat-plugin-host.js +5 -5
- package/lib/tui-compat-scenes.js +1 -1
- package/lib/tui-compat-settings-sections.js +1 -1
- package/lib/tui-compat-working-activity.js +1 -1
- package/lib/tui-compat-workspaces.js +1 -1
- package/lib/tui-compat.js +41 -9
- package/lib/{tuiDisplayPrefs-BCHRRcfe.js → tuiDisplayPrefs-Dm_fULiR.js} +44 -2
- package/lib/types/home-migration.d.ts +8 -0
- package/lib/types/startup-diagnostics.d.ts +13 -0
- package/lib/types/tui-compat.d.ts +2 -0
- package/lib/{workspaces-CznCgVHv.js → workspaces-Bb3kCAFb.js} +2 -2
- package/package.json +40 -34
- package/runtime/manifest.json +2 -6
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-account/lib/client.js +2 -2
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-settings-general/lib/client.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-client-ui-sidebar/lib/client.js +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-compaction-basic/lib/index.js +84 -8
- package/runtime/node_modules/@deepseek-ai/dsh-compaction-basic/lib/types/region.d.ts +9 -0
- package/runtime/node_modules/@deepseek-ai/dsh-compaction-basic/lib/types/summarizer.d.ts +7 -0
- package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/client.js +3 -8
- package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/types/client/HeaderAction.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-skill/lib/types/index.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-skill-filesystem/lib/index.js +7 -1
- package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/cordis.patch.yml +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/ptc.patch.yml +2 -1
- package/runtime/node_modules/@deepseek-ai/dsh-web-app/presets/standard.patch.yml +2 -1
- package/lib/dump-config-DBW7YLx-.js +0 -2
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/README.md +0 -9
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/bin/system.node +0 -0
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/package.json +0 -31
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-arm64/prebuilds.json +0 -6
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-x64/README.md +0 -9
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-x64/package.json +0 -31
- package/runtime/node_modules/@deepseek-ai/node-addon-system-darwin-x64/prebuilds.json +0 -6
- package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-arm64/README.md +0 -11
- package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-arm64/package.json +0 -31
- package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-arm64/prebuilds.json +0 -24
- package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-x64/README.md +0 -11
- package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-x64/package.json +0 -31
- package/runtime/node_modules/@deepseek-ai/node-addon-system-linux-x64/prebuilds.json +0 -24
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chatcode/chatcode-cli",
|
|
3
3
|
"description": "ChatCode CLI: TUI-first coding agent, Web launcher, profiles, and legacy DSH-compatible plugins",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.3",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"lib/*.js",
|
|
19
|
+
"lib/dsh-ecosystem-spec",
|
|
19
20
|
"lib/types/*.d.ts",
|
|
20
21
|
"scripts/*.mjs",
|
|
21
22
|
"runtime/manifest.json",
|
|
@@ -27,14 +28,14 @@
|
|
|
27
28
|
"dependencies": {
|
|
28
29
|
"@agentclientprotocol/sdk": "1.4.0",
|
|
29
30
|
"@babel/code-frame": "^7.29.0",
|
|
30
|
-
"@chatcode/cco-better-sidebar": "0.18.0-rc.
|
|
31
|
+
"@chatcode/cco-better-sidebar": "0.18.0-rc.3",
|
|
31
32
|
"@chatcode/cco-builtin-browser": "0.1.21",
|
|
32
|
-
"@chatcode/cco-chat-import": "0.
|
|
33
|
-
"@chatcode/cco-llm-chatcode-config": "0.1.
|
|
33
|
+
"@chatcode/cco-chat-import": "0.15.0",
|
|
34
|
+
"@chatcode/cco-llm-chatcode-config": "0.1.4-rc.4",
|
|
34
35
|
"@chatcode/cco-market": "1.45.2-rc.3",
|
|
35
|
-
"@chatcode/cco-tui": "0.10.0-rc.
|
|
36
|
+
"@chatcode/cco-tui": "0.10.0-rc.16",
|
|
36
37
|
"@deepseek-ai/libreoffice-kit": "^0.1.1",
|
|
37
|
-
"@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-rc.
|
|
38
|
+
"@deepseek-harness-tui/dsh-tui": "npm:@chatcode/cco-tui@0.10.0-rc.16",
|
|
38
39
|
"@earendil-works/pi-ai": "^0.85.1",
|
|
39
40
|
"@eslint-community/regexpp": "^4.12.2",
|
|
40
41
|
"@joplin/turndown-plugin-gfm": "^1.0.67",
|
|
@@ -56,10 +57,10 @@
|
|
|
56
57
|
"commander": "^15.0.0",
|
|
57
58
|
"compression": "^1.8.1",
|
|
58
59
|
"diff": "^9.0.0",
|
|
59
|
-
"dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-rc.
|
|
60
|
+
"dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-rc.3",
|
|
60
61
|
"dsh-builtin-browser": "npm:@chatcode/cco-builtin-browser@0.1.21",
|
|
61
|
-
"dsh-chat-import": "npm:@chatcode/cco-chat-import@0.
|
|
62
|
-
"dsh-llm-chatcode-config": "npm:@chatcode/cco-llm-chatcode-config@0.1.
|
|
62
|
+
"dsh-chat-import": "npm:@chatcode/cco-chat-import@0.15.0",
|
|
63
|
+
"dsh-llm-chatcode-config": "npm:@chatcode/cco-llm-chatcode-config@0.1.4-rc.4",
|
|
63
64
|
"dshmarket": "npm:@chatcode/cco-market@1.45.2-rc.3",
|
|
64
65
|
"eventsource-parser": "^3.1.0",
|
|
65
66
|
"execa": "^10.0.0",
|
|
@@ -92,47 +93,47 @@
|
|
|
92
93
|
"ajv": "^8.20.0",
|
|
93
94
|
"execa": "^10.0.0",
|
|
94
95
|
"ws": "8.21.0",
|
|
95
|
-
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
96
|
-
"@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
|
|
97
|
-
"@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
|
|
98
96
|
"@deepseek-ai/dsh-acp": "0.1.7-rc.2",
|
|
97
|
+
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
99
98
|
"@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
|
|
100
|
-
"@deepseek-ai/dsh-bash-local": "0.1.7-rc.2",
|
|
101
99
|
"@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2",
|
|
102
100
|
"@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2",
|
|
103
101
|
"@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
|
|
104
|
-
"@deepseek-ai/dsh-
|
|
105
|
-
"@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
|
|
106
|
-
"@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
|
|
107
|
-
"@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
|
|
108
|
-
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
109
|
-
"@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2",
|
|
102
|
+
"@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
|
|
110
103
|
"@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.1.7-rc.2",
|
|
104
|
+
"@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
|
|
111
105
|
"@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
|
|
106
|
+
"@deepseek-ai/dsh-bash-local": "0.1.7-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2",
|
|
109
|
+
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
|
|
112
|
+
"@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2",
|
|
113
|
+
"@deepseek-ai/dsh-llm-mock-server": "0.1.7-rc.2",
|
|
114
|
+
"@deepseek-ai/dsh-sdk-client": "0.1.7-rc.2",
|
|
112
115
|
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2",
|
|
116
|
+
"@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2",
|
|
113
118
|
"@deepseek-ai/dsh-llm-replay": "0.1.7-rc.2",
|
|
114
|
-
"@deepseek-ai/dsh-llm-mock-server": "0.1.7-rc.2",
|
|
115
|
-
"@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2",
|
|
116
119
|
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
|
|
117
121
|
"@deepseek-ai/dsh-loader-smoke": "0.1.7-rc.2",
|
|
118
|
-
"@deepseek-ai/dsh-
|
|
122
|
+
"@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
|
|
119
124
|
"@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2",
|
|
120
|
-
"@deepseek-ai/dsh-sdk-client": "0.1.7-rc.2",
|
|
121
|
-
"@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
|
|
122
|
-
"@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2",
|
|
123
125
|
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
|
|
124
|
-
"@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
|
|
125
|
-
"@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
|
|
126
|
-
"@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2",
|
|
127
|
-
"@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
|
|
128
126
|
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
129
|
-
"@deepseek-ai/dsh-
|
|
127
|
+
"@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2",
|
|
130
128
|
"@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-rc.2",
|
|
131
|
-
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
132
|
-
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
|
|
133
129
|
"@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
|
|
130
|
+
"@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2",
|
|
134
131
|
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
|
|
135
|
-
"@deepseek-ai/dsh-
|
|
132
|
+
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
133
|
+
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
134
|
+
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-user-approval": "0.1.7-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.2"
|
|
136
137
|
},
|
|
137
138
|
"exports": {
|
|
138
139
|
"./headless-compat": {
|
|
@@ -151,6 +152,11 @@
|
|
|
151
152
|
"./lib/*": "./lib/*",
|
|
152
153
|
"./package.json": "./package.json"
|
|
153
154
|
},
|
|
154
|
-
"optionalDependencies": {
|
|
155
|
+
"optionalDependencies": {
|
|
156
|
+
"@deepseek-ai/node-addon-system-darwin-arm64": "0.1.2",
|
|
157
|
+
"@deepseek-ai/node-addon-system-darwin-x64": "0.1.2",
|
|
158
|
+
"@deepseek-ai/node-addon-system-linux-arm64": "0.1.2",
|
|
159
|
+
"@deepseek-ai/node-addon-system-linux-x64": "0.1.2"
|
|
160
|
+
},
|
|
155
161
|
"scripts": {}
|
|
156
162
|
}
|
package/runtime/manifest.json
CHANGED
|
@@ -278,12 +278,8 @@
|
|
|
278
278
|
"@deepseek-ai/dsh-workspace",
|
|
279
279
|
"@deepseek-ai/dsh-workspace-changes",
|
|
280
280
|
"@deepseek-ai/node-addon-system",
|
|
281
|
-
"@deepseek-ai/node-addon-system-darwin-arm64",
|
|
282
|
-
"@deepseek-ai/node-addon-system-darwin-x64",
|
|
283
|
-
"@deepseek-ai/node-addon-system-linux-arm64",
|
|
284
|
-
"@deepseek-ai/node-addon-system-linux-x64",
|
|
285
281
|
"@deepseek-ai/schemastery"
|
|
286
282
|
],
|
|
287
|
-
"fileCount":
|
|
288
|
-
"byteCount":
|
|
283
|
+
"fileCount": 3555,
|
|
284
|
+
"byteCount": 66580718
|
|
289
285
|
}
|
|
@@ -4125,7 +4125,7 @@ window.__ModuleLoader__.load({
|
|
|
4125
4125
|
for (const listener of listeners) listener();
|
|
4126
4126
|
};
|
|
4127
4127
|
/** @returns the client identity for one account call, read at call time so it carries the language and zone in effect then. */
|
|
4128
|
-
const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.
|
|
4128
|
+
const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.3");
|
|
4129
4129
|
const notices = createBonusNoticeController({
|
|
4130
4130
|
ackRetryDelayMs: config.bonusAckRetryDelayMs,
|
|
4131
4131
|
ackRetryMaxDelayMs: config.bonusAckRetryMaxDelayMs,
|
|
@@ -4256,7 +4256,7 @@ window.__ModuleLoader__.load({
|
|
|
4256
4256
|
refreshAccount,
|
|
4257
4257
|
contactUs() {
|
|
4258
4258
|
const url = contactUrl(config, {
|
|
4259
|
-
version: "3.0.
|
|
4259
|
+
version: "3.0.3",
|
|
4260
4260
|
locale: ctx.locale.getSnapshot().active === "zh" ? "zh-CN" : "en",
|
|
4261
4261
|
width: window.screen.width,
|
|
4262
4262
|
height: window.screen.height,
|
|
@@ -657,7 +657,7 @@ window.__ModuleLoader__.load({
|
|
|
657
657
|
function CurrentVersionRow({ t }) {
|
|
658
658
|
return (0, react_jsx_runtime.jsx)("div", {
|
|
659
659
|
className: CurrentVersionRow_module_css_default.row,
|
|
660
|
-
children: t("general.currentVersion", { version: "3.0.
|
|
660
|
+
children: t("general.currentVersion", { version: "3.0.3" })
|
|
661
661
|
});
|
|
662
662
|
}
|
|
663
663
|
//#endregion
|
|
@@ -167,7 +167,7 @@ window.__ModuleLoader__.load({
|
|
|
167
167
|
const SCROLLBAR_LINGER_MS = 2e3;
|
|
168
168
|
/** Format complete-build metadata for the local brand badge. */
|
|
169
169
|
function localBuildVersion() {
|
|
170
|
-
return `3.0.
|
|
170
|
+
return `3.0.3-212a731-dirty`;
|
|
171
171
|
}
|
|
172
172
|
/** Each panel row subscribes only to its own selection state. */
|
|
173
173
|
function PanelRow({ id, label, wide, usePanelInfo, selectPanel, renderSlot }) {
|
|
@@ -233,6 +233,32 @@ function assertRatio(name, value) {
|
|
|
233
233
|
/** Tags wrapping the structured summary inside the landed checkpoint node. */
|
|
234
234
|
const SUMMARY_OPEN_TAG = "<compacted-summary>";
|
|
235
235
|
const SUMMARY_CLOSE_TAG = "</compacted-summary>";
|
|
236
|
+
/** Smallest checkpoint body that satisfies the summarizer's required section structure. */
|
|
237
|
+
const MINIMUM_SUMMARY_TEXT = [
|
|
238
|
+
"## Primary Request and Intent",
|
|
239
|
+
"- (none)",
|
|
240
|
+
"",
|
|
241
|
+
"## Key Technical Concepts",
|
|
242
|
+
"- (none)",
|
|
243
|
+
"",
|
|
244
|
+
"## Files and Code",
|
|
245
|
+
"- (none)",
|
|
246
|
+
"",
|
|
247
|
+
"## Errors and Fixes",
|
|
248
|
+
"- (none)",
|
|
249
|
+
"",
|
|
250
|
+
"## Pending Jobs",
|
|
251
|
+
"- (none)",
|
|
252
|
+
"",
|
|
253
|
+
"## Current Work",
|
|
254
|
+
"- (none)",
|
|
255
|
+
"",
|
|
256
|
+
"## Next Step",
|
|
257
|
+
"- (none)",
|
|
258
|
+
"",
|
|
259
|
+
"## Critical Context",
|
|
260
|
+
"- (none)"
|
|
261
|
+
].join("\n");
|
|
236
262
|
/**
|
|
237
263
|
* The summarization directive, delivered as the FINAL user message after the
|
|
238
264
|
* replayed conversation rather than as a distinct summarizer system prompt.
|
|
@@ -301,12 +327,14 @@ async function summarizeWithLlm(ctx, config, input, agent, signal) {
|
|
|
301
327
|
} : void 0;
|
|
302
328
|
const target = configured ?? latest ?? agentTarget;
|
|
303
329
|
if (target === void 0) throw new Error("no provider/model available for summarization: set both BasicCompactionConfig summarization fields, route one request, or set both AgentOptions fields");
|
|
330
|
+
const modelInfo = await ctx.llm.resolveModelInfo(target.provider, target.model, signal);
|
|
331
|
+
const maxTokens = modelInfo.defaultMaxTokens === void 0 ? config.maxTokens : Math.min(config.maxTokens, modelInfo.defaultMaxTokens);
|
|
304
332
|
const assembler = new BlockAssembler();
|
|
305
333
|
const messages = [...input.messages, deepFreeze({
|
|
306
334
|
role: "user",
|
|
307
335
|
content: [{
|
|
308
336
|
type: "text",
|
|
309
|
-
text:
|
|
337
|
+
text: compactionInstruction(input.summaryTokenBudget)
|
|
310
338
|
}]
|
|
311
339
|
})];
|
|
312
340
|
const options = {
|
|
@@ -315,7 +343,7 @@ async function summarizeWithLlm(ctx, config, input, agent, signal) {
|
|
|
315
343
|
messages,
|
|
316
344
|
toolHistory: agent.session.toolHistory(),
|
|
317
345
|
...input.tools === void 0 ? {} : { tools: [...input.tools] },
|
|
318
|
-
maxTokens
|
|
346
|
+
maxTokens,
|
|
319
347
|
sessionId: agent.session.id,
|
|
320
348
|
purpose: "compaction",
|
|
321
349
|
...signal === void 0 ? {} : { signal }
|
|
@@ -332,7 +360,7 @@ async function summarizeWithLlm(ctx, config, input, agent, signal) {
|
|
|
332
360
|
llmStreamCall: true,
|
|
333
361
|
provider: options.provider,
|
|
334
362
|
model: options.model,
|
|
335
|
-
maxTokens
|
|
363
|
+
maxTokens,
|
|
336
364
|
...assembler.usage === void 0 ? {} : { usage: assembler.usage }
|
|
337
365
|
};
|
|
338
366
|
}
|
|
@@ -354,6 +382,21 @@ function frameSummary(summary) {
|
|
|
354
382
|
}
|
|
355
383
|
];
|
|
356
384
|
}
|
|
385
|
+
/**
|
|
386
|
+
* Return the smallest body allowed by the structured-summary instruction.
|
|
387
|
+
* @returns one fresh text block containing every required section.
|
|
388
|
+
*/
|
|
389
|
+
function minimumSummaryContent() {
|
|
390
|
+
return [{
|
|
391
|
+
type: "text",
|
|
392
|
+
text: MINIMUM_SUMMARY_TEXT
|
|
393
|
+
}];
|
|
394
|
+
}
|
|
395
|
+
/** Add the selected region's strict shrink budget to the model instruction. */
|
|
396
|
+
function compactionInstruction(summaryTokenBudget) {
|
|
397
|
+
if (summaryTokenBudget === void 0) return COMPACTION_INSTRUCTION;
|
|
398
|
+
return `${COMPACTION_INSTRUCTION}\n- Keep the complete checkpoint body under ${summaryTokenBudget} estimated tokens. When space is tight, prioritize current work, the next step, constraints, and exact identifiers.`;
|
|
399
|
+
}
|
|
357
400
|
/** Map a terminal summarization finish to its fail-closed error. */
|
|
358
401
|
function finishError(finish) {
|
|
359
402
|
switch (finish.kind) {
|
|
@@ -475,7 +518,7 @@ async function compactSurfaceRegion(dependencies, session, start, end, agent, op
|
|
|
475
518
|
let closing = false;
|
|
476
519
|
let stage = "summary";
|
|
477
520
|
try {
|
|
478
|
-
const summarized = await summarizeCompaction(dependencies, prepareCompaction(dependencies, session, selection), agent, compactionId, options.sourceCommandId, assertStable, signal);
|
|
521
|
+
const summarized = await summarizeCompaction(dependencies, prepareCompaction(dependencies.meter, session, selection), agent, compactionId, options.sourceCommandId, assertStable, signal);
|
|
479
522
|
if (options.owner === null) signal?.throwIfAborted();
|
|
480
523
|
assertStable(dependencies, session, summarized);
|
|
481
524
|
stage = "commit";
|
|
@@ -565,8 +608,8 @@ function validateSurfaceRegion(session, start, end) {
|
|
|
565
608
|
};
|
|
566
609
|
}
|
|
567
610
|
/** Snapshot pricing and replay input for a validated surface range. */
|
|
568
|
-
function prepareCompaction(
|
|
569
|
-
const measurement =
|
|
611
|
+
function prepareCompaction(meter, session, selection) {
|
|
612
|
+
const measurement = meter.measure(session);
|
|
570
613
|
const selectedNodes = measurement.nodes.slice(selection.startIdx, selection.endIdx + 1);
|
|
571
614
|
if (selectedNodes.length !== selection.shadowedSeqs.length || selectedNodes.some((node, index) => node.seq !== selection.shadowedSeqs[index])) throw new SurfaceChangedError("compaction: selected surface changed before summarization began");
|
|
572
615
|
return {
|
|
@@ -578,19 +621,50 @@ function prepareCompaction(dependencies, session, selection) {
|
|
|
578
621
|
input: buildSummarizationInput(session, selection.shadowedSeqs)
|
|
579
622
|
};
|
|
580
623
|
}
|
|
624
|
+
/** Price a framed checkpoint carrying the supplied summary body. */
|
|
625
|
+
function framedSummaryTokenCount(meter, summary) {
|
|
626
|
+
return meter.estimateMessage(createUserMessage({
|
|
627
|
+
content: frameSummary(summary),
|
|
628
|
+
source: { kind: "user" }
|
|
629
|
+
}));
|
|
630
|
+
}
|
|
631
|
+
/** Maximum summary-body tokens that keep the framed checkpoint strictly smaller than the selected source. */
|
|
632
|
+
function summaryTokenBudget(meter, shadowedRouteTokenCount) {
|
|
633
|
+
return shadowedRouteTokenCount - framedSummaryTokenCount(meter, [{
|
|
634
|
+
type: "text",
|
|
635
|
+
text: ""
|
|
636
|
+
}]) - 1;
|
|
637
|
+
}
|
|
638
|
+
/**
|
|
639
|
+
* Determine whether the selected source can fit the minimum structured checkpoint with a strict token reduction.
|
|
640
|
+
* @param meter - token meter that priced the selected conversation route.
|
|
641
|
+
* @param session - session supplying the current surface.
|
|
642
|
+
* @param start - inclusive first surface-node seq.
|
|
643
|
+
* @param end - inclusive last surface-node seq.
|
|
644
|
+
* @returns `true` when the minimum valid framed checkpoint is smaller than the selected source.
|
|
645
|
+
*/
|
|
646
|
+
function canCompactSurfaceRegion(meter, session, start, end) {
|
|
647
|
+
const prepared = prepareCompaction(meter, session, validateSurfaceRegion(session, start, end));
|
|
648
|
+
return framedSummaryTokenCount(meter, minimumSummaryContent()) < prepared.shadowedRouteTokenCount;
|
|
649
|
+
}
|
|
581
650
|
/** Run the summarizer and frame its replacement checkpoint. */
|
|
582
651
|
async function summarizeCompaction(dependencies, prepared, agent, compactionId, sourceCommandId, assertStable, signal) {
|
|
583
652
|
let summaryResult;
|
|
584
653
|
for (;;) {
|
|
585
654
|
signal?.throwIfAborted();
|
|
586
655
|
try {
|
|
587
|
-
|
|
656
|
+
const budget = summaryTokenBudget(dependencies.meter, prepared.shadowedRouteTokenCount);
|
|
657
|
+
if (budget < 1) throw new Error("selected content is too small to fit a smaller framed summary");
|
|
658
|
+
summaryResult = await dependencies.summarize({
|
|
659
|
+
...prepared.input,
|
|
660
|
+
summaryTokenBudget: budget
|
|
661
|
+
}, agent, signal);
|
|
588
662
|
break;
|
|
589
663
|
} catch (error) {
|
|
590
664
|
if (signal?.aborted === true) throw error;
|
|
591
665
|
assertStable(dependencies, agent.session, prepared);
|
|
592
666
|
if (!dependencies.recover(error, agent, prepared.shadowedSeqs, signal)) throw error;
|
|
593
|
-
prepared = prepareCompaction(dependencies, agent.session, validateSurfaceRegion(agent.session, prepared.start, prepared.end));
|
|
667
|
+
prepared = prepareCompaction(dependencies.meter, agent.session, validateSurfaceRegion(agent.session, prepared.start, prepared.end));
|
|
594
668
|
}
|
|
595
669
|
}
|
|
596
670
|
const checkpointMessage = createUserMessage({
|
|
@@ -989,8 +1063,10 @@ var BasicCompactionEngine = class extends CompactionEngine {
|
|
|
989
1063
|
const operationSignal = AbortSignal.any([agentSignal, signal]);
|
|
990
1064
|
try {
|
|
991
1065
|
operationSignal.throwIfAborted();
|
|
1066
|
+
assertNoActiveCompaction(agent.session, "manual compaction");
|
|
992
1067
|
const range = selectCompactableRange(agent.session, this.ctx.tokenMeter.measure(agent.session), 0);
|
|
993
1068
|
if (range === null) return null;
|
|
1069
|
+
if (!canCompactSurfaceRegion(this.ctx.tokenMeter, agent.session, range.start, range.end)) return null;
|
|
994
1070
|
return await compactSurfaceRegion(this.regionDependencies(), agent.session, range.start, range.end, agent, {
|
|
995
1071
|
owner: null,
|
|
996
1072
|
stability: "selected-span",
|
|
@@ -62,5 +62,14 @@ export declare function compactSurfaceRegion(dependencies: RegionDependencies, s
|
|
|
62
62
|
* @param stage - operation label included in the busy diagnostic.
|
|
63
63
|
*/
|
|
64
64
|
export declare function assertNoActiveCompaction(session: Session, stage: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* Determine whether the selected source can fit the minimum structured checkpoint with a strict token reduction.
|
|
67
|
+
* @param meter - token meter that priced the selected conversation route.
|
|
68
|
+
* @param session - session supplying the current surface.
|
|
69
|
+
* @param start - inclusive first surface-node seq.
|
|
70
|
+
* @param end - inclusive last surface-node seq.
|
|
71
|
+
* @returns `true` when the minimum valid framed checkpoint is smaller than the selected source.
|
|
72
|
+
*/
|
|
73
|
+
export declare function canCompactSurfaceRegion(meter: TokenMeter, session: Session, start: SessionSeq, end: SessionSeq): boolean;
|
|
65
74
|
export {};
|
|
66
75
|
//# sourceMappingURL=region.d.ts.map
|
|
@@ -22,6 +22,8 @@ export interface SummarizationInput {
|
|
|
22
22
|
readonly tools?: readonly ToolSchema[];
|
|
23
23
|
/** The derived system head, when present, followed by the shadowed region in surface order. */
|
|
24
24
|
readonly messages: readonly Message[];
|
|
25
|
+
/** Maximum estimated tokens available to the returned summary text while keeping the framed checkpoint smaller than its source. */
|
|
26
|
+
readonly summaryTokenBudget?: number;
|
|
25
27
|
}
|
|
26
28
|
/** Safe summary content plus the exact auxiliary call envelope recorded with it. */
|
|
27
29
|
export type SummaryResult = {
|
|
@@ -60,5 +62,10 @@ export declare function summarizeWithLlm(ctx: Context, config: SummaryConfig, in
|
|
|
60
62
|
* @returns content for the synthesized replacement user message.
|
|
61
63
|
*/
|
|
62
64
|
export declare function frameSummary(summary: readonly ContentBlock[]): ContentBlock[];
|
|
65
|
+
/**
|
|
66
|
+
* Return the smallest body allowed by the structured-summary instruction.
|
|
67
|
+
* @returns one fresh text block containing every required section.
|
|
68
|
+
*/
|
|
69
|
+
export declare function minimumSummaryContent(): ContentBlock[];
|
|
63
70
|
export {};
|
|
64
71
|
//# sourceMappingURL=summarizer.d.ts.map
|
|
@@ -183,13 +183,12 @@ window.__ModuleLoader__.load({
|
|
|
183
183
|
//#endregion
|
|
184
184
|
//#region lib/types/client/HeaderAction.js
|
|
185
185
|
/**
|
|
186
|
-
* Render the Session Header
|
|
186
|
+
* Render the Session Header download menu.
|
|
187
187
|
* @param props - Session runtime, download controller, and localized copy.
|
|
188
188
|
* @returns the persistent Header action and Session-scoped dialog.
|
|
189
189
|
*/
|
|
190
190
|
function SessionLogDownloadHeaderAction(props) {
|
|
191
|
-
const { sessionId, useSessionLogDownload,
|
|
192
|
-
const feedbackAvailable = useFeedbackAvailable((value) => value);
|
|
191
|
+
const { sessionId, useSessionLogDownload, request, openFeedback, t } = props;
|
|
193
192
|
const busy = useSessionLogDownload((state) => state.bySession[String(sessionId)])?.status === "downloading";
|
|
194
193
|
const [open, setOpen] = (0, react.useState)(false);
|
|
195
194
|
return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Menu, {
|
|
@@ -204,11 +203,7 @@ window.__ModuleLoader__.load({
|
|
|
204
203
|
label: t("menu.download"),
|
|
205
204
|
icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDownloadOutlineRegular, {}),
|
|
206
205
|
disabled: busy
|
|
207
|
-
},
|
|
208
|
-
id: "feedback",
|
|
209
|
-
label: t("menu.feedback"),
|
|
210
|
-
icon: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPaperPlaneOutlineRegular, {})
|
|
211
|
-
}] : []],
|
|
206
|
+
}],
|
|
212
207
|
onSelect: (id) => {
|
|
213
208
|
setOpen(false);
|
|
214
209
|
if (id === "feedback") openFeedback(sessionId);
|
package/runtime/node_modules/@deepseek-ai/dsh-session-log-export/lib/types/client/HeaderAction.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export interface SessionLogDownloadHeaderInjected extends SessionLogDownloadDial
|
|
|
18
18
|
/** Session download props plus the optional feedback action. */
|
|
19
19
|
export type SessionLogDownloadHeaderProps = SessionLogDownloadDialogProps & InjectFace<SessionLogDownloadHeaderInjected>;
|
|
20
20
|
/**
|
|
21
|
-
* Render the Session Header
|
|
21
|
+
* Render the Session Header download menu.
|
|
22
22
|
* @param props - Session runtime, download controller, and localized copy.
|
|
23
23
|
* @returns the persistent Header action and Session-scoped dialog.
|
|
24
24
|
*/
|
|
@@ -21,7 +21,7 @@ export declare const BUNDLED_SKILL_RANK = 600;
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function isSkillName(name: string): boolean;
|
|
23
23
|
/** Origin bucket for a skill contribution. The value is prompt-visible metadata, not precedence by itself. */
|
|
24
|
-
export type SkillSource = 'project-dsh' | 'project-agents' | 'runtime' | 'user-dsh' | 'user-agents' | 'custom' | 'bundled' | (string & {});
|
|
24
|
+
export type SkillSource = 'project-chatcode' | 'project-dsh' | 'project-agents' | 'runtime' | 'user-dsh' | 'user-agents' | 'custom' | 'bundled' | (string & {});
|
|
25
25
|
/** Optional provider-specific base used by loaded skill bodies to resolve relative resources. */
|
|
26
26
|
export type SkillResourceBase = {
|
|
27
27
|
readonly kind: 'directory';
|
|
@@ -18,7 +18,8 @@ import { BUNDLED_SKILL_RANK, isSkillName } from "@deepseek-ai/dsh-skill";
|
|
|
18
18
|
*
|
|
19
19
|
* @module @deepseek-ai/dsh-skill-filesystem
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
21
|
+
const PROJECT_CHATCODE_RANK = 100;
|
|
22
|
+
const PROJECT_DSH_RANK = 150;
|
|
22
23
|
const PROJECT_AGENTS_RANK = 200;
|
|
23
24
|
const CUSTOM_RANK = 300;
|
|
24
25
|
const USER_DSH_RANK = 400;
|
|
@@ -156,6 +157,11 @@ var FileSystemSkillProvider = class {
|
|
|
156
157
|
if (this.includeDefaultRoots && cwd !== void 0) {
|
|
157
158
|
const projectRoot = await findProjectRoot(resolve(cwd), optionalFileSystem(this.ctx));
|
|
158
159
|
roots.push({
|
|
160
|
+
path: join(projectRoot, ".chatcode-cli/skills"),
|
|
161
|
+
source: "project-chatcode",
|
|
162
|
+
rank: PROJECT_CHATCODE_RANK,
|
|
163
|
+
projectRoot
|
|
164
|
+
}, {
|
|
159
165
|
path: join(projectRoot, ".dsh/skills"),
|
|
160
166
|
source: "project-dsh",
|
|
161
167
|
rank: PROJECT_DSH_RANK,
|
|
@@ -136,8 +136,9 @@
|
|
|
136
136
|
- id: tool-web
|
|
137
137
|
name: '@deepseek-ai/dsh-tool-web'
|
|
138
138
|
config:
|
|
139
|
+
# The base bundle ships only the HTTP fetch provider.
|
|
140
|
+
search: false
|
|
139
141
|
fetch: true
|
|
140
|
-
searchTimeoutMs: 60000
|
|
141
142
|
- id: tool-cordis
|
|
142
143
|
name: '@deepseek-ai/dsh-tool-cordis'
|
|
143
144
|
- id: skill-filesystem
|
|
@@ -139,8 +139,9 @@
|
|
|
139
139
|
- id: tool-web
|
|
140
140
|
name: '@deepseek-ai/dsh-tool-web'
|
|
141
141
|
config:
|
|
142
|
+
# The base bundle ships only the HTTP fetch provider.
|
|
143
|
+
search: false
|
|
142
144
|
fetch: true
|
|
143
|
-
searchTimeoutMs: 60000
|
|
144
145
|
- id: tool-presentation
|
|
145
146
|
name: '@deepseek-ai/dsh-agent-tool-presentation'
|
|
146
147
|
config:
|
|
@@ -137,8 +137,9 @@
|
|
|
137
137
|
- id: tool-web
|
|
138
138
|
name: '@deepseek-ai/dsh-tool-web'
|
|
139
139
|
config:
|
|
140
|
+
# The base bundle ships only the HTTP fetch provider.
|
|
141
|
+
search: false
|
|
140
142
|
fetch: true
|
|
141
|
-
searchTimeoutMs: 60000
|
|
142
143
|
- id: present
|
|
143
144
|
name: '@deepseek-ai/dsh-tool-present'
|
|
144
145
|
- id: tool-plugin-manager
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Prebuilt system.node for macOS arm64 POSIX locks."
|
|
3
|
-
kind: "package-library"
|
|
4
|
-
---
|
|
5
|
-
# @deepseek-ai/node-addon-system-darwin-arm64
|
|
6
|
-
|
|
7
|
-
English | [中文](README.zh.md)
|
|
8
|
-
|
|
9
|
-
This platform package supplies `bin/system.node`, a stable Node-API v8 addon used by `@deepseek-ai/node-addon-system/flock`. It contains no Landlock executable, JavaScript loader, or installation build script. The native workflow builds it on macOS arm64 and owns its installed-artifact validation.
|
|
Binary file
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@deepseek-ai/node-addon-system-darwin-arm64",
|
|
3
|
-
"version": "0.1.2",
|
|
4
|
-
"description": "Prebuilt POSIX flock Node-API binding for macOS arm64",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
8
|
-
"directory": "native/system/packages/darwin-arm64"
|
|
9
|
-
},
|
|
10
|
-
"os": [
|
|
11
|
-
"darwin"
|
|
12
|
-
],
|
|
13
|
-
"cpu": [
|
|
14
|
-
"arm64"
|
|
15
|
-
],
|
|
16
|
-
"files": [
|
|
17
|
-
"README.md",
|
|
18
|
-
"bin/",
|
|
19
|
-
"prebuilds.json"
|
|
20
|
-
],
|
|
21
|
-
"scripts": {
|
|
22
|
-
"prepack": "node ../../scripts/verify-launcher-binary.mjs"
|
|
23
|
-
},
|
|
24
|
-
"engines": {
|
|
25
|
-
"node": ">=20"
|
|
26
|
-
},
|
|
27
|
-
"license": "BSD-3-Clause",
|
|
28
|
-
"publishConfig": {
|
|
29
|
-
"access": "public"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Prebuilt system.node for macOS x64 POSIX locks."
|
|
3
|
-
kind: "package-library"
|
|
4
|
-
---
|
|
5
|
-
# @deepseek-ai/node-addon-system-darwin-x64
|
|
6
|
-
|
|
7
|
-
English | [中文](README.zh.md)
|
|
8
|
-
|
|
9
|
-
This platform package supplies `bin/system.node`, a stable Node-API v8 addon used by `@deepseek-ai/node-addon-system/flock`. It contains no Landlock executable, JavaScript loader, or installation build script. The native workflow builds it on macOS x64 and owns its installed-artifact validation.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@deepseek-ai/node-addon-system-darwin-x64",
|
|
3
|
-
"version": "0.1.2",
|
|
4
|
-
"description": "Prebuilt POSIX flock Node-API binding for macOS x64",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
8
|
-
"directory": "native/system/packages/darwin-x64"
|
|
9
|
-
},
|
|
10
|
-
"os": [
|
|
11
|
-
"darwin"
|
|
12
|
-
],
|
|
13
|
-
"cpu": [
|
|
14
|
-
"x64"
|
|
15
|
-
],
|
|
16
|
-
"files": [
|
|
17
|
-
"README.md",
|
|
18
|
-
"bin/",
|
|
19
|
-
"prebuilds.json"
|
|
20
|
-
],
|
|
21
|
-
"scripts": {
|
|
22
|
-
"prepack": "node ../../scripts/verify-launcher-binary.mjs"
|
|
23
|
-
},
|
|
24
|
-
"engines": {
|
|
25
|
-
"node": ">=20"
|
|
26
|
-
},
|
|
27
|
-
"license": "BSD-3-Clause",
|
|
28
|
-
"publishConfig": {
|
|
29
|
-
"access": "public"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: "Prebuilt Landlock launcher and POSIX flock addons for Linux arm64."
|
|
3
|
-
kind: "package-library"
|
|
4
|
-
---
|
|
5
|
-
# @deepseek-ai/node-addon-system-linux-arm64
|
|
6
|
-
|
|
7
|
-
English | [中文](README.zh.md)
|
|
8
|
-
|
|
9
|
-
This platform package contains the static musl executable `bin/landlock-run` and Node-API v8 addons `bin/glibc/system.node` and `bin/musl/system.node`. The entry chooses the addon matching the running Node process's libc; the Landlock executable serves both libc systems.
|
|
10
|
-
|
|
11
|
-
The package contains no JavaScript or installation build script. Platform prepack checks complete payloads, ELF architecture, Node-API exports, and launcher executability; the installed-artifact rehearsal checks bytes and executes native behavior. See the workspace [support matrix](../../docs/support-matrix.md).
|