@namzu/sdk 7.0.0 → 9.0.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/CHANGELOG.md +652 -0
- package/dist/agents/SupervisorAgent.d.ts.map +1 -1
- package/dist/agents/SupervisorAgent.js +186 -163
- package/dist/agents/SupervisorAgent.js.map +1 -1
- package/dist/agents/__tests__/a-policy-nobody-can-select.test.d.ts +2 -0
- package/dist/agents/__tests__/a-policy-nobody-can-select.test.d.ts.map +1 -0
- package/dist/agents/__tests__/a-policy-nobody-can-select.test.js +177 -0
- package/dist/agents/__tests__/a-policy-nobody-can-select.test.js.map +1 -0
- package/dist/agents/__tests__/supervisor-inbox-scope.test.d.ts +2 -0
- package/dist/agents/__tests__/supervisor-inbox-scope.test.d.ts.map +1 -0
- package/dist/agents/__tests__/supervisor-inbox-scope.test.js +125 -0
- package/dist/agents/__tests__/supervisor-inbox-scope.test.js.map +1 -0
- package/dist/bridge/a2a/mapper.d.ts.map +1 -1
- package/dist/bridge/a2a/mapper.js +4 -0
- package/dist/bridge/a2a/mapper.js.map +1 -1
- package/dist/bridge/sse/mapper.d.ts.map +1 -1
- package/dist/bridge/sse/mapper.js +24 -0
- package/dist/bridge/sse/mapper.js.map +1 -1
- package/dist/contracts/api.d.ts +1 -1
- package/dist/contracts/api.d.ts.map +1 -1
- package/dist/gateway/__tests__/a-knob-nobody-can-turn.test.d.ts +2 -0
- package/dist/gateway/__tests__/a-knob-nobody-can-turn.test.d.ts.map +1 -0
- package/dist/gateway/__tests__/a-knob-nobody-can-turn.test.js +114 -0
- package/dist/gateway/__tests__/a-knob-nobody-can-turn.test.js.map +1 -0
- package/dist/gateway/__tests__/completion-inbox.test.js +292 -2
- package/dist/gateway/__tests__/completion-inbox.test.js.map +1 -1
- package/dist/gateway/completion-inbox.d.ts +94 -6
- package/dist/gateway/completion-inbox.d.ts.map +1 -1
- package/dist/gateway/completion-inbox.js +235 -15
- package/dist/gateway/completion-inbox.js.map +1 -1
- package/dist/gateway/local.d.ts.map +1 -1
- package/dist/gateway/local.js +19 -6
- package/dist/gateway/local.js.map +1 -1
- package/dist/manager/agent/__tests__/lifecycle.test.js +56 -0
- package/dist/manager/agent/__tests__/lifecycle.test.js.map +1 -1
- package/dist/manager/agent/lifecycle.d.ts.map +1 -1
- package/dist/manager/agent/lifecycle.js +62 -33
- package/dist/manager/agent/lifecycle.js.map +1 -1
- package/dist/manager/plan/__tests__/a-plan-that-succeeded-is-not-failed.test.d.ts +2 -0
- package/dist/manager/plan/__tests__/a-plan-that-succeeded-is-not-failed.test.d.ts.map +1 -0
- package/dist/manager/plan/__tests__/a-plan-that-succeeded-is-not-failed.test.js +73 -0
- package/dist/manager/plan/__tests__/a-plan-that-succeeded-is-not-failed.test.js.map +1 -0
- package/dist/manager/plan/lifecycle.d.ts +48 -0
- package/dist/manager/plan/lifecycle.d.ts.map +1 -1
- package/dist/manager/plan/lifecycle.js +56 -0
- package/dist/manager/plan/lifecycle.js.map +1 -1
- package/dist/manager/run/persistence.d.ts +8 -0
- package/dist/manager/run/persistence.d.ts.map +1 -1
- package/dist/manager/run/persistence.js +12 -0
- package/dist/manager/run/persistence.js.map +1 -1
- package/dist/run/reporter.d.ts.map +1 -1
- package/dist/run/reporter.js +11 -0
- package/dist/run/reporter.js.map +1 -1
- package/dist/runtime/query/__tests__/completion-does-not-erase-the-answer.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/completion-does-not-erase-the-answer.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/completion-does-not-erase-the-answer.test.js +142 -0
- package/dist/runtime/query/__tests__/completion-does-not-erase-the-answer.test.js.map +1 -0
- package/dist/runtime/query/__tests__/completion-notification.test.js +414 -32
- package/dist/runtime/query/__tests__/completion-notification.test.js.map +1 -1
- package/dist/runtime/query/__tests__/context-size-on-the-wire.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/context-size-on-the-wire.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/context-size-on-the-wire.test.js +100 -0
- package/dist/runtime/query/__tests__/context-size-on-the-wire.test.js.map +1 -0
- package/dist/runtime/query/__tests__/the-plan-graph-reaches-a-host.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/the-plan-graph-reaches-a-host.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/the-plan-graph-reaches-a-host.test.js +62 -0
- package/dist/runtime/query/__tests__/the-plan-graph-reaches-a-host.test.js.map +1 -0
- package/dist/runtime/query/events.d.ts.map +1 -1
- package/dist/runtime/query/events.js +5 -0
- package/dist/runtime/query/events.js.map +1 -1
- package/dist/runtime/query/guard.d.ts +28 -0
- package/dist/runtime/query/guard.d.ts.map +1 -1
- package/dist/runtime/query/guard.js +31 -0
- package/dist/runtime/query/guard.js.map +1 -1
- package/dist/runtime/query/iteration/__tests__/settle-grace.test.d.ts +2 -0
- package/dist/runtime/query/iteration/__tests__/settle-grace.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/__tests__/settle-grace.test.js +226 -0
- package/dist/runtime/query/iteration/__tests__/settle-grace.test.js.map +1 -0
- package/dist/runtime/query/iteration/index.d.ts +92 -0
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +814 -566
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/__tests__/compaction-declined.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/__tests__/compaction-declined.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/__tests__/compaction-declined.test.js +95 -0
- package/dist/runtime/query/iteration/phases/__tests__/compaction-declined.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts +34 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +61 -4
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/store/task/disk.d.ts.map +1 -1
- package/dist/store/task/disk.js +14 -0
- package/dist/store/task/disk.js.map +1 -1
- package/dist/store/task/memory.d.ts.map +1 -1
- package/dist/store/task/memory.js +14 -0
- package/dist/store/task/memory.js.map +1 -1
- package/dist/tools/__tests__/untrusted-envelope.test.js +16 -0
- package/dist/tools/__tests__/untrusted-envelope.test.js.map +1 -1
- package/dist/tools/coordinator/__tests__/a-failed-worker-is-not-an-answer.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/a-failed-worker-is-not-an-answer.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/a-failed-worker-is-not-an-answer.test.js +101 -0
- package/dist/tools/coordinator/__tests__/a-failed-worker-is-not-an-answer.test.js.map +1 -0
- package/dist/tools/coordinator/__tests__/completion-delivery.test.js +117 -0
- package/dist/tools/coordinator/__tests__/completion-delivery.test.js.map +1 -1
- package/dist/tools/coordinator/__tests__/task-list.test.js +57 -0
- package/dist/tools/coordinator/__tests__/task-list.test.js.map +1 -1
- package/dist/tools/coordinator/__tests__/the-plan-a-human-approves.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/the-plan-a-human-approves.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/the-plan-a-human-approves.test.js +99 -0
- package/dist/tools/coordinator/__tests__/the-plan-a-human-approves.test.js.map +1 -0
- package/dist/tools/coordinator/agent.d.ts.map +1 -1
- package/dist/tools/coordinator/agent.js +17 -23
- package/dist/tools/coordinator/agent.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +142 -14
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/outcome.d.ts +60 -0
- package/dist/tools/coordinator/outcome.d.ts.map +1 -0
- package/dist/tools/coordinator/outcome.js +68 -0
- package/dist/tools/coordinator/outcome.js.map +1 -0
- package/dist/tools/untrusted-envelope.d.ts.map +1 -1
- package/dist/tools/untrusted-envelope.js +9 -1
- package/dist/tools/untrusted-envelope.js.map +1 -1
- package/dist/types/agent/gateway.d.ts +37 -2
- package/dist/types/agent/gateway.d.ts.map +1 -1
- package/dist/types/agent/supervisor.d.ts +38 -1
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/plan/index.d.ts +26 -0
- package/dist/types/plan/index.d.ts.map +1 -1
- package/dist/types/provider/interface.d.ts +35 -0
- package/dist/types/provider/interface.d.ts.map +1 -1
- package/dist/types/run/entity.d.ts +16 -0
- package/dist/types/run/entity.d.ts.map +1 -1
- package/dist/types/run/events.d.ts +92 -0
- package/dist/types/run/events.d.ts.map +1 -1
- package/dist/types/run/events.js.map +1 -1
- package/dist/types/run/prepare-step.d.ts +17 -2
- package/dist/types/run/prepare-step.d.ts.map +1 -1
- package/dist/types/task/index.d.ts +19 -1
- package/dist/types/task/index.d.ts.map +1 -1
- package/dist/types/task/index.js +10 -1
- package/dist/types/task/index.js.map +1 -1
- package/dist/types/verification/index.d.ts +98 -0
- package/dist/types/verification/index.d.ts.map +1 -1
- package/dist/types/verification/index.js +10 -0
- package/dist/types/verification/index.js.map +1 -1
- package/dist/verification/__tests__/argument-pattern.test.d.ts +2 -0
- package/dist/verification/__tests__/argument-pattern.test.d.ts.map +1 -0
- package/dist/verification/__tests__/argument-pattern.test.js +122 -0
- package/dist/verification/__tests__/argument-pattern.test.js.map +1 -0
- package/dist/verification/gate.d.ts.map +1 -1
- package/dist/verification/gate.js +44 -0
- package/dist/verification/gate.js.map +1 -1
- package/dist/verification/rules.d.ts.map +1 -1
- package/dist/verification/rules.js +27 -0
- package/dist/verification/rules.js.map +1 -1
- package/package.json +1 -1
- package/src/agents/SupervisorAgent.ts +189 -167
- package/src/agents/__tests__/a-policy-nobody-can-select.test.ts +202 -0
- package/src/agents/__tests__/supervisor-inbox-scope.test.ts +149 -0
- package/src/bridge/a2a/mapper.ts +4 -0
- package/src/bridge/sse/mapper.ts +25 -0
- package/src/contracts/api.ts +1 -0
- package/src/gateway/__tests__/a-knob-nobody-can-turn.test.ts +139 -0
- package/src/gateway/__tests__/completion-inbox.test.ts +348 -2
- package/src/gateway/completion-inbox.ts +248 -16
- package/src/gateway/local.ts +19 -7
- package/src/manager/agent/__tests__/lifecycle.test.ts +74 -0
- package/src/manager/agent/lifecycle.ts +72 -42
- package/src/manager/plan/__tests__/a-plan-that-succeeded-is-not-failed.test.ts +88 -0
- package/src/manager/plan/lifecycle.ts +61 -0
- package/src/manager/run/persistence.ts +12 -0
- package/src/run/reporter.ts +12 -0
- package/src/runtime/query/__tests__/completion-does-not-erase-the-answer.test.ts +163 -0
- package/src/runtime/query/__tests__/completion-notification.test.ts +486 -34
- package/src/runtime/query/__tests__/context-size-on-the-wire.test.ts +122 -0
- package/src/runtime/query/__tests__/the-plan-graph-reaches-a-host.test.ts +79 -0
- package/src/runtime/query/events.ts +5 -0
- package/src/runtime/query/guard.ts +32 -0
- package/src/runtime/query/iteration/__tests__/settle-grace.test.ts +265 -0
- package/src/runtime/query/iteration/index.ts +902 -636
- package/src/runtime/query/iteration/phases/__tests__/compaction-declined.test.ts +124 -0
- package/src/runtime/query/iteration/phases/compaction.ts +83 -10
- package/src/store/task/disk.ts +15 -0
- package/src/store/task/memory.ts +15 -0
- package/src/tools/__tests__/untrusted-envelope.test.ts +23 -0
- package/src/tools/coordinator/__tests__/a-failed-worker-is-not-an-answer.test.ts +133 -0
- package/src/tools/coordinator/__tests__/completion-delivery.test.ts +147 -0
- package/src/tools/coordinator/__tests__/task-list.test.ts +72 -0
- package/src/tools/coordinator/__tests__/the-plan-a-human-approves.test.ts +121 -0
- package/src/tools/coordinator/agent.ts +17 -25
- package/src/tools/coordinator/index.ts +155 -18
- package/src/tools/coordinator/outcome.ts +70 -0
- package/src/tools/untrusted-envelope.ts +9 -1
- package/src/types/agent/gateway.ts +37 -2
- package/src/types/agent/supervisor.ts +40 -1
- package/src/types/plan/index.ts +29 -0
- package/src/types/provider/interface.ts +39 -0
- package/src/types/run/entity.ts +17 -0
- package/src/types/run/events.ts +92 -0
- package/src/types/run/prepare-step.ts +17 -2
- package/src/types/task/index.ts +22 -3
- package/src/types/verification/index.ts +61 -0
- package/src/verification/__tests__/argument-pattern.test.ts +158 -0
- package/src/verification/gate.ts +45 -0
- package/src/verification/rules.ts +28 -0
|
@@ -121,7 +121,14 @@ export class SupervisorAgent extends AbstractAgent {
|
|
|
121
121
|
projectId,
|
|
122
122
|
parentActor,
|
|
123
123
|
};
|
|
124
|
-
|
|
124
|
+
// The only hop between the config and the gateway's policy. Omit it
|
|
125
|
+
// and the field is settable, documented, and read by nothing —
|
|
126
|
+
// which is exactly the state it was in before.
|
|
127
|
+
gateway = new LocalTaskGateway(config.agentManager, taskContext, listener, input, {
|
|
128
|
+
...(config.siblingFailurePolicy
|
|
129
|
+
? { siblingFailurePolicy: config.siblingFailurePolicy }
|
|
130
|
+
: {}),
|
|
131
|
+
});
|
|
125
132
|
}
|
|
126
133
|
else {
|
|
127
134
|
throw new Error("SupervisorAgentConfig requires either 'gateway' or 'agentManager'");
|
|
@@ -143,171 +150,187 @@ export class SupervisorAgent extends AbstractAgent {
|
|
|
143
150
|
// implements, so a host gateway needs no change to take part.
|
|
144
151
|
const completionInbox = new CompletionInbox();
|
|
145
152
|
completionInbox.attach(gateway);
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
153
|
+
// From here to the return in a try/finally, so the listener is released
|
|
154
|
+
// on every way out. The registration loop below can throw
|
|
155
|
+
// ToolNameCollisionError, and a host that hits that fixes its config and
|
|
156
|
+
// runs again — which is how a leak of one listener per run becomes a leak
|
|
157
|
+
// of one per ATTEMPT.
|
|
158
|
+
try {
|
|
159
|
+
const coordinatorToolDefs = buildCoordinatorTools({
|
|
160
|
+
gateway,
|
|
161
|
+
completionInbox,
|
|
162
|
+
workingDirectory: input.workingDirectory,
|
|
163
|
+
runtimeContext: input.runtimeContext,
|
|
164
|
+
allowedAgentIds: config.agentIds,
|
|
165
|
+
// The only hop between the config and the decision. Omit it and
|
|
166
|
+
// everything still compiles: the field is settable, documented, and
|
|
167
|
+
// read by nothing — which is the shape of a declaration this repo
|
|
168
|
+
// has had to go and delete before.
|
|
169
|
+
allowDelegation: config.allowDelegation,
|
|
170
|
+
taskStore: input.taskStore,
|
|
171
|
+
runId,
|
|
172
|
+
getPlanManager: () => planManagerRef,
|
|
173
|
+
onTaskLaunched: (agentTaskId, meta) => {
|
|
174
|
+
launchedTasks.set(agentTaskId, meta);
|
|
175
|
+
},
|
|
176
|
+
// With a resume handler present the coordinator surface gains
|
|
177
|
+
// ask_user_question — the model can park the run on a question
|
|
178
|
+
// routed through the same HITL channel as plan approvals.
|
|
179
|
+
...(config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
|
|
180
|
+
questionParks,
|
|
181
|
+
pendingAnswers,
|
|
182
|
+
});
|
|
183
|
+
const tools = new ToolRegistry();
|
|
184
|
+
if (config.tools) {
|
|
185
|
+
for (const tool of config.tools.getAll()) {
|
|
186
|
+
tools.register(tool, config.tools.getAvailability(tool.name));
|
|
187
|
+
}
|
|
174
188
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
189
|
+
// Registered the way every other kernel-mounted tool in this SDK is
|
|
190
|
+
// registered: honouring `runtimeToolOverrides`, and refusing to take a
|
|
191
|
+
// name the host already used.
|
|
192
|
+
//
|
|
193
|
+
// Both halves were missing here and nowhere else. `runtimeToolOverrides`
|
|
194
|
+
// is declared on `AgentInput`, is forwarded into this very `drainQuery`
|
|
195
|
+
// call below, and is consulted for the task tools and for the advisory
|
|
196
|
+
// tools — but the coordinator tools were registered before that and
|
|
197
|
+
// unconditionally, so `{ create_task: 'disabled' }` was honoured
|
|
198
|
+
// everywhere except the one surface a host would most want to decline.
|
|
199
|
+
// A run that must not delegate had prompt text and a gateway refusal as
|
|
200
|
+
// its only defences.
|
|
201
|
+
//
|
|
202
|
+
// Collision REFUSES rather than overwrites, and the principle is
|
|
203
|
+
// complete mediation rather than fail-safe defaults: "proposals to gain
|
|
204
|
+
// performance by remembering the result of an authority check [must] be
|
|
205
|
+
// examined skeptically. If a change in authority occurs, such remembered
|
|
206
|
+
// results must be systematically updated" (Saltzer & Schroeder 1975,
|
|
207
|
+
// §I.A.3(c)). A registry entry is a remembered binding of a name to an
|
|
208
|
+
// authority, and a later write that rebinds the name leaves every
|
|
209
|
+
// decision made about the old binding stale.
|
|
210
|
+
//
|
|
211
|
+
// The counter-argument is that today the host's tool merely loses
|
|
212
|
+
// quietly and the run still works, so six reserved names is a real cost
|
|
213
|
+
// on a name a consumer may have chosen long ago. It does not hold,
|
|
214
|
+
// because "loses quietly" is not what happens. `registerOne` ends with
|
|
215
|
+
// `availability.set(id, state)` and this call passes no state, so a tool
|
|
216
|
+
// the host registered `deferred` or `suspended` is silently PROMOTED to
|
|
217
|
+
// active under someone else's implementation; and because the store is a
|
|
218
|
+
// Map, the replacement inherits the host's insertion position in the
|
|
219
|
+
// prompt-cache prefix. That is a different authorization surface, not a
|
|
220
|
+
// lost registration. CWE-390 is the shape `ManagedRegistry` has here —
|
|
221
|
+
// detection of an error condition without action — and CWE-694's own
|
|
222
|
+
// mitigation is nearly this fix: do not operate any resource with a
|
|
223
|
+
// non-unique identifier, and report the error.
|
|
224
|
+
//
|
|
225
|
+
// Refusing is also what the peer set does. One runtime's registry
|
|
226
|
+
// primitive throws on both duplicate and reserved names; another refuses
|
|
227
|
+
// its injected delegation name in a pre-flight that tells the author to
|
|
228
|
+
// rename. Closer to home, `ProviderRegistry.register` already throws
|
|
229
|
+
// unless the caller passes `{ replace: true }` — declared intent is what
|
|
230
|
+
// separates a legitimate replacement from an accidental one, and no such
|
|
231
|
+
// intent is expressible here.
|
|
232
|
+
const overrides = input.runtimeToolOverrides;
|
|
233
|
+
for (const tool of coordinatorToolDefs) {
|
|
234
|
+
const override = overrides?.[tool.name];
|
|
235
|
+
if (override === 'disabled')
|
|
236
|
+
continue;
|
|
237
|
+
if (config.tools?.has(tool.name)) {
|
|
238
|
+
throw new ToolNameCollisionError(tool.name, 'the supervisor coordinator surface');
|
|
239
|
+
}
|
|
240
|
+
tools.register(tool, override ?? 'active');
|
|
226
241
|
}
|
|
227
|
-
|
|
242
|
+
const childInvocationState = deriveChildState(config.invocationState ?? { tenantId }, this.metadata.id);
|
|
243
|
+
const run = await drainQuery({
|
|
244
|
+
systemPrompt: config.systemPrompt,
|
|
245
|
+
skills: config.skills,
|
|
246
|
+
provider: config.provider,
|
|
247
|
+
tools,
|
|
248
|
+
runConfig: {
|
|
249
|
+
model: config.model,
|
|
250
|
+
tokenBudget: config.tokenBudget,
|
|
251
|
+
timeoutMs: config.timeoutMs,
|
|
252
|
+
maxIterations: config.maxIterations,
|
|
253
|
+
temperature: config.temperature,
|
|
254
|
+
env: config.env,
|
|
255
|
+
// See ReactiveAgent: a hand-listed literal drops what nobody
|
|
256
|
+
// remembered to add, and reports nothing when it does.
|
|
257
|
+
...(config.thinking ? { thinking: config.thinking } : {}),
|
|
258
|
+
...(config.effort ? { effort: config.effort } : {}),
|
|
259
|
+
},
|
|
260
|
+
questionParks,
|
|
261
|
+
pendingAnswers,
|
|
262
|
+
// How wide a fan-out actually runs. Absent leaves the kernel
|
|
263
|
+
// default — the same forwarding ReactiveAgent has always done,
|
|
264
|
+
// missing from the one agent whose job is delegation.
|
|
265
|
+
...(config.maxToolConcurrency !== undefined
|
|
266
|
+
? { maxToolConcurrency: config.maxToolConcurrency }
|
|
267
|
+
: {}),
|
|
268
|
+
agentId: this.metadata.id,
|
|
269
|
+
agentName: this.metadata.name,
|
|
270
|
+
workingDirectory: input.workingDirectory,
|
|
271
|
+
messages: input.messages,
|
|
272
|
+
signal: input.signal,
|
|
273
|
+
sessionId,
|
|
274
|
+
threadId,
|
|
275
|
+
projectId,
|
|
276
|
+
tenantId,
|
|
277
|
+
runId,
|
|
278
|
+
parentRunId: config.parentRunId,
|
|
279
|
+
depth: config.depth,
|
|
280
|
+
contextLevel: 'full',
|
|
281
|
+
onContextCreated: ({ planManager }) => {
|
|
282
|
+
planManagerRef = planManager;
|
|
283
|
+
},
|
|
284
|
+
taskStore: input.taskStore,
|
|
285
|
+
runtimeToolOverrides: input.runtimeToolOverrides,
|
|
286
|
+
runtimeContext: input.runtimeContext,
|
|
287
|
+
taskGateway: gateway,
|
|
288
|
+
completionInbox,
|
|
289
|
+
launchedTasks,
|
|
290
|
+
advisory: config.advisory,
|
|
291
|
+
invocationState: childInvocationState,
|
|
292
|
+
// HITL surface: forward optional review-time hooks so hosts can
|
|
293
|
+
// run "Ask before acting" supervisors instead of the default
|
|
294
|
+
// auto-approve. drainQuery falls back to autoApproveHandler
|
|
295
|
+
// when resumeHandler is omitted (= same behaviour as before).
|
|
296
|
+
...(config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
|
|
297
|
+
// Forwarded for the same reason the handler is. A capability the
|
|
298
|
+
// kernel honours in `drainQuery` but that never reaches the
|
|
299
|
+
// surface a host actually constructs is a capability nobody can
|
|
300
|
+
// use — which is the shape of defect this file has already been
|
|
301
|
+
// corrected for twice.
|
|
302
|
+
...(config.steering ? { steering: config.steering } : {}),
|
|
303
|
+
...(config.verificationGate ? { verificationGate: config.verificationGate } : {}),
|
|
304
|
+
...(config.sandboxProvider ? { sandboxProvider: config.sandboxProvider } : {}),
|
|
305
|
+
// Working-memory / compaction seam (optional; absent => unchanged
|
|
306
|
+
// run path, byte-identical for every existing consumer).
|
|
307
|
+
...(config.compactionConfig ? { compactionConfig: config.compactionConfig } : {}),
|
|
308
|
+
...(config.workingMemoryProvider
|
|
309
|
+
? { workingMemoryProvider: config.workingMemoryProvider }
|
|
310
|
+
: {}),
|
|
311
|
+
}, listener);
|
|
312
|
+
const taskHandles = gateway.listTasks();
|
|
313
|
+
const taskResults = synthesizeTaskResults(taskHandles, runId);
|
|
314
|
+
const completedTasks = countCompletedTasks(taskResults);
|
|
315
|
+
return {
|
|
316
|
+
runId: run.id,
|
|
317
|
+
status: run.status === 'completed' ? 'completed' : 'failed',
|
|
318
|
+
stopReason: run.stopReason,
|
|
319
|
+
usage: run.tokenUsage,
|
|
320
|
+
cost: run.costInfo,
|
|
321
|
+
iterations: run.currentIteration,
|
|
322
|
+
durationMs: Date.now() - startTime,
|
|
323
|
+
messages: run.messages,
|
|
324
|
+
result: run.result,
|
|
325
|
+
lastError: run.lastError,
|
|
326
|
+
taskResults,
|
|
327
|
+
completedTasks,
|
|
328
|
+
totalTasks: taskResults.length,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
finally {
|
|
332
|
+
completionInbox.close();
|
|
228
333
|
}
|
|
229
|
-
const childInvocationState = deriveChildState(config.invocationState ?? { tenantId }, this.metadata.id);
|
|
230
|
-
const run = await drainQuery({
|
|
231
|
-
systemPrompt: config.systemPrompt,
|
|
232
|
-
skills: config.skills,
|
|
233
|
-
provider: config.provider,
|
|
234
|
-
tools,
|
|
235
|
-
runConfig: {
|
|
236
|
-
model: config.model,
|
|
237
|
-
tokenBudget: config.tokenBudget,
|
|
238
|
-
timeoutMs: config.timeoutMs,
|
|
239
|
-
maxIterations: config.maxIterations,
|
|
240
|
-
temperature: config.temperature,
|
|
241
|
-
env: config.env,
|
|
242
|
-
// See ReactiveAgent: a hand-listed literal drops what nobody
|
|
243
|
-
// remembered to add, and reports nothing when it does.
|
|
244
|
-
...(config.thinking ? { thinking: config.thinking } : {}),
|
|
245
|
-
...(config.effort ? { effort: config.effort } : {}),
|
|
246
|
-
},
|
|
247
|
-
questionParks,
|
|
248
|
-
pendingAnswers,
|
|
249
|
-
agentId: this.metadata.id,
|
|
250
|
-
agentName: this.metadata.name,
|
|
251
|
-
workingDirectory: input.workingDirectory,
|
|
252
|
-
messages: input.messages,
|
|
253
|
-
signal: input.signal,
|
|
254
|
-
sessionId,
|
|
255
|
-
threadId,
|
|
256
|
-
projectId,
|
|
257
|
-
tenantId,
|
|
258
|
-
runId,
|
|
259
|
-
parentRunId: config.parentRunId,
|
|
260
|
-
depth: config.depth,
|
|
261
|
-
contextLevel: 'full',
|
|
262
|
-
onContextCreated: ({ planManager }) => {
|
|
263
|
-
planManagerRef = planManager;
|
|
264
|
-
},
|
|
265
|
-
taskStore: input.taskStore,
|
|
266
|
-
runtimeToolOverrides: input.runtimeToolOverrides,
|
|
267
|
-
runtimeContext: input.runtimeContext,
|
|
268
|
-
taskGateway: gateway,
|
|
269
|
-
completionInbox,
|
|
270
|
-
launchedTasks,
|
|
271
|
-
advisory: config.advisory,
|
|
272
|
-
invocationState: childInvocationState,
|
|
273
|
-
// HITL surface: forward optional review-time hooks so hosts can
|
|
274
|
-
// run "Ask before acting" supervisors instead of the default
|
|
275
|
-
// auto-approve. drainQuery falls back to autoApproveHandler
|
|
276
|
-
// when resumeHandler is omitted (= same behaviour as before).
|
|
277
|
-
...(config.resumeHandler ? { resumeHandler: config.resumeHandler } : {}),
|
|
278
|
-
// Forwarded for the same reason the handler is. A capability the
|
|
279
|
-
// kernel honours in `drainQuery` but that never reaches the
|
|
280
|
-
// surface a host actually constructs is a capability nobody can
|
|
281
|
-
// use — which is the shape of defect this file has already been
|
|
282
|
-
// corrected for twice.
|
|
283
|
-
...(config.steering ? { steering: config.steering } : {}),
|
|
284
|
-
...(config.verificationGate ? { verificationGate: config.verificationGate } : {}),
|
|
285
|
-
...(config.sandboxProvider ? { sandboxProvider: config.sandboxProvider } : {}),
|
|
286
|
-
// Working-memory / compaction seam (optional; absent => unchanged
|
|
287
|
-
// run path, byte-identical for every existing consumer).
|
|
288
|
-
...(config.compactionConfig ? { compactionConfig: config.compactionConfig } : {}),
|
|
289
|
-
...(config.workingMemoryProvider
|
|
290
|
-
? { workingMemoryProvider: config.workingMemoryProvider }
|
|
291
|
-
: {}),
|
|
292
|
-
}, listener);
|
|
293
|
-
const taskHandles = gateway.listTasks();
|
|
294
|
-
const taskResults = synthesizeTaskResults(taskHandles, runId);
|
|
295
|
-
const completedTasks = countCompletedTasks(taskResults);
|
|
296
|
-
return {
|
|
297
|
-
runId: run.id,
|
|
298
|
-
status: run.status === 'completed' ? 'completed' : 'failed',
|
|
299
|
-
stopReason: run.stopReason,
|
|
300
|
-
usage: run.tokenUsage,
|
|
301
|
-
cost: run.costInfo,
|
|
302
|
-
iterations: run.currentIteration,
|
|
303
|
-
durationMs: Date.now() - startTime,
|
|
304
|
-
messages: run.messages,
|
|
305
|
-
result: run.result,
|
|
306
|
-
lastError: run.lastError,
|
|
307
|
-
taskResults,
|
|
308
|
-
completedTasks,
|
|
309
|
-
totalTasks: taskResults.length,
|
|
310
|
-
};
|
|
311
334
|
}
|
|
312
335
|
}
|
|
313
336
|
//# sourceMappingURL=SupervisorAgent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SupervisorAgent.js","sourceRoot":"","sources":["../../src/agents/SupervisorAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAWrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACpC,WAAkC,EAClC,KAAY,EACZ,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI;YACxB,KAAK;YACL,MAAM,EAAE,QAAiB;YACzB,KAAK,EAAE,EAAE,GAAG,iBAAiB,EAAE;YAC/B,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE;YACtB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,GAAG,GAAG,MAAM,CAAC,SAAS;YAClC,QAAQ,EAAE,EAAE;SACZ;QACD,SAAS,EAAE,KAAK;KAChB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,mBAAmB,CAAC,WAAuC;IAC1E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAA;AACzE,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,aAA2D;IACtF,IAAI,GAAG,YAAqB,CAAA;IAErC,YAAY,QAAsD;QACjE,KAAK,CAAC;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE;gBACb,aAAa,EAAE,IAAI;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,mBAAmB,EAAE,IAAI;gBACzB,iBAAiB,EAAE,IAAI;aACvB;SACD,CAAC,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CACR,KAAiB,EACjB,MAA6B,EAC7B,QAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,CACjE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC1E,CAAA;IACF,CAAC;IAEO,KAAK,CAAC,YAAY,CACzB,KAAiB,EACjB,MAA6B,EAC7B,QAA2B;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEhC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CACd,+GAA+G,CAC/G,CAAA;QACF,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAEhC,MAAM,WAAW,GAAa;YAC7B,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAa;YACpC,QAAQ;SACR,CAAA;QAED,IAAI,OAAoB,CAAA;QACxB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QACzB,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc;gBACjD,CAAC,CAAC;oBACA,GAAG,MAAM,CAAC,cAAc;oBACxB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,cAAc,CAAC,UAAU;iBACjE;gBACF,CAAC,CAAC,MAAM,CAAC,UAAU;oBAClB,CAAC,CAAE;wBACD,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC6B;oBAC5D,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,WAAW,GAAqB;gBACrC,WAAW,EAAE,KAAK;gBAClB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/B,qBAAqB,EAAE,IAAI,CAAC,eAAe;gBAC3C,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE;oBACd,KAAK,EAAE,MAAM,CAAC,WAAW;oBACzB,SAAS,EAAE,MAAM,CAAC,WAAW;iBAC7B;gBACD,cAAc,EAAE,oBAAoB;gBACpC,+DAA+D;gBAC/D,6DAA6D;gBAC7D,0DAA0D;gBAC1D,4DAA4D;gBAC5D,yDAAyD;gBACzD,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,WAAW;aACX,CAAA;YACD,OAAO,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"SupervisorAgent.js","sourceRoot":"","sources":["../../src/agents/SupervisorAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a-policy-nobody-can-select.test.d.ts","sourceRoot":"","sources":["../../../src/agents/__tests__/a-policy-nobody-can-select.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { mkdtemp } from 'node:fs/promises';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
5
|
+
import { MockLLMProvider, registerMock } from '../../provider/index.js';
|
|
6
|
+
import { ToolRegistry } from '../../registry/index.js';
|
|
7
|
+
import { SupervisorAgent } from '../SupervisorAgent.js';
|
|
8
|
+
/**
|
|
9
|
+
* `'cancel-siblings'` was unreachable from every entry point.
|
|
10
|
+
*
|
|
11
|
+
* `LocalTaskGateway` has honoured the policy since it was written and the
|
|
12
|
+
* cancellation machinery behind it is complete — but the policy was the fifth
|
|
13
|
+
* constructor argument of a gateway the supervisor builds itself, and the
|
|
14
|
+
* supervisor passed four. So every host in existence ran `'continue'`, and the
|
|
15
|
+
* only way to reach the other value was to construct the gateway by hand and
|
|
16
|
+
* hand it in through `config.gateway`. A policy nobody can select is not a
|
|
17
|
+
* policy, and the tests it had all constructed the gateway directly, so they
|
|
18
|
+
* passed while nothing upstream could turn it on.
|
|
19
|
+
*
|
|
20
|
+
* The assertion is deliberately the cancellation itself. Asserting that the run
|
|
21
|
+
* completed would pass with the forwarding deleted — a fan-out under
|
|
22
|
+
* `'continue'` completes too — and prove nothing.
|
|
23
|
+
*/
|
|
24
|
+
registerMock();
|
|
25
|
+
const FAILING = 'doomed';
|
|
26
|
+
const SLOW = 'patient';
|
|
27
|
+
/**
|
|
28
|
+
* A manager whose slow child only settles when someone cancels it — which is
|
|
29
|
+
* what an abort actually does, and what lets this run terminate at all.
|
|
30
|
+
*/
|
|
31
|
+
class FanOutManager {
|
|
32
|
+
cancelled = [];
|
|
33
|
+
tasks = new Map();
|
|
34
|
+
releaseSlow;
|
|
35
|
+
slowSettled = new Promise((resolve) => {
|
|
36
|
+
this.releaseSlow = resolve;
|
|
37
|
+
});
|
|
38
|
+
markLaunched;
|
|
39
|
+
/**
|
|
40
|
+
* The doomed child does not settle until BOTH have launched.
|
|
41
|
+
*
|
|
42
|
+
* Without this the test is a race it usually wins: the sibling policy only
|
|
43
|
+
* cancels tasks the gateway is already tracking, so if the failure lands
|
|
44
|
+
* before the slow child finishes registering, nothing is cancelled, nothing
|
|
45
|
+
* releases the slow child, and the run hangs until the delegation timeout.
|
|
46
|
+
* That happened once here. A fan-out where one leg dies while another is
|
|
47
|
+
* genuinely in flight is the scenario being tested, so the harness states
|
|
48
|
+
* it instead of hoping for it.
|
|
49
|
+
*/
|
|
50
|
+
bothLaunched = new Promise((resolve) => {
|
|
51
|
+
this.markLaunched = resolve;
|
|
52
|
+
});
|
|
53
|
+
async sendMessage(options) {
|
|
54
|
+
const failing = options.agentId === FAILING;
|
|
55
|
+
const taskId = (failing ? 'task_doomed' : 'task_patient');
|
|
56
|
+
const task = {
|
|
57
|
+
taskId,
|
|
58
|
+
agentId: options.agentId,
|
|
59
|
+
agent: {},
|
|
60
|
+
childAbortController: new AbortController(),
|
|
61
|
+
context: {},
|
|
62
|
+
// The failing child is `completed` at the gateway layer and
|
|
63
|
+
// `failed` in its own result — the two-authority split that makes
|
|
64
|
+
// this worth checking at all.
|
|
65
|
+
state: (failing ? 'completed' : 'running'),
|
|
66
|
+
pendingMessages: [],
|
|
67
|
+
createdAt: 1,
|
|
68
|
+
...(failing
|
|
69
|
+
? { result: { runId: 'run_child', status: 'failed', result: 'it broke' } }
|
|
70
|
+
: {}),
|
|
71
|
+
};
|
|
72
|
+
this.tasks.set(taskId, task);
|
|
73
|
+
if (this.tasks.size === 2)
|
|
74
|
+
this.markLaunched?.();
|
|
75
|
+
return task;
|
|
76
|
+
}
|
|
77
|
+
cancel(taskId) {
|
|
78
|
+
this.cancelled.push(taskId);
|
|
79
|
+
const task = this.tasks.get(taskId);
|
|
80
|
+
if (task)
|
|
81
|
+
task.state = 'failed';
|
|
82
|
+
this.releaseSlow?.();
|
|
83
|
+
}
|
|
84
|
+
async waitForCompletion(taskId) {
|
|
85
|
+
if (taskId === 'task_patient')
|
|
86
|
+
await this.slowSettled;
|
|
87
|
+
// The doomed child fails only once its sibling is actually in flight —
|
|
88
|
+
// see `bothLaunched`. Registration happens inside `createTask` right
|
|
89
|
+
// after `sendMessage` returns, so waiting a further microtask turn is
|
|
90
|
+
// what puts this after it rather than racing it.
|
|
91
|
+
else {
|
|
92
|
+
await this.bothLaunched.then(() => undefined);
|
|
93
|
+
// Safety valve, and it is what makes a REGRESSION legible. If the
|
|
94
|
+
// policy never reaches the gateway, nothing cancels the slow child
|
|
95
|
+
// and this run hangs until the delegation timeout — so the test
|
|
96
|
+
// would report "timed out after 60s" instead of "the sibling was
|
|
97
|
+
// not cancelled". Releasing it here means the assertion below is
|
|
98
|
+
// what fails, and it fails in a second.
|
|
99
|
+
setTimeout(() => this.releaseSlow?.(), 250).unref?.();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
getInstance(taskId) {
|
|
103
|
+
return this.tasks.get(taskId);
|
|
104
|
+
}
|
|
105
|
+
cancelAll() { }
|
|
106
|
+
async continueTask() { }
|
|
107
|
+
queueMessage() { }
|
|
108
|
+
drainMessages() {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
listByParent() {
|
|
112
|
+
return [];
|
|
113
|
+
}
|
|
114
|
+
listActive() {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
getState() {
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
on() { }
|
|
121
|
+
off() { }
|
|
122
|
+
cleanup() { }
|
|
123
|
+
dispose() { }
|
|
124
|
+
}
|
|
125
|
+
async function fanOut(policy) {
|
|
126
|
+
const agentManager = new FanOutManager();
|
|
127
|
+
const agent = new SupervisorAgent({
|
|
128
|
+
id: 'sup_policy',
|
|
129
|
+
name: 'Supervisor',
|
|
130
|
+
version: '1',
|
|
131
|
+
category: 'test',
|
|
132
|
+
description: 'coordinates workers',
|
|
133
|
+
});
|
|
134
|
+
await agent.run({
|
|
135
|
+
messages: [{ role: 'user', content: 'go', timestamp: 1 }],
|
|
136
|
+
workingDirectory: await mkdtemp(join(tmpdir(), 'namzu-sibling-policy-')),
|
|
137
|
+
}, {
|
|
138
|
+
provider: new MockLLMProvider({
|
|
139
|
+
turns: [
|
|
140
|
+
{
|
|
141
|
+
toolCalls: [
|
|
142
|
+
{
|
|
143
|
+
name: 'create_task',
|
|
144
|
+
args: { agent_id: SLOW, prompt: 'long work', description: 'the patient one' },
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: 'create_task',
|
|
148
|
+
args: { agent_id: FAILING, prompt: 'doomed work', description: 'the doomed one' },
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
},
|
|
152
|
+
{ text: 'done' },
|
|
153
|
+
],
|
|
154
|
+
}),
|
|
155
|
+
agentIds: [SLOW, FAILING],
|
|
156
|
+
agentManager,
|
|
157
|
+
tools: new ToolRegistry(),
|
|
158
|
+
systemPrompt: 'You coordinate.',
|
|
159
|
+
model: 'mock-model',
|
|
160
|
+
tokenBudget: 100_000,
|
|
161
|
+
timeoutMs: 30_000,
|
|
162
|
+
maxIterations: 3,
|
|
163
|
+
sessionId: 'ses_policy',
|
|
164
|
+
threadId: 'thd_policy',
|
|
165
|
+
projectId: 'prj_policy',
|
|
166
|
+
tenantId: 'tnt_policy',
|
|
167
|
+
...(policy ? { siblingFailurePolicy: policy } : {}),
|
|
168
|
+
});
|
|
169
|
+
return agentManager;
|
|
170
|
+
}
|
|
171
|
+
describe('a supervisor can say what a failed child means for its siblings', () => {
|
|
172
|
+
it('reaches the gateway, so cancel-siblings actually stops the rest', async () => {
|
|
173
|
+
const manager = await fanOut('cancel-siblings');
|
|
174
|
+
expect(manager.cancelled).toContain('task_patient');
|
|
175
|
+
}, 60_000);
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=a-policy-nobody-can-select.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a-policy-nobody-can-select.test.js","sourceRoot":"","sources":["../../../src/agents/__tests__/a-policy-nobody-can-select.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supervisor-inbox-scope.test.d.ts","sourceRoot":"","sources":["../../../src/agents/__tests__/supervisor-inbox-scope.test.ts"],"names":[],"mappings":""}
|