@vinhnt-sdk/core 0.1.1 → 0.1.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.
Files changed (179) hide show
  1. package/README.md +194 -12
  2. package/dist/agent/agent-factory.d.ts +11 -0
  3. package/dist/agent/agent-factory.d.ts.map +1 -1
  4. package/dist/agent/agent-factory.js +11 -2
  5. package/dist/agent/agent-factory.js.map +1 -1
  6. package/dist/agent/agent-registry.d.ts +3 -0
  7. package/dist/agent/agent-registry.d.ts.map +1 -1
  8. package/dist/agent/agent-registry.js.map +1 -1
  9. package/dist/agent/create-agent-tool.d.ts +13 -13
  10. package/dist/agent/create-agent-tool.d.ts.map +1 -1
  11. package/dist/agent/delegate-batch-tool.d.ts.map +1 -1
  12. package/dist/agent/delegate-batch-tool.js +1 -1
  13. package/dist/agent/delegate-batch-tool.js.map +1 -1
  14. package/dist/agent/delegate-tool.js +1 -1
  15. package/dist/agent/delegate-tool.js.map +1 -1
  16. package/dist/agent/execution-engine.d.ts +1 -1
  17. package/dist/agent/execution-engine.d.ts.map +1 -1
  18. package/dist/agent/spawn-agent-tool.d.ts +10 -10
  19. package/dist/agent/spawn-agent-tool.d.ts.map +1 -1
  20. package/dist/event-bus/bridge.d.ts +2 -3
  21. package/dist/event-bus/bridge.d.ts.map +1 -1
  22. package/dist/event-bus/bridge.js +12 -5
  23. package/dist/event-bus/bridge.js.map +1 -1
  24. package/dist/event-bus/global-bus.d.ts +8 -0
  25. package/dist/event-bus/global-bus.d.ts.map +1 -1
  26. package/dist/event-bus/global-bus.js +48 -0
  27. package/dist/event-bus/global-bus.js.map +1 -1
  28. package/dist/event-bus/in-memory-bus.d.ts +14 -0
  29. package/dist/event-bus/in-memory-bus.d.ts.map +1 -1
  30. package/dist/event-bus/in-memory-bus.js +53 -0
  31. package/dist/event-bus/in-memory-bus.js.map +1 -1
  32. package/dist/event-bus/types.d.ts +17 -0
  33. package/dist/event-bus/types.d.ts.map +1 -1
  34. package/dist/fakes/fake-approval-store.d.ts +2 -2
  35. package/dist/fakes/fake-approval-store.d.ts.map +1 -1
  36. package/dist/fakes/fake-approval-store.js +28 -6
  37. package/dist/fakes/fake-approval-store.js.map +1 -1
  38. package/dist/fakes/fake-model.d.ts.map +1 -1
  39. package/dist/fakes/fake-model.js +2 -1
  40. package/dist/fakes/fake-model.js.map +1 -1
  41. package/dist/fakes/fake-store.d.ts +4 -1
  42. package/dist/fakes/fake-store.d.ts.map +1 -1
  43. package/dist/fakes/fake-store.js +33 -0
  44. package/dist/fakes/fake-store.js.map +1 -1
  45. package/dist/index.d.ts +232 -109
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +191 -66
  48. package/dist/index.js.map +1 -1
  49. package/dist/kernel/approval-handler.d.ts +1 -1
  50. package/dist/kernel/approval-handler.d.ts.map +1 -1
  51. package/dist/kernel/approval-handler.js +5 -1
  52. package/dist/kernel/approval-handler.js.map +1 -1
  53. package/dist/kernel/circuit-breaker.d.ts +19 -1
  54. package/dist/kernel/circuit-breaker.d.ts.map +1 -1
  55. package/dist/kernel/circuit-breaker.js +54 -10
  56. package/dist/kernel/circuit-breaker.js.map +1 -1
  57. package/dist/kernel/kernel-error.d.ts +3 -2
  58. package/dist/kernel/kernel-error.d.ts.map +1 -1
  59. package/dist/kernel/kernel-error.js +5 -6
  60. package/dist/kernel/kernel-error.js.map +1 -1
  61. package/dist/kernel/kernel-session.d.ts +13 -5
  62. package/dist/kernel/kernel-session.d.ts.map +1 -1
  63. package/dist/kernel/kernel-session.js +71 -13
  64. package/dist/kernel/kernel-session.js.map +1 -1
  65. package/dist/kernel/kernel-types.d.ts +82 -9
  66. package/dist/kernel/kernel-types.d.ts.map +1 -1
  67. package/dist/kernel/kernel-types.js.map +1 -1
  68. package/dist/kernel/kernel.d.ts +94 -20
  69. package/dist/kernel/kernel.d.ts.map +1 -1
  70. package/dist/kernel/kernel.js +591 -70
  71. package/dist/kernel/kernel.js.map +1 -1
  72. package/dist/kernel/model-caller.d.ts +30 -2
  73. package/dist/kernel/model-caller.d.ts.map +1 -1
  74. package/dist/kernel/model-caller.js +55 -20
  75. package/dist/kernel/model-caller.js.map +1 -1
  76. package/dist/kernel/permission-gate.d.ts +6 -4
  77. package/dist/kernel/permission-gate.d.ts.map +1 -1
  78. package/dist/kernel/permission-gate.js +16 -6
  79. package/dist/kernel/permission-gate.js.map +1 -1
  80. package/dist/kernel/run-context.d.ts +26 -0
  81. package/dist/kernel/run-context.d.ts.map +1 -0
  82. package/dist/kernel/run-context.js +13 -0
  83. package/dist/kernel/run-context.js.map +1 -0
  84. package/dist/kernel/run-loop.d.ts +35 -14
  85. package/dist/kernel/run-loop.d.ts.map +1 -1
  86. package/dist/kernel/run-loop.js +295 -87
  87. package/dist/kernel/run-loop.js.map +1 -1
  88. package/dist/kernel/self-correction.d.ts +2 -2
  89. package/dist/kernel/self-correction.d.ts.map +1 -1
  90. package/dist/kernel/self-correction.js +3 -2
  91. package/dist/kernel/self-correction.js.map +1 -1
  92. package/dist/kernel/state-machine.d.ts +2 -0
  93. package/dist/kernel/state-machine.d.ts.map +1 -1
  94. package/dist/kernel/state-machine.js +2 -0
  95. package/dist/kernel/state-machine.js.map +1 -1
  96. package/dist/kernel/step-executor.d.ts +11 -3
  97. package/dist/kernel/step-executor.d.ts.map +1 -1
  98. package/dist/kernel/step-executor.js +54 -24
  99. package/dist/kernel/step-executor.js.map +1 -1
  100. package/dist/kernel/sub-agent-runner.d.ts +10 -7
  101. package/dist/kernel/sub-agent-runner.d.ts.map +1 -1
  102. package/dist/kernel/sub-agent-runner.js +105 -31
  103. package/dist/kernel/sub-agent-runner.js.map +1 -1
  104. package/dist/kernel/tool-context-builder.d.ts +7 -2
  105. package/dist/kernel/tool-context-builder.d.ts.map +1 -1
  106. package/dist/kernel/tool-context-builder.js +23 -6
  107. package/dist/kernel/tool-context-builder.js.map +1 -1
  108. package/dist/kernel/tool-error-router.d.ts +1 -1
  109. package/dist/kernel/tool-error-router.d.ts.map +1 -1
  110. package/dist/kernel/tool-error-router.js +4 -3
  111. package/dist/kernel/tool-error-router.js.map +1 -1
  112. package/dist/logger.d.ts +5 -0
  113. package/dist/logger.d.ts.map +1 -1
  114. package/dist/logger.js +3 -0
  115. package/dist/logger.js.map +1 -1
  116. package/dist/model.d.ts +3 -1
  117. package/dist/model.d.ts.map +1 -1
  118. package/dist/model.js +2 -0
  119. package/dist/model.js.map +1 -1
  120. package/dist/plugin/manager.d.ts +3 -1
  121. package/dist/plugin/manager.d.ts.map +1 -1
  122. package/dist/plugin/manager.js +51 -3
  123. package/dist/plugin/manager.js.map +1 -1
  124. package/dist/plugin/plugin-file-loader.js +2 -2
  125. package/dist/plugin/plugin-file-loader.js.map +1 -1
  126. package/dist/plugin.d.ts +50 -4
  127. package/dist/plugin.d.ts.map +1 -1
  128. package/dist/plugin.js +14 -1
  129. package/dist/plugin.js.map +1 -1
  130. package/dist/session/null-store.d.ts +1 -0
  131. package/dist/session/null-store.d.ts.map +1 -1
  132. package/dist/session/null-store.js +7 -0
  133. package/dist/session/null-store.js.map +1 -1
  134. package/dist/session/run-coordinator.d.ts +9 -3
  135. package/dist/session/run-coordinator.d.ts.map +1 -1
  136. package/dist/session/run-coordinator.js +4 -0
  137. package/dist/session/run-coordinator.js.map +1 -1
  138. package/dist/skill/create-skill-tool.d.ts +5 -4
  139. package/dist/skill/create-skill-tool.d.ts.map +1 -1
  140. package/dist/skill/create-skill-tool.js +8 -5
  141. package/dist/skill/create-skill-tool.js.map +1 -1
  142. package/dist/skill/skill-def-registry.d.ts +6 -0
  143. package/dist/skill/skill-def-registry.d.ts.map +1 -1
  144. package/dist/skill/skill-def-registry.js +4 -0
  145. package/dist/skill/skill-def-registry.js.map +1 -1
  146. package/dist/system-context/sources/instructions-source.js +1 -1
  147. package/dist/system-context/sources/instructions-source.js.map +1 -1
  148. package/dist/tool/bridge.d.ts +7 -1
  149. package/dist/tool/bridge.d.ts.map +1 -1
  150. package/dist/tool/bridge.js +5 -0
  151. package/dist/tool/bridge.js.map +1 -1
  152. package/dist/tool/builtin-provider.d.ts +35 -0
  153. package/dist/tool/builtin-provider.d.ts.map +1 -0
  154. package/dist/tool/builtin-provider.js +75 -0
  155. package/dist/tool/builtin-provider.js.map +1 -0
  156. package/dist/tool/index.d.ts +21 -23
  157. package/dist/tool/index.d.ts.map +1 -1
  158. package/dist/tool/index.js +19 -18
  159. package/dist/tool/index.js.map +1 -1
  160. package/dist/tool/provider-helpers.d.ts.map +1 -1
  161. package/dist/tool/provider-helpers.js +3 -2
  162. package/dist/tool/provider-helpers.js.map +1 -1
  163. package/dist/tool/runtime.d.ts +23 -2
  164. package/dist/tool/runtime.d.ts.map +1 -1
  165. package/dist/tool/runtime.js +20 -16
  166. package/dist/tool/runtime.js.map +1 -1
  167. package/dist/tracer.d.ts +5 -0
  168. package/dist/tracer.d.ts.map +1 -1
  169. package/dist/tracer.js +4 -0
  170. package/dist/tracer.js.map +1 -1
  171. package/dist/workflow/agent-graph.js +3 -3
  172. package/dist/workflow/agent-graph.js.map +1 -1
  173. package/dist/workflow/workflow-helpers.js +2 -2
  174. package/dist/workflow/workflow-helpers.js.map +1 -1
  175. package/dist/workspace.d.ts +7 -0
  176. package/dist/workspace.d.ts.map +1 -1
  177. package/dist/workspace.js +4 -0
  178. package/dist/workspace.js.map +1 -1
  179. package/package.json +18 -62
@@ -1,47 +1,86 @@
1
1
  import { createSubAgent } from "../agent/agent-factory.js";
2
- export async function runAgent(deps, agentId, prompt, ctx, sessionId) {
3
- if (deps.currentDepthRef.value >= deps.maxSubAgentDepth) {
2
+ export async function runAgent(deps, agentId, prompt, ctx, sessionId, parentRunId, signal) {
3
+ const resolvedParentRunId = parentRunId ?? deps.stateMachine.runIdStack.at(-1);
4
+ const rc = resolvedParentRunId ? deps.runContextFor?.(resolvedParentRunId) : undefined;
5
+ const depth = rc?.depth ?? deps.currentDepthRef.value;
6
+ const chain = rc?.agentChain ?? deps.agentChainRef.value;
7
+ const currentAgent = rc?.agent ?? deps.currentAgentRef.value;
8
+ if (depth >= deps.maxSubAgentDepth) {
4
9
  throw new Error(`Sub-agent depth limit (${deps.maxSubAgentDepth}) reached. Cannot spawn more sub-agents.`);
5
10
  }
6
- if (deps.agentChainRef.value.has(agentId)) {
11
+ if (chain.has(agentId)) {
7
12
  throw new Error(`Cycle detected: agent '${agentId}' is already in the call chain.`);
8
13
  }
9
- const prevAgent = deps.currentAgentRef.value;
10
- const prevDepth = deps.currentDepthRef.value;
14
+ const prevAgent = currentAgent;
15
+ const prevDepth = depth;
11
16
  const prevSnapshot = deps.sessionStateRef.value ? deps.sessionStateRef.value.snapshot() : undefined;
12
17
  try {
13
18
  const agent = await deps.agentRegistry.get(agentId);
14
19
  if (!agent)
15
20
  throw new Error(`Agent '${agentId}' not found`);
16
- deps.currentAgentRef.value = agent;
17
- deps.currentDepthRef.value++;
18
- deps.agentChainRef.value.add(agentId);
21
+ if (rc) {
22
+ rc.agent = agent;
23
+ rc.depth++;
24
+ rc.agentChain.add(agentId);
25
+ rc.cachedTools = null;
26
+ rc.cachedToolsAgentId = undefined;
27
+ }
28
+ else {
29
+ deps.currentAgentRef.value = agent;
30
+ deps.currentDepthRef.value++;
31
+ deps.agentChainRef.value.add(agentId);
32
+ }
19
33
  if (deps.sessionStateRef.value) {
20
34
  deps.sessionStateRef.value.resetMessages([]);
21
35
  deps.sessionStateRef.value.step = 0;
22
36
  deps.sessionStateRef.value.toolCallCount = 0;
23
37
  deps.sessionStateRef.value.isRunning = true;
24
38
  }
25
- const parentRunId = deps.stateMachine.runIdStack.at(-1);
26
- const childCtx = parentRunId
27
- ? { ...ctx, parentRunId }
39
+ const childCtx = resolvedParentRunId
40
+ ? { ...ctx, parentRunId: resolvedParentRunId }
28
41
  : ctx;
29
- const handle = deps.runFn(prompt, childCtx, sessionId, undefined);
30
- await handle.completed;
42
+ const handle = deps.runFn(prompt, childCtx, sessionId, agent);
43
+ // RV-20: propagate the parent run's abort to the child so a cancelled
44
+ // parent run does not orphan a still-running sub-agent. The child handle
45
+ // stays cancellable by its own session/stack too.
46
+ const abortChild = () => handle.abort();
47
+ if (signal?.aborted) {
48
+ abortChild();
49
+ }
50
+ else {
51
+ signal?.addEventListener("abort", abortChild, { once: true });
52
+ }
53
+ try {
54
+ await handle.completed;
55
+ }
56
+ finally {
57
+ signal?.removeEventListener("abort", abortChild);
58
+ }
31
59
  const output = await getRunOutput(deps.store, handle.runId);
32
60
  return output;
33
61
  }
34
62
  finally {
35
- deps.currentAgentRef.value = prevAgent;
36
- deps.currentDepthRef.value = prevDepth;
37
- deps.agentChainRef.value.delete(agentId);
63
+ if (rc) {
64
+ rc.agent = prevAgent;
65
+ rc.depth = prevDepth;
66
+ rc.agentChain.delete(agentId);
67
+ }
68
+ else {
69
+ deps.currentAgentRef.value = prevAgent;
70
+ deps.currentDepthRef.value = prevDepth;
71
+ deps.agentChainRef.value.delete(agentId);
72
+ }
38
73
  if (deps.sessionStateRef.value && prevSnapshot) {
39
74
  deps.sessionStateRef.value.restore(prevSnapshot);
40
75
  }
41
76
  }
42
77
  }
43
- export async function runAgentsParallel(deps, tasks, ctx, sessionId) {
44
- if (deps.currentDepthRef.value >= deps.maxSubAgentDepth) {
78
+ export async function runAgentsParallel(deps, tasks, ctx, sessionId, parentRunId, signal) {
79
+ const resolvedParentRunId = parentRunId ?? deps.stateMachine.runIdStack.at(-1);
80
+ const rc = resolvedParentRunId ? deps.runContextFor?.(resolvedParentRunId) : undefined;
81
+ const depth = rc?.depth ?? deps.currentDepthRef.value;
82
+ const currentAgent = rc?.agent ?? deps.currentAgentRef.value;
83
+ if (depth >= deps.maxSubAgentDepth) {
45
84
  throw new Error(`Sub-agent depth limit (${deps.maxSubAgentDepth}) reached.`);
46
85
  }
47
86
  const agents = await Promise.all(tasks.map((t) => deps.agentRegistry.get(t.agentId)));
@@ -49,11 +88,15 @@ export async function runAgentsParallel(deps, tasks, ctx, sessionId) {
49
88
  if (!agents[i])
50
89
  throw new Error(`Agent '${tasks[i].agentId}' not found`);
51
90
  }
52
- const prevDepth = deps.currentDepthRef.value;
53
- deps.currentDepthRef.value++;
54
- const parentRunId = deps.stateMachine.runIdStack.at(-1);
55
- const childCtx = parentRunId
56
- ? { ...ctx, parentRunId }
91
+ const prevDepth = depth;
92
+ if (rc) {
93
+ rc.depth++;
94
+ }
95
+ else {
96
+ deps.currentDepthRef.value++;
97
+ }
98
+ const childCtx = resolvedParentRunId
99
+ ? { ...ctx, parentRunId: resolvedParentRunId }
57
100
  : ctx;
58
101
  try {
59
102
  const results = await Promise.allSettled(tasks.map(async (t, i) => {
@@ -71,18 +114,44 @@ export async function runAgentsParallel(deps, tasks, ctx, sessionId) {
71
114
  };
72
115
  // Snapshot parent refs for per-task isolation
73
116
  const prevSession = deps.sessionStateRef.value;
74
- const prevAgent = deps.currentAgentRef.value;
117
+ const prevAgent = rc?.agent ?? deps.currentAgentRef.value;
75
118
  deps.sessionStateRef.value = childSession;
76
- deps.currentAgentRef.value = agent;
119
+ if (rc) {
120
+ rc.agent = agent;
121
+ rc.cachedTools = null;
122
+ rc.cachedToolsAgentId = undefined;
123
+ }
124
+ else {
125
+ deps.currentAgentRef.value = agent;
126
+ }
77
127
  try {
78
128
  const handle = deps.runFn(t.prompt, childCtxForAgent, sessionId, agent);
79
- await handle.completed;
80
- const output = await getRunOutput(deps.store, handle.runId);
81
- return output;
129
+ // RV-20: propagate the parent run's abort so cancelled parents never
130
+ // orphan still-running parallel sub-agents.
131
+ const abortChild = () => handle.abort();
132
+ if (signal?.aborted) {
133
+ abortChild();
134
+ }
135
+ else {
136
+ signal?.addEventListener("abort", abortChild, { once: true });
137
+ }
138
+ try {
139
+ await handle.completed;
140
+ const output = await getRunOutput(deps.store, handle.runId);
141
+ return output;
142
+ }
143
+ finally {
144
+ signal?.removeEventListener("abort", abortChild);
145
+ }
82
146
  }
83
147
  finally {
84
148
  deps.sessionStateRef.value = prevSession;
85
- deps.currentAgentRef.value = prevAgent;
149
+ if (rc) {
150
+ rc.agent = prevAgent;
151
+ }
152
+ else {
153
+ deps.currentAgentRef.value = prevAgent;
154
+ }
86
155
  }
87
156
  }));
88
157
  const outputs = results.map((r) => {
@@ -93,7 +162,12 @@ export async function runAgentsParallel(deps, tasks, ctx, sessionId) {
93
162
  return outputs.join("\n---\n");
94
163
  }
95
164
  finally {
96
- deps.currentDepthRef.value = prevDepth;
165
+ if (rc) {
166
+ rc.depth = prevDepth;
167
+ }
168
+ else {
169
+ deps.currentDepthRef.value = prevDepth;
170
+ }
97
171
  }
98
172
  }
99
173
  export function createSubAgentAndRegister(deps, params) {
@@ -121,7 +195,7 @@ export async function getCompletedEventData(store, runId) {
121
195
  if (completed?.data)
122
196
  return completed.data;
123
197
  if (snap?.state?.finalOutput !== undefined) {
124
- return { output: String(snap.state.finalOutput), status: "completed" };
198
+ return { output: String(snap.state.finalOutput), status: snap.state.status ?? "completed" };
125
199
  }
126
200
  return null;
127
201
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent-runner.js","sourceRoot":"","sources":["../../src/kernel/sub-agent-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sub-agent-runner.js","sourceRoot":"","sources":["../../src/kernel/sub-agent-runner.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { RunId, RequestContext } from "@vinhnt-sdk/schema";
2
- import type { ToolContext } from "@vinhnt-sdk/tools";
2
+ import type { ToolContext, ToolRisk } from "@vinhnt-sdk/tools";
3
3
  import type { PluginManager } from "../plugin.js";
4
4
  import type { PermissionGate } from "./permission-gate.js";
5
5
  import type { ToolExecutionPlan } from "./step-executor.js";
@@ -8,8 +8,13 @@ export interface ToolContextBuilderDeps {
8
8
  readonly pluginManager: PluginManager | undefined;
9
9
  readonly permissionGate: PermissionGate;
10
10
  readonly currentAgent: AgentConfig | undefined;
11
+ /** Tool risk used to evaluate the tool's own `ctx.ask` against the gate. */
12
+ readonly toolRisk: ToolRisk;
13
+ }
14
+ export interface MetadataRef {
15
+ current?: Record<string, unknown>;
11
16
  }
12
17
  export declare function buildToolContext(tc: ToolExecutionPlan, runId: RunId, sessionId: string | undefined, ctx: RequestContext, runAbort: AbortController, compensationRef: {
13
18
  current: (() => Promise<void>) | null;
14
- }, deps: ToolContextBuilderDeps): Promise<ToolContext>;
19
+ }, metadataRef: MetadataRef, deps: ToolContextBuilderDeps): Promise<ToolContext>;
15
20
  //# sourceMappingURL=tool-context-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-context-builder.d.ts","sourceRoot":"","sources":["../../src/kernel/tool-context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,WAAW,GAAG,SAAS,CAAC;CAChD;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE;IAAE,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;CAAE,EAC1D,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAyBtB"}
1
+ {"version":3,"file":"tool-context-builder.d.ts","sourceRoot":"","sources":["../../src/kernel/tool-context-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE;IAAE,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAA;CAAE,EAC1D,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAyCtB"}
@@ -1,10 +1,12 @@
1
- export async function buildToolContext(tc, runId, sessionId, ctx, runAbort, compensationRef, deps) {
2
- let shellEnv = process.env;
1
+ import { sanitizeEnv } from "@vinhnt-sdk/security";
2
+ export async function buildToolContext(tc, runId, sessionId, ctx, runAbort, compensationRef, metadataRef, deps) {
3
+ // P1-G: default env is the sanitized whitelist, never raw process.env.
4
+ let shellEnv = sanitizeEnv();
3
5
  const shellEnvResult = await deps.pluginManager?.fireHook("onShellEnv", { env: {} });
4
6
  if (shellEnvResult?.modified?.env) {
5
- shellEnv = shellEnvResult.modified.env;
7
+ shellEnv = { ...shellEnv, ...shellEnvResult.modified.env };
6
8
  }
7
- let currentToolMetadata;
9
+ metadataRef.current = undefined;
8
10
  return {
9
11
  sessionId: sessionId ?? "",
10
12
  runId,
@@ -13,10 +15,25 @@ export async function buildToolContext(tc, runId, sessionId, ctx, runAbort, comp
13
15
  signal: runAbort.signal,
14
16
  env: shellEnv,
15
17
  parentContext: ctx,
18
+ // P1-H: single approval path — gate decide first (saved patterns / rules),
19
+ // then prompt via the approval store passing savePatterns for "always".
16
20
  ask: async (askInput) => {
17
- return deps.permissionGate.askForTool(tc.toolName, tc.toolId, runId, sessionId ?? "", askInput.reason, deps.currentAgent?.id ?? "", ctx.traceId, deps.pluginManager);
21
+ const decision = deps.permissionGate.checkTool(tc.toolName, deps.toolRisk, tc.args, deps.currentAgent);
22
+ if (decision.allowed)
23
+ return "once";
24
+ if (deps.permissionGate.checkSavedApproval(tc.toolName, deps.currentAgent?.id))
25
+ return "once";
26
+ if (!decision.needsApproval)
27
+ return "reject";
28
+ return deps.permissionGate.askForTool(tc.toolName, tc.toolId, runId, sessionId ?? "", askInput.reason, deps.currentAgent?.id ?? "", ctx.traceId, deps.pluginManager, askInput.savePatterns);
29
+ },
30
+ metadata: (input) => {
31
+ metadataRef.current = {
32
+ ...metadataRef.current,
33
+ ...(input.metadata ?? {}),
34
+ ...(input.title ? { title: input.title } : {}),
35
+ };
18
36
  },
19
- metadata: (input) => { currentToolMetadata = { ...currentToolMetadata, ...input.metadata }; },
20
37
  setCompensation: (action) => { compensationRef.current = action; },
21
38
  };
22
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-context-builder.js","sourceRoot":"","sources":["../../src/kernel/tool-context-builder.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAqB,EACrB,KAAY,EACZ,SAA6B,EAC7B,GAAmB,EACnB,QAAyB,EACzB,eAA0D,EAC1D,IAA4B;IAE5B,IAAI,QAAQ,GAA2B,OAAO,CAAC,GAA6B,CAAC;IAC7E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,IAAI,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAClC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC;IACzC,CAAC;IACD,IAAI,mBAAwD,CAAC;IAC7D,OAAO;QACL,SAAS,EAAE,SAAS,IAAI,EAAE;QAC1B,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE;QACpC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QAChD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ;QACb,aAAa,EAAE,GAAG;QAClB,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CACnC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,EAC9C,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,EAC5C,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAChC,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7F,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"tool-context-builder.js","sourceRoot":"","sources":["../../src/kernel/tool-context-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAmBnD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAqB,EACrB,KAAY,EACZ,SAA6B,EAC7B,GAAmB,EACnB,QAAyB,EACzB,eAA0D,EAC1D,WAAwB,EACxB,IAA4B;IAE5B,uEAAuE;IACvE,IAAI,QAAQ,GAA2B,WAAW,EAAE,CAAC;IACrD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,IAAI,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAClC,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC7D,CAAC;IACD,WAAW,CAAC,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO;QACL,SAAS,EAAE,SAAS,IAAI,EAAE;QAC1B,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE;QACpC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;QAChD,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,GAAG,EAAE,QAAQ;QACb,aAAa,EAAE,GAAG;QAClB,2EAA2E;QAC3E,wEAAwE;QACxE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAC5C,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,IAA+B,EAAE,IAAI,CAAC,YAAY,CAClF,CAAC;YACF,IAAI,QAAQ,CAAC,OAAO;gBAAE,OAAO,MAAM,CAAC;YACpC,IAAI,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC9F,IAAI,CAAC,QAAQ,CAAC,aAAa;gBAAE,OAAO,QAAQ,CAAC;YAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CACnC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE,EAC9C,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,EAC5C,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAC/B,QAAQ,CAAC,YAAY,CACtB,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,WAAW,CAAC,OAAO,GAAG;gBACpB,GAAG,WAAW,CAAC,OAAO;gBACtB,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,eAAe,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC"}
@@ -16,7 +16,7 @@ export interface ToolErrorRouterDeps {
16
16
  readonly selfCorrectOnFailure: boolean;
17
17
  readonly externalDirectoryAccess?: boolean;
18
18
  readonly workspaceRoot?: string;
19
- readonly findTool: (name: string) => ToolDefinition | undefined;
19
+ readonly findTool: (name: string, runId?: RunId) => ToolDefinition | undefined;
20
20
  currentAgent: import("@vinhnt-sdk/schema").AgentConfig | undefined;
21
21
  runSelfCorrection: (tc: ToolExecutionPlan, messages: ChatMessage[], recentCalls: RecentCall[], step: number, runId: RunId, ctx: RequestContext, runAbort: AbortController, toolCtx: ToolContext, errorMsg: string, runModel: ModelProvider) => Promise<void>;
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-error-router.d.ts","sourceRoot":"","sources":["../../src/kernel/tool-error-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,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,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7I,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;IAChE,YAAY,EAAE,OAAO,oBAAoB,EAAE,WAAW,GAAG,SAAS,CAAC;IACnE,iBAAiB,EAAE,CACjB,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EACzE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAC/C,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EACjE,QAAQ,EAAE,aAAa,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAoBD,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,iBAAiB,EACrB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,OAAO,CAAC,CA+DlB"}
1
+ {"version":3,"file":"tool-error-router.d.ts","sourceRoot":"","sources":["../../src/kernel/tool-error-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,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,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7I,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,cAAc,GAAG,SAAS,CAAC;IAC/E,YAAY,EAAE,OAAO,oBAAoB,EAAE,WAAW,GAAG,SAAS,CAAC;IACnE,iBAAiB,EAAE,CACjB,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EACzE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAC/C,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EACjE,QAAQ,EAAE,aAAa,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAmBD,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,WAAW,EAAE,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,iBAAiB,EACrB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,OAAO,CAAC,CA+DlB"}
@@ -1,8 +1,9 @@
1
+ import { sanitizeEnv } from "@vinhnt-sdk/security";
2
+ import { normalize } from "node:path";
1
3
  import { hashArgs, raceWithAbort, toolDomain } from "./kernel-utils.js";
2
4
  import { ToolPermissionDenied, RunAbortedError } from "@vinhnt-sdk/schema";
3
5
  function checkExternalPathsLocal(toolName, args, workspaceRoot) {
4
6
  const PATH_AWARE_TOOLS = new Set(["read_file", "write_file", "edit_file", "apply_patch", "list_directory", "glob_files", "grep_files", "shell"]);
5
- const { normalize } = require("node:path");
6
7
  if (!PATH_AWARE_TOOLS.has(toolName))
7
8
  return undefined;
8
9
  const input = args;
@@ -48,7 +49,7 @@ export async function handleToolError(err, tc, _tool, messages, step, runId, ctx
48
49
  }
49
50
  export async function tryReadFileFallback(tc, runAbort, runId, ctx, sessionId, messages, errorMsg, runModel, deps) {
50
51
  try {
51
- const fallbackTool = deps.findTool("read_file");
52
+ const fallbackTool = deps.findTool("read_file", runId);
52
53
  if (!fallbackTool)
53
54
  return false;
54
55
  const fbInput = { filePath: tc.args?.filePath ?? "" };
@@ -69,7 +70,7 @@ export async function tryReadFileFallback(tc, runAbort, runId, ctx, sessionId, m
69
70
  sessionId: sessionId ?? "", runId,
70
71
  agentId: deps.currentAgent?.id ?? "",
71
72
  agentName: deps.currentAgent?.profile.name ?? "",
72
- signal: runAbort.signal, env: process.env,
73
+ signal: runAbort.signal, env: sanitizeEnv(),
73
74
  ask: async (input) => {
74
75
  return deps.permissionGate.askForTool("read_file", tc.toolId, runId, sessionId ?? "", input.reason, deps.currentAgent?.id ?? "", ctx.traceId, deps.pluginManager);
75
76
  },
@@ -1 +1 @@
1
- {"version":3,"file":"tool-error-router.js","sourceRoot":"","sources":["../../src/kernel/tool-error-router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-error-router.js","sourceRoot":"","sources":["../../src/kernel/tool-error-router.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -1,11 +1,16 @@
1
+ /** Severity levels supported by the SDK logger. */
1
2
  export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
3
+ /** Minimal logger interface with level-scoped methods. */
2
4
  export interface Logger {
3
5
  debug(message: string, ...args: unknown[]): void;
4
6
  info(message: string, ...args: unknown[]): void;
5
7
  warn(message: string, ...args: unknown[]): void;
6
8
  error(message: string, ...args: unknown[]): void;
7
9
  }
10
+ /** Replace the active logger (defaults to a console logger). */
8
11
  export declare function setLogger(newLogger: Logger): void;
12
+ /** Set the minimum level the active logger will emit. */
9
13
  export declare function setLogLevel(level: LogLevel): void;
14
+ /** Get the active logger instance. */
10
15
  export declare function getLogger(): Logger;
11
16
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAsCD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,0DAA0D;AAC1D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAsCD,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAED,sCAAsC;AACtC,wBAAgB,SAAS,IAAI,MAAM,CAElC"}
package/dist/logger.js CHANGED
@@ -32,12 +32,15 @@ function createConsoleLogger() {
32
32
  };
33
33
  }
34
34
  let logger = createConsoleLogger();
35
+ /** Replace the active logger (defaults to a console logger). */
35
36
  export function setLogger(newLogger) {
36
37
  logger = newLogger;
37
38
  }
39
+ /** Set the minimum level the active logger will emit. */
38
40
  export function setLogLevel(level) {
39
41
  currentLevel = level;
40
42
  }
43
+ /** Get the active logger instance. */
41
44
  export function getLogger() {
42
45
  return logger;
43
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,8DAA8D;AAW9D,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,IAAI,YAAY,GAAa,MAAM,CAAC;AAEpC,SAAS,mBAAmB;IAC1B,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,GAAW,mBAAmB,EAAE,CAAC;AAE3C,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,8DAA8D;AAa9D,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,IAAI,YAAY,GAAa,MAAM,CAAC;AAEpC,SAAS,mBAAmB;IAC1B,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YACzB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,UAAU,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;YAC1B,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,IAAI,MAAM,GAAW,mBAAmB,EAAE,CAAC;AAE3C,gEAAgE;AAChE,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,GAAG,SAAS,CAAC;AACrB,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/model.d.ts CHANGED
@@ -3,8 +3,10 @@
3
3
  * Re-exports model types from @vinhnt-sdk/schema.
4
4
  * InMemoryModelRegistry stays here (class, not interface).
5
5
  */
6
- export type { ToolCall, MessageContentPart, ChatMessage, ModelRequest, ModelResponse, ModelStreamEvent, ModelPricing, ModelCapabilities, ModelProvider, ModelRegistry, ToolDefinitionLike, } from "@vinhnt-sdk/schema";
6
+ export type { ContentPart, ModelUsage, ToolCallResult, ToolCall, MessageContentPart, ChatMessage, ModelRequest, ModelResponse, ModelStreamEvent, ModelPricing, ModelCapabilities, ModelProvider, ModelRegistry, ToolDefinitionLike, } from "@vinhnt-sdk/schema";
7
+ export { getTextContent } from "@vinhnt-sdk/schema";
7
8
  import type { ModelProvider, ModelRegistry } from "@vinhnt-sdk/schema";
9
+ /** In-memory {@link ModelRegistry} keyed by provider id. */
8
10
  export declare class InMemoryModelRegistry implements ModelRegistry {
9
11
  private readonly providers;
10
12
  register(id: string, provider: ModelProvider): void;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvE,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAInD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C,IAAI,IAAI,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,EAAE;CAG3D"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EACV,WAAW,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEvE,4DAA4D;AAC5D,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAInD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C,IAAI,IAAI,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,EAAE;CAG3D"}
package/dist/model.js CHANGED
@@ -1,3 +1,5 @@
1
+ export { getTextContent } from "@vinhnt-sdk/schema";
2
+ /** In-memory {@link ModelRegistry} keyed by provider id. */
1
3
  export class InMemoryModelRegistry {
2
4
  providers = new Map();
3
5
  register(id, provider) {
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAqBA,MAAM,OAAO,qBAAqB;IACf,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE9D,QAAQ,CAAC,EAAU,EAAE,QAAuB;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,4DAA4D;AAC5D,MAAM,OAAO,qBAAqB;IACf,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE9D,QAAQ,CAAC,EAAU,EAAE,QAAuB;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { ToolDefinition } from "@vinhnt-sdk/tools";
2
2
  import type { ContextSourceValue } from "../system-context/types.js";
3
3
  import type { AgentRegistry } from "../agent/agent-registry.js";
4
4
  import type { ToolProviderRegistry } from "@vinhnt-sdk/tools";
5
- import type { EventBus } from "../event-bus/types.js";
5
+ import type { EventBus } from "@vinhnt-sdk/event";
6
6
  import type { Plugin, PluginManager, HookName, HookPayload, HookReturn } from "../plugin.js";
7
7
  export interface PluginManagerConfig {
8
8
  agentRegistry: AgentRegistry;
@@ -17,6 +17,8 @@ export declare class DefaultPluginManager implements PluginManager {
17
17
  private readonly agentRegistry;
18
18
  private readonly toolProviderRegistry;
19
19
  private readonly eventBus;
20
+ /** Per-plugin effect disposables — cleaned up on deactivation. */
21
+ private readonly pluginEffects;
20
22
  constructor(config: PluginManagerConfig);
21
23
  /** @deprecated Use config-based constructor: `new DefaultPluginManager({ agentRegistry, toolProviderRegistry, eventBus })` */
22
24
  constructor(agentRegistry: AgentRegistry);
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugin/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EACK,MAAM,EAAE,aAAa,EACvB,QAAQ,EAAE,WAAW,EAAE,UAAU,EAC/C,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;gBAExB,MAAM,EAAE,mBAAmB;IACvC,8HAA8H;gBAClH,aAAa,EAAE,aAAa;IAsBxC,IAAI,KAAK,IAAI,SAAS,cAAc,EAAE,CAErC;IAED,IAAI,cAAc,IAAI,SAAS,kBAAkB,EAAE,CAElD;IAEK,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3C,IAAI,IAAI,SAAS,MAAM,EAAE;IAIzB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInC,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAM/B,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAC/B,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CA6C1B"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/plugin/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EACK,MAAM,EAAE,aAAa,EACvB,QAAQ,EAAE,WAAW,EAAE,UAAU,EAC/C,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;gBAErD,MAAM,EAAE,mBAAmB;IACvC,8HAA8H;gBAClH,aAAa,EAAE,aAAa;IAsBxC,IAAI,KAAK,IAAI,SAAS,cAAc,EAAE,CAErC;IAED,IAAI,cAAc,IAAI,SAAS,kBAAkB,EAAE,CAElD;IAEK,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsDnC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3C,IAAI,IAAI,SAAS,MAAM,EAAE;IAIzB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInC,gBAAgB,IAAI,SAAS,MAAM,EAAE;IAM/B,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAC/B,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CA6C1B"}
@@ -1,3 +1,4 @@
1
+ import { createDisposable } from "../plugin.js";
1
2
  import { getLogger } from "../logger.js";
2
3
  export class DefaultPluginManager {
3
4
  plugins = new Map();
@@ -7,6 +8,8 @@ export class DefaultPluginManager {
7
8
  agentRegistry;
8
9
  toolProviderRegistry;
9
10
  eventBus;
11
+ /** Per-plugin effect disposables — cleaned up on deactivation. */
12
+ pluginEffects = new Map();
10
13
  constructor(configOrRegistry) {
11
14
  if ("toolProviderRegistry" in configOrRegistry) {
12
15
  this.agentRegistry = configOrRegistry.agentRegistry;
@@ -44,13 +47,49 @@ export class DefaultPluginManager {
44
47
  const plugin = this.plugins.get(id);
45
48
  if (!plugin)
46
49
  throw new Error(`Plugin '${id}' not found`);
50
+ const effects = [];
51
+ this.pluginEffects.set(id, effects);
52
+ const addEffect = (d) => { effects.push(d); return d; };
47
53
  const ctx = {
48
- registerTool: (tool) => { this.toolRegistrations.push(tool); },
49
- registerContextSource: (source) => { this.ctxSources.push(source); },
50
- registerAgent: async (config) => { await this.agentRegistry.register(config); },
54
+ registerTool: (tool) => {
55
+ this.toolRegistrations.push(tool);
56
+ return addEffect(createDisposable(async () => {
57
+ const idx = this.toolRegistrations.indexOf(tool);
58
+ if (idx >= 0)
59
+ this.toolRegistrations.splice(idx, 1);
60
+ }));
61
+ },
62
+ registerContextSource: (source) => {
63
+ this.ctxSources.push(source);
64
+ return addEffect(createDisposable(async () => {
65
+ const idx = this.ctxSources.indexOf(source);
66
+ if (idx >= 0)
67
+ this.ctxSources.splice(idx, 1);
68
+ }));
69
+ },
70
+ registerAgent: async (config) => {
71
+ await this.agentRegistry.register(config);
72
+ return addEffect(createDisposable(async () => {
73
+ // Agent deregistration — best-effort
74
+ }));
75
+ },
51
76
  getAgentRegistry: () => this.agentRegistry,
52
77
  getToolProviderRegistry: () => this.toolProviderRegistry,
53
78
  getEventBus: () => this.eventBus,
79
+ effect: (cleanup) => addEffect(createDisposable(cleanup)),
80
+ on: (event, handler) => {
81
+ let unsubscribe;
82
+ if (typeof event === "string") {
83
+ // String channel — use subscribeAll with namespace
84
+ unsubscribe = this.eventBus.subscribeAll(handler, event);
85
+ }
86
+ else {
87
+ // EventDefinition — use typed subscribe
88
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
+ unsubscribe = this.eventBus.subscribe(event, handler);
90
+ }
91
+ return addEffect(createDisposable(async () => { unsubscribe(); }));
92
+ },
54
93
  };
55
94
  await plugin.activate(ctx);
56
95
  this.activePluginIds.add(id);
@@ -59,6 +98,15 @@ export class DefaultPluginManager {
59
98
  const plugin = this.plugins.get(id);
60
99
  if (!plugin)
61
100
  throw new Error(`Plugin '${id}' not found`);
101
+ // Clean up per-plugin effects in reverse order
102
+ const effects = this.pluginEffects.get(id) ?? [];
103
+ for (let i = effects.length - 1; i >= 0; i--) {
104
+ try {
105
+ await effects[i].dispose();
106
+ }
107
+ catch { /* best-effort */ }
108
+ }
109
+ this.pluginEffects.delete(id);
62
110
  await plugin.deactivate?.();
63
111
  this.activePluginIds.delete(id);
64
112
  }