@vinhnt-sdk/step-executor 0.6.4 → 0.11.0
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.md +3 -2
- package/dist/approval-handler.d.ts +2 -1
- package/dist/approval-handler.d.ts.map +1 -1
- package/dist/approval-handler.js +10 -4
- package/dist/approval-handler.js.map +1 -1
- package/dist/file-snapshot.d.ts +162 -0
- package/dist/file-snapshot.d.ts.map +1 -0
- package/dist/file-snapshot.js +233 -0
- package/dist/file-snapshot.js.map +1 -0
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/kernel-error.d.ts +2 -9
- package/dist/kernel-error.d.ts.map +1 -1
- package/dist/kernel-error.js +1 -11
- package/dist/kernel-error.js.map +1 -1
- package/dist/permission-gate.d.ts +48 -3
- package/dist/permission-gate.d.ts.map +1 -1
- package/dist/permission-gate.js +83 -21
- package/dist/permission-gate.js.map +1 -1
- package/dist/run-state.d.ts +35 -0
- package/dist/run-state.d.ts.map +1 -1
- package/dist/run-state.js +59 -0
- package/dist/run-state.js.map +1 -1
- package/dist/self-correction.d.ts.map +1 -1
- package/dist/self-correction.js +4 -4
- package/dist/self-correction.js.map +1 -1
- package/dist/step-executor.d.ts +22 -0
- package/dist/step-executor.d.ts.map +1 -1
- package/dist/step-executor.js +107 -9
- package/dist/step-executor.js.map +1 -1
- package/dist/tool-context-builder.d.ts +4 -0
- package/dist/tool-context-builder.d.ts.map +1 -1
- package/dist/tool-context-builder.js +6 -1
- package/dist/tool-context-builder.js.map +1 -1
- package/dist/tool-error-router.d.ts.map +1 -1
- package/dist/tool-error-router.js +2 -2
- package/dist/tool-error-router.js.map +1 -1
- package/dist/tool-result-processor.d.ts.map +1 -1
- package/dist/tool-result-processor.js +28 -9
- package/dist/tool-result-processor.js.map +1 -1
- package/package.json +8 -8
|
@@ -21,35 +21,54 @@ export async function processToolResults(results, doomThreshold, messages, sessi
|
|
|
21
21
|
const recentCalls = [...existingRecentCalls];
|
|
22
22
|
const toolResults = [...existingToolResults];
|
|
23
23
|
let breakBatch = false;
|
|
24
|
+
// P1-2: failure results must persist like success results, otherwise the
|
|
25
|
+
// next turn hydrates an assistant toolCalls declaration with no matching
|
|
26
|
+
// tool message and repairToolPairing has to strip the whole step.
|
|
27
|
+
const persistFailure = async (content, toolCallId) => {
|
|
28
|
+
await deps.addSessionMessage(sessionId, "tool", content, {
|
|
29
|
+
toolCallId, model: runModel.model ?? "",
|
|
30
|
+
});
|
|
31
|
+
};
|
|
24
32
|
for (const settled of results) {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
// D4: unreachable in practice — executeToolCalls wraps every task so
|
|
34
|
+
// rejections become fulfilled "failed" results carrying the real
|
|
35
|
+
// toolCallId. Never push a tool message with an empty toolCallId
|
|
36
|
+
// (providers reject the next request on unpaired tool results).
|
|
37
|
+
if (settled.status === "rejected")
|
|
28
38
|
continue;
|
|
29
|
-
}
|
|
30
39
|
const r = settled.value;
|
|
31
40
|
if (r.result === "doom") {
|
|
32
41
|
const errorMsg = r.reason ?? `Tool "${r.tc.toolName}" called with identical arguments ${doomThreshold} consecutive times. Aborting to prevent infinite loop.`;
|
|
33
|
-
|
|
42
|
+
const content = formatToolFailure(errorMsg, undefined, "doom_loop");
|
|
43
|
+
messages.push({ role: "tool", toolCallId: r.tc.toolId, content });
|
|
44
|
+
await persistFailure(content, r.tc.toolId);
|
|
34
45
|
breakBatch = true;
|
|
35
46
|
break;
|
|
36
47
|
}
|
|
37
48
|
if (r.result === "doom-hint") {
|
|
38
49
|
// P1-3 inject-hint: surface a model-visible envelope WITHOUT aborting the batch.
|
|
39
50
|
const hintMsg = r.reason ?? `Tool "${r.tc.toolName}" repeated with identical arguments ${doomThreshold} times.`;
|
|
40
|
-
|
|
51
|
+
const content = formatToolFailure(hintMsg, undefined, "doom_loop");
|
|
52
|
+
messages.push({ role: "tool", toolCallId: r.tc.toolId, content });
|
|
53
|
+
await persistFailure(content, r.tc.toolId);
|
|
41
54
|
continue;
|
|
42
55
|
}
|
|
43
56
|
if (r.result === "not-found") {
|
|
44
|
-
|
|
57
|
+
const content = formatToolFailure(`Tool "${r.tc.toolName}" not found`, undefined, "unknown");
|
|
58
|
+
messages.push({ role: "tool", toolCallId: r.tc.toolId, content });
|
|
59
|
+
await persistFailure(content, r.tc.toolId);
|
|
45
60
|
continue;
|
|
46
61
|
}
|
|
47
62
|
if (r.result === "denied") {
|
|
48
|
-
|
|
63
|
+
const content = formatToolFailure(r.reason ?? "denied", undefined, "permission_denied");
|
|
64
|
+
messages.push({ role: "tool", toolCallId: r.tc.toolId, content });
|
|
65
|
+
await persistFailure(content, r.tc.toolId);
|
|
49
66
|
continue;
|
|
50
67
|
}
|
|
51
68
|
if (r.result === "external") {
|
|
52
|
-
|
|
69
|
+
const content = formatToolFailure(r.reason ?? "external path forbidden", undefined, "path_forbidden");
|
|
70
|
+
messages.push({ role: "tool", toolCallId: r.tc.toolId, content });
|
|
71
|
+
await persistFailure(content, r.tc.toolId);
|
|
53
72
|
continue;
|
|
54
73
|
}
|
|
55
74
|
if (r.result === "rejected")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-result-processor.js","sourceRoot":"","sources":["../src/tool-result-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgBlD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kCAAkC,GAAG,OAAO,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IAC/D,IAAI,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,OAAO,yDAAyD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;AAC1I,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA6G,EAC7G,aAAqB,EACrB,QAAuB,EACvB,SAA6B,EAC7B,QAA4B,EAC5B,qBAA6B,EAC7B,mBAAiC,EACjC,mBAAsC,EACtC,IAA6B;IAE7B,IAAI,aAAa,GAAG,qBAAqB,CAAC;IAC1C,MAAM,WAAW,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;IAC7C,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,
|
|
1
|
+
{"version":3,"file":"tool-result-processor.js","sourceRoot":"","sources":["../src/tool-result-processor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vinhnt-sdk/step-executor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Step execution kernel for VNT Agent - tool lifecycle, timeouts, permission gating, doom-loop detection, self-correction and run state",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@vinhnt-sdk/event": "0.
|
|
49
|
-
"@vinhnt-sdk/
|
|
50
|
-
"@vinhnt-sdk/
|
|
51
|
-
"@vinhnt-sdk/
|
|
52
|
-
"@vinhnt-sdk/
|
|
53
|
-
"@vinhnt-sdk/session": "0.
|
|
54
|
-
"@vinhnt-sdk/
|
|
48
|
+
"@vinhnt-sdk/event": "0.11.0",
|
|
49
|
+
"@vinhnt-sdk/guard": "0.11.0",
|
|
50
|
+
"@vinhnt-sdk/llm": "0.11.0",
|
|
51
|
+
"@vinhnt-sdk/permission": "0.11.0",
|
|
52
|
+
"@vinhnt-sdk/schema": "0.11.0",
|
|
53
|
+
"@vinhnt-sdk/session": "0.11.0",
|
|
54
|
+
"@vinhnt-sdk/tools": "0.11.0"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "tsc -b",
|