@chatcode/chatcode-cli 3.0.4-rc.4 → 3.0.4-rc.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.
- package/package.json +23 -23
- package/runtime/manifest.json +1 -1
- 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-subagent/lib/types/control.d.ts +1 -1
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/index.js +11 -3
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.d.ts +2 -0
- package/runtime/node_modules/@deepseek-ai/dsh-workspace/lib/types/index.js +18 -2
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-rc.
|
|
4
|
+
"version": "3.0.4-rc.5",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@agentclientprotocol/sdk": "1.4.0",
|
|
30
30
|
"@babel/code-frame": "^7.29.0",
|
|
31
|
-
"@chatcode/cco-better-sidebar": "0.18.0-rc.
|
|
31
|
+
"@chatcode/cco-better-sidebar": "0.18.0-rc.8",
|
|
32
32
|
"@chatcode/cco-builtin-browser": "0.1.21",
|
|
33
33
|
"@chatcode/cco-chat-import": "0.17.0",
|
|
34
34
|
"@chatcode/cco-computer-use": "0.3.2",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"commander": "^15.0.0",
|
|
59
59
|
"compression": "^1.8.1",
|
|
60
60
|
"diff": "^9.0.0",
|
|
61
|
-
"dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-rc.
|
|
61
|
+
"dsh-better-sidebar": "npm:@chatcode/cco-better-sidebar@0.18.0-rc.8",
|
|
62
62
|
"dsh-builtin-browser": "npm:@chatcode/cco-builtin-browser@0.1.21",
|
|
63
63
|
"dsh-chat-import": "npm:@chatcode/cco-chat-import@0.17.0",
|
|
64
64
|
"dsh-computer-use": "npm:@chatcode/cco-computer-use@0.3.2",
|
|
@@ -97,46 +97,46 @@
|
|
|
97
97
|
"execa": "^10.0.0",
|
|
98
98
|
"ws": "8.21.0",
|
|
99
99
|
"@deepseek-ai/dsh-acp": "0.1.7-rc.2",
|
|
100
|
+
"@deepseek-ai/dsh-agent": "0.1.7-rc.2",
|
|
100
101
|
"@deepseek-ai/dsh-agent-loop-testkit": "0.1.7-rc.2",
|
|
101
|
-
"@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
|
|
102
102
|
"@deepseek-ai/dsh-bash-local": "0.1.7-rc.2",
|
|
103
|
-
"@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
|
|
104
103
|
"@deepseek-ai/dsh-credentials-local": "0.1.7-rc.2",
|
|
105
|
-
"@deepseek-ai/dsh-
|
|
104
|
+
"@deepseek-ai/dsh-agent-loop": "0.1.7-rc.2",
|
|
105
|
+
"@deepseek-ai/dsh-attachment-local": "0.1.7-rc.2",
|
|
106
106
|
"@deepseek-ai/dsh-experimental-agent-team": "0.1.7-rc.2",
|
|
107
|
-
"@deepseek-ai/dsh-
|
|
108
|
-
"@deepseek-ai/dsh-
|
|
109
|
-
"@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
|
|
107
|
+
"@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2",
|
|
108
|
+
"@deepseek-ai/dsh-deepseek-llm-api-extensions": "0.1.7-rc.2",
|
|
110
109
|
"@deepseek-ai/dsh-fs-observation-policy": "0.1.7-rc.2",
|
|
110
|
+
"@deepseek-ai/dsh-experimental-ptc-runtime-python": "0.1.7-rc.2",
|
|
111
|
+
"@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
|
|
111
112
|
"@deepseek-ai/dsh-host-webserver": "0.1.7-rc.2",
|
|
112
|
-
"@deepseek-ai/dsh-fs-sandbox": "0.1.7-rc.2",
|
|
113
113
|
"@deepseek-ai/dsh-llm": "0.1.7-rc.2",
|
|
114
|
-
"@deepseek-ai/dsh-host-frontend-static": "0.1.7-rc.2",
|
|
115
114
|
"@deepseek-ai/dsh-llm-deepseek": "0.1.7-rc.2",
|
|
116
|
-
"@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
|
|
117
115
|
"@deepseek-ai/dsh-llm-mock-server": "0.1.7-rc.2",
|
|
118
116
|
"@deepseek-ai/dsh-llm-pi-ai": "0.1.7-rc.2",
|
|
119
|
-
"@deepseek-ai/dsh-
|
|
120
|
-
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2",
|
|
121
|
-
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2",
|
|
117
|
+
"@deepseek-ai/dsh-experimental-tool-agent-team": "0.1.7-rc.2",
|
|
122
118
|
"@deepseek-ai/dsh-sandbox-local": "0.1.7-rc.2",
|
|
123
|
-
"@deepseek-ai/dsh-
|
|
119
|
+
"@deepseek-ai/dsh-sdk-client": "0.1.7-rc.2",
|
|
120
|
+
"@deepseek-ai/dsh-llm-deepseek-account": "0.1.7-rc.2",
|
|
121
|
+
"@deepseek-ai/dsh-session-checkpoint-policy": "0.1.7-rc.2",
|
|
122
|
+
"@deepseek-ai/dsh-plugin-package-inventory-deepseek": "0.1.7-rc.2",
|
|
123
|
+
"@deepseek-ai/dsh-session-log-deepseek": "0.1.7-rc.2",
|
|
124
124
|
"@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.2",
|
|
125
125
|
"@deepseek-ai/dsh-session": "0.1.7-rc.2",
|
|
126
|
-
"@deepseek-ai/dsh-
|
|
127
|
-
"@deepseek-ai/dsh-
|
|
128
|
-
"@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
|
|
126
|
+
"@deepseek-ai/dsh-llm-deepseek-api-key": "0.1.7-rc.2",
|
|
127
|
+
"@deepseek-ai/dsh-loader-smoke": "0.1.7-rc.2",
|
|
129
128
|
"@deepseek-ai/dsh-session-persistence-jsonl": "0.1.7-rc.2",
|
|
129
|
+
"@deepseek-ai/dsh-session-query": "0.1.7-rc.2",
|
|
130
130
|
"@deepseek-ai/dsh-shell-env": "0.1.7-rc.2",
|
|
131
|
-
"@deepseek-ai/dsh-
|
|
132
|
-
"@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
|
|
131
|
+
"@deepseek-ai/dsh-llm-replay": "0.1.7-rc.2",
|
|
133
132
|
"@deepseek-ai/dsh-subagent-fork-in-process": "0.1.7-rc.2",
|
|
134
133
|
"@deepseek-ai/dsh-settings": "0.1.7-rc.2",
|
|
135
134
|
"@deepseek-ai/dsh-subagent-spawn-in-process": "0.1.7-rc.2",
|
|
135
|
+
"@deepseek-ai/dsh-subagent": "0.1.7-rc.2",
|
|
136
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.2",
|
|
136
137
|
"@deepseek-ai/dsh-subprocess-local": "0.1.7-rc.2",
|
|
137
|
-
"@deepseek-ai/dsh-tools": "0.1.7-rc.2",
|
|
138
138
|
"@deepseek-ai/dsh-user-approval": "0.1.7-rc.2",
|
|
139
|
-
"@deepseek-ai/dsh-
|
|
139
|
+
"@deepseek-ai/dsh-tools": "0.1.7-rc.2"
|
|
140
140
|
},
|
|
141
141
|
"exports": {
|
|
142
142
|
"./headless-compat": {
|
package/runtime/manifest.json
CHANGED
|
@@ -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.4-rc.
|
|
4128
|
+
const client = () => accountClientMetadata(ctx.locale.getSnapshot().active, "3.0.4-rc.5");
|
|
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.4-rc.
|
|
4259
|
+
version: "3.0.4-rc.5",
|
|
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.4-rc.
|
|
660
|
+
children: t("general.currentVersion", { version: "3.0.4-rc.5" })
|
|
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.4-rc.
|
|
170
|
+
return `3.0.4-rc.5-b482da5-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 }) {
|
|
@@ -12,8 +12,8 @@ declare const CONTROL_ID_SCHEMAS: {
|
|
|
12
12
|
childSessionId: z.ZodString;
|
|
13
13
|
mode: z.ZodLiteral<"continuable">;
|
|
14
14
|
delivery: z.ZodEnum<{
|
|
15
|
-
queue: "queue";
|
|
16
15
|
steer: "steer";
|
|
16
|
+
queue: "queue";
|
|
17
17
|
}>;
|
|
18
18
|
}, z.core.$strip>;
|
|
19
19
|
readonly 'subagent.interrupt': z.ZodObject<{
|
|
@@ -1153,6 +1153,15 @@ var WorkspaceRegistry = class extends Service {
|
|
|
1153
1153
|
if (sessions === void 0) return;
|
|
1154
1154
|
await this.indexHeaders(sessions.list().filter((session) => !this.deletedSessionIds.includes(session.id)).map((session) => session.header));
|
|
1155
1155
|
}
|
|
1156
|
+
/** Retry unresolved membership using known headers or individual persistence lookups. */
|
|
1157
|
+
async refreshUnresolvedMembers() {
|
|
1158
|
+
const sessions = this.ctx.get("sessions");
|
|
1159
|
+
for (const [, record] of this.requireTable().entries()) for (const id of record.sessionIds) {
|
|
1160
|
+
if (this.sessionPaths.has(id)) continue;
|
|
1161
|
+
const header = sessions?.get(id)?.header ?? this.headers.get(id) ?? (await this.ctx.sessionPersistence.stat(id))?.header;
|
|
1162
|
+
if (header !== void 0) await this.indexHeader(header);
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1156
1165
|
reportFilteredCandidates() {
|
|
1157
1166
|
for (const entity of this.entities.values()) {
|
|
1158
1167
|
const record = this.requireTable().get(entity.id);
|
|
@@ -1201,12 +1210,11 @@ var WorkspaceRegistry = class extends Service {
|
|
|
1201
1210
|
await domain.refresh();
|
|
1202
1211
|
const changed = this.snapshotIdentity() !== this.refreshedState;
|
|
1203
1212
|
this.state = domain.global.get();
|
|
1204
|
-
|
|
1205
|
-
if (changed || missingHeaders) {
|
|
1213
|
+
if (changed) {
|
|
1206
1214
|
await this.replaceHeaderIndex(await this.listStoredHeaders());
|
|
1207
1215
|
await this.indexLiveSessions();
|
|
1208
1216
|
this.rebuildEntities();
|
|
1209
|
-
}
|
|
1217
|
+
} else await this.refreshUnresolvedMembers();
|
|
1210
1218
|
await this.recoverPendingMutation();
|
|
1211
1219
|
await this.recoverSessionDeletion();
|
|
1212
1220
|
const newlyDeleted = this.deletedSessionIds.filter((id) => !previousDeleted.has(id));
|
|
@@ -319,6 +319,8 @@ export declare class WorkspaceRegistry extends Service {
|
|
|
319
319
|
/** Every stored session's header, projected from the persistence snapshot listing. */
|
|
320
320
|
private listStoredHeaders;
|
|
321
321
|
private indexLiveSessions;
|
|
322
|
+
/** Retry unresolved membership using known headers or individual persistence lookups. */
|
|
323
|
+
private refreshUnresolvedMembers;
|
|
322
324
|
private reportFilteredCandidates;
|
|
323
325
|
private readSessionHeader;
|
|
324
326
|
private requireTable;
|
|
@@ -986,6 +986,20 @@ export class WorkspaceRegistry extends Service {
|
|
|
986
986
|
return;
|
|
987
987
|
await this.indexHeaders(sessions.list().filter(session => !this.deletedSessionIds.includes(session.id)).map(session => session.header));
|
|
988
988
|
}
|
|
989
|
+
/** Retry unresolved membership using known headers or individual persistence lookups. */
|
|
990
|
+
async refreshUnresolvedMembers() {
|
|
991
|
+
const sessions = this.ctx.get('sessions');
|
|
992
|
+
for (const [, record] of this.requireTable().entries()) {
|
|
993
|
+
for (const id of record.sessionIds) {
|
|
994
|
+
if (this.sessionPaths.has(id))
|
|
995
|
+
continue;
|
|
996
|
+
const header = sessions?.get(id)?.header ?? this.headers.get(id)
|
|
997
|
+
?? (await this.ctx.sessionPersistence.stat(id))?.header;
|
|
998
|
+
if (header !== undefined)
|
|
999
|
+
await this.indexHeader(header);
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
989
1003
|
reportFilteredCandidates() {
|
|
990
1004
|
for (const entity of this.entities.values()) {
|
|
991
1005
|
const record = this.requireTable().get(entity.id);
|
|
@@ -1045,12 +1059,14 @@ export class WorkspaceRegistry extends Service {
|
|
|
1045
1059
|
await domain.refresh();
|
|
1046
1060
|
const changed = this.snapshotIdentity() !== this.refreshedState;
|
|
1047
1061
|
this.state = domain.global.get();
|
|
1048
|
-
|
|
1049
|
-
if (changed || missingHeaders) {
|
|
1062
|
+
if (changed) {
|
|
1050
1063
|
await this.replaceHeaderIndex(await this.listStoredHeaders());
|
|
1051
1064
|
await this.indexLiveSessions();
|
|
1052
1065
|
this.rebuildEntities();
|
|
1053
1066
|
}
|
|
1067
|
+
else {
|
|
1068
|
+
await this.refreshUnresolvedMembers();
|
|
1069
|
+
}
|
|
1054
1070
|
await this.recoverPendingMutation();
|
|
1055
1071
|
await this.recoverSessionDeletion();
|
|
1056
1072
|
const newlyDeleted = this.deletedSessionIds.filter(id => !previousDeleted.has(id));
|