@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.
Files changed (43) hide show
  1. package/README.md +3 -2
  2. package/dist/approval-handler.d.ts +2 -1
  3. package/dist/approval-handler.d.ts.map +1 -1
  4. package/dist/approval-handler.js +10 -4
  5. package/dist/approval-handler.js.map +1 -1
  6. package/dist/file-snapshot.d.ts +162 -0
  7. package/dist/file-snapshot.d.ts.map +1 -0
  8. package/dist/file-snapshot.js +233 -0
  9. package/dist/file-snapshot.js.map +1 -0
  10. package/dist/index.d.ts +4 -2
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +3 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/kernel-error.d.ts +2 -9
  15. package/dist/kernel-error.d.ts.map +1 -1
  16. package/dist/kernel-error.js +1 -11
  17. package/dist/kernel-error.js.map +1 -1
  18. package/dist/permission-gate.d.ts +48 -3
  19. package/dist/permission-gate.d.ts.map +1 -1
  20. package/dist/permission-gate.js +83 -21
  21. package/dist/permission-gate.js.map +1 -1
  22. package/dist/run-state.d.ts +35 -0
  23. package/dist/run-state.d.ts.map +1 -1
  24. package/dist/run-state.js +59 -0
  25. package/dist/run-state.js.map +1 -1
  26. package/dist/self-correction.d.ts.map +1 -1
  27. package/dist/self-correction.js +4 -4
  28. package/dist/self-correction.js.map +1 -1
  29. package/dist/step-executor.d.ts +22 -0
  30. package/dist/step-executor.d.ts.map +1 -1
  31. package/dist/step-executor.js +107 -9
  32. package/dist/step-executor.js.map +1 -1
  33. package/dist/tool-context-builder.d.ts +4 -0
  34. package/dist/tool-context-builder.d.ts.map +1 -1
  35. package/dist/tool-context-builder.js +6 -1
  36. package/dist/tool-context-builder.js.map +1 -1
  37. package/dist/tool-error-router.d.ts.map +1 -1
  38. package/dist/tool-error-router.js +2 -2
  39. package/dist/tool-error-router.js.map +1 -1
  40. package/dist/tool-result-processor.d.ts.map +1 -1
  41. package/dist/tool-result-processor.js +28 -9
  42. package/dist/tool-result-processor.js.map +1 -1
  43. package/package.json +8 -8
@@ -1,7 +1,7 @@
1
1
  import type { RunId, AgentConfig } from "@vinhnt-sdk/schema";
2
2
  import type { ToolRisk, PermissionReply } from "@vinhnt-sdk/tools";
3
3
  import type { StepExecutorPluginHooks } from "./hooks.js";
4
- import type { ApprovalStore } from "@vinhnt-sdk/permission";
4
+ import type { ApprovalStore, PermissionMode, PermissionClassifier, ModeEffectSource } from "@vinhnt-sdk/permission";
5
5
  import type { RunEventStore } from "@vinhnt-sdk/session";
6
6
  import type { EventBus } from "@vinhnt-sdk/event";
7
7
  /** Result of an approval check: allow, deny, or needs approval. */
@@ -17,6 +17,12 @@ export interface PermissionCheckResult {
17
17
  allowed: boolean;
18
18
  reason?: string;
19
19
  needsApproval?: boolean;
20
+ /**
21
+ * Set on needsApproval results (G5): whether the ask came from an explicit
22
+ * `rules` decision or the `risk` floor. The `auto` classifier only ever
23
+ * auto-approves risk-floor asks — explicit rule asks always prompt.
24
+ */
25
+ source?: ModeEffectSource;
20
26
  }
21
27
  /** Optional ask options for non-standard permission keys (e.g. doom_loop). */
22
28
  export interface AskForToolOptions {
@@ -27,6 +33,18 @@ export interface AskForToolOptions {
27
33
  readonly forceAsk?: boolean;
28
34
  /** Permission key reported to hooks/events. Default: `tool.<name>`. */
29
35
  readonly permissionKey?: string;
36
+ /**
37
+ * G5: risk of the tool, passed to the `auto` classifier.
38
+ * Missing risk makes the default classifier fail closed to the dialog.
39
+ */
40
+ readonly risk?: string | undefined;
41
+ /** G5: tool args handed to the `auto` classifier (semantic classification). */
42
+ readonly args?: Record<string, unknown> | undefined;
43
+ /**
44
+ * G5: origin of the ask (`checkTool` result source). The classifier only
45
+ * runs for `"risk"` asks — absent/`"rules"` asks always open the dialog.
46
+ */
47
+ readonly source?: ModeEffectSource | undefined;
30
48
  }
31
49
  /** Dependencies required by {@link PermissionGate}. */
32
50
  export interface PermissionGateDeps {
@@ -47,6 +65,16 @@ export interface PermissionGateDeps {
47
65
  * re-requesting variants after timeouts) must not run unbounded.
48
66
  */
49
67
  readonly maxApprovalAsksPerRun?: number | undefined;
68
+ /**
69
+ * G5: Claude-style approval mode (`default`/`acceptEdits`/`plan`/`bypass`/
70
+ * `auto` + legacy aliases). Undefined = no mode overlay (legacy behavior).
71
+ */
72
+ readonly permissionMode?: PermissionMode | undefined;
73
+ /**
74
+ * G5: classifier consulted by `auto` mode for risk-floor asks. Defaults to
75
+ * {@link createRiskPermissionClassifier} (pure, fail-closed).
76
+ */
77
+ readonly permissionClassifier?: PermissionClassifier | undefined;
50
78
  }
51
79
  /** Enforces 4-phase permission gating: global rules, agent perms, dynamic rules, risk defaults. */
52
80
  export declare class PermissionGate {
@@ -56,6 +84,12 @@ export declare class PermissionGate {
56
84
  private riskOverrides?;
57
85
  private topLevelRules;
58
86
  private autoApproval;
87
+ /** G5: Claude-style mode overlay (undefined = legacy pipeline, no overlay). */
88
+ private mode;
89
+ /** G5: injected classifier for `auto` mode; falls back to the risk classifier. */
90
+ private classifier;
91
+ /** G5: default `auto` classifier — pure, deterministic, fail-closed. */
92
+ private readonly fallbackClassifier;
59
93
  /** Per-approval hard timeout — separate from agent stale threshold. */
60
94
  private readonly approvalTimeoutMs;
61
95
  /** Safety valve — max approval dialogs per run. */
@@ -67,6 +101,10 @@ export declare class PermissionGate {
67
101
  constructor(deps: PermissionGateDeps);
68
102
  /** Toggle auto-approval at runtime (mirrors config.autoApprovalEnabled). */
69
103
  setAutoApprovalEnabled(enabled: boolean): void;
104
+ /** G5: set/replace the permission mode at runtime (undefined = no overlay). */
105
+ setPermissionMode(mode: PermissionMode | undefined): void;
106
+ /** G5: set/replace the `auto` classifier at runtime (undefined = risk default). */
107
+ setPermissionClassifier(classifier: PermissionClassifier | undefined): void;
70
108
  /**
71
109
  * Parse and apply config-level permission rules (OpenCode-style nested `{ tool: "allow|deny|ask" }`).
72
110
  * Bare keys are stored as `tool.<name>` so they match {@link checkTool}'s
@@ -87,10 +125,17 @@ export declare class PermissionGate {
87
125
  addDoomLoopBypass(toolName: string): void;
88
126
  /** Override risk-level defaults (read→allow, write→approval, destructive→deny). */
89
127
  setRiskOverrides(overrides?: Partial<Record<ToolRisk, ApprovalDecision>>): void;
128
+ /**
129
+ * Map a final effect to the check result, applying the G5 mode overlay
130
+ * first. With no mode configured the overlay passes through — behavior is
131
+ * byte-identical to the legacy pipeline.
132
+ */
133
+ private decide;
90
134
  /**
91
135
  * Evaluate whether a tool call is allowed.
92
- * 4-phase gate: global rules → agent permissions → dynamic rules → risk defaults.
93
- * Returns { allowed, reason, needsApproval }.
136
+ * 4-phase gate: global rules → agent permissions → dynamic rules → risk defaults,
137
+ * then the G5 permission-mode overlay (applied inside {@link decide}).
138
+ * Returns { allowed, reason, needsApproval, source }.
94
139
  */
95
140
  checkTool(name: string, risk: ToolRisk, args?: Record<string, unknown>, agent?: AgentConfig): PermissionCheckResult;
96
141
  /** Check whether combined token count stays within agent's maxTokens limit. */
@@ -1 +1 @@
1
- {"version":3,"file":"permission-gate.d.ts","sourceRoot":"","sources":["../src/permission-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-gate.d.ts","sourceRoot":"","sources":["../src/permission-gate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { evaluatePermission, checkRiskAllowed } from "@vinhnt-sdk/permission";
2
1
  import { wildcardMatch } from "@vinhnt-sdk/schema";
3
- import { buildPermissionRules } from "@vinhnt-sdk/permission";
2
+ import { evaluatePermission, checkRiskAllowed, buildPermissionRules, applyPermissionMode, createRiskPermissionClassifier } from "@vinhnt-sdk/permission";
4
3
  import { commandPattern } from "@vinhnt-sdk/tools";
5
4
  import { PermissionRequested, PermissionReplied } from "@vinhnt-sdk/event";
6
5
  const RISK_DECISIONS = {
@@ -41,6 +40,12 @@ export class PermissionGate {
41
40
  riskOverrides;
42
41
  topLevelRules = [];
43
42
  autoApproval;
43
+ /** G5: Claude-style mode overlay (undefined = legacy pipeline, no overlay). */
44
+ mode;
45
+ /** G5: injected classifier for `auto` mode; falls back to the risk classifier. */
46
+ classifier;
47
+ /** G5: default `auto` classifier — pure, deterministic, fail-closed. */
48
+ fallbackClassifier = createRiskPermissionClassifier();
44
49
  /** Per-approval hard timeout — separate from agent stale threshold. */
45
50
  approvalTimeoutMs;
46
51
  /** Safety valve — max approval dialogs per run. */
@@ -52,6 +57,8 @@ export class PermissionGate {
52
57
  constructor(deps) {
53
58
  this.deps = deps;
54
59
  this.autoApproval = deps.autoApprovalEnabled ?? false;
60
+ this.mode = deps.permissionMode;
61
+ this.classifier = deps.permissionClassifier;
55
62
  this.approvalTimeoutMs = deps.approvalTimeoutMs ?? 120_000;
56
63
  this.maxApprovalAsksPerRun = deps.maxApprovalAsksPerRun ?? 20;
57
64
  }
@@ -59,6 +66,14 @@ export class PermissionGate {
59
66
  setAutoApprovalEnabled(enabled) {
60
67
  this.autoApproval = enabled;
61
68
  }
69
+ /** G5: set/replace the permission mode at runtime (undefined = no overlay). */
70
+ setPermissionMode(mode) {
71
+ this.mode = mode;
72
+ }
73
+ /** G5: set/replace the `auto` classifier at runtime (undefined = risk default). */
74
+ setPermissionClassifier(classifier) {
75
+ this.classifier = classifier;
76
+ }
62
77
  /**
63
78
  * Parse and apply config-level permission rules (OpenCode-style nested `{ tool: "allow|deny|ask" }`).
64
79
  * Bare keys are stored as `tool.<name>` so they match {@link checkTool}'s
@@ -107,19 +122,47 @@ export class PermissionGate {
107
122
  if (overrides !== undefined)
108
123
  this.riskOverrides = overrides;
109
124
  }
125
+ /**
126
+ * Map a final effect to the check result, applying the G5 mode overlay
127
+ * first. With no mode configured the overlay passes through — behavior is
128
+ * byte-identical to the legacy pipeline.
129
+ */
130
+ decide(effect, source, name, risk, reason) {
131
+ let finalEffect = effect;
132
+ let finalReason = reason;
133
+ if (this.mode !== undefined) {
134
+ const decision = applyPermissionMode({ mode: this.mode, effect, source, toolName: name, risk });
135
+ finalEffect = decision.effect;
136
+ if (decision.overridden && decision.reason !== undefined)
137
+ finalReason = decision.reason;
138
+ }
139
+ if (finalEffect === "allow") {
140
+ return { allowed: true, ...(finalReason !== undefined ? { reason: finalReason } : {}) };
141
+ }
142
+ if (finalEffect === "ask") {
143
+ return {
144
+ allowed: false,
145
+ needsApproval: true,
146
+ source,
147
+ ...(finalReason !== undefined ? { reason: finalReason } : {}),
148
+ };
149
+ }
150
+ return { allowed: false, ...(finalReason !== undefined ? { reason: finalReason } : {}) };
151
+ }
110
152
  /**
111
153
  * Evaluate whether a tool call is allowed.
112
- * 4-phase gate: global rules → agent permissions → dynamic rules → risk defaults.
113
- * Returns { allowed, reason, needsApproval }.
154
+ * 4-phase gate: global rules → agent permissions → dynamic rules → risk defaults,
155
+ * then the G5 permission-mode overlay (applied inside {@link decide}).
156
+ * Returns { allowed, reason, needsApproval, source }.
114
157
  */
115
158
  checkTool(name, risk, args, agent) {
116
159
  // Phase 1: Global config-level rules (OpenCode-style nested patterns)
117
160
  if (this.globalPermissionRules && this.globalPermissionRules.length > 0) {
118
161
  const globalResult = evaluatePermission({ rules: this.globalPermissionRules }, `tool.${name}`, args);
119
162
  if (globalResult.decision === "deny")
120
- return { allowed: false, reason: globalResult.reason };
163
+ return this.decide("deny", "rules", name, risk, globalResult.reason);
121
164
  if (globalResult.decision === "ask")
122
- return { allowed: false, reason: globalResult.reason, needsApproval: true };
165
+ return this.decide("ask", "rules", name, risk, globalResult.reason);
123
166
  }
124
167
  // Phase 1.5: Top-level allow/deny/ask pattern lists ("Tool(glob)")
125
168
  if (this.topLevelRules.length > 0) {
@@ -132,10 +175,10 @@ export class PermissionGate {
132
175
  }
133
176
  if (matched) {
134
177
  if (matched.decision === "deny")
135
- return { allowed: false, reason: `Tool "${name}" is denied` };
178
+ return this.decide("deny", "rules", name, risk, `Tool "${name}" is denied`);
136
179
  if (matched.decision === "ask")
137
- return { allowed: false, reason: `Tool "${name}" requires approval`, needsApproval: true };
138
- return { allowed: true, reason: "Allowed by configured rule" };
180
+ return this.decide("ask", "rules", name, risk, `Tool "${name}" requires approval`);
181
+ return this.decide("allow", "rules", name, risk, "Allowed by configured rule");
139
182
  }
140
183
  }
141
184
  // Phase 2: Agent-specific permissions
@@ -144,22 +187,22 @@ export class PermissionGate {
144
187
  if (perms.ruleset) {
145
188
  const result = evaluatePermission(perms.ruleset, `tool.${name}`, args);
146
189
  if (result.decision === "deny")
147
- return { allowed: false, reason: result.reason };
190
+ return this.decide("deny", "rules", name, risk, result.reason);
148
191
  if (result.decision === "ask")
149
- return { allowed: false, reason: result.reason, needsApproval: true };
192
+ return this.decide("ask", "rules", name, risk, result.reason);
150
193
  if (perms.ruleset.allowedRisks && !checkRiskAllowed(perms.ruleset, risk)) {
151
- return { allowed: false, reason: `Tool "${name}" has risk "${risk}" which exceeds agent's allowed risks` };
194
+ return this.decide("deny", "rules", name, risk, `Tool "${name}" has risk "${risk}" which exceeds agent's allowed risks`);
152
195
  }
153
- return { allowed: true };
196
+ return this.decide("allow", "rules", name, risk);
154
197
  }
155
198
  if (perms.deniedTools?.some((p) => wildcardMatch(p, name))) {
156
- return { allowed: false, reason: `Tool "${name}" is denied for this agent` };
199
+ return this.decide("deny", "rules", name, risk, `Tool "${name}" is denied for this agent`);
157
200
  }
158
201
  if (perms.allowedTools && !perms.allowedTools.some((p) => wildcardMatch(p, name))) {
159
- return { allowed: false, reason: `Tool "${name}" is not in the allowed tools list` };
202
+ return this.decide("deny", "rules", name, risk, `Tool "${name}" is not in the allowed tools list`);
160
203
  }
161
204
  if (perms.allowedRisks && !perms.allowedRisks.includes(risk)) {
162
- return { allowed: false, reason: `Tool "${name}" has risk "${risk}" which exceeds agent's allowed risks` };
205
+ return this.decide("deny", "rules", name, risk, `Tool "${name}" has risk "${risk}" which exceeds agent's allowed risks`);
163
206
  }
164
207
  }
165
208
  // Phase 3: Dynamic rules (last-match-wins, same as ToolPolicy)
@@ -169,8 +212,8 @@ export class PermissionGate {
169
212
  const rule = this.dynamicRules[i];
170
213
  if (rule.toolName === name && wildcardMatch(rule.pattern, pattern)) {
171
214
  if (rule.decision === "deny")
172
- return { allowed: false, reason: `Tool "${name}" denied by dynamic rule` };
173
- return { allowed: true };
215
+ return this.decide("deny", "rules", name, risk, `Tool "${name}" denied by dynamic rule`);
216
+ return this.decide("allow", "rules", name, risk);
174
217
  }
175
218
  }
176
219
  }
@@ -180,10 +223,10 @@ export class PermissionGate {
180
223
  RISK_DECISIONS[risk] ??
181
224
  "approval_required";
182
225
  if (decision === "deny")
183
- return { allowed: false, reason: `Tool "${name}" (risk: ${risk}) is denied` };
226
+ return this.decide("deny", "risk", name, risk, `Tool "${name}" (risk: ${risk}) is denied`);
184
227
  if (decision === "approval_required")
185
- return { allowed: false, needsApproval: true, reason: `Tool "${name}" (risk: ${risk}) requires approval` };
186
- return { allowed: true };
228
+ return this.decide("ask", "risk", name, risk, `Tool "${name}" (risk: ${risk}) requires approval`);
229
+ return this.decide("allow", "risk", name, risk);
187
230
  }
188
231
  /** Check whether combined token count stays within agent's maxTokens limit. */
189
232
  checkMaxTokens(inputTokens, outputTokens, agent) {
@@ -209,6 +252,25 @@ export class PermissionGate {
209
252
  async askForTool(toolName, _toolId, runId, _sessionId, reason, _agentId, traceId, pluginManager, savePatterns, signal, options) {
210
253
  if (this.autoApproval && !options?.forceAsk)
211
254
  return "once";
255
+ // G5 `auto`: classify risk-floor asks before opening the dialog. Explicit
256
+ // rule asks (and callers that did not report a source) always prompt — a
257
+ // throwing classifier fails closed to the dialog.
258
+ if (this.mode === "auto" && options?.source === "risk" && !options?.forceAsk) {
259
+ let classification = "ask";
260
+ try {
261
+ classification = await (this.classifier ?? this.fallbackClassifier).classify({
262
+ toolName,
263
+ risk: options?.risk,
264
+ args: options?.args,
265
+ source: options?.source,
266
+ });
267
+ }
268
+ catch {
269
+ classification = "ask";
270
+ }
271
+ if (classification === "allow")
272
+ return "once";
273
+ }
212
274
  // Safety valve: cap the number of dialogs per run — beyond the limit the
213
275
  // ask fails fast as "reject" instead of opening yet another dialog.
214
276
  const askCount = (this.approvalAskCounts.get(runId) ?? 0) + 1;
@@ -1 +1 @@
1
- {"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../src/permission-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-gate.js","sourceRoot":"","sources":["../src/permission-gate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,19 @@
1
1
  import type { RunId } from "@vinhnt-sdk/schema";
2
2
  /** Lifecycle state of a run. */
3
3
  export type RunState = "pending" | "running" | "paused" | "completed" | "failed" | "cancelled";
4
+ /**
5
+ * Default number of cleaned-up run states kept for post-mortem inspection.
6
+ *
7
+ * `runStates` is the ONE map `cleanupRun()` deliberately keeps (UI / getRunState
8
+ * still report how a run finished), so it is bounded FIFO instead of growing
9
+ * forever — P5.10 eviction.
10
+ */
11
+ export declare const MAX_RETAINED_RUN_STATES = 1000;
12
+ /** Tuning for {@link RunStateMachine}. */
13
+ export interface RunStateMachineOptions {
14
+ /** Retained cleaned-up run states (default {@link MAX_RETAINED_RUN_STATES}). */
15
+ readonly retainedTerminalStates?: number;
16
+ }
4
17
  /** Tracks per-run state, abort signals and input queues. */
5
18
  export declare class RunStateMachine {
6
19
  private readonly runStates;
@@ -9,15 +22,37 @@ export declare class RunStateMachine {
9
22
  private readonly busySessions;
10
23
  private readonly modelForRun;
11
24
  private readonly stateSubscribers;
25
+ /** Cleanup order of finished runs — head = next eviction candidate (FIFO). */
26
+ private readonly retiredRuns;
27
+ private readonly retainedStates;
12
28
  readonly runIdStack: RunId[];
29
+ constructor(options?: RunStateMachineOptions);
13
30
  getState(runId: RunId): RunState | undefined;
14
31
  setState(runId: RunId, state: RunState): void;
15
32
  onStateChange(listener: (runId: RunId, state: RunState) => void): () => void;
16
33
  createRun(runId: RunId, sessionId?: string, parentRunId?: RunId): AbortController | null;
34
+ /**
35
+ * Remove a run's entry from the run stack BY IDENTITY.
36
+ *
37
+ * Unlike a plain `pop()`, this only removes the given run — a concurrent
38
+ * sibling that happens to sit on top of the stack is never discarded
39
+ * (S3: blind `pop()` corrupted the stack when runs finished out of order).
40
+ */
41
+ exitRun(runId: RunId): void;
42
+ /** True while the run still has a live abort controller (not finished/cleaned up). */
43
+ isActiveRun(runId: RunId): boolean;
17
44
  getAbort(runId: RunId): AbortController | undefined;
18
45
  isAborted(runId: RunId): boolean;
19
46
  getSignal(runId: RunId): AbortSignal;
20
47
  cleanupRun(runId: RunId, sessionId?: string): void;
48
+ /**
49
+ * Mark a finished/rejected run as post-mortem-only state and enforce the
50
+ * retention bound (FIFO: oldest cleaned-up run loses its state first).
51
+ *
52
+ * Active runs are never evicted — a run re-created after cleanup was
53
+ * un-retired by createRun() and skipped here as a safety net.
54
+ */
55
+ private retire;
21
56
  cancelAll(): void;
22
57
  sendInput(runId: RunId, text: string): void;
23
58
  drainInputs(runId: RunId): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"run-state.d.ts","sourceRoot":"","sources":["../src/run-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/F,4DAA4D;AAC5D,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsD;IACvF,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,CAAM;IAElC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS;IAI5C,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAO7C,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,MAAM,IAAI;IAK5E,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI;IAoBxF,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS;IAInD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIhC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW;IAIpC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IASlD,SAAS,IAAI,IAAI;IAIjB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3C,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE;IAMnC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIlD,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS;CAI/C"}
1
+ {"version":3,"file":"run-state.d.ts","sourceRoot":"","sources":["../src/run-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/F;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,4DAA4D;AAC5D,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsD;IACvF,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,CAAM;gBAEtB,OAAO,GAAE,sBAA2B;IAIhD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS;IAI5C,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI;IAO7C,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,MAAM,IAAI;IAK5E,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI;IA4BxF;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAK3B,sFAAsF;IACtF,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIlC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS;IAInD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAIhC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW;IAIpC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAWlD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IAWd,SAAS,IAAI,IAAI;IAIjB,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3C,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE;IAMnC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIlD,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,SAAS;CAI/C"}
package/dist/run-state.js CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Default number of cleaned-up run states kept for post-mortem inspection.
3
+ *
4
+ * `runStates` is the ONE map `cleanupRun()` deliberately keeps (UI / getRunState
5
+ * still report how a run finished), so it is bounded FIFO instead of growing
6
+ * forever — P5.10 eviction.
7
+ */
8
+ export const MAX_RETAINED_RUN_STATES = 1000;
1
9
  /** Tracks per-run state, abort signals and input queues. */
2
10
  export class RunStateMachine {
3
11
  runStates = new Map();
@@ -6,7 +14,13 @@ export class RunStateMachine {
6
14
  busySessions = new Set();
7
15
  modelForRun = new Map();
8
16
  stateSubscribers = new Set();
17
+ /** Cleanup order of finished runs — head = next eviction candidate (FIFO). */
18
+ retiredRuns = [];
19
+ retainedStates;
9
20
  runIdStack = [];
21
+ constructor(options = {}) {
22
+ this.retainedStates = options.retainedTerminalStates ?? MAX_RETAINED_RUN_STATES;
23
+ }
10
24
  getState(runId) {
11
25
  return this.runStates.get(runId);
12
26
  }
@@ -24,6 +38,11 @@ export class RunStateMachine {
24
38
  return () => { this.stateSubscribers.delete(listener); };
25
39
  }
26
40
  createRun(runId, sessionId, parentRunId) {
41
+ // A re-created run is live again — un-retire it so its state is not
42
+ // treated as an eviction candidate by the FIFO below.
43
+ const retiredIndex = this.retiredRuns.indexOf(runId);
44
+ if (retiredIndex !== -1)
45
+ this.retiredRuns.splice(retiredIndex, 1);
27
46
  const abort = new AbortController();
28
47
  this.runAborts.set(runId, abort);
29
48
  this.setState(runId, "pending");
@@ -34,6 +53,9 @@ export class RunStateMachine {
34
53
  }
35
54
  else if (this.busySessions.has(sessionId)) {
36
55
  this.runAborts.delete(runId);
56
+ // Rejected run: its "pending" state would otherwise sit in runStates
57
+ // forever — retire it so the FIFO can evict it too.
58
+ this.retire(runId);
37
59
  return null;
38
60
  }
39
61
  else {
@@ -42,6 +64,22 @@ export class RunStateMachine {
42
64
  }
43
65
  return abort;
44
66
  }
67
+ /**
68
+ * Remove a run's entry from the run stack BY IDENTITY.
69
+ *
70
+ * Unlike a plain `pop()`, this only removes the given run — a concurrent
71
+ * sibling that happens to sit on top of the stack is never discarded
72
+ * (S3: blind `pop()` corrupted the stack when runs finished out of order).
73
+ */
74
+ exitRun(runId) {
75
+ const index = this.runIdStack.lastIndexOf(runId);
76
+ if (index !== -1)
77
+ this.runIdStack.splice(index, 1);
78
+ }
79
+ /** True while the run still has a live abort controller (not finished/cleaned up). */
80
+ isActiveRun(runId) {
81
+ return this.runAborts.has(runId);
82
+ }
45
83
  getAbort(runId) {
46
84
  return this.runAborts.get(runId);
47
85
  }
@@ -59,6 +97,27 @@ export class RunStateMachine {
59
97
  this.busySessions.delete(sessionId);
60
98
  // Keep the terminal run state so post-mortem getRunState()/UI can still
61
99
  // report how the run finished; only volatile resources are freed above.
100
+ // Retention is bounded by the retire() FIFO below.
101
+ this.retire(runId);
102
+ }
103
+ /**
104
+ * Mark a finished/rejected run as post-mortem-only state and enforce the
105
+ * retention bound (FIFO: oldest cleaned-up run loses its state first).
106
+ *
107
+ * Active runs are never evicted — a run re-created after cleanup was
108
+ * un-retired by createRun() and skipped here as a safety net.
109
+ */
110
+ retire(runId) {
111
+ if (!this.retiredRuns.includes(runId))
112
+ this.retiredRuns.push(runId);
113
+ while (this.retiredRuns.length > this.retainedStates) {
114
+ const oldest = this.retiredRuns.shift();
115
+ if (oldest === undefined)
116
+ break;
117
+ if (this.isActiveRun(oldest))
118
+ continue;
119
+ this.runStates.delete(oldest);
120
+ }
62
121
  }
63
122
  cancelAll() {
64
123
  for (const a of this.runAborts.values())
@@ -1 +1 @@
1
- {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../src/run-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-state.js","sourceRoot":"","sources":["../src/run-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"self-correction.d.ts","sourceRoot":"","sources":["../src/self-correction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,oBAAoB,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACrI,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,mBAAmB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3G,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC5D,YAAY,EAAE,WAAW,GAAG,SAAS,CAAC;CACvC;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,iBAAiB,EACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,UAAU,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,kBAAkB,EACxB,iBAAiB,EAAE,oBAAoB,GACtC,OAAO,CAAC,IAAI,CAAC,CA8Jf"}
1
+ {"version":3,"file":"self-correction.d.ts","sourceRoot":"","sources":["../src/self-correction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,oBAAoB,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC;IACrI,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO,mBAAmB,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3G,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC5D,YAAY,EAAE,WAAW,GAAG,SAAS,CAAC;CACvC;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,iBAAiB,EACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,UAAU,EAAE,EACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,kBAAkB,EACxB,iBAAiB,EAAE,oBAAoB,GACtC,OAAO,CAAC,IAAI,CAAC,CA+Jf"}
@@ -1,4 +1,4 @@
1
- import { getTextContent } from "@vinhnt-sdk/schema";
1
+ import { getTextContent, getLogger } from "@vinhnt-sdk/schema";
2
2
  import { detectDoomLoop, SELF_CORRECT_PROMPT, raceWithAbort, withToolTimeout, toolDomain, toolSource } from "./kernel-utils.js";
3
3
  import { resolveLoopPolicy } from "./loop-policy.js";
4
4
  import { hasErrorCode } from "@vinhnt-sdk/schema";
@@ -80,7 +80,7 @@ export async function runSelfCorrection(tc, messages, recentCalls, step, runId,
80
80
  continue;
81
81
  }
82
82
  if (!deps.permissionGate.checkSavedApproval(ct.name, ct.args, deps.currentAgent?.id)) {
83
- const reply = await deps.permissionGate.askForTool(ct.name, ct.id, runId, "", cpermResult.reason ?? `Tool "${ct.name}" requires approval for self-correction`, deps.currentAgent?.id ?? "", ctx.traceId, deps.pluginManager, undefined, runAbort.signal);
83
+ const reply = await deps.permissionGate.askForTool(ct.name, ct.id, runId, "", cpermResult.reason ?? `Tool "${ct.name}" requires approval for self-correction`, deps.currentAgent?.id ?? "", ctx.traceId, deps.pluginManager, undefined, runAbort.signal, { risk: ctool.risk, args: ct.args, source: cpermResult.source });
84
84
  if (reply === "reject") {
85
85
  messages.push({ role: "tool", toolCallId: ct.id, content: `Error: Tool "${ct.name}" rejected by user` });
86
86
  continue;
@@ -148,13 +148,13 @@ export async function runSelfCorrection(tc, messages, recentCalls, step, runId,
148
148
  }
149
149
  }
150
150
  catch (err) {
151
- console.warn(`[kernel] Self-correction attempt ${attempt}/${deps.maxSelfCorrectAttempts} failed:`, err instanceof Error ? err.message : String(err));
151
+ getLogger().warn(`[kernel] Self-correction attempt ${attempt}/${deps.maxSelfCorrectAttempts} failed:`, err instanceof Error ? err.message : String(err));
152
152
  }
153
153
  if (corrected)
154
154
  break;
155
155
  }
156
156
  if (!corrected) {
157
- console.warn(`[kernel] Self-correction exhausted after ${deps.maxSelfCorrectAttempts} attempts for tool "${tc.toolName}"`);
157
+ getLogger().warn(`[kernel] Self-correction exhausted after ${deps.maxSelfCorrectAttempts} attempts for tool "${tc.toolName}"`);
158
158
  }
159
159
  }
160
160
  //# sourceMappingURL=self-correction.js.map