@rarebit-one/harness-kernel 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -7
- package/dist/agent.d.ts +12 -3
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +191 -94
- package/dist/agent.js.map +1 -1
- package/dist/connectors/mcpClient.d.ts +6 -1
- package/dist/connectors/mcpClient.d.ts.map +1 -1
- package/dist/connectors/mcpClient.js +1 -1
- package/dist/connectors/mcpClient.js.map +1 -1
- package/dist/engines/acp.d.ts +22 -0
- package/dist/engines/acp.d.ts.map +1 -1
- package/dist/engines/acp.js +45 -10
- package/dist/engines/acp.js.map +1 -1
- package/dist/engines/acpDriver.d.ts +7 -0
- package/dist/engines/acpDriver.d.ts.map +1 -1
- package/dist/engines/acpDriver.js +60 -17
- package/dist/engines/acpDriver.js.map +1 -1
- package/dist/engines/claudeCode.d.ts +6 -0
- package/dist/engines/claudeCode.d.ts.map +1 -1
- package/dist/engines/claudeCode.js +32 -10
- package/dist/engines/claudeCode.js.map +1 -1
- package/dist/engines/claudeCodeDriver.d.ts +11 -0
- package/dist/engines/claudeCodeDriver.d.ts.map +1 -1
- package/dist/engines/claudeCodeDriver.js +35 -5
- package/dist/engines/claudeCodeDriver.js.map +1 -1
- package/dist/engines/codex.d.ts +12 -0
- package/dist/engines/codex.d.ts.map +1 -1
- package/dist/engines/codex.js +15 -1
- package/dist/engines/codex.js.map +1 -1
- package/dist/engines/codexDriver.d.ts.map +1 -1
- package/dist/engines/codexDriver.js +51 -12
- package/dist/engines/codexDriver.js.map +1 -1
- package/dist/engines/native.d.ts.map +1 -1
- package/dist/engines/native.js +59 -4
- package/dist/engines/native.js.map +1 -1
- package/dist/engines/types.d.ts +16 -1
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/events.d.ts +55 -10
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +21 -2
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +7 -2
- package/dist/loop.js.map +1 -1
- package/dist/models/chat.d.ts +6 -2
- package/dist/models/chat.d.ts.map +1 -1
- package/dist/models/chat.js +15 -9
- package/dist/models/chat.js.map +1 -1
- package/dist/models/types.d.ts +15 -1
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/primitives/codeExec.d.ts +7 -0
- package/dist/primitives/codeExec.d.ts.map +1 -1
- package/dist/primitives/codeExec.js +32 -4
- package/dist/primitives/codeExec.js.map +1 -1
- package/dist/primitives/http.d.ts +6 -0
- package/dist/primitives/http.d.ts.map +1 -1
- package/dist/primitives/http.js +28 -11
- package/dist/primitives/http.js.map +1 -1
- package/dist/processGroup.d.ts +16 -0
- package/dist/processGroup.d.ts.map +1 -0
- package/dist/processGroup.js +39 -0
- package/dist/processGroup.js.map +1 -0
- package/dist/providers/anthropic.d.ts +12 -2
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +30 -3
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/mock.d.ts +2 -2
- package/dist/providers/mock.d.ts.map +1 -1
- package/dist/providers/mock.js +5 -1
- package/dist/providers/mock.js.map +1 -1
- package/dist/providers/openai.d.ts +11 -2
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +25 -5
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +21 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/signals.d.ts +46 -0
- package/dist/signals.d.ts.map +1 -0
- package/dist/signals.js +72 -0
- package/dist/signals.js.map +1 -0
- package/dist/tools/metadata.d.ts +18 -2
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +7 -0
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/modelTool.d.ts.map +1 -1
- package/dist/tools/modelTool.js +7 -3
- package/dist/tools/modelTool.js.map +1 -1
- package/dist/tools/registry.d.ts +24 -5
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +43 -12
- package/dist/tools/registry.js.map +1 -1
- package/package.json +3 -3
package/dist/engines/codex.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdtemp, rm, stat } from "node:fs/promises";
|
|
2
2
|
import { tmpdir } from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import { harnessOutcome } from "../signals.js";
|
|
4
5
|
import { CAPABILITY_SERVER_NAME } from "./capabilityMcp.js";
|
|
5
6
|
import { connectorServers, writeCodexConfig } from "./connectorMcp.js";
|
|
6
7
|
import { readEmissions } from "./capabilityEmissions.js";
|
|
@@ -96,9 +97,11 @@ export class CodexEngine {
|
|
|
96
97
|
...(spec.limits?.maxDurationMs !== undefined
|
|
97
98
|
? { maxDurationMs: spec.limits.maxDurationMs }
|
|
98
99
|
: {}),
|
|
100
|
+
...(ctx.signal ? { signal: ctx.signal } : {}),
|
|
99
101
|
};
|
|
100
102
|
ctx.log(`codex: driving model ${model} in ${spec.workdir}`);
|
|
101
103
|
let finalText = "";
|
|
104
|
+
let outcome = "completed";
|
|
102
105
|
try {
|
|
103
106
|
for await (const message of this.drive(options)) {
|
|
104
107
|
if (message.kind === "assistant") {
|
|
@@ -107,11 +110,21 @@ export class CodexEngine {
|
|
|
107
110
|
}
|
|
108
111
|
else {
|
|
109
112
|
finalText = message.text;
|
|
110
|
-
|
|
113
|
+
outcome = harnessOutcome(message.isError, message.stoppedBy);
|
|
114
|
+
if (message.stoppedBy)
|
|
115
|
+
ctx.log(`codex: stopped (${outcome})`);
|
|
116
|
+
else if (message.isError)
|
|
111
117
|
ctx.log("codex: harness reported an error");
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
// A driver that throws on the caller's abort was still canceled, not broken.
|
|
123
|
+
if (!ctx.signal?.aborted)
|
|
124
|
+
throw err;
|
|
125
|
+
outcome = "canceled";
|
|
126
|
+
ctx.log("codex: stopped (canceled)");
|
|
127
|
+
}
|
|
115
128
|
finally {
|
|
116
129
|
// The token-bearing config is transient — never let it linger.
|
|
117
130
|
await rm(codexHome, { recursive: true, force: true });
|
|
@@ -133,6 +146,7 @@ export class CodexEngine {
|
|
|
133
146
|
return {
|
|
134
147
|
text: finalText || "(no output)",
|
|
135
148
|
...(emissions !== undefined ? { emissions } : {}),
|
|
149
|
+
outcome,
|
|
136
150
|
};
|
|
137
151
|
}
|
|
138
152
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/engines/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAA8B,MAAM,mBAAmB,CAAA;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/engines/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexDriver.d.ts","sourceRoot":"","sources":["../../src/engines/codexDriver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"codexDriver.d.ts","sourceRoot":"","sources":["../../src/engines/codexDriver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAuB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAyGzF"}
|
|
@@ -2,6 +2,8 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { mkdtemp, readFile, rm } from "node:fs/promises";
|
|
3
3
|
import { tmpdir } from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
|
+
import { DEFAULT_STOP_GRACE_MS, terminateProcessGroup } from "../processGroup.js";
|
|
6
|
+
import { runStop } from "../signals.js";
|
|
5
7
|
/**
|
|
6
8
|
* The default codex driver: the single integration boundary to the OpenAI Codex
|
|
7
9
|
* CLI, mirroring claudeCodeDriver's injectable shape. It runs codex
|
|
@@ -43,10 +45,11 @@ import path from "node:path";
|
|
|
43
45
|
* is touched in CI.
|
|
44
46
|
*/
|
|
45
47
|
export async function* defaultCodexDriver(opts) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
// The run's own timer merged with the caller's cancel; `stop.stoppedBy()`
|
|
49
|
+
// says which one fired. codex runs in its own process group so a stop can
|
|
50
|
+
// reach everything it spawned: SIGTERM, a grace period, then SIGKILL.
|
|
51
|
+
const stop = runStop(opts.maxDurationMs, opts.signal);
|
|
52
|
+
let stopping;
|
|
50
53
|
const outDir = await mkdtemp(path.join(tmpdir(), "harness-codex-out-"));
|
|
51
54
|
const lastMessageFile = path.join(outDir, "last-message.txt");
|
|
52
55
|
try {
|
|
@@ -63,7 +66,7 @@ export async function* defaultCodexDriver(opts) {
|
|
|
63
66
|
"-",
|
|
64
67
|
], {
|
|
65
68
|
cwd: opts.cwd,
|
|
66
|
-
|
|
69
|
+
detached: true,
|
|
67
70
|
env: {
|
|
68
71
|
...process.env,
|
|
69
72
|
CODEX_HOME: opts.codexHome,
|
|
@@ -75,6 +78,15 @@ export async function* defaultCodexDriver(opts) {
|
|
|
75
78
|
},
|
|
76
79
|
stdio: ["pipe", "pipe", "pipe"],
|
|
77
80
|
});
|
|
81
|
+
const onStop = () => {
|
|
82
|
+
stopping ??= terminateProcessGroup(child, opts.cancelGraceMs ?? DEFAULT_STOP_GRACE_MS);
|
|
83
|
+
};
|
|
84
|
+
if (stop.signal?.aborted)
|
|
85
|
+
onStop();
|
|
86
|
+
else
|
|
87
|
+
stop.signal?.addEventListener("abort", onStop, { once: true });
|
|
88
|
+
// A stopped child may never read its stdin; don't let EPIPE surface.
|
|
89
|
+
child.stdin.on("error", () => { });
|
|
78
90
|
child.stdin.end(opts.prompt);
|
|
79
91
|
let out = "";
|
|
80
92
|
let err = "";
|
|
@@ -82,10 +94,37 @@ export async function* defaultCodexDriver(opts) {
|
|
|
82
94
|
child.stderr.setEncoding("utf8");
|
|
83
95
|
child.stdout.on("data", (chunk) => (out += chunk));
|
|
84
96
|
child.stderr.on("data", (chunk) => (err += chunk));
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
97
|
+
let code;
|
|
98
|
+
try {
|
|
99
|
+
code = await new Promise((resolve, reject) => {
|
|
100
|
+
child.on("error", reject);
|
|
101
|
+
// Killed by a signal reports no exit code; that is still a failure.
|
|
102
|
+
child.on("close", (c, sig) => resolve(c ?? (sig ? 1 : 0)));
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
if (!stop.stoppedBy())
|
|
107
|
+
throw error;
|
|
108
|
+
code = 1;
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
stop.signal?.removeEventListener("abort", onStop);
|
|
112
|
+
}
|
|
113
|
+
// Stopped: wait until the whole group is gone (SIGKILL after the grace
|
|
114
|
+
// period), then report who stopped it with whatever codex had written.
|
|
115
|
+
const stoppedEarly = stopping ? stop.stoppedBy() : undefined;
|
|
116
|
+
if (stopping)
|
|
117
|
+
await stopping;
|
|
118
|
+
if (stoppedEarly && code !== 0) {
|
|
119
|
+
const partial = await readFile(lastMessageFile, "utf8").catch(() => "");
|
|
120
|
+
yield {
|
|
121
|
+
kind: "result",
|
|
122
|
+
text: partial.trim() || out.trim(),
|
|
123
|
+
isError: true,
|
|
124
|
+
stoppedBy: stoppedEarly,
|
|
125
|
+
};
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
89
128
|
// On a FAILED run, surface a tail of codex's stderr as an assistant message so it
|
|
90
129
|
// lands in the run logs for diagnosis — codex logs MCP-server startup + tool-call
|
|
91
130
|
// activity there, which is otherwise invisible (the `-o` file holds only the final
|
|
@@ -99,11 +138,11 @@ export async function* defaultCodexDriver(opts) {
|
|
|
99
138
|
// Prefer codex's final-message file; fall back to the raw stdout/stderr transcript.
|
|
100
139
|
const lastMessage = await readFile(lastMessageFile, "utf8").catch(() => "");
|
|
101
140
|
const text = lastMessage.trim() || out.trim() || err.trim();
|
|
102
|
-
|
|
141
|
+
// A stop that killed the child without an `error` event still says so.
|
|
142
|
+
const stoppedBy = code !== 0 ? stop.stoppedBy() : undefined;
|
|
143
|
+
yield { kind: "result", text, isError: code !== 0, ...(stoppedBy ? { stoppedBy } : {}) };
|
|
103
144
|
}
|
|
104
145
|
finally {
|
|
105
|
-
if (timer)
|
|
106
|
-
clearTimeout(timer);
|
|
107
146
|
await rm(outDir, { recursive: true, force: true });
|
|
108
147
|
}
|
|
109
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codexDriver.js","sourceRoot":"","sources":["../../src/engines/codexDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"codexDriver.js","sourceRoot":"","sources":["../../src/engines/codexDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/engines/native.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAA6B,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAKjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAElG;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAA;AAE9D,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,YAAW;IAExB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEf,OAAO,GAAE,mBAAwB;IAM7C,QAAQ,IAAI,aAAa;IAInB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../src/engines/native.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1F,OAAO,EAA6B,KAAK,IAAI,EAAE,MAAM,YAAY,CAAA;AAKjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAElG;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAA;AAE9D,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,YAAW;IAExB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEf,OAAO,GAAE,mBAAwB;IAM7C,QAAQ,IAAI,aAAa;IAInB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA6EnE;;;;;OAKG;YACW,YAAY;CAY3B"}
|
package/dist/engines/native.js
CHANGED
|
@@ -27,6 +27,13 @@ export class NativeEngine {
|
|
|
27
27
|
return { ok: true };
|
|
28
28
|
}
|
|
29
29
|
async run(spec, ctx) {
|
|
30
|
+
// Setup (connecting MCP servers, assembling context) happens before the
|
|
31
|
+
// loop sees the signal, and either can stall. So a cancel is honoured here
|
|
32
|
+
// too: an already-canceled run does no setup at all, and a cancel during a
|
|
33
|
+
// stalled setup step returns at once instead of waiting it out. Such a run
|
|
34
|
+
// never started its loop, so it emits no events.
|
|
35
|
+
if (ctx.signal?.aborted)
|
|
36
|
+
return canceledBeforeLoop(ctx);
|
|
30
37
|
const provider = selectProvider(spec.provider.preferred, {
|
|
31
38
|
model: spec.provider.model,
|
|
32
39
|
credentials: spec.provider.credentials,
|
|
@@ -46,24 +53,48 @@ export class NativeEngine {
|
|
|
46
53
|
// Connector tools are NOT re-gated by permissions.tools: the caller
|
|
47
54
|
// already authorized them per connector (scope + grants) when it populated
|
|
48
55
|
// connectors, and their names are namespaced `<connector>__<tool>`.
|
|
49
|
-
|
|
56
|
+
// The signal reaches `connectorTools`, which closes whatever it had
|
|
57
|
+
// already opened when a cancel lands mid-setup.
|
|
58
|
+
let connectors;
|
|
59
|
+
try {
|
|
60
|
+
connectors = await connectorTools(spec.connectors, undefined, { signal: ctx.signal });
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
if (!ctx.signal?.aborted)
|
|
64
|
+
throw err;
|
|
65
|
+
return canceledBeforeLoop(ctx);
|
|
66
|
+
}
|
|
50
67
|
try {
|
|
51
68
|
const tools = [...primitives, ...connectors.tools];
|
|
52
69
|
ctx.log(`tools: ${tools.map((t) => t.spec.name).join(", ") || "(none)"}`);
|
|
53
70
|
// Budgets are resolved before the call: a loop is handed numbers, not
|
|
54
71
|
// optionals, so a second implementation cannot accidentally run to a
|
|
55
72
|
// different ceiling than the one the kernel ships.
|
|
73
|
+
let context;
|
|
74
|
+
try {
|
|
75
|
+
context = await untilAborted(this.buildContext(spec, ctx), ctx.signal);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
if (!ctx.signal?.aborted)
|
|
79
|
+
throw err;
|
|
80
|
+
return canceledBeforeLoop(ctx);
|
|
81
|
+
}
|
|
56
82
|
const result = await runWithEvents(this.loop, {
|
|
57
83
|
model: asChatModel(provider),
|
|
58
84
|
system: buildSystemPrompt(spec.workflow, spec.workspaceId, spec.workflowPath),
|
|
59
|
-
userPrompt: buildUserPrompt(spec.workflow,
|
|
85
|
+
userPrompt: buildUserPrompt(spec.workflow, context, spec.inputs),
|
|
60
86
|
tools,
|
|
61
87
|
limits: resolveLoopLimits(spec.limits),
|
|
62
88
|
},
|
|
63
89
|
// The bookends come from `runWithEvents`, so an application's own loop
|
|
64
90
|
// gets them without having to know they exist.
|
|
65
|
-
{
|
|
66
|
-
|
|
91
|
+
{
|
|
92
|
+
log: ctx.log,
|
|
93
|
+
events: runEventEmitter(ctx.emit, ctx.log),
|
|
94
|
+
runId: spec.runId,
|
|
95
|
+
...(ctx.signal ? { signal: ctx.signal } : {}),
|
|
96
|
+
});
|
|
97
|
+
return { text: result.text, outcome: result.outcome };
|
|
67
98
|
}
|
|
68
99
|
finally {
|
|
69
100
|
// Connectors are only needed during the loop; close them here (the engine
|
|
@@ -88,6 +119,30 @@ export class NativeEngine {
|
|
|
88
119
|
return spec.context ? `${spec.context}\n\n${assembled}` : assembled;
|
|
89
120
|
}
|
|
90
121
|
}
|
|
122
|
+
/** The result of a run canceled before its loop started: nothing ran. */
|
|
123
|
+
function canceledBeforeLoop(ctx) {
|
|
124
|
+
ctx.log("native: canceled before the loop started");
|
|
125
|
+
return {
|
|
126
|
+
text: "(no output)\n\n[run stopped: canceled before the run started]",
|
|
127
|
+
outcome: "canceled",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Await `work`, but stop waiting (rejecting with the signal's reason) the
|
|
132
|
+
* moment `signal` aborts. The work itself is not interrupted — the caller
|
|
133
|
+
* cleans up whatever it eventually produces.
|
|
134
|
+
*/
|
|
135
|
+
function untilAborted(work, signal) {
|
|
136
|
+
if (!signal)
|
|
137
|
+
return work;
|
|
138
|
+
return new Promise((resolve, reject) => {
|
|
139
|
+
const onAbort = () => reject(signal.reason);
|
|
140
|
+
if (signal.aborted)
|
|
141
|
+
return onAbort();
|
|
142
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
143
|
+
work.then(resolve, reject).finally(() => signal.removeEventListener("abort", onAbort));
|
|
144
|
+
});
|
|
145
|
+
}
|
|
91
146
|
function buildSystemPrompt(workflow, workspaceId, workflowPath) {
|
|
92
147
|
return [
|
|
93
148
|
"You are an autonomous workflow executing in an isolated workspace sandbox.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/engines/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAwB,MAAM,qBAAqB,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAa,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAkCrE;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,QAAQ,CAAA;IAEP,WAAW,CAAmB;IAC9B,gBAAgB,CAAmB;IACnC,IAAI,CAAM;IAE3B,YAAY,UAA+B,EAAE;QAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QACpD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAa,EAAE,GAAkB;QACzC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACvD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC1B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;SACvC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAErC,+EAA+E;QAC/E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7F,6EAA6E;QAC7E,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,UAAU,GAAG;YACjB,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;YACzD,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;SAC7B,CAAA;QACD,oEAAoE;QACpE,2EAA2E;QAC3E,oEAAoE;QACpE,
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../../src/engines/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,aAAa,EAAwB,MAAM,qBAAqB,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAa,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAkCrE;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,GAAG,QAAQ,CAAA;IAEP,WAAW,CAAmB;IAC9B,gBAAgB,CAAmB;IACnC,IAAI,CAAM;IAE3B,YAAY,UAA+B,EAAE;QAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;QACpD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,EAAE,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAA;IACxC,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAa,EAAE,GAAkB;QACzC,wEAAwE;QACxE,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,iDAAiD;QACjD,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAEvD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACvD,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;YAC1B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;SACvC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,aAAa,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;QAErC,+EAA+E;QAC/E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7F,6EAA6E;QAC7E,yEAAyE;QACzE,0DAA0D;QAC1D,MAAM,UAAU,GAAG;YACjB,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;YACzD,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;SAC7B,CAAA;QACD,oEAAoE;QACpE,2EAA2E;QAC3E,oEAAoE;QACpE,oEAAoE;QACpE,gDAAgD;QAChD,IAAI,UAAsD,CAAA;QAC1D,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACvF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,GAAG,CAAA;YACnC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAClD,GAAG,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAA;YAEzE,sEAAsE;YACtE,qEAAqE;YACrE,mDAAmD;YACnD,IAAI,OAAe,CAAA;YACnB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACxE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM,GAAG,CAAA;gBACnC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAChC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,IAAI,CAAC,IAAI,EACT;gBACE,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC;gBAC5B,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC;gBAC7E,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC;gBAChE,KAAK;gBACL,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;aACvC;YACD,uEAAuE;YACvE,+CAA+C;YAC/C;gBACE,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC;gBAC1C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9C,CACF,CAAA;YACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;QACvD,CAAC;gBAAS,CAAC;YACT,0EAA0E;YAC1E,8CAA8C;YAC9C,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,YAAY,CAAC,IAAa,EAAE,GAAkB;QAC1D,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QAE3D,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAA;QAE/C,GAAG,CAAC,GAAG,CACL,YAAY,SAAS,CAAC,MAAM,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,MAAM,cAAc,CAC5F,CAAA;QACD,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACrE,CAAC;CACF;AAED,yEAAyE;AACzE,SAAS,kBAAkB,CAAC,GAAkB;IAC5C,GAAG,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;IACnD,OAAO;QACL,IAAI,EAAE,+DAA+D;QACrE,OAAO,EAAE,UAAU;KACpB,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAI,IAAgB,EAAE,MAA+B;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAe,CAAC,CAAA;QAC1D,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,OAAO,EAAE,CAAA;QACpC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;IACxF,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,QAA4B,EAC5B,WAAmB,EACnB,YAAoB;IAEpB,OAAO;QACL,4EAA4E;QAC5E,cAAc,WAAW,EAAE;QAC3B,aAAa,QAAQ,CAAC,IAAI,IAAI,YAAY,EAAE;QAC5C,+EAA+E;QAC/E,sEAAsE;QACtE,8EAA8E;QAC9E,4EAA4E;QAC5E,qCAAqC;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CACtB,QAA4B,EAC5B,OAAe,EACf,MAA+B;IAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACxD,OAAO;QACL,QAAQ,CAAC,MAAM,IAAI,gBAAgB,QAAQ,CAAC,IAAI,aAAa;QAC7D,EAAE;QACF,WAAW;QACX,SAAS;QACT,UAAU;QACV,KAAK;QACL,EAAE;QACF,sBAAsB;QACtB,OAAO,IAAI,4BAA4B;KACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
|
package/dist/engines/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RunEventSink } from "../events.js";
|
|
1
|
+
import type { RunEventSink, RunOutcome } from "../events.js";
|
|
2
2
|
import type { ProviderSelection } from "../providers/index.js";
|
|
3
3
|
import type { ConnectorConfig, Permissions, WorkflowDefinition } from "../types.js";
|
|
4
4
|
/**
|
|
@@ -59,6 +59,13 @@ export interface EngineContext {
|
|
|
59
59
|
* silently — the events it does emit are exact.
|
|
60
60
|
*/
|
|
61
61
|
emit?: RunEventSink;
|
|
62
|
+
/**
|
|
63
|
+
* Cancels the run. The native engine threads it through the loop to every
|
|
64
|
+
* model request and tool; the external engines merge it with their own
|
|
65
|
+
* wall-clock timers and stop their harness process. A canceled run resolves
|
|
66
|
+
* with whatever prose it had and `outcome: "canceled"` rather than rejecting.
|
|
67
|
+
*/
|
|
68
|
+
signal?: AbortSignal;
|
|
62
69
|
}
|
|
63
70
|
/**
|
|
64
71
|
* What an engine returns.
|
|
@@ -82,6 +89,14 @@ export interface EngineResult {
|
|
|
82
89
|
text: string;
|
|
83
90
|
/** Anything else the run produced, in the application's own shape. */
|
|
84
91
|
emissions?: unknown;
|
|
92
|
+
/**
|
|
93
|
+
* Why the run stopped, in the same vocabulary as `run.finished`. The native
|
|
94
|
+
* engine reports the loop's own outcome; an external engine maps its
|
|
95
|
+
* harness's ending onto it (its timer → `timed_out`, the caller's signal →
|
|
96
|
+
* `canceled`, a clean finish → `completed`, a harness-reported error →
|
|
97
|
+
* `failed`). Optional so an engine that cannot tell stays honest by omitting it.
|
|
98
|
+
*/
|
|
99
|
+
outcome?: RunOutcome;
|
|
85
100
|
}
|
|
86
101
|
/** The outcome of an engine's capability check for a given run. */
|
|
87
102
|
export type EngineSupport = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEnF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B;sFACkF;IAClF,OAAO,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,WAAW,CAAA;IACxB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,+DAA+D;IAC/D,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,6DAA6D;IAC7D,QAAQ,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,iBAAiB,CAAA;IAC3D,8EAA8E;IAC9E,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACvD;AAED,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3B;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,YAAY;IAC3B,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,UAAU,CAAA;CACrB;AAED,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB;mFAC+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;IACtC,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CAC9D"}
|
package/dist/events.d.ts
CHANGED
|
@@ -27,8 +27,9 @@
|
|
|
27
27
|
* worse than no observability, and the kernel already applies this rule to
|
|
28
28
|
* context providers.
|
|
29
29
|
*/
|
|
30
|
+
import type { Usage } from "./models/types.js";
|
|
30
31
|
/** Every event kind the loop emits. */
|
|
31
|
-
export type RunEventType = "run.started" | "model.turn" | "tool.called" | "tool.succeeded" | "tool.failed" | "run.budget_exhausted" | "run.finished";
|
|
32
|
+
export type RunEventType = "run.started" | "model.turn" | "model.turn.failed" | "tool.called" | "tool.succeeded" | "tool.failed" | "run.budget_exhausted" | "run.finished";
|
|
32
33
|
/**
|
|
33
34
|
* Fields common to every event.
|
|
34
35
|
*
|
|
@@ -41,10 +42,24 @@ export interface RunEventBase {
|
|
|
41
42
|
seq: number;
|
|
42
43
|
at: number;
|
|
43
44
|
}
|
|
44
|
-
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Why a run stopped. `failed` means the loop threw — the error propagates to
|
|
47
|
+
* the caller unchanged, but the stream is closed first so a persistent
|
|
48
|
+
* consumer can tell a crashed run from one that is still going.
|
|
49
|
+
*
|
|
50
|
+
* `canceled` means the CALLER aborted the run through its `signal`; it is kept
|
|
51
|
+
* apart from `timed_out` (the run's own wall-clock budget ran out) because the
|
|
52
|
+
* two call for different responses — one was asked for, the other was not. In
|
|
53
|
+
* the native loop both are clean stops that return the accumulated prose, never
|
|
54
|
+
* a throw.
|
|
55
|
+
*/
|
|
56
|
+
export type RunOutcome = "completed" | "steps_exhausted" | "timed_out" | "canceled" | "failed";
|
|
57
|
+
/**
|
|
58
|
+
* Whether a tool's effect is safe to execute again after an interruption,
|
|
59
|
+
* copied from `ToolMetadata.replay`. Absent means the tool made no claim, which
|
|
60
|
+
* a resuming consumer must treat as `unsafe`.
|
|
61
|
+
*/
|
|
62
|
+
export type ToolReplay = "safe" | "unsafe";
|
|
48
63
|
/** Which budget ran out. */
|
|
49
64
|
export type BudgetKind = "steps" | "duration";
|
|
50
65
|
/** The loop is about to take its first turn. Carries the resolved budgets and
|
|
@@ -65,6 +80,30 @@ export interface ModelTurnEvent extends RunEventBase {
|
|
|
65
80
|
id: string;
|
|
66
81
|
name: string;
|
|
67
82
|
}[];
|
|
83
|
+
/** What the turn cost, when the model reported it (`ModelResult.usage`).
|
|
84
|
+
* Absent means "not reported", never "free". */
|
|
85
|
+
usage?: Usage;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* A model invocation failed and the loop **absorbed** it: the run carries on
|
|
89
|
+
* and will still close with its normal outcome. A model failure that is NOT
|
|
90
|
+
* absorbed propagates instead, and is recorded by `run.finished` with
|
|
91
|
+
* `outcome: "failed"` — so this event never precedes a crash, and a consumer
|
|
92
|
+
* never sees the same failure twice.
|
|
93
|
+
*
|
|
94
|
+
* Today the one absorbed call is the tools-free wrap-up the loop makes after
|
|
95
|
+
* the step budget runs out (`phase: "summary"`); on failure the run falls back
|
|
96
|
+
* to the last assistant prose. `phase` is there so that one emitter is explicit
|
|
97
|
+
* rather than implied, and so a future soft-failing call names itself instead
|
|
98
|
+
* of overloading this one. Without the event, the stream would be quieter than
|
|
99
|
+
* `log` in the one place they must agree: a `run.finished` whose text came from
|
|
100
|
+
* an earlier turn would be indistinguishable from a summary that succeeded.
|
|
101
|
+
*/
|
|
102
|
+
export interface ModelTurnFailedEvent extends RunEventBase {
|
|
103
|
+
type: "model.turn.failed";
|
|
104
|
+
step: number;
|
|
105
|
+
phase: "summary";
|
|
106
|
+
error: string;
|
|
68
107
|
}
|
|
69
108
|
/**
|
|
70
109
|
* A tool is about to execute. Emitted before the call so a crash mid-tool still
|
|
@@ -93,6 +132,8 @@ export interface ToolCalledEvent extends RunEventBase {
|
|
|
93
132
|
reversible?: boolean;
|
|
94
133
|
undoToolName?: string | null;
|
|
95
134
|
undoWindowSeconds?: number | null;
|
|
135
|
+
/** The tool's declared `ToolMetadata.replay`, copied at call time. */
|
|
136
|
+
replay?: ToolReplay;
|
|
96
137
|
}
|
|
97
138
|
/**
|
|
98
139
|
* A tool executed successfully.
|
|
@@ -116,17 +157,20 @@ export interface ToolSucceededEvent extends RunEventBase {
|
|
|
116
157
|
reversible?: boolean;
|
|
117
158
|
undoToolName?: string | null;
|
|
118
159
|
undoWindowSeconds?: number | null;
|
|
160
|
+
/** The tool's declared `ToolMetadata.replay`, copied at call time. */
|
|
161
|
+
replay?: ToolReplay;
|
|
119
162
|
}
|
|
120
163
|
/** A tool call did not produce a result. `unknown_tool` is separated from
|
|
121
164
|
* `threw` because they mean different things to a consumer: one is a model
|
|
122
165
|
* hallucinating a name, the other is a real effect that may have partially
|
|
123
|
-
* landed.
|
|
166
|
+
* landed. `aborted` is a tool stopped by the run's cancel or deadline — its
|
|
167
|
+
* effect may also have partially landed, but the tool did not fail. */
|
|
124
168
|
export interface ToolFailedEvent extends RunEventBase {
|
|
125
169
|
type: "tool.failed";
|
|
126
170
|
step: number;
|
|
127
171
|
callId: string;
|
|
128
172
|
name: string;
|
|
129
|
-
reason: "threw" | "unknown_tool";
|
|
173
|
+
reason: "threw" | "unknown_tool" | "aborted";
|
|
130
174
|
error: string;
|
|
131
175
|
}
|
|
132
176
|
/** A budget was exhausted. Emitted at the moment the loop notices, which for
|
|
@@ -152,16 +196,17 @@ export interface RunFinishedEvent extends RunEventBase {
|
|
|
152
196
|
outcome: RunOutcome;
|
|
153
197
|
steps?: number;
|
|
154
198
|
text?: string;
|
|
155
|
-
/** Present
|
|
199
|
+
/** Present when `outcome` is `failed`, and when a loop THREW on a caller
|
|
200
|
+
* abort (`canceled` with the error that loop raised). */
|
|
156
201
|
error?: string;
|
|
157
202
|
}
|
|
158
|
-
export type RunEvent = RunStartedEvent | ModelTurnEvent | ToolCalledEvent | ToolSucceededEvent | ToolFailedEvent | RunBudgetExhaustedEvent | RunFinishedEvent;
|
|
203
|
+
export type RunEvent = RunStartedEvent | ModelTurnEvent | ModelTurnFailedEvent | ToolCalledEvent | ToolSucceededEvent | ToolFailedEvent | RunBudgetExhaustedEvent | RunFinishedEvent;
|
|
159
204
|
/** Where events go. Synchronous and returning void on purpose: a sink that
|
|
160
205
|
* needs to do I/O should buffer and flush on its own schedule rather than make
|
|
161
206
|
* the loop await it. */
|
|
162
207
|
export type RunEventSink = (event: RunEvent) => void;
|
|
163
208
|
/** The per-event fields a caller supplies; `seq` and `at` are the emitter's. */
|
|
164
|
-
export type RunEventInput = Omit<RunStartedEvent, keyof RunEventBase> | Omit<ModelTurnEvent, keyof RunEventBase> | Omit<ToolCalledEvent, keyof RunEventBase> | Omit<ToolSucceededEvent, keyof RunEventBase> | Omit<ToolFailedEvent, keyof RunEventBase> | Omit<RunBudgetExhaustedEvent, keyof RunEventBase> | Omit<RunFinishedEvent, keyof RunEventBase>;
|
|
209
|
+
export type RunEventInput = Omit<RunStartedEvent, keyof RunEventBase> | Omit<ModelTurnEvent, keyof RunEventBase> | Omit<ModelTurnFailedEvent, keyof RunEventBase> | Omit<ToolCalledEvent, keyof RunEventBase> | Omit<ToolSucceededEvent, keyof RunEventBase> | Omit<ToolFailedEvent, keyof RunEventBase> | Omit<RunBudgetExhaustedEvent, keyof RunEventBase> | Omit<RunFinishedEvent, keyof RunEventBase>;
|
|
165
210
|
/**
|
|
166
211
|
* The events a {@link Loop} may emit: everything except the bookends.
|
|
167
212
|
*
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,uCAAuC;AACvC,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,YAAY,GACZ,aAAa,GACb,gBAAgB,GAChB,aAAa,GACb,sBAAsB,GACtB,cAAc,CAAA;AAElB;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,EAAE,EAAE,MAAM,CAAA;CACX;AAED
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAwPH;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAmB,EACnB,MAA8B,GAAG,EAAE,GAAE,CAAC;IAEtC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO;QACL,IAAI,CAAC,KAAoB;YACvB,MAAM,OAAO,GAAa,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;YAClE,IAAI,CAAC,IAAI;gBAAE,OAAM;YACjB,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,CAAA;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,qDAAqD;gBACrD,GAAG,CACD,uBAAuB,OAAO,CAAC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC3F,CAAA;YACH,CAAC;QACH,CAAC;QACD,IAAI,KAAK;YACP,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAe,EAAE,CAAA;IAC7B,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;AAC7D,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { ConnectorConfig, Permissions, WorkflowDefinition } from "./types.js";
|
|
2
2
|
export { selectProvider } from "./providers/index.js";
|
|
3
3
|
export type { ProviderSelection } from "./providers/index.js";
|
|
4
|
-
export type { Provider, CompletionRequest, ConverseRequest, ConverseResult, AgentMessage, ToolSpec, ToolCall, ToolResult, } from "./providers/types.js";
|
|
4
|
+
export type { Provider, CompletionRequest, ConverseRequest, ConverseResult, ConverseOptions, AgentMessage, ToolSpec, ToolCall, ToolResult, } from "./providers/types.js";
|
|
5
5
|
export { AnthropicProvider } from "./providers/anthropic.js";
|
|
6
6
|
export { OpenAIProvider, OpenAICompatibleProvider } from "./providers/openai.js";
|
|
7
7
|
export type { OpenAICompatibleOptions } from "./providers/openai.js";
|
|
@@ -27,10 +27,10 @@ export type { RunAgentOptions } from "./agent.js";
|
|
|
27
27
|
export { nativeLoop, runWithEvents } from "./loop.js";
|
|
28
28
|
export type { Loop, LoopRequest, LoopContext, RunContext, LoopResult } from "./loop.js";
|
|
29
29
|
export { runEventEmitter, recordRunEvents } from "./events.js";
|
|
30
|
-
export type { RunEvent, RunEventType, RunEventBase, RunEventInput, RunEventSink, RunEventEmitter, LoopEventInput, LoopEventEmitter, RunOutcome, BudgetKind, RunStartedEvent, ModelTurnEvent, ToolCalledEvent, ToolSucceededEvent, ToolFailedEvent, RunBudgetExhaustedEvent, RunFinishedEvent, } from "./events.js";
|
|
30
|
+
export type { RunEvent, RunEventType, RunEventBase, RunEventInput, RunEventSink, RunEventEmitter, LoopEventInput, LoopEventEmitter, RunOutcome, ToolReplay, BudgetKind, RunStartedEvent, ModelTurnEvent, ModelTurnFailedEvent, ToolCalledEvent, ToolSucceededEvent, ToolFailedEvent, RunBudgetExhaustedEvent, RunFinishedEvent, } from "./events.js";
|
|
31
31
|
export { primitiveTools, connectorTools, executeTool } from "./tools/registry.js";
|
|
32
|
-
export type { Tool, ToolOutput } from "./tools/registry.js";
|
|
33
|
-
export { selectTools, isToolVisible, toToolSpecs, toolsRequiringConfirmation, undoToolFor, } from "./tools/metadata.js";
|
|
32
|
+
export type { Tool, ToolOutput, ToolContext } from "./tools/registry.js";
|
|
33
|
+
export { selectTools, isToolVisible, toToolSpecs, toolsRequiringConfirmation, replaySafeTools, undoToolFor, } from "./tools/metadata.js";
|
|
34
34
|
export type { ToolMetadata, ToolSelection, InvocationMode, ResultRetention, ClientResultVisibility, } from "./tools/metadata.js";
|
|
35
35
|
export { modelAsTool } from "./tools/modelTool.js";
|
|
36
36
|
export type { ModelToolOptions } from "./tools/modelTool.js";
|
|
@@ -42,7 +42,7 @@ export type { HttpFetchOptions, HttpResponse } from "./primitives/http.js";
|
|
|
42
42
|
export { downloadToFile } from "./primitives/download.js";
|
|
43
43
|
export type { DownloadOptions } from "./primitives/download.js";
|
|
44
44
|
export { connectMcp, MCP_CLIENT_NAME } from "./connectors/mcpClient.js";
|
|
45
|
-
export type { McpConnection } from "./connectors/mcpClient.js";
|
|
45
|
+
export type { McpConnection, McpCallOptions } from "./connectors/mcpClient.js";
|
|
46
46
|
export { selectEngine } from "./engines/index.js";
|
|
47
47
|
export type { EngineSelection } from "./engines/index.js";
|
|
48
48
|
export type { AgentEngine, EngineContext, EngineResult, EngineSupport, RunSpec, } from "./engines/types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -45,7 +45,7 @@ export { runEventEmitter, recordRunEvents } from "./events.js";
|
|
|
45
45
|
// MCP connectors, rich metadata + projections, and models-as-tools
|
|
46
46
|
// ---------------------------------------------------------------------------
|
|
47
47
|
export { primitiveTools, connectorTools, executeTool } from "./tools/registry.js";
|
|
48
|
-
export { selectTools, isToolVisible, toToolSpecs, toolsRequiringConfirmation, undoToolFor, } from "./tools/metadata.js";
|
|
48
|
+
export { selectTools, isToolVisible, toToolSpecs, toolsRequiringConfirmation, replaySafeTools, undoToolFor, } from "./tools/metadata.js";
|
|
49
49
|
export { modelAsTool } from "./tools/modelTool.js";
|
|
50
50
|
// ---------------------------------------------------------------------------
|
|
51
51
|
// Sandbox primitives (the executors the tools are built on)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,mBAAmB;AAOnB,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|