@polpo-ai/core 0.15.39 → 0.15.41
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/dist/__tests__/execution-router.test.d.ts +2 -0
- package/dist/__tests__/execution-router.test.d.ts.map +1 -0
- package/dist/__tests__/execution-router.test.js +519 -0
- package/dist/__tests__/execution-router.test.js.map +1 -0
- package/dist/__tests__/task-execution-router.test.d.ts +2 -0
- package/dist/__tests__/task-execution-router.test.d.ts.map +1 -0
- package/dist/__tests__/task-execution-router.test.js +303 -0
- package/dist/__tests__/task-execution-router.test.js.map +1 -0
- package/dist/events.d.ts +2 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/execution-router.d.ts +163 -0
- package/dist/execution-router.d.ts.map +1 -0
- package/dist/execution-router.js +584 -0
- package/dist/execution-router.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrator-context.d.ts +9 -0
- package/dist/orchestrator-context.d.ts.map +1 -1
- package/dist/schemas.d.ts +1 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +1 -0
- package/dist/schemas.js.map +1 -1
- package/dist/task-runner.d.ts +1 -0
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +19 -1
- package/dist/task-runner.js.map +1 -1
- package/dist/types/agent.d.ts +3 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js.map +1 -1
- package/dist/types/config.d.ts +3 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/package.json +5 -1
|
@@ -0,0 +1,584 @@
|
|
|
1
|
+
import { resolveLoopSelection } from "./loop/selector.js";
|
|
2
|
+
import { RUNTIME_INVOCATION_SOURCES, RUNTIME_SURFACES, } from "./runtime-plan/index.js";
|
|
3
|
+
export const EXECUTION_ROUTER_MODES = ["off", "auto"];
|
|
4
|
+
export const DEFAULT_EXECUTION_ROUTE_MIN_CONFIDENCE = 0.7;
|
|
5
|
+
export const DEFAULT_EXECUTION_ROUTE_TIMEOUT_MS = 1_000;
|
|
6
|
+
export const DEFAULT_EXECUTION_ROUTE_MAX_INPUT_CHARS = 4_096;
|
|
7
|
+
export const MAX_EXECUTION_ROUTE_INPUT_CHARS = 16_384;
|
|
8
|
+
export const MAX_EXECUTION_ROUTE_LOOPS = 32;
|
|
9
|
+
export const MAX_EXECUTION_ROUTE_NAME_CHARS = 128;
|
|
10
|
+
export const MAX_EXECUTION_ROUTE_LABEL_CHARS = 128;
|
|
11
|
+
export const MAX_EXECUTION_ROUTE_DESCRIPTION_CHARS = 512;
|
|
12
|
+
export const MAX_EXECUTION_ROUTE_LABELS = 16;
|
|
13
|
+
export const MAX_EXECUTION_ROUTE_CONTEXT_LABEL_CHARS = 64;
|
|
14
|
+
export const MAX_EXECUTION_ROUTE_REASON_CHARS = 512;
|
|
15
|
+
export class ExecutionRouteCancelledError extends Error {
|
|
16
|
+
code = "EXECUTION_ROUTE_CANCELLED";
|
|
17
|
+
constructor() {
|
|
18
|
+
super("Execution routing was cancelled");
|
|
19
|
+
this.name = "ExecutionRouteCancelledError";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function freeze(value) {
|
|
23
|
+
if (!value || typeof value !== "object" || Object.isFrozen(value))
|
|
24
|
+
return value;
|
|
25
|
+
for (const nested of Object.values(value)) {
|
|
26
|
+
freeze(nested);
|
|
27
|
+
}
|
|
28
|
+
return Object.freeze(value);
|
|
29
|
+
}
|
|
30
|
+
function plainRecord(value, label) {
|
|
31
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
32
|
+
throw new Error(`${label} must be an object`);
|
|
33
|
+
}
|
|
34
|
+
const prototype = Object.getPrototypeOf(value);
|
|
35
|
+
if (prototype !== Object.prototype && prototype !== null) {
|
|
36
|
+
throw new Error(`${label} must be a plain object`);
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
function normalizedName(value, label) {
|
|
41
|
+
if (typeof value !== "string" || !value || value.trim() !== value) {
|
|
42
|
+
throw new Error(`${label} must be a non-empty trimmed string`);
|
|
43
|
+
}
|
|
44
|
+
if (value.length > MAX_EXECUTION_ROUTE_NAME_CHARS) {
|
|
45
|
+
throw new Error(`${label} must not exceed ${MAX_EXECUTION_ROUTE_NAME_CHARS} characters`);
|
|
46
|
+
}
|
|
47
|
+
if (/[\u0000-\u001f\u007f]/.test(value)) {
|
|
48
|
+
throw new Error(`${label} must not contain control characters`);
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
function assertRuntimeMember(value, allowed, label) {
|
|
53
|
+
if (typeof value !== "string" || !allowed.includes(value)) {
|
|
54
|
+
throw new Error(`${label} must be one of: ${allowed.join(", ")}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function validateInvocation(surface, source) {
|
|
58
|
+
assertRuntimeMember(surface, RUNTIME_SURFACES, "Execution route surface");
|
|
59
|
+
assertRuntimeMember(source, RUNTIME_INVOCATION_SOURCES, "Execution route source");
|
|
60
|
+
}
|
|
61
|
+
function normalizedNames(value, label, options) {
|
|
62
|
+
if (value === undefined && options.allowEmpty)
|
|
63
|
+
return [];
|
|
64
|
+
if (!Array.isArray(value)) {
|
|
65
|
+
throw new Error(`${label} must be an array of strings`);
|
|
66
|
+
}
|
|
67
|
+
const output = [];
|
|
68
|
+
const seen = new Set();
|
|
69
|
+
for (const item of value) {
|
|
70
|
+
const name = normalizedName(item, `${label} entry`);
|
|
71
|
+
if (seen.has(name))
|
|
72
|
+
continue;
|
|
73
|
+
seen.add(name);
|
|
74
|
+
output.push(name);
|
|
75
|
+
if (output.length > MAX_EXECUTION_ROUTE_LOOPS) {
|
|
76
|
+
throw new Error(`${label} must not contain more than ${MAX_EXECUTION_ROUTE_LOOPS} values`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return output;
|
|
80
|
+
}
|
|
81
|
+
function optionalDisplayText(value, label, maximumChars) {
|
|
82
|
+
if (value === undefined)
|
|
83
|
+
return undefined;
|
|
84
|
+
if (typeof value !== "string")
|
|
85
|
+
throw new Error(`${label} must be a string`);
|
|
86
|
+
const normalized = value
|
|
87
|
+
.replace(/[\u0000-\u001f\u007f]/g, " ")
|
|
88
|
+
.replace(/\s+/g, " ")
|
|
89
|
+
.trim();
|
|
90
|
+
if (!normalized)
|
|
91
|
+
return undefined;
|
|
92
|
+
return normalized.slice(0, maximumChars);
|
|
93
|
+
}
|
|
94
|
+
function finiteRange(value, fallback, label, minimum, maximum) {
|
|
95
|
+
if (value === undefined)
|
|
96
|
+
return fallback;
|
|
97
|
+
if (typeof value !== "number" ||
|
|
98
|
+
!Number.isFinite(value) ||
|
|
99
|
+
value < minimum ||
|
|
100
|
+
value > maximum) {
|
|
101
|
+
throw new Error(`${label} must be a finite number between ${minimum} and ${maximum}`);
|
|
102
|
+
}
|
|
103
|
+
return value;
|
|
104
|
+
}
|
|
105
|
+
function positiveInteger(value, fallback, label, maximum) {
|
|
106
|
+
if (value === undefined)
|
|
107
|
+
return fallback;
|
|
108
|
+
if (typeof value !== "number" ||
|
|
109
|
+
!Number.isInteger(value) ||
|
|
110
|
+
value <= 0 ||
|
|
111
|
+
value > maximum) {
|
|
112
|
+
throw new Error(`${label} must be a positive integer no greater than ${maximum}`);
|
|
113
|
+
}
|
|
114
|
+
return value;
|
|
115
|
+
}
|
|
116
|
+
function normalizeConfig(config) {
|
|
117
|
+
const record = plainRecord(config, "Execution router config");
|
|
118
|
+
const supported = new Set([
|
|
119
|
+
"mode",
|
|
120
|
+
"allowedLoops",
|
|
121
|
+
"minConfidence",
|
|
122
|
+
"timeoutMs",
|
|
123
|
+
"maxInputChars",
|
|
124
|
+
]);
|
|
125
|
+
if (Object.keys(record).some((key) => !supported.has(key))) {
|
|
126
|
+
throw new Error("Execution router config contains unsupported fields");
|
|
127
|
+
}
|
|
128
|
+
const mode = config.mode ?? "off";
|
|
129
|
+
if (!EXECUTION_ROUTER_MODES.includes(mode)) {
|
|
130
|
+
throw new Error(`Execution router mode must be one of: ${EXECUTION_ROUTER_MODES.join(", ")}`);
|
|
131
|
+
}
|
|
132
|
+
const allowedLoops = normalizedNames(config.allowedLoops, "Execution router allowedLoops", { allowEmpty: true });
|
|
133
|
+
if (mode === "auto" && allowedLoops.length === 0) {
|
|
134
|
+
throw new Error("Execution router auto mode requires at least one allowed loop");
|
|
135
|
+
}
|
|
136
|
+
return freeze({
|
|
137
|
+
mode,
|
|
138
|
+
allowedLoops,
|
|
139
|
+
minConfidence: finiteRange(config.minConfidence, DEFAULT_EXECUTION_ROUTE_MIN_CONFIDENCE, "Execution router minConfidence", 0, 1),
|
|
140
|
+
timeoutMs: positiveInteger(config.timeoutMs, DEFAULT_EXECUTION_ROUTE_TIMEOUT_MS, "Execution router timeoutMs", 60_000),
|
|
141
|
+
maxInputChars: positiveInteger(config.maxInputChars, DEFAULT_EXECUTION_ROUTE_MAX_INPUT_CHARS, "Execution router maxInputChars", MAX_EXECUTION_ROUTE_INPUT_CHARS),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Validate persisted execution-router settings without resolving a route.
|
|
146
|
+
* Hosts call this at their configuration boundary so invalid settings fail
|
|
147
|
+
* before a request or task starts.
|
|
148
|
+
*/
|
|
149
|
+
export function validateExecutionRouterConfig(config) {
|
|
150
|
+
normalizeConfig(config);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Resolve routing for task execution independently of the host transport.
|
|
154
|
+
* Orchestrators and direct task APIs share this helper so task semantics cannot
|
|
155
|
+
* diverge between background and request-driven execution.
|
|
156
|
+
*/
|
|
157
|
+
export async function resolveTaskExecutionRoute(input, options = {}) {
|
|
158
|
+
const { task, agent } = input;
|
|
159
|
+
if (task.loop) {
|
|
160
|
+
resolveLoopSelection(agent, task.loop);
|
|
161
|
+
return createExplicitExecutionRoute({
|
|
162
|
+
surface: "task",
|
|
163
|
+
source: "task",
|
|
164
|
+
loop: task.loop,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
if (agent.executionRouter?.mode !== "auto")
|
|
168
|
+
return undefined;
|
|
169
|
+
validateExecutionRouterConfig(agent.executionRouter);
|
|
170
|
+
const assignedLoops = Array.isArray(agent.assignedLoops)
|
|
171
|
+
? agent.assignedLoops
|
|
172
|
+
: [];
|
|
173
|
+
const configuredAllowedLoops = Array.isArray(agent.executionRouter.allowedLoops)
|
|
174
|
+
? agent.executionRouter.allowedLoops
|
|
175
|
+
: [];
|
|
176
|
+
const allowed = new Set(configuredAllowedLoops);
|
|
177
|
+
const candidateNames = [...new Set(assignedLoops.filter((name) => allowed.has(name)))];
|
|
178
|
+
const projectLoops = [];
|
|
179
|
+
if (options.getProjectLoop) {
|
|
180
|
+
const loaded = await Promise.all(candidateNames.map((name) => options.getProjectLoop(name)));
|
|
181
|
+
projectLoops.push(...loaded.filter((loop) => loop !== null));
|
|
182
|
+
}
|
|
183
|
+
return resolveExecutionRoute({
|
|
184
|
+
surface: "task",
|
|
185
|
+
source: "task",
|
|
186
|
+
input: [task.title, task.description].filter(Boolean).join("\n\n"),
|
|
187
|
+
labels: [],
|
|
188
|
+
manifest: compileExecutionRouteManifest({
|
|
189
|
+
assignedLoops: candidateNames,
|
|
190
|
+
projectLoops,
|
|
191
|
+
}),
|
|
192
|
+
config: agent.executionRouter,
|
|
193
|
+
}, {
|
|
194
|
+
resolveClassifier: options.resolveClassifier
|
|
195
|
+
? () => options.resolveClassifier({
|
|
196
|
+
surface: "task",
|
|
197
|
+
source: "task",
|
|
198
|
+
agentName: agent.name,
|
|
199
|
+
...(task.user ? { userId: task.user } : {}),
|
|
200
|
+
})
|
|
201
|
+
: undefined,
|
|
202
|
+
...(options.signal ? { signal: options.signal } : {}),
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function normalizeManifest(manifest) {
|
|
206
|
+
const record = plainRecord(manifest, "Execution route manifest");
|
|
207
|
+
if (record.version !== 1) {
|
|
208
|
+
throw new Error("Execution route manifest version must be 1");
|
|
209
|
+
}
|
|
210
|
+
if (!Array.isArray(record.loops)) {
|
|
211
|
+
throw new Error("Execution route manifest loops must be an array");
|
|
212
|
+
}
|
|
213
|
+
if (!Array.isArray(record.unresolvedLoops)) {
|
|
214
|
+
throw new Error("Execution route manifest unresolvedLoops must be an array");
|
|
215
|
+
}
|
|
216
|
+
if (record.loops.length > MAX_EXECUTION_ROUTE_LOOPS) {
|
|
217
|
+
throw new Error(`Execution route manifest must not contain more than ${MAX_EXECUTION_ROUTE_LOOPS} loops`);
|
|
218
|
+
}
|
|
219
|
+
const loops = [];
|
|
220
|
+
const seen = new Set();
|
|
221
|
+
for (const rawLoop of record.loops) {
|
|
222
|
+
const loop = plainRecord(rawLoop, "Execution route loop");
|
|
223
|
+
const keys = Object.keys(loop).sort();
|
|
224
|
+
if (keys.some((key) => !["description", "label", "name"].includes(key))) {
|
|
225
|
+
throw new Error("Execution route loop contains unsupported fields");
|
|
226
|
+
}
|
|
227
|
+
const name = normalizedName(loop.name, "Execution route loop name");
|
|
228
|
+
if (seen.has(name))
|
|
229
|
+
throw new Error(`Duplicate execution route loop "${name}"`);
|
|
230
|
+
seen.add(name);
|
|
231
|
+
const label = optionalDisplayText(loop.label, "Execution route loop label", MAX_EXECUTION_ROUTE_LABEL_CHARS);
|
|
232
|
+
const description = optionalDisplayText(loop.description, "Execution route loop description", MAX_EXECUTION_ROUTE_DESCRIPTION_CHARS);
|
|
233
|
+
loops.push(freeze({
|
|
234
|
+
name,
|
|
235
|
+
...(label ? { label } : {}),
|
|
236
|
+
...(description ? { description } : {}),
|
|
237
|
+
}));
|
|
238
|
+
}
|
|
239
|
+
const unresolvedLoops = normalizedNames(record.unresolvedLoops, "Execution route unresolvedLoops", { allowEmpty: true });
|
|
240
|
+
return freeze({
|
|
241
|
+
version: 1,
|
|
242
|
+
loops,
|
|
243
|
+
unresolvedLoops,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
function normalizeContextLabels(value) {
|
|
247
|
+
if (value === undefined)
|
|
248
|
+
return [];
|
|
249
|
+
if (!Array.isArray(value)) {
|
|
250
|
+
throw new Error("Execution router labels must be an array of strings");
|
|
251
|
+
}
|
|
252
|
+
const output = [];
|
|
253
|
+
const seen = new Set();
|
|
254
|
+
for (const raw of value) {
|
|
255
|
+
if (typeof raw !== "string") {
|
|
256
|
+
throw new Error("Execution router labels must contain only strings");
|
|
257
|
+
}
|
|
258
|
+
const normalized = raw
|
|
259
|
+
.replace(/[\u0000-\u001f\u007f]/g, " ")
|
|
260
|
+
.replace(/\s+/g, " ")
|
|
261
|
+
.trim()
|
|
262
|
+
.slice(0, MAX_EXECUTION_ROUTE_CONTEXT_LABEL_CHARS);
|
|
263
|
+
if (!normalized || seen.has(normalized))
|
|
264
|
+
continue;
|
|
265
|
+
seen.add(normalized);
|
|
266
|
+
output.push(normalized);
|
|
267
|
+
if (output.length === MAX_EXECUTION_ROUTE_LABELS)
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
return output;
|
|
271
|
+
}
|
|
272
|
+
function routeResult(value) {
|
|
273
|
+
return freeze({ ...value });
|
|
274
|
+
}
|
|
275
|
+
function directResult(input, details) {
|
|
276
|
+
return routeResult({
|
|
277
|
+
surface: input.surface,
|
|
278
|
+
invocationSource: input.source,
|
|
279
|
+
status: details.status,
|
|
280
|
+
decisionSource: details.decisionSource,
|
|
281
|
+
mode: "direct",
|
|
282
|
+
...(details.confidence !== undefined
|
|
283
|
+
? { confidence: details.confidence }
|
|
284
|
+
: {}),
|
|
285
|
+
reason: details.reason,
|
|
286
|
+
latencyMs: details.latencyMs ?? 0,
|
|
287
|
+
fallbackUsed: details.fallbackUsed,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
function sanitizeReason(value) {
|
|
291
|
+
const reason = value
|
|
292
|
+
.replace(/[\u0000-\u001f\u007f]/g, " ")
|
|
293
|
+
.replace(/\s+/g, " ")
|
|
294
|
+
.trim();
|
|
295
|
+
if (!reason || reason.length > MAX_EXECUTION_ROUTE_REASON_CHARS) {
|
|
296
|
+
throw new Error(`Execution route reason must not exceed ${MAX_EXECUTION_ROUTE_REASON_CHARS} characters`);
|
|
297
|
+
}
|
|
298
|
+
return reason;
|
|
299
|
+
}
|
|
300
|
+
function parseDecision(value, allowedLoops) {
|
|
301
|
+
let parsed = value;
|
|
302
|
+
if (typeof parsed === "string")
|
|
303
|
+
parsed = JSON.parse(parsed);
|
|
304
|
+
const record = plainRecord(parsed, "Execution route decision");
|
|
305
|
+
if (record.mode !== "direct" && record.mode !== "loop") {
|
|
306
|
+
throw new Error("Execution route decision mode must be direct or loop");
|
|
307
|
+
}
|
|
308
|
+
const expectedKeys = record.mode === "loop"
|
|
309
|
+
? ["confidence", "loop", "mode", "reason"]
|
|
310
|
+
: ["confidence", "mode", "reason"];
|
|
311
|
+
const actualKeys = Object.keys(record).sort();
|
|
312
|
+
if (actualKeys.length !== expectedKeys.length ||
|
|
313
|
+
actualKeys.some((key, index) => key !== expectedKeys[index])) {
|
|
314
|
+
throw new Error("Execution route decision contains unsupported fields");
|
|
315
|
+
}
|
|
316
|
+
if (record.confidence === undefined) {
|
|
317
|
+
throw new Error("Execution route decision confidence is required");
|
|
318
|
+
}
|
|
319
|
+
const confidence = finiteRange(record.confidence, 0, "Execution route decision confidence", 0, 1);
|
|
320
|
+
if (typeof record.reason !== "string") {
|
|
321
|
+
throw new Error("Execution route decision reason must be a string");
|
|
322
|
+
}
|
|
323
|
+
const reason = sanitizeReason(record.reason);
|
|
324
|
+
if (record.mode === "direct") {
|
|
325
|
+
return freeze({ mode: "direct", confidence, reason });
|
|
326
|
+
}
|
|
327
|
+
const loop = normalizedName(record.loop, "Execution route decision loop");
|
|
328
|
+
if (!allowedLoops.includes(loop)) {
|
|
329
|
+
throw new Error(`Execution route decision selected disallowed loop "${loop}"`);
|
|
330
|
+
}
|
|
331
|
+
return freeze({ mode: "loop", loop, confidence, reason });
|
|
332
|
+
}
|
|
333
|
+
async function classifyWithDeadline(options, input, timeoutMs) {
|
|
334
|
+
if (options.classifier && options.resolveClassifier) {
|
|
335
|
+
throw new Error("Provide either classifier or resolveClassifier, not both");
|
|
336
|
+
}
|
|
337
|
+
if (options.signal?.aborted)
|
|
338
|
+
throw new ExecutionRouteCancelledError();
|
|
339
|
+
const controller = new AbortController();
|
|
340
|
+
let timeout;
|
|
341
|
+
let onCallerAbort;
|
|
342
|
+
const classifierOutcome = Promise.resolve()
|
|
343
|
+
.then(async () => {
|
|
344
|
+
const resolved = options.classifier
|
|
345
|
+
?? await options.resolveClassifier?.();
|
|
346
|
+
if (!resolved)
|
|
347
|
+
return { type: "unavailable" };
|
|
348
|
+
const value = await resolved.classify(input, { signal: controller.signal });
|
|
349
|
+
return { type: "decision", value };
|
|
350
|
+
})
|
|
351
|
+
.catch(() => ({ type: "error" }));
|
|
352
|
+
const timeoutOutcome = new Promise((resolve) => {
|
|
353
|
+
timeout = setTimeout(() => {
|
|
354
|
+
controller.abort(new Error("Execution router timeout"));
|
|
355
|
+
resolve({ type: "timeout" });
|
|
356
|
+
}, timeoutMs);
|
|
357
|
+
});
|
|
358
|
+
const outcomes = [
|
|
359
|
+
classifierOutcome,
|
|
360
|
+
timeoutOutcome,
|
|
361
|
+
];
|
|
362
|
+
if (options.signal) {
|
|
363
|
+
outcomes.push(new Promise((_resolve, reject) => {
|
|
364
|
+
onCallerAbort = () => {
|
|
365
|
+
controller.abort(new ExecutionRouteCancelledError());
|
|
366
|
+
reject(new ExecutionRouteCancelledError());
|
|
367
|
+
};
|
|
368
|
+
options.signal.addEventListener("abort", onCallerAbort, { once: true });
|
|
369
|
+
}));
|
|
370
|
+
}
|
|
371
|
+
try {
|
|
372
|
+
return await Promise.race(outcomes);
|
|
373
|
+
}
|
|
374
|
+
finally {
|
|
375
|
+
if (timeout)
|
|
376
|
+
clearTimeout(timeout);
|
|
377
|
+
if (options.signal && onCallerAbort) {
|
|
378
|
+
options.signal.removeEventListener("abort", onCallerAbort);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
export function compileExecutionRouteManifest(input) {
|
|
383
|
+
plainRecord(input, "Execution route manifest input");
|
|
384
|
+
const assignedLoops = normalizedNames(input.assignedLoops, "Execution route assignedLoops", { allowEmpty: true });
|
|
385
|
+
if (input.projectLoops !== undefined && !Array.isArray(input.projectLoops)) {
|
|
386
|
+
throw new Error("Execution route projectLoops must be an array");
|
|
387
|
+
}
|
|
388
|
+
const byName = new Map();
|
|
389
|
+
for (const projectLoop of input.projectLoops ?? []) {
|
|
390
|
+
plainRecord(projectLoop, "Execution route project loop");
|
|
391
|
+
const name = normalizedName(projectLoop.name, "Execution route project loop name");
|
|
392
|
+
if (byName.has(name)) {
|
|
393
|
+
throw new Error(`Duplicate execution route project loop "${name}"`);
|
|
394
|
+
}
|
|
395
|
+
byName.set(name, projectLoop);
|
|
396
|
+
}
|
|
397
|
+
const loops = [];
|
|
398
|
+
const unresolvedLoops = [];
|
|
399
|
+
for (const name of assignedLoops) {
|
|
400
|
+
const projectLoop = byName.get(name);
|
|
401
|
+
if (!projectLoop) {
|
|
402
|
+
unresolvedLoops.push(name);
|
|
403
|
+
continue;
|
|
404
|
+
}
|
|
405
|
+
const label = optionalDisplayText(projectLoop.label, `Execution route loop "${name}" label`, MAX_EXECUTION_ROUTE_LABEL_CHARS);
|
|
406
|
+
const description = optionalDisplayText(projectLoop.description, `Execution route loop "${name}" description`, MAX_EXECUTION_ROUTE_DESCRIPTION_CHARS);
|
|
407
|
+
loops.push(freeze({
|
|
408
|
+
name,
|
|
409
|
+
...(label ? { label } : {}),
|
|
410
|
+
...(description ? { description } : {}),
|
|
411
|
+
}));
|
|
412
|
+
}
|
|
413
|
+
return freeze({
|
|
414
|
+
version: 1,
|
|
415
|
+
loops,
|
|
416
|
+
unresolvedLoops,
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
export async function resolveExecutionRoute(input, options = {}) {
|
|
420
|
+
plainRecord(input, "Execution route input");
|
|
421
|
+
validateInvocation(input.surface, input.source);
|
|
422
|
+
const config = normalizeConfig(input.config);
|
|
423
|
+
const manifest = normalizeManifest(input.manifest);
|
|
424
|
+
if (input.explicitLoop !== undefined) {
|
|
425
|
+
const loop = normalizedName(input.explicitLoop, "Explicit loop");
|
|
426
|
+
if (!manifest.loops.some((candidate) => candidate.name === loop)) {
|
|
427
|
+
throw new Error(`Explicit loop "${loop}" is not authorized`);
|
|
428
|
+
}
|
|
429
|
+
return createExplicitExecutionRoute({
|
|
430
|
+
surface: input.surface,
|
|
431
|
+
source: input.source,
|
|
432
|
+
loop,
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
if (config.mode === "off") {
|
|
436
|
+
return directResult(input, {
|
|
437
|
+
status: "disabled",
|
|
438
|
+
decisionSource: "default",
|
|
439
|
+
reason: "Execution router is disabled",
|
|
440
|
+
fallbackUsed: false,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
const allowed = new Set(config.allowedLoops);
|
|
444
|
+
const candidateLoops = manifest.loops.filter((loop) => allowed.has(loop.name));
|
|
445
|
+
if (candidateLoops.length === 0) {
|
|
446
|
+
return directResult(input, {
|
|
447
|
+
status: "skipped",
|
|
448
|
+
decisionSource: "default",
|
|
449
|
+
reason: "No authorized execution router loops are available",
|
|
450
|
+
fallbackUsed: false,
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
const compactInput = (input.input ?? "")
|
|
454
|
+
.trim()
|
|
455
|
+
.slice(0, config.maxInputChars);
|
|
456
|
+
if (!compactInput) {
|
|
457
|
+
return directResult(input, {
|
|
458
|
+
status: "skipped",
|
|
459
|
+
decisionSource: "default",
|
|
460
|
+
reason: "Execution router input was empty",
|
|
461
|
+
fallbackUsed: false,
|
|
462
|
+
});
|
|
463
|
+
}
|
|
464
|
+
const classifierInput = freeze({
|
|
465
|
+
version: 1,
|
|
466
|
+
surface: input.surface,
|
|
467
|
+
source: input.source,
|
|
468
|
+
input: compactInput,
|
|
469
|
+
loops: candidateLoops,
|
|
470
|
+
labels: normalizeContextLabels(input.labels),
|
|
471
|
+
});
|
|
472
|
+
const startedAt = Date.now();
|
|
473
|
+
const outcome = await classifyWithDeadline(options, classifierInput, config.timeoutMs);
|
|
474
|
+
const latencyMs = Math.max(0, Date.now() - startedAt);
|
|
475
|
+
if (outcome.type === "unavailable") {
|
|
476
|
+
return directResult(input, {
|
|
477
|
+
status: "skipped",
|
|
478
|
+
decisionSource: "default",
|
|
479
|
+
reason: "Execution router classifier is unavailable",
|
|
480
|
+
latencyMs,
|
|
481
|
+
fallbackUsed: false,
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
if (outcome.type === "timeout") {
|
|
485
|
+
return directResult(input, {
|
|
486
|
+
status: "fallback",
|
|
487
|
+
decisionSource: "router",
|
|
488
|
+
reason: `Execution router timed out after ${config.timeoutMs}ms`,
|
|
489
|
+
latencyMs,
|
|
490
|
+
fallbackUsed: true,
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
if (outcome.type === "error") {
|
|
494
|
+
return directResult(input, {
|
|
495
|
+
status: "fallback",
|
|
496
|
+
decisionSource: "router",
|
|
497
|
+
reason: "Execution router classifier failed",
|
|
498
|
+
latencyMs,
|
|
499
|
+
fallbackUsed: true,
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
let decision;
|
|
503
|
+
try {
|
|
504
|
+
decision = parseDecision(outcome.value, candidateLoops.map((loop) => loop.name));
|
|
505
|
+
}
|
|
506
|
+
catch {
|
|
507
|
+
return directResult(input, {
|
|
508
|
+
status: "fallback",
|
|
509
|
+
decisionSource: "router",
|
|
510
|
+
reason: "Execution router returned an invalid decision",
|
|
511
|
+
latencyMs,
|
|
512
|
+
fallbackUsed: true,
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
if (decision.confidence < config.minConfidence) {
|
|
516
|
+
return directResult(input, {
|
|
517
|
+
status: "fallback",
|
|
518
|
+
decisionSource: "router",
|
|
519
|
+
reason: `Execution router confidence was below ${config.minConfidence}`,
|
|
520
|
+
confidence: decision.confidence,
|
|
521
|
+
latencyMs,
|
|
522
|
+
fallbackUsed: true,
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
return routeResult({
|
|
526
|
+
surface: input.surface,
|
|
527
|
+
invocationSource: input.source,
|
|
528
|
+
status: "routed",
|
|
529
|
+
decisionSource: "router",
|
|
530
|
+
mode: decision.mode,
|
|
531
|
+
...(decision.mode === "loop" ? { loop: decision.loop } : {}),
|
|
532
|
+
confidence: decision.confidence,
|
|
533
|
+
reason: decision.reason,
|
|
534
|
+
latencyMs,
|
|
535
|
+
fallbackUsed: false,
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
export function createExplicitExecutionRoute(input) {
|
|
539
|
+
plainRecord(input, "Explicit execution route input");
|
|
540
|
+
validateInvocation(input.surface, input.source);
|
|
541
|
+
const loop = normalizedName(input.loop, "Explicit loop");
|
|
542
|
+
const reason = input.reason === undefined
|
|
543
|
+
? "Explicit loop request"
|
|
544
|
+
: sanitizeReason(input.reason);
|
|
545
|
+
return routeResult({
|
|
546
|
+
surface: input.surface,
|
|
547
|
+
invocationSource: input.source,
|
|
548
|
+
status: "explicit",
|
|
549
|
+
decisionSource: "request",
|
|
550
|
+
mode: "loop",
|
|
551
|
+
loop,
|
|
552
|
+
confidence: 1,
|
|
553
|
+
reason,
|
|
554
|
+
latencyMs: 0,
|
|
555
|
+
fallbackUsed: false,
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
export function executionRouteRuntimePlanFields(route) {
|
|
559
|
+
const warnings = route.status === "fallback"
|
|
560
|
+
? ["Execution router fell back to direct execution"]
|
|
561
|
+
: [];
|
|
562
|
+
return freeze({
|
|
563
|
+
execution: {
|
|
564
|
+
mode: route.mode,
|
|
565
|
+
...(route.loop ? { loop: route.loop } : {}),
|
|
566
|
+
source: route.decisionSource,
|
|
567
|
+
},
|
|
568
|
+
audit: {
|
|
569
|
+
reasons: [route.reason],
|
|
570
|
+
warnings,
|
|
571
|
+
...(route.confidence !== undefined
|
|
572
|
+
? { confidence: route.confidence }
|
|
573
|
+
: {}),
|
|
574
|
+
fallbackUsed: route.fallbackUsed,
|
|
575
|
+
},
|
|
576
|
+
});
|
|
577
|
+
}
|
|
578
|
+
export function createExecutionRouteResolvedEvent(route) {
|
|
579
|
+
return freeze({
|
|
580
|
+
type: "runtime.execution_route.resolved",
|
|
581
|
+
route,
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
//# sourceMappingURL=execution-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-router.js","sourceRoot":"","sources":["../src/execution-router.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export type { ConfiguredModelProfiles, ModelProfileResolutionErrorCode, ResolveM
|
|
|
13
13
|
export { DEFAULT_MODEL_ROUTE_MAX_INPUT_CHARS, DEFAULT_MODEL_ROUTE_MIN_CONFIDENCE, DEFAULT_MODEL_ROUTE_TIMEOUT_MS, MAX_MODEL_ROUTE_INPUT_CHARS, MAX_MODEL_ROUTE_LABELS, MAX_MODEL_ROUTE_LABEL_CHARS, MAX_MODEL_ROUTE_REASON_CHARS, MODEL_ROUTER_MODES, ModelRouteCancelledError, modelRouteRuntimePlanFields, resolveModelRoute, } from "./model-router.js";
|
|
14
14
|
export type { ModelRouteClassifier, ModelRouteClassifierInput, ModelRouteClassifierOptions, ModelRouteDecision, ModelRouteRuntimePlanFields, ModelRouterConfig, ModelRouterMode, ModelRouteStatus, ResolvedModelRoute, ResolveModelRouteInput, ResolveModelRouteOptions, } from "./model-router.js";
|
|
15
15
|
export * from "./runtime-plan/index.js";
|
|
16
|
+
export * from "./execution-router.js";
|
|
16
17
|
export * from "./events.js";
|
|
17
18
|
export { VALID_TRANSITIONS, isValidTransition, assertValidTransition } from "./state-machine.js";
|
|
18
19
|
export * from "./schemas.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAE3B,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,+BAA+B,EAC/B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mCAAmC,GACpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,mCAAmC,EACnC,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,mCAAmC,EACnC,kCAAkC,EAClC,8BAA8B,EAC9B,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,cAAc,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|