@lmzhen/dsh-evolution-review 0.1.0-rc.32 → 0.1.0-rc.34
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/lib/index.js +27 -2
- package/package.json +7 -7
package/lib/index.js
CHANGED
|
@@ -173,6 +173,7 @@ function apply(ctx, rawConfig) {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
});
|
|
176
|
+
const childReads = run.localAgent ? collectReadSkillNames(run.localAgent.session) : /* @__PURE__ */ new Set();
|
|
176
177
|
const result = await run.result;
|
|
177
178
|
await run.dispose();
|
|
178
179
|
if (!result.structured) return true;
|
|
@@ -188,7 +189,7 @@ function apply(ctx, rawConfig) {
|
|
|
188
189
|
maxSkillContentChars: snapshot?.skillContentChars ?? DEFAULT_SKILL_CONTENT_CHARS
|
|
189
190
|
});
|
|
190
191
|
const acceptedSkillOps = validation.accepted.skillOps ?? [];
|
|
191
|
-
const skippedUnread = filterUnreadSkillOps(acceptedSkillOps, collectReadSkillNames(session));
|
|
192
|
+
const skippedUnread = filterUnreadSkillOps(acceptedSkillOps, new Set([...collectReadSkillNames(session), ...childReads]));
|
|
192
193
|
validation.accepted.skillOps = acceptedSkillOps;
|
|
193
194
|
const actions = await executePlan(validation.accepted);
|
|
194
195
|
const evidenceQuotes = [...validation.accepted.memoryOps ?? [], ...acceptedSkillOps].reduce((total, op) => total + (Array.isArray(op.evidence) ? op.evidence.length : 0), 0);
|
|
@@ -258,8 +259,25 @@ function apply(ctx, rawConfig) {
|
|
|
258
259
|
ok: false,
|
|
259
260
|
message: decision.message
|
|
260
261
|
};
|
|
262
|
+
if (approval.isEnabled === false) return await runnerDirect(kind, runnerArgs);
|
|
261
263
|
return await approval.run(kind, runnerArgs);
|
|
262
264
|
}
|
|
265
|
+
/** Direct execution for the approval-disabled case (parallel to executeSkillDirect). */
|
|
266
|
+
async function runnerDirect(kind, args) {
|
|
267
|
+
if (kind === "memory") {
|
|
268
|
+
const memory = ctx.get("memory");
|
|
269
|
+
const op = args;
|
|
270
|
+
if (!memory?.applyBatch) return void 0;
|
|
271
|
+
return await memory.applyBatch(op.target === "user" ? "user" : "memory", [{
|
|
272
|
+
action: op.action ?? "add",
|
|
273
|
+
facts: op.facts ?? op.content,
|
|
274
|
+
old_text: op.old_text
|
|
275
|
+
}]);
|
|
276
|
+
}
|
|
277
|
+
const wrapped = args ?? {};
|
|
278
|
+
if (!wrapped.operation) return void 0;
|
|
279
|
+
return await executeSkillDirect(wrapped.operation);
|
|
280
|
+
}
|
|
263
281
|
/**
|
|
264
282
|
* Approval-disabled path: execute the skill op through SkillLibrary with an
|
|
265
283
|
* EXPLICIT background_review origin. Going through ctx.tools.execute would
|
|
@@ -280,7 +298,14 @@ function apply(ctx, rawConfig) {
|
|
|
280
298
|
if (op.action === "create") return await library.create(name, op.content ?? "", origin);
|
|
281
299
|
if (op.action === "edit" || op.action === "update") return await library.update(name, op.content ?? "", origin);
|
|
282
300
|
if (op.action === "patch") return await library.patch(name, op.old_string ?? "", op.new_string ?? "", op.file_path ?? "", false, origin);
|
|
283
|
-
if (op.action === "delete")
|
|
301
|
+
if (op.action === "delete") {
|
|
302
|
+
const into = (op.absorbed_into ?? "").trim();
|
|
303
|
+
if (!into || !await library.read(into)) return {
|
|
304
|
+
ok: false,
|
|
305
|
+
message: "delete requires an existing absorbed_into target"
|
|
306
|
+
};
|
|
307
|
+
return await library.archive(name, { absorbedInto: into });
|
|
308
|
+
}
|
|
284
309
|
if (op.action === "write_file") return await library.writeSupportFile(name, op.file_path ?? "", op.file_content ?? op.content ?? "", origin);
|
|
285
310
|
if (op.action === "remove_file") return await library.removeSupportFile(name, op.file_path ?? "", origin);
|
|
286
311
|
return {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmzhen/dsh-evolution-review",
|
|
3
3
|
"description": "Background review orchestration (community build)",
|
|
4
|
-
"version": "0.1.0-rc.
|
|
4
|
+
"version": "0.1.0-rc.34",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
36
|
-
"@lmzhen/dsh-evolution-core": "^0.1.0-rc.
|
|
37
|
-
"@lmzhen/dsh-evolution-plan-validator": "^0.1.0-rc.
|
|
36
|
+
"@lmzhen/dsh-evolution-core": "^0.1.0-rc.34",
|
|
37
|
+
"@lmzhen/dsh-evolution-plan-validator": "^0.1.0-rc.34"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
|
|
44
44
|
"@deepseek-ai/dsh-session": "^0.1.0-rc.6",
|
|
45
45
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
46
|
-
"@lmzhen/dsh-evolution-state": "^0.1.0-rc.
|
|
46
|
+
"@lmzhen/dsh-evolution-state": "^0.1.0-rc.34"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6",
|
|
53
53
|
"@deepseek-ai/dsh-session": "^0.1.0-rc.6",
|
|
54
54
|
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6",
|
|
55
|
-
"@lmzhen/dsh-evolution-core": "^0.1.0-rc.
|
|
56
|
-
"@lmzhen/dsh-evolution-plan-validator": "^0.1.0-rc.
|
|
57
|
-
"@lmzhen/dsh-evolution-state": "^0.1.0-rc.
|
|
55
|
+
"@lmzhen/dsh-evolution-core": "^0.1.0-rc.34",
|
|
56
|
+
"@lmzhen/dsh-evolution-plan-validator": "^0.1.0-rc.34",
|
|
57
|
+
"@lmzhen/dsh-evolution-state": "^0.1.0-rc.34"
|
|
58
58
|
}
|
|
59
59
|
}
|