anchor-ai-sdk 0.2.0 → 0.3.1
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 +73 -0
- package/dist/anchor.d.ts +2 -0
- package/dist/anchor.d.ts.map +1 -1
- package/dist/anchor.js +1 -0
- package/dist/anchor.js.map +1 -1
- package/dist/engine/dispatch.d.ts +0 -9
- package/dist/engine/dispatch.d.ts.map +1 -1
- package/dist/engine/dispatch.js +103 -1
- package/dist/engine/dispatch.js.map +1 -1
- package/dist/engine/loop.d.ts.map +1 -1
- package/dist/engine/loop.js +23 -3
- package/dist/engine/loop.js.map +1 -1
- package/dist/engine/types.d.ts +3 -0
- package/dist/engine/types.d.ts.map +1 -1
- package/dist/engine/types.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +36 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +82 -0
- package/dist/json.js.map +1 -0
- package/dist/ledger/types.d.ts +2 -1
- package/dist/ledger/types.d.ts.map +1 -1
- package/dist/ledger/types.js +0 -10
- package/dist/ledger/types.js.map +1 -1
- package/dist/lsp/tools.d.ts +5 -0
- package/dist/lsp/tools.d.ts.map +1 -1
- package/dist/lsp/tools.js +34 -18
- package/dist/lsp/tools.js.map +1 -1
- package/dist/repo.d.ts +17 -0
- package/dist/repo.d.ts.map +1 -0
- package/dist/repo.js +67 -0
- package/dist/repo.js.map +1 -0
- package/dist/skills/index.d.ts +16 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +33 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/types.d.ts +28 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +2 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/bash.js +19 -2
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +3 -0
- package/dist/tools/edit-file.js.map +1 -1
- package/dist/tools/finish.d.ts.map +1 -1
- package/dist/tools/finish.js +4 -1
- package/dist/tools/finish.js.map +1 -1
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/repo.d.ts +22 -0
- package/dist/tools/repo.d.ts.map +1 -0
- package/dist/tools/repo.js +40 -0
- package/dist/tools/repo.js.map +1 -0
- package/dist/tools/run-tests.d.ts.map +1 -1
- package/dist/tools/run-tests.js +36 -7
- package/dist/tools/run-tests.js.map +1 -1
- package/dist/tools/skills.d.ts +17 -0
- package/dist/tools/skills.d.ts.map +1 -0
- package/dist/tools/skills.js +76 -0
- package/dist/tools/skills.js.map +1 -0
- package/dist/tools/types.d.ts +16 -3
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/trace/sink.d.ts +5 -15
- package/dist/trace/sink.d.ts.map +1 -1
- package/dist/trace/sink.js +22 -3
- package/dist/trace/sink.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -132,6 +132,79 @@ as failures instead of looping into `stalled`.
|
|
|
132
132
|
Compile/verifier usage counts against the run budget. `compileLedger` remains
|
|
133
133
|
exported; `create: "start"` is its only path into a run.
|
|
134
134
|
|
|
135
|
+
## Peer-repository workspaces
|
|
136
|
+
|
|
137
|
+
A sandbox workspace can contain several peer repositories. The workspace root
|
|
138
|
+
is a container, not a git repository:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
/workspace
|
|
142
|
+
api/ (repo A, own .git)
|
|
143
|
+
web/ (repo B, own .git)
|
|
144
|
+
infra/ (repo C, own .git)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Declare them with `repos`:
|
|
148
|
+
|
|
149
|
+
```ts
|
|
150
|
+
const result = await runAgent(
|
|
151
|
+
{ messages: [{ role: "user", content: "Fix the API and its web test" }] },
|
|
152
|
+
{
|
|
153
|
+
llm,
|
|
154
|
+
sandbox,
|
|
155
|
+
agent: codingAgent,
|
|
156
|
+
repos: [
|
|
157
|
+
{ name: "acme/api", path: "api" },
|
|
158
|
+
{ name: "acme/web", path: "web" },
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
);
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Tools target **one repository per call**:
|
|
165
|
+
|
|
166
|
+
- `bash({ repository: "acme/api", command: "npm test" })`
|
|
167
|
+
- `run_tests({ repository: "acme/api" })`
|
|
168
|
+
- `edit_file` attributes its path to the longest matching repo prefix.
|
|
169
|
+
|
|
170
|
+
There is deliberately no list-shaped “run in all repos” tool. Separate calls
|
|
171
|
+
keep results small, attributable, and below the truncation/spill boundary.
|
|
172
|
+
|
|
173
|
+
Read-only calls keep running in parallel. In a turn containing mutations,
|
|
174
|
+
different repository keys may run concurrently; calls in the same repository
|
|
175
|
+
serialize. Omit `repository` only for a command that intentionally spans
|
|
176
|
+
repositories — it runs at the workspace root and serializes globally. Effectful
|
|
177
|
+
tools remain serial and ordered.
|
|
178
|
+
|
|
179
|
+
`run_tests` in a multi-repo workspace requires `repository`; its metadata
|
|
180
|
+
includes that repo and a tree hash computed there. LSP servers are rooted per
|
|
181
|
+
repo when you pass `repos` to `createLspTools({ repos })`.
|
|
182
|
+
|
|
183
|
+
With no `repos`, every tool behaves exactly as before: the workspace root is
|
|
184
|
+
the repo. Checkpoints remain single-root; per-repo snapshots are supplied by the
|
|
185
|
+
consumer through `EngineOptions.snapshot`.
|
|
186
|
+
|
|
187
|
+
### Optional skills
|
|
188
|
+
|
|
189
|
+
Skills are consumer-owned instruction bundles. Anchor supplies a compact index
|
|
190
|
+
and an on-demand loader; it does not own storage, trust, or content:
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
import {
|
|
194
|
+
createSkillTools,
|
|
195
|
+
renderSkillIndex,
|
|
196
|
+
type SkillProvider,
|
|
197
|
+
} from "anchor-ai-sdk";
|
|
198
|
+
|
|
199
|
+
const index = renderSkillIndex(await provider.list());
|
|
200
|
+
const skills = createSkillTools({ provider });
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
The consumer injects `index` into its prompt and adds `skills` to the agent.
|
|
204
|
+
`load_skill({ name })` returns a bounded body plus resource paths; scripts run
|
|
205
|
+
only through the normal `bash` tool. The body is an untrusted tool result, never
|
|
206
|
+
a system message. See [docs/skills.md](docs/skills.md).
|
|
207
|
+
|
|
135
208
|
## One sandbox interface
|
|
136
209
|
|
|
137
210
|
**Configure the provider once. Keep the agent-facing machine interface the same.**
|
package/dist/anchor.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { AgentResult, EngineOptions, RunInput } from "./engine/types.js";
|
|
|
2
2
|
import type { Agent } from "./agents/types.js";
|
|
3
3
|
import type { LLMClient } from "./llm/types.js";
|
|
4
4
|
import type { Sandbox } from "./sandbox/types.js";
|
|
5
|
+
import type { RepoRef } from "./repo.js";
|
|
5
6
|
import type { Tool } from "./tools/types.js";
|
|
6
7
|
export type AnchorDefaults = Omit<Partial<EngineOptions>, "llm" | "agent" | "sandbox" | "tools" | "thread">;
|
|
7
8
|
export interface CreateAnchorOptions {
|
|
@@ -9,6 +10,7 @@ export interface CreateAnchorOptions {
|
|
|
9
10
|
agent?: Agent;
|
|
10
11
|
sandbox?: Sandbox;
|
|
11
12
|
tools?: Tool[];
|
|
13
|
+
repos?: RepoRef[];
|
|
12
14
|
thread?: EngineOptions["thread"];
|
|
13
15
|
/** Runtime options applied to every run; per-run overrides win. */
|
|
14
16
|
defaults?: AnchorDefaults;
|
package/dist/anchor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,OAAO,CAAC,aAAa,CAAC,EACtB,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CACjD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CACD,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,wEAAwE;IACxE,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"anchor.d.ts","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,OAAO,CAAC,aAAa,CAAC,EACtB,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CACjD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CACD,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GACjC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,wEAAwE;IACxE,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAsDjE"}
|
package/dist/anchor.js
CHANGED
|
@@ -13,6 +13,7 @@ export function createAnchor(options) {
|
|
|
13
13
|
...(options.agent ? { agent: options.agent } : {}),
|
|
14
14
|
...(options.sandbox ? { sandbox: options.sandbox } : {}),
|
|
15
15
|
...(options.tools ? { tools: options.tools } : {}),
|
|
16
|
+
...(options.repos ? { repos: options.repos } : {}),
|
|
16
17
|
...(options.thread ? { thread: options.thread } : {}),
|
|
17
18
|
...overrides,
|
|
18
19
|
});
|
package/dist/anchor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"anchor.js","sourceRoot":"","sources":["../src/anchor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool-call dispatch: the two shapes a model turn can take.
|
|
3
|
-
*
|
|
4
|
-
* A turn whose calls are ALL read-only runs them in parallel (one round trip
|
|
5
|
-
* instead of N); anything else runs serially in the model's order, so a
|
|
6
|
-
* `finish` or a pause is observed before later calls. Both paths reuse the
|
|
7
|
-
* same repetition tracker and emit the same events, which is why they live
|
|
8
|
-
* together: splitting them is how they drift.
|
|
9
|
-
*/
|
|
10
1
|
import type { LLMMessage, LLMToolCall } from "../llm/types.js";
|
|
11
2
|
import type { Tool } from "../tools/types.js";
|
|
12
3
|
import type { ToolContext } from "../tools/types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/dispatch.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool-call dispatch: the two shapes a model turn can take.
|
|
3
|
+
*
|
|
4
|
+
* A turn whose calls are ALL read-only runs them in parallel (one round trip
|
|
5
|
+
* instead of N); anything else runs serially in the model's order, so a
|
|
6
|
+
* `finish` or a pause is observed before later calls. Both paths reuse the
|
|
7
|
+
* same repetition tracker and emit the same events, which is why they live
|
|
8
|
+
* together: splitting them is how they drift.
|
|
9
|
+
*/
|
|
10
|
+
import { toPlainJsonObject } from "../json.js";
|
|
1
11
|
import { toolVerb } from "../tools/activity.js";
|
|
2
12
|
import { boundToolResult, TOOL_RESULT_MAX_CHARS } from "../tools/truncate.js";
|
|
3
13
|
import { toolResultMessage } from "./context.js";
|
|
@@ -27,7 +37,20 @@ async function invoke(tool, name, input, ctx, available) {
|
|
|
27
37
|
};
|
|
28
38
|
}
|
|
29
39
|
try {
|
|
30
|
-
const
|
|
40
|
+
const raw = await tool.run(input, ctx);
|
|
41
|
+
// The result is captured as evidence and persisted by consumers. Make it
|
|
42
|
+
// plain here, once: the model text is a string, meta is a detached JSON
|
|
43
|
+
// copy, so a tool can neither alias engine state nor smuggle a cycle.
|
|
44
|
+
const content = typeof raw.content === "string" ? raw.content : String(raw.content ?? "");
|
|
45
|
+
const meta = toPlainJsonObject(raw.meta);
|
|
46
|
+
const result = {
|
|
47
|
+
...raw,
|
|
48
|
+
ok: raw.ok === true,
|
|
49
|
+
content,
|
|
50
|
+
...(meta ? { meta } : {}),
|
|
51
|
+
};
|
|
52
|
+
if (!meta)
|
|
53
|
+
delete result.meta;
|
|
31
54
|
// Consumer tools are not required to know the truncation policy. Enforce
|
|
32
55
|
// one ceiling here so a badly behaved tool cannot flood context.
|
|
33
56
|
if (result.content.length > TOOL_RESULT_MAX_CHARS) {
|
|
@@ -152,6 +175,85 @@ export async function dispatchToolCalls(args) {
|
|
|
152
175
|
}
|
|
153
176
|
return { runaway, jobs, settlements, ...(declared ? { declared } : {}) };
|
|
154
177
|
}
|
|
178
|
+
// Resource-grouped mutation path. Only non-effect mutations with distinct
|
|
179
|
+
// repository keys are eligible; anything global/effectful/finish falls back
|
|
180
|
+
// to the fully ordered path below. Results are still emitted in call order.
|
|
181
|
+
if (calls.length > 1 && !declared && !args.pauseRequested() && !signal?.aborted) {
|
|
182
|
+
const prepared = calls.map((call) => {
|
|
183
|
+
const tool = available.get(call.name);
|
|
184
|
+
const { input, invalid } = parseInput(call);
|
|
185
|
+
const verb = toolVerb(call.name, input, tool?.verb);
|
|
186
|
+
const key = invalid === undefined &&
|
|
187
|
+
tool &&
|
|
188
|
+
tool.readOnly !== true &&
|
|
189
|
+
tool.effect === undefined &&
|
|
190
|
+
tool.resource
|
|
191
|
+
? (() => {
|
|
192
|
+
try {
|
|
193
|
+
return tool.resource(input, toolContext);
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
return undefined;
|
|
197
|
+
}
|
|
198
|
+
})()
|
|
199
|
+
: undefined;
|
|
200
|
+
return { call, tool, input, invalid, verb, key };
|
|
201
|
+
});
|
|
202
|
+
const keys = prepared.map((item) => item.key);
|
|
203
|
+
const grouped = keys.every((key) => typeof key === "string") &&
|
|
204
|
+
new Set(keys).size > 1;
|
|
205
|
+
if (grouped) {
|
|
206
|
+
for (const item of prepared) {
|
|
207
|
+
if (repeat.record(`${item.call.name}:${item.call.arguments}`)) {
|
|
208
|
+
runaway = true;
|
|
209
|
+
}
|
|
210
|
+
emit({
|
|
211
|
+
type: "tool_call",
|
|
212
|
+
name: item.call.name,
|
|
213
|
+
callId: item.call.id,
|
|
214
|
+
input: item.input,
|
|
215
|
+
verb: item.verb,
|
|
216
|
+
phase,
|
|
217
|
+
step: steps,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
const groups = new Map();
|
|
221
|
+
for (const item of prepared) {
|
|
222
|
+
const key = item.key;
|
|
223
|
+
const list = groups.get(key) ?? [];
|
|
224
|
+
list.push(item);
|
|
225
|
+
groups.set(key, list);
|
|
226
|
+
}
|
|
227
|
+
const results = new Map();
|
|
228
|
+
await Promise.all([...groups.values()].map(async (group) => {
|
|
229
|
+
for (const item of group) {
|
|
230
|
+
if (runaway || signal?.aborted || args.pauseRequested()) {
|
|
231
|
+
results.set(item.call.id, {
|
|
232
|
+
ok: false,
|
|
233
|
+
content: runaway
|
|
234
|
+
? "Not executed: repeated identical calls reached the loop limit."
|
|
235
|
+
: signal?.aborted
|
|
236
|
+
? "Not executed: cancelled by signal."
|
|
237
|
+
: "Not executed: the caller requested a pause.",
|
|
238
|
+
});
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
if (item.invalid) {
|
|
242
|
+
results.set(item.call.id, { ok: false, content: item.invalid });
|
|
243
|
+
continue;
|
|
244
|
+
}
|
|
245
|
+
const outcome = await invoke(item.tool, item.call.name, item.input, toolContext, available);
|
|
246
|
+
results.set(item.call.id, "invalid" in outcome
|
|
247
|
+
? { ok: false, content: outcome.invalid }
|
|
248
|
+
: outcome.result);
|
|
249
|
+
}
|
|
250
|
+
}));
|
|
251
|
+
for (const item of prepared) {
|
|
252
|
+
emitResult(item.call, item.verb, results.get(item.call.id));
|
|
253
|
+
}
|
|
254
|
+
return { runaway, jobs, settlements };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
155
257
|
for (const call of calls) {
|
|
156
258
|
const tool = available.get(call.name);
|
|
157
259
|
const { input, invalid } = parseInput(call);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA6EjD,uFAAuF;AACvF,SAAS,UAAU,CAAC,IAAiB;IAInC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC5B,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAiC,EAAE,CAAC;IACtD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,KAAK,UAAU,MAAM,CACnB,IAAsB,EACtB,IAAY,EACZ,KAA8B,EAC9B,GAAgB,EAChB,SAA4B;IAI5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACnF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC1C,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;YAClD,OAAO;gBACL,MAAM,EAAE;oBACN,GAAG,MAAM;oBACT,OAAO,EAAE,MAAM,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;wBAC7C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAChD,KAAK,EAAE,QAAQ,IAAI,EAAE;qBACtB,CAAC;iBACH;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE;gBACN,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;aACtE;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAsB;IAEtB,MAAM,EACJ,KAAK,EACL,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,MAAM,GACP,GAAG,IAAI,CAAC;IACT,IAAI,QAAqC,CAAC;IAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,MAAM,WAAW,GAAuD,EAAE,CAAC;IAE3E,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,2EAA2E;YAC3E,OAAO,IAAI,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;QAC9D,CAAC,CAAC;QACF,CAAC,QAAQ;QACT,CAAC,IAAI,CAAC,cAAc,EAAE;QACtB,CAAC,MAAM,EAAE,OAAO,CAAC;IAEnB,MAAM,UAAU,GAAG,CACjB,IAAiB,EACjB,IAAwB,EACxB,MAAkB,EAClB,WAAoB,EACd,EAAE;QACR,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC;YACH,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;YACzB,KAAK;YACL,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EACL,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC7B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,CAAC,EAAE;oBACT,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,QAAQ;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;YACnC,IAAI,EAAE,MAAM,CAAC,IAAI;SAClB,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3C,yEAAyE;QACzE,sDAAsD;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAEP,CAAC;QACd,MAAM,KAAK,GAAG,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;gBACrB,GAAG,CAAC,OAAO,IAAI,EAAE,WAAW,KAAK,QAAQ;oBACvC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;oBACnC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC;gBACH,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK;gBACL,IAAI;gBACJ,KAAK;gBACL,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;YACpE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CACV,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAuB,EAAE;YACrE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EACL,gEAAgE;iBACnE,CAAC;YACJ,CAAC;YACD,IAAI,OAAO;gBACT,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7E,OAAO,SAAS,IAAI,OAAO;gBACzB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;gBACzC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACrB,CAAC,CACF,CACF,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;YACpC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;QACpE,MAAM,OAAO,GACX,QAAQ,KAAK,SAAS;YACtB,IAAI,CAAC,cAAc,EAAE;YACrB,MAAM,EAAE,OAAO,KAAK,IAAI;YACxB,OAAO,CAAC;QAEV,yEAAyE;QACzE,0EAA0E;QAC1E,8DAA8D;QAC9D,IAAI,WAA+B,CAAC;QACpC,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,cAAkC,CAAC;QACvC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC7D,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;oBAChC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;oBACjC,IAAI,CAAC,KAAK,CAAC,OAAO;wBAChB,cAAc;4BACZ,2BAA2B,KAAK,CAAC,WAAW,yBAAyB;gCACrE,0DAA0D,CAAC;gBACjE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,cAAc;wBACZ,mEAAmE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC5H,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,KAAK;YACL,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,IAAI,MAAkB,CAAC;QACvB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,QAAQ;oBACf,CAAC,CAAC,+CAA+C;oBACjD,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;wBACrB,CAAC,CAAC,oEAAoE;wBACtE,CAAC,CAAC,MAAM,EAAE,OAAO;4BACf,CAAC,CAAC,oCAAoC;4BACtC,CAAC,CAAC,gEAAgE;aACzE,CAAC;QACJ,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAClD,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GACf,WAAW,IAAI,IAAI,CAAC,UAAU;gBAC5B,CAAC,CAAC;oBACE,GAAG,WAAW;oBACd,WAAW;oBACX,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CACnB,IAAI,CAAC,UAAW,CAAC,WAAW,CAAC,WAAY,EAAE,GAAG,CAAC;iBAClD;gBACH,CAAC,CAAC,WAAW,CAAC;YAClB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAC7E,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBACxB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;oBAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAC7B,QAAQ,GAAG;wBACT,EAAE,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK;wBAC1B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;wBACnC,GAAG,CAAC,OAAO,KAAK,SAAS;4BACzB,OAAO,OAAO,KAAK,QAAQ;4BAC3B,OAAO,KAAK,IAAI;4BACd,CAAC,CAAC,EAAE,OAAO,EAAE,OAAkC,EAAE;4BACjD,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,WAAW,IAAI,gBAAgB,IAAI,IAAI,CAAC,UAAU;YACpD,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO;QACL,OAAO;QACP,IAAI;QACJ,WAAW;QACX,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"AAyFA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EAGZ,MAAM,YAAY,CAAC;AAUpB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0gEtC,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAGtB"}
|
package/dist/engine/loop.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createFinishTool } from "../tools/finish.js";
|
|
2
|
+
import { validateRepos } from "../repo.js";
|
|
2
3
|
import { BudgetTracker, DEFAULT_BUDGET_LIMITS, DEFAULT_MAX_OUTPUT_TOKENS, } from "./budgets.js";
|
|
3
4
|
import { DEFAULT_TRUNCATED_REPLY_CHARS, DEFAULT_MAX_ASSISTANT_CHARS, elideReply, spillReply, } from "./elision.js";
|
|
4
5
|
import { compactConversation, compactConversationStructured, DEFAULT_COMPACTION, estimateTokens, renderCompactionHandoff, } from "./compaction.js";
|
|
@@ -61,11 +62,17 @@ async function runOne(input, opts, chain = {}) {
|
|
|
61
62
|
// A subscriber must never kill the run — same rule as sinks.
|
|
62
63
|
}
|
|
63
64
|
};
|
|
65
|
+
if (opts.repos?.length) {
|
|
66
|
+
if (!opts.sandbox)
|
|
67
|
+
throw new Error("EngineOptions.repos requires a sandbox");
|
|
68
|
+
validateRepos(opts.repos, opts.sandbox.workspace);
|
|
69
|
+
}
|
|
64
70
|
const tools = opts.tools ?? opts.agent?.tools ?? [];
|
|
65
71
|
const available = new Map(tools.map((tool) => [tool.definition.name, tool]));
|
|
66
72
|
/** The context every tool gets — including the host's background policy. */
|
|
67
73
|
const toolContext = {
|
|
68
74
|
sandbox: opts.sandbox,
|
|
75
|
+
...(opts.repos?.length ? { repos: opts.repos } : {}),
|
|
69
76
|
...(opts.backgroundAfterSecs !== undefined
|
|
70
77
|
? { backgroundAfterSecs: opts.backgroundAfterSecs }
|
|
71
78
|
: {}),
|
|
@@ -768,7 +775,11 @@ async function runOne(input, opts, chain = {}) {
|
|
|
768
775
|
return {
|
|
769
776
|
ok: true,
|
|
770
777
|
content: `Current approach: ${target.id} — ${target.goal}`,
|
|
771
|
-
meta: {
|
|
778
|
+
meta: {
|
|
779
|
+
phase,
|
|
780
|
+
previous,
|
|
781
|
+
...(typeof input.reason === "string" ? { reason: input.reason } : {}),
|
|
782
|
+
},
|
|
772
783
|
};
|
|
773
784
|
}, { verb: (input) => `Moving into the ${String(input.phase)} phase` }));
|
|
774
785
|
}
|
|
@@ -931,7 +942,13 @@ async function runOne(input, opts, chain = {}) {
|
|
|
931
942
|
...next.requirements.map((item) => `${item.id}: ${item.text} (phase ${item.phase ?? "any"})`),
|
|
932
943
|
"Use update_ledger to link evidence with a claim and verify each requirement.",
|
|
933
944
|
].join("\n"),
|
|
934
|
-
|
|
945
|
+
// Identifiers only: the ledger itself is emitted on task_created
|
|
946
|
+
// and must never ride a tool result, which is captured as evidence
|
|
947
|
+
// inside that same ledger.
|
|
948
|
+
meta: {
|
|
949
|
+
taskId: next.taskId,
|
|
950
|
+
requirements: next.requirements.map((item) => item.id),
|
|
951
|
+
},
|
|
935
952
|
};
|
|
936
953
|
}, { verb: "Creating the task contract" }));
|
|
937
954
|
}
|
|
@@ -1540,9 +1557,12 @@ async function runOne(input, opts, chain = {}) {
|
|
|
1540
1557
|
signal,
|
|
1541
1558
|
pauseRequested: () => pauseRequested,
|
|
1542
1559
|
onToolResult: (call, result) => {
|
|
1560
|
+
// Contract tools describe the ledger; they are not evidence about
|
|
1561
|
+
// the work and must not be recorded into the ledger they manage.
|
|
1543
1562
|
if (!ledger ||
|
|
1544
1563
|
call.name === "finish" ||
|
|
1545
|
-
call.name === "update_ledger"
|
|
1564
|
+
call.name === "update_ledger" ||
|
|
1565
|
+
call.name === "create_task") {
|
|
1546
1566
|
return;
|
|
1547
1567
|
}
|
|
1548
1568
|
const evidenceRef = recordEvidence(ledger, {
|