@tangle-network/agent-runtime 0.317.0 → 0.319.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{activation-CvdE2HIU.js → activation-ClcJ6wO1.js} +3 -3
- package/dist/{activation-CvdE2HIU.js.map → activation-ClcJ6wO1.js.map} +1 -1
- package/dist/{activation-BFDmjaKP.d.ts → activation-OColGsfd.d.ts} +2 -2
- package/dist/agent.d.ts +3 -3
- package/dist/agent.js +3 -3
- package/dist/{bundle-RgHpAFDY.js → bundle-Cw-QdGmH.js} +2 -2
- package/dist/{bundle-RgHpAFDY.js.map → bundle-Cw-QdGmH.js.map} +1 -1
- package/dist/candidate-execution/index.d.ts +40 -3
- package/dist/candidate-execution/index.js +86 -7
- package/dist/candidate-execution/index.js.map +1 -1
- package/dist/{coordination-driver-DGhN8GO9.js → coordination-driver-Culvomn2.js} +3 -3
- package/dist/{coordination-driver-DGhN8GO9.js.map → coordination-driver-Culvomn2.js.map} +1 -1
- package/dist/{delegate-B5pmSbQa.js → delegate-CpMbpiIR.js} +2 -2
- package/dist/{delegate-B5pmSbQa.js.map → delegate-CpMbpiIR.js.map} +1 -1
- package/dist/durable.d.ts +1 -1
- package/dist/durable.js +4 -4
- package/dist/{graph-G0j1ysqe.js → graph-DnfSGUM8.js} +5 -5
- package/dist/{graph-G0j1ysqe.js.map → graph-DnfSGUM8.js.map} +1 -1
- package/dist/graph-registry-BuJbzTzF.js +211 -0
- package/dist/graph-registry-BuJbzTzF.js.map +1 -0
- package/dist/{improvement-cycle-D7yR6GC2.js → improvement-cycle-xnQwUaC3.js} +7 -7
- package/dist/{improvement-cycle-D7yR6GC2.js.map → improvement-cycle-xnQwUaC3.js.map} +1 -1
- package/dist/{index-CUh40yUJ.d.ts → index-Da7w2H86.d.ts} +351 -132
- package/dist/index.d.ts +5 -5
- package/dist/index.js +10 -10
- package/dist/intelligence.d.ts +4 -4
- package/dist/intelligence.js +7 -7
- package/dist/kernel.d.ts +3 -2
- package/dist/kernel.js +12 -11
- package/dist/{loop-runner-bin-DQKLUt0l.d.ts → loop-runner-bin-CbBoLC9D.d.ts} +2 -2
- package/dist/{loop-runner-bin-CFVX4oi0.js → loop-runner-bin-uoeGHNZA.js} +3 -3
- package/dist/{loop-runner-bin-CFVX4oi0.js.map → loop-runner-bin-uoeGHNZA.js.map} +1 -1
- package/dist/loop-runner-bin.d.ts +1 -1
- package/dist/loop-runner-bin.js +1 -1
- package/dist/mcp/bin.js +3 -3
- package/dist/mcp/index.d.ts +2 -2
- package/dist/mcp/index.js +6 -6
- package/dist/{model-policy-DhvyZ8-O.js → model-policy-CNe257pB.js} +37 -2
- package/dist/model-policy-CNe257pB.js.map +1 -0
- package/dist/{openai-tools-u3gWBi3x.d.ts → openai-tools-Cu9E1Bda.d.ts} +2 -2
- package/dist/placement.d.ts +1 -1
- package/dist/{prepare-CD9kR0gS.js → prepare-DjCLEN-q.js} +3 -3
- package/dist/prepare-DjCLEN-q.js.map +1 -0
- package/dist/{profile-CHXYmpGd.js → profile-DmVM4Gxb.js} +9 -2
- package/dist/profile-DmVM4Gxb.js.map +1 -0
- package/dist/{profile-materialization-Cca615eu.d.ts → profile-materialization-C5-t3HJ7.d.ts} +14 -3
- package/dist/profiles.d.ts +1 -1
- package/dist/profiles.js +1 -1
- package/dist/{protected-model-port-C9QtEf3y.d.ts → protected-model-port-CQg2gstJ.d.ts} +3 -3
- package/dist/{protected-model-port-B0pHd65J.js → protected-model-port-D1fcnYdj.js} +4 -4
- package/dist/{protected-model-port-B0pHd65J.js.map → protected-model-port-D1fcnYdj.js.map} +1 -1
- package/dist/{provision-supervisor-BQLLrUtn.js → provision-supervisor-DiZTjzdp.js} +5 -5
- package/dist/{provision-supervisor-BQLLrUtn.js.map → provision-supervisor-DiZTjzdp.js.map} +1 -1
- package/dist/{runtime-B9BOFyEp.js → runtime-6qzuLTJ7.js} +514 -277
- package/dist/runtime-6qzuLTJ7.js.map +1 -0
- package/dist/{search-executor-B5ZVFsDV.js → search-executor-DlaLafvy.js} +4 -4
- package/dist/{search-executor-B5ZVFsDV.js.map → search-executor-DlaLafvy.js.map} +1 -1
- package/dist/{server-TwpH9aik.js → server-sLrmWqKw.js} +4 -4
- package/dist/{server-TwpH9aik.js.map → server-sLrmWqKw.js.map} +1 -1
- package/dist/{supervise-CU6AuxWY.js → supervise-D4CnC-cl.js} +5 -5
- package/dist/{supervise-CU6AuxWY.js.map → supervise-D4CnC-cl.js.map} +1 -1
- package/dist/{supervisor-CbFyf48U.js → supervisor-Cqhu3xH-.js} +709 -80
- package/dist/supervisor-Cqhu3xH-.js.map +1 -0
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +14 -14
- package/dist/tool-loop.d.ts +5 -1
- package/dist/tool-loop.js +4 -3
- package/dist/tool-loop.js.map +1 -1
- package/dist/tui/index.d.ts +1 -1
- package/dist/tui/index.js +1 -1
- package/dist/workspace-store/index.d.ts +171 -3
- package/dist/workspace-store/index.js +529 -8
- package/dist/workspace-store/index.js.map +1 -1
- package/dist/{workspace-streams-DkijayqX.js → workspace-streams-DFAhW7hF.js} +300 -42
- package/dist/workspace-streams-DFAhW7hF.js.map +1 -0
- package/dist/{workspace-streams-CpSmt3zx.d.ts → workspace-streams-U6_UfOXu.d.ts} +10 -2
- package/package.json +15 -11
- package/skills/agent-graphs/references/authoring.md +7 -0
- package/skills/codemode/SKILL.md +6 -4
- package/skills/codemode/references/runtime-execution.md +63 -11
- package/skills/graph-designer/SKILL.md +57 -0
- package/skills/profile-authoring/SKILL.md +17 -15
- package/dist/model-policy-DhvyZ8-O.js.map +0 -1
- package/dist/prepare-CD9kR0gS.js.map +0 -1
- package/dist/profile-CHXYmpGd.js.map +0 -1
- package/dist/runtime-B9BOFyEp.js.map +0 -1
- package/dist/supervisor-CbFyf48U.js.map +0 -1
- package/dist/workspace-streams-DkijayqX.js.map +0 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { m as ValidationError } from "./errors-DodWX-cb.js";
|
|
2
|
+
import { createHash } from "node:crypto";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
|
|
5
|
+
//#region \0rolldown/runtime.js
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __exportAll = (all, no_symbols) => {
|
|
8
|
+
let target = {};
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
13
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/runtime/supervise/graph-registry.ts
|
|
18
|
+
/**
|
|
19
|
+
* `graph-registry` — the designer's memory: graphs and their outcomes as files.
|
|
20
|
+
*
|
|
21
|
+
* The AgentGraph algebra makes a graph PLAIN DATA (nodes with pinned profiles,
|
|
22
|
+
* edges with registry-versioned directives, a budget, a deliverable
|
|
23
|
+
* description), which is the property that lets a graph be stored, replayed
|
|
24
|
+
* byte-identical, and mutated like code. This module is the thin durable layer
|
|
25
|
+
* on top: one JSONL record per run, the exact graph content-addressed beside
|
|
26
|
+
* it. The natural home is a SANDBOX WORKSPACE — the platform's snapshot story
|
|
27
|
+
* (Firecracker restore, warm leases, `continuity: 'resume'`) then makes the
|
|
28
|
+
* registry the agent's compounding execution memory across runs: a rerun over
|
|
29
|
+
* the same sandbox finds every graph the designer ever ran, what each cost,
|
|
30
|
+
* and whether it delivered.
|
|
31
|
+
*
|
|
32
|
+
* ORACLES STAY ENVIRONMENT-OWNED. `DeliverableSpec.check` is a function and is
|
|
33
|
+
* deliberately NOT stored: a stored graph keeps the deliverable's `describe`
|
|
34
|
+
* and an optional `checkRef`, and replay re-binds the check from the caller's
|
|
35
|
+
* environment. This is the graph contract's own doctrine — graders are
|
|
36
|
+
* environment, never workers — applied to persistence.
|
|
37
|
+
*
|
|
38
|
+
* Scoring is a documented heuristic, not a learned model: delivered beats
|
|
39
|
+
* failed, then cheaper (tokens, then iterations), then most recent. A designer
|
|
40
|
+
* that needs better selection replaces `pickBest`, not the records.
|
|
41
|
+
*/
|
|
42
|
+
var graph_registry_exports = /* @__PURE__ */ __exportAll({
|
|
43
|
+
digestOfGraph: () => digestOfGraph,
|
|
44
|
+
graphDigest: () => graphDigest,
|
|
45
|
+
graphFromStored: () => graphFromStored,
|
|
46
|
+
graphRegistry: () => graphRegistry,
|
|
47
|
+
graphRunsFor: () => graphRunsFor,
|
|
48
|
+
listGraphRuns: () => listGraphRuns,
|
|
49
|
+
loadGraph: () => loadGraph,
|
|
50
|
+
lookupGraph: () => lookupGraph,
|
|
51
|
+
pickBestGraph: () => pickBestGraph,
|
|
52
|
+
recordGraphRun: () => recordGraphRun,
|
|
53
|
+
storedGraphDigests: () => storedGraphDigests,
|
|
54
|
+
taskShapeDigest: () => taskShapeDigest
|
|
55
|
+
});
|
|
56
|
+
const RECORDS_FILE = "records.jsonl";
|
|
57
|
+
const GRAPHS_DIR = "graphs";
|
|
58
|
+
function sha256(value) {
|
|
59
|
+
return createHash("sha256").update(value).digest("hex");
|
|
60
|
+
}
|
|
61
|
+
/** Canonical serialization for content-addressing: stable key order, sorted. */
|
|
62
|
+
function canonicalJson(value) {
|
|
63
|
+
if (Array.isArray(value)) return `[${value.map(canonicalJson).join(",")}]`;
|
|
64
|
+
if (value && typeof value === "object") return `{${Object.entries(value).filter(([, v]) => v !== void 0).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([k, v]) => `${JSON.stringify(k)}:${canonicalJson(v)}`).join(",")}}`;
|
|
65
|
+
return JSON.stringify(value);
|
|
66
|
+
}
|
|
67
|
+
/** Digest of the exact graph (nodes + edges + budget + deliverable describe). */
|
|
68
|
+
function graphDigest(graph) {
|
|
69
|
+
return sha256(canonicalJson(graph));
|
|
70
|
+
}
|
|
71
|
+
/** Digest of the normalized task shape a designer looks records up by. */
|
|
72
|
+
function taskShapeDigest(taskShape) {
|
|
73
|
+
return sha256(canonicalJson(taskShape));
|
|
74
|
+
}
|
|
75
|
+
/** Digest of a runnable graph exactly as the registry stores it — the value
|
|
76
|
+
* `recordGraphRun` demands. Callers recording real runs hash through this,
|
|
77
|
+
* never hand-rolled, so a record always matches its graph. */
|
|
78
|
+
function digestOfGraph(graph) {
|
|
79
|
+
return storeGraph(graph).digest;
|
|
80
|
+
}
|
|
81
|
+
function storeGraph(graph) {
|
|
82
|
+
return {
|
|
83
|
+
digest: graphDigest({
|
|
84
|
+
nodes: graph.nodes,
|
|
85
|
+
edges: graph.edges,
|
|
86
|
+
budget: graph.budget,
|
|
87
|
+
deliverable: { ...graph.deliverable.describe ? { describe: graph.deliverable.describe } : {} }
|
|
88
|
+
}),
|
|
89
|
+
nodes: graph.nodes,
|
|
90
|
+
edges: graph.edges,
|
|
91
|
+
budget: graph.budget,
|
|
92
|
+
deliverable: { ...graph.deliverable.describe ? { describe: graph.deliverable.describe } : {} }
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
function assertRecord(record) {
|
|
96
|
+
if (typeof record.graphDigest !== "string" || record.graphDigest.length === 0) throw new ValidationError("graph-registry: record.graphDigest is required");
|
|
97
|
+
if (typeof record.taskDigest !== "string" || record.taskDigest.length === 0) throw new ValidationError("graph-registry: record.taskDigest is required");
|
|
98
|
+
if (record.outcome.kind !== "delivered" && record.outcome.kind !== "no-winner") throw new ValidationError("graph-registry: record.outcome.kind must be 'delivered' | 'no-winner'");
|
|
99
|
+
}
|
|
100
|
+
/** Open (or lazily create) a registry rooted at a workspace directory. The
|
|
101
|
+
* directory is the sandbox workspace; snapshots carry it across runs. */
|
|
102
|
+
function graphRegistry(root) {
|
|
103
|
+
if (!root || root.trim().length === 0) throw new ValidationError("graphRegistry: root directory is required");
|
|
104
|
+
return { root };
|
|
105
|
+
}
|
|
106
|
+
async function recordsPath(reg) {
|
|
107
|
+
await mkdir(join(reg.root, GRAPHS_DIR), { recursive: true });
|
|
108
|
+
return join(reg.root, RECORDS_FILE);
|
|
109
|
+
}
|
|
110
|
+
/** Append one run record; the exact graph is content-addressed beside it.
|
|
111
|
+
* Idempotent per (taskDigest, graphDigest, startedAt): a replayed append with
|
|
112
|
+
* the same key replaces the prior row rather than duplicating it. */
|
|
113
|
+
async function recordGraphRun(reg, graph, record) {
|
|
114
|
+
assertRecord(record);
|
|
115
|
+
const stored = storeGraph(graph);
|
|
116
|
+
if (stored.digest !== record.graphDigest) throw new ValidationError(`graph-registry: record.graphDigest ${record.graphDigest} does not match the supplied graph (${stored.digest}) — record the graph that actually ran`);
|
|
117
|
+
await recordsPath(reg);
|
|
118
|
+
await writeFile(join(reg.root, GRAPHS_DIR, `${stored.digest}.json`), JSON.stringify(stored), "utf8");
|
|
119
|
+
const file = join(reg.root, RECORDS_FILE);
|
|
120
|
+
let existing = [];
|
|
121
|
+
try {
|
|
122
|
+
existing = (await readFile(file, "utf8")).split("\n").filter((line) => line.trim().length > 0).map((line) => JSON.parse(line));
|
|
123
|
+
} catch {}
|
|
124
|
+
const keyed = existing.filter((row) => !(row.taskDigest === record.taskDigest && row.graphDigest === record.graphDigest && row.startedAt === record.startedAt));
|
|
125
|
+
keyed.push(record);
|
|
126
|
+
await writeFile(file, keyed.map((row) => JSON.stringify(row)).join("\n") + "\n", "utf8");
|
|
127
|
+
return stored;
|
|
128
|
+
}
|
|
129
|
+
/** All records, newest last. */
|
|
130
|
+
async function listGraphRuns(reg) {
|
|
131
|
+
try {
|
|
132
|
+
return (await readFile(join(reg.root, RECORDS_FILE), "utf8")).split("\n").filter((line) => line.trim().length > 0).map((line) => JSON.parse(line));
|
|
133
|
+
} catch {
|
|
134
|
+
return [];
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** Records for one task shape, newest last. */
|
|
138
|
+
async function graphRunsFor(reg, taskDigest) {
|
|
139
|
+
return (await listGraphRuns(reg)).filter((row) => row.taskDigest === taskDigest);
|
|
140
|
+
}
|
|
141
|
+
/** The documented heuristic: delivered beats failed; among delivered, cheaper
|
|
142
|
+
* (tokens, then iterations) wins; ties go to the most recent. */
|
|
143
|
+
function pickBestGraph(records) {
|
|
144
|
+
const delivered = records.filter((row) => row.outcome.kind === "delivered");
|
|
145
|
+
if (delivered.length === 0) return void 0;
|
|
146
|
+
const better = (a, b) => {
|
|
147
|
+
const aTokens = a.cost.tokens ?? Number.POSITIVE_INFINITY;
|
|
148
|
+
const bTokens = b.cost.tokens ?? Number.POSITIVE_INFINITY;
|
|
149
|
+
if (aTokens !== bTokens) return aTokens < bTokens ? a : b;
|
|
150
|
+
const aIter = a.cost.iterations ?? Number.POSITIVE_INFINITY;
|
|
151
|
+
const bIter = b.cost.iterations ?? Number.POSITIVE_INFINITY;
|
|
152
|
+
if (aIter !== bIter) return aIter < bIter ? a : b;
|
|
153
|
+
return a.finishedAt >= b.finishedAt ? a : b;
|
|
154
|
+
};
|
|
155
|
+
return delivered.reduce((best, row) => better(best, row) === best ? best : row);
|
|
156
|
+
}
|
|
157
|
+
/** Load a stored graph by digest. */
|
|
158
|
+
async function loadGraph(reg, digest) {
|
|
159
|
+
try {
|
|
160
|
+
return JSON.parse(await readFile(join(reg.root, GRAPHS_DIR, `${digest}.json`), "utf8"));
|
|
161
|
+
} catch {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/** The designer's lookup: replay the known-good graph for this task shape, or
|
|
166
|
+
* author a new one — with the reason stated either way (the decision is data). */
|
|
167
|
+
async function lookupGraph(reg, taskDigest) {
|
|
168
|
+
const records = await graphRunsFor(reg, taskDigest);
|
|
169
|
+
const best = pickBestGraph(records);
|
|
170
|
+
if (best) {
|
|
171
|
+
const graph = await loadGraph(reg, best.graphDigest);
|
|
172
|
+
if (graph) return {
|
|
173
|
+
kind: "replay",
|
|
174
|
+
graph,
|
|
175
|
+
record: best
|
|
176
|
+
};
|
|
177
|
+
return {
|
|
178
|
+
kind: "author",
|
|
179
|
+
reason: `best record's graph ${best.graphDigest.slice(0, 12)} is missing from the registry`
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
kind: "author",
|
|
184
|
+
reason: records.length === 0 ? "first run for this task shape" : "no graph delivered for this task shape yet"
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
/** Rehydrate a stored graph into a runnable one. The check comes from the
|
|
188
|
+
* CALLER's environment (oracles are environment, never stored). */
|
|
189
|
+
function graphFromStored(stored, check) {
|
|
190
|
+
return {
|
|
191
|
+
nodes: stored.nodes,
|
|
192
|
+
edges: stored.edges,
|
|
193
|
+
budget: stored.budget,
|
|
194
|
+
deliverable: {
|
|
195
|
+
check,
|
|
196
|
+
...stored.deliverable.describe ? { describe: stored.deliverable.describe } : {}
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/** Digests present on disk (integrity probe for tests and audits). */
|
|
201
|
+
async function storedGraphDigests(reg) {
|
|
202
|
+
try {
|
|
203
|
+
return (await readdir(join(reg.root, GRAPHS_DIR))).filter((name) => name.endsWith(".json")).map((name) => name.slice(0, -5)).sort();
|
|
204
|
+
} catch {
|
|
205
|
+
return [];
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//#endregion
|
|
209
|
+
export { graphRunsFor as a, loadGraph as c, recordGraphRun as d, storedGraphDigests as f, graphRegistry as i, lookupGraph as l, graphDigest as n, graph_registry_exports as o, taskShapeDigest as p, graphFromStored as r, listGraphRuns as s, digestOfGraph as t, pickBestGraph as u };
|
|
210
|
+
|
|
211
|
+
//# sourceMappingURL=graph-registry-BuJbzTzF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-registry-BuJbzTzF.js","names":[],"sources":["../src/runtime/supervise/graph-registry.ts"],"sourcesContent":["/**\n * `graph-registry` — the designer's memory: graphs and their outcomes as files.\n *\n * The AgentGraph algebra makes a graph PLAIN DATA (nodes with pinned profiles,\n * edges with registry-versioned directives, a budget, a deliverable\n * description), which is the property that lets a graph be stored, replayed\n * byte-identical, and mutated like code. This module is the thin durable layer\n * on top: one JSONL record per run, the exact graph content-addressed beside\n * it. The natural home is a SANDBOX WORKSPACE — the platform's snapshot story\n * (Firecracker restore, warm leases, `continuity: 'resume'`) then makes the\n * registry the agent's compounding execution memory across runs: a rerun over\n * the same sandbox finds every graph the designer ever ran, what each cost,\n * and whether it delivered.\n *\n * ORACLES STAY ENVIRONMENT-OWNED. `DeliverableSpec.check` is a function and is\n * deliberately NOT stored: a stored graph keeps the deliverable's `describe`\n * and an optional `checkRef`, and replay re-binds the check from the caller's\n * environment. This is the graph contract's own doctrine — graders are\n * environment, never workers — applied to persistence.\n *\n * Scoring is a documented heuristic, not a learned model: delivered beats\n * failed, then cheaper (tokens, then iterations), then most recent. A designer\n * that needs better selection replaces `pickBest`, not the records.\n */\n\nimport { createHash } from 'node:crypto'\nimport { mkdir, readdir, readFile, writeFile } from 'node:fs/promises'\nimport { join } from 'node:path'\nimport type { AgentProfile } from '@tangle-network/agent-interface'\nimport { ValidationError } from '../../errors'\nimport type { AgentGraph, GraphEdge } from './graph'\n\n/** A graph as stored: every axis serializable; the check re-bound at replay. */\nexport interface StoredGraph {\n readonly digest: string\n readonly nodes: ReadonlyArray<{ readonly id: string; readonly profile: AgentProfile }>\n readonly edges: ReadonlyArray<GraphEdge>\n readonly budget: AgentGraph['budget']\n readonly deliverable: { readonly describe?: string; readonly checkRef?: string }\n}\n\n/** One completed run of one graph, for one task shape. */\nexport interface GraphRunRecord {\n /** Content-address of the exact graph that ran. */\n readonly graphDigest: string\n /** Digest of the normalized task shape the designer computed for lookup. */\n readonly taskDigest: string\n readonly startedAt: string\n readonly finishedAt: string\n readonly outcome:\n | { readonly kind: 'delivered'; readonly summary?: string }\n | { readonly kind: 'no-winner'; readonly reason?: string }\n /** Cost from the run's terminal accounting. Unknown channels omitted. */\n readonly cost: {\n readonly iterations?: number\n readonly tokens?: number\n readonly usd?: number\n readonly ms?: number\n }\n /** Ledger size + exhausted edges: the trace's shape, for the designer's read. */\n readonly traversals: number\n readonly exhaustedEdges?: ReadonlyArray<string>\n}\n\nexport interface GraphRegistryDir {\n readonly root: string\n}\n\nconst RECORDS_FILE = 'records.jsonl'\nconst GRAPHS_DIR = 'graphs'\n\nfunction sha256(value: string): string {\n return createHash('sha256').update(value).digest('hex')\n}\n\n/** Canonical serialization for content-addressing: stable key order, sorted. */\nfunction canonicalJson(value: unknown): string {\n if (Array.isArray(value)) return `[${value.map(canonicalJson).join(',')}]`\n if (value && typeof value === 'object') {\n const entries = Object.entries(value as Record<string, unknown>)\n .filter(([, v]) => v !== undefined)\n .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))\n return `{${entries.map(([k, v]) => `${JSON.stringify(k)}:${canonicalJson(v)}`).join(',')}}`\n }\n return JSON.stringify(value)\n}\n\n/** Digest of the exact graph (nodes + edges + budget + deliverable describe). */\nexport function graphDigest(graph: Omit<StoredGraph, 'digest'>): string {\n return sha256(canonicalJson(graph))\n}\n\n/** Digest of the normalized task shape a designer looks records up by. */\nexport function taskShapeDigest(taskShape: Record<string, unknown>): string {\n return sha256(canonicalJson(taskShape))\n}\n\n/** Digest of a runnable graph exactly as the registry stores it — the value\n * `recordGraphRun` demands. Callers recording real runs hash through this,\n * never hand-rolled, so a record always matches its graph. */\nexport function digestOfGraph(graph: AgentGraph): string {\n return storeGraph(graph).digest\n}\n\nfunction storeGraph(graph: AgentGraph): StoredGraph {\n return {\n digest: graphDigest({\n nodes: graph.nodes,\n edges: graph.edges,\n budget: graph.budget,\n deliverable: {\n ...(graph.deliverable.describe ? { describe: graph.deliverable.describe } : {}),\n },\n }),\n nodes: graph.nodes,\n edges: graph.edges,\n budget: graph.budget,\n deliverable: {\n ...(graph.deliverable.describe ? { describe: graph.deliverable.describe } : {}),\n },\n }\n}\n\nfunction assertRecord(record: GraphRunRecord): void {\n if (typeof record.graphDigest !== 'string' || record.graphDigest.length === 0)\n throw new ValidationError('graph-registry: record.graphDigest is required')\n if (typeof record.taskDigest !== 'string' || record.taskDigest.length === 0)\n throw new ValidationError('graph-registry: record.taskDigest is required')\n if (record.outcome.kind !== 'delivered' && record.outcome.kind !== 'no-winner')\n throw new ValidationError(\n \"graph-registry: record.outcome.kind must be 'delivered' | 'no-winner'\",\n )\n}\n\n/** Open (or lazily create) a registry rooted at a workspace directory. The\n * directory is the sandbox workspace; snapshots carry it across runs. */\nexport function graphRegistry(root: string): GraphRegistryDir {\n if (!root || root.trim().length === 0)\n throw new ValidationError('graphRegistry: root directory is required')\n return { root }\n}\n\nasync function recordsPath(reg: GraphRegistryDir): Promise<string> {\n await mkdir(join(reg.root, GRAPHS_DIR), { recursive: true })\n return join(reg.root, RECORDS_FILE)\n}\n\n/** Append one run record; the exact graph is content-addressed beside it.\n * Idempotent per (taskDigest, graphDigest, startedAt): a replayed append with\n * the same key replaces the prior row rather than duplicating it. */\nexport async function recordGraphRun(\n reg: GraphRegistryDir,\n graph: AgentGraph,\n record: GraphRunRecord,\n): Promise<StoredGraph> {\n assertRecord(record)\n const stored = storeGraph(graph)\n if (stored.digest !== record.graphDigest) {\n throw new ValidationError(\n `graph-registry: record.graphDigest ${record.graphDigest} does not match the supplied graph (${stored.digest}) — record the graph that actually ran`,\n )\n }\n await recordsPath(reg)\n await writeFile(\n join(reg.root, GRAPHS_DIR, `${stored.digest}.json`),\n JSON.stringify(stored),\n 'utf8',\n )\n const file = join(reg.root, RECORDS_FILE)\n let existing: GraphRunRecord[] = []\n try {\n existing = (await readFile(file, 'utf8'))\n .split('\\n')\n .filter((line) => line.trim().length > 0)\n .map((line) => JSON.parse(line) as GraphRunRecord)\n } catch {\n // First record.\n }\n const keyed = existing.filter(\n (row) =>\n !(\n row.taskDigest === record.taskDigest &&\n row.graphDigest === record.graphDigest &&\n row.startedAt === record.startedAt\n ),\n )\n keyed.push(record)\n await writeFile(file, keyed.map((row) => JSON.stringify(row)).join('\\n') + '\\n', 'utf8')\n return stored\n}\n\n/** All records, newest last. */\nexport async function listGraphRuns(reg: GraphRegistryDir): Promise<GraphRunRecord[]> {\n try {\n const text = await readFile(join(reg.root, RECORDS_FILE), 'utf8')\n return text\n .split('\\n')\n .filter((line) => line.trim().length > 0)\n .map((line) => JSON.parse(line) as GraphRunRecord)\n } catch {\n return []\n }\n}\n\n/** Records for one task shape, newest last. */\nexport async function graphRunsFor(\n reg: GraphRegistryDir,\n taskDigest: string,\n): Promise<GraphRunRecord[]> {\n return (await listGraphRuns(reg)).filter((row) => row.taskDigest === taskDigest)\n}\n\nexport type GraphSelection =\n | { readonly kind: 'replay'; readonly graph: StoredGraph; readonly record: GraphRunRecord }\n | { readonly kind: 'author'; readonly reason: string }\n\n/** The documented heuristic: delivered beats failed; among delivered, cheaper\n * (tokens, then iterations) wins; ties go to the most recent. */\nexport function pickBestGraph(records: ReadonlyArray<GraphRunRecord>): GraphRunRecord | undefined {\n const delivered = records.filter((row) => row.outcome.kind === 'delivered')\n if (delivered.length === 0) return undefined\n const better = (a: GraphRunRecord, b: GraphRunRecord): GraphRunRecord => {\n const aTokens = a.cost.tokens ?? Number.POSITIVE_INFINITY\n const bTokens = b.cost.tokens ?? Number.POSITIVE_INFINITY\n if (aTokens !== bTokens) return aTokens < bTokens ? a : b\n const aIter = a.cost.iterations ?? Number.POSITIVE_INFINITY\n const bIter = b.cost.iterations ?? Number.POSITIVE_INFINITY\n if (aIter !== bIter) return aIter < bIter ? a : b\n return a.finishedAt >= b.finishedAt ? a : b\n }\n return delivered.reduce((best, row) => (better(best, row) === best ? best : row))\n}\n\n/** Load a stored graph by digest. */\nexport async function loadGraph(\n reg: GraphRegistryDir,\n digest: string,\n): Promise<StoredGraph | undefined> {\n try {\n return JSON.parse(\n await readFile(join(reg.root, GRAPHS_DIR, `${digest}.json`), 'utf8'),\n ) as StoredGraph\n } catch {\n return undefined\n }\n}\n\n/** The designer's lookup: replay the known-good graph for this task shape, or\n * author a new one — with the reason stated either way (the decision is data). */\nexport async function lookupGraph(\n reg: GraphRegistryDir,\n taskDigest: string,\n): Promise<GraphSelection> {\n const records = await graphRunsFor(reg, taskDigest)\n const best = pickBestGraph(records)\n if (best) {\n const graph = await loadGraph(reg, best.graphDigest)\n if (graph) return { kind: 'replay', graph, record: best }\n return {\n kind: 'author',\n reason: `best record's graph ${best.graphDigest.slice(0, 12)} is missing from the registry`,\n }\n }\n return {\n kind: 'author',\n reason:\n records.length === 0\n ? 'first run for this task shape'\n : 'no graph delivered for this task shape yet',\n }\n}\n\n/** Rehydrate a stored graph into a runnable one. The check comes from the\n * CALLER's environment (oracles are environment, never stored). */\nexport function graphFromStored(\n stored: StoredGraph,\n check: AgentGraph['deliverable']['check'],\n): AgentGraph {\n return {\n nodes: stored.nodes,\n edges: stored.edges,\n budget: stored.budget,\n deliverable: {\n check,\n ...(stored.deliverable.describe ? { describe: stored.deliverable.describe } : {}),\n },\n }\n}\n\n/** Digests present on disk (integrity probe for tests and audits). */\nexport async function storedGraphDigests(reg: GraphRegistryDir): Promise<string[]> {\n try {\n return (await readdir(join(reg.root, GRAPHS_DIR)))\n .filter((name) => name.endsWith('.json'))\n .map((name) => name.slice(0, -'.json'.length))\n .sort()\n } catch {\n return []\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Nt as createExecutor, Tr as runAbortable,
|
|
1
|
+
import { Nt as createExecutor, Tr as runAbortable, aa as detachedSnapshot, bi as terminateProcessTreeAndConfirm, ci as runSettledCommand, wr as linkAbort } from "./supervisor-Cqhu3xH-.js";
|
|
2
2
|
import { i as ConfigError } from "./errors-DodWX-cb.js";
|
|
3
|
-
import { E as defaultStructuralRolloutPolicy, Q as streamAgentTurn, Y as optimizerMethod, Z as collectAgentTurn, a as reconcileInterruptedSearchCalls, b as improveSearchCost, c as searchExecutor, d as taggedLedger, i as isSearchEnvironmentFault, n as assertSearchLanes, s as searchCallTags, v as decideClosedSearch } from "./search-executor-
|
|
4
|
-
import {
|
|
5
|
-
import { a as concreteProfileModel, t as assertExecutableAgentProfile } from "./model-policy-
|
|
3
|
+
import { E as defaultStructuralRolloutPolicy, Q as streamAgentTurn, Y as optimizerMethod, Z as collectAgentTurn, a as reconcileInterruptedSearchCalls, b as improveSearchCost, c as searchExecutor, d as taggedLedger, i as isSearchEnvironmentFault, n as assertSearchLanes, s as searchCallTags, v as decideClosedSearch } from "./search-executor-DlaLafvy.js";
|
|
4
|
+
import { B as verifyCanonicalCandidateDocument, L as immutableCandidateValue, M as canonicalCandidateBytes$1, N as canonicalCandidateDigest$1, P as canonicalCandidateDocument, R as omitTopLevelDigest, xt as armDeadlineTimer, z as sha256Bytes$1 } from "./workspace-streams-DFAhW7hF.js";
|
|
5
|
+
import { a as concreteProfileModel, t as assertExecutableAgentProfile } from "./model-policy-CNe257pB.js";
|
|
6
6
|
import { i as syncDurableDirectory, r as publishExclusiveDurableFile } from "./durable-file-DWQA4ooo.js";
|
|
7
7
|
import { t as runAnalystLoop } from "./analyst-loop-DZw5QWT9.js";
|
|
8
|
-
import { c as executePreparedAgentCandidate, o as verifiedResourceTextByDigest, s as verifyAgentCandidateBundle, t as prepareAgentCandidateExecution } from "./prepare-
|
|
9
|
-
import { a as assertCandidateProfileBinding, c as createAgentCandidateProfileActivation, d as omitUndefinedObjectFields, f as parseAgentCandidateProfileActivation, i as applyExactAgentProfileDiff, p as parseExactAgentProfile, r as agentCandidateProfileAsAgentProfile, u as materializeAgentCandidateProfilePlan } from "./profile-
|
|
8
|
+
import { c as executePreparedAgentCandidate, o as verifiedResourceTextByDigest, s as verifyAgentCandidateBundle, t as prepareAgentCandidateExecution } from "./prepare-DjCLEN-q.js";
|
|
9
|
+
import { a as assertCandidateProfileBinding, c as createAgentCandidateProfileActivation, d as omitUndefinedObjectFields, f as parseAgentCandidateProfileActivation, i as applyExactAgentProfileDiff, p as parseExactAgentProfile, r as agentCandidateProfileAsAgentProfile, u as materializeAgentCandidateProfilePlan } from "./profile-DmVM4Gxb.js";
|
|
10
10
|
import { AGENT_IMPROVEMENT_SOURCE_METADATA_KEY, agentCandidateMaterializationReceiptSchema, agentCandidateRunReceiptSchema, agentImprovementActivationSchema, agentImprovementProposalSchema, agentImprovementReviewSchema, agentImprovementSourceMetadata, agentImprovementSourceSchema, agentProfileDiffSchema, agentProfileEnvironmentSchema, agentProfileImprovementArmSchema, agentProfileImprovementExecutionRefSchema, agentProfileModelHintsSchema, agentProfileSchema, agentProfileTrainingSchema, agentTrainingDatasetIdentitySchema, agentTrainingParametersSchema, agentTrainingReceiptSchema, agentTrainingTaskKey, agentTrainingTaskSchema, applyAgentProfileDiff, candidateExecutionEvidenceSchema, canonicalAgentProfileDigest, canonicalCandidateBytes, changedProfileImprovementSurfaces, defineAgentProfileDiff, diffAgentProfiles, numbersApproximatelyEqual, sha256DigestSchema, snapshotAgentProfile, trainedModelIdForArtifact } from "@tangle-network/agent-interface";
|
|
11
11
|
import { CostLedger, canonicalJson, makeProposalFinding } from "@tangle-network/agent-eval";
|
|
12
12
|
import { createHash, randomUUID } from "node:crypto";
|
|
@@ -4221,4 +4221,4 @@ function sameOrderedValues(left, right) {
|
|
|
4221
4221
|
//#endregion
|
|
4222
4222
|
export { commandVerifier as $, agentImprovementTargetInput as A, assertCandidateValidator as B, optimizationActivationReceiptFromMetadata as C, agentImprovementProfileSurfaceDigest as D, agentImprovementProfileDiffs as E, isAgentImprovementProfileSurface as F, rawTraceDistiller as G, parseExecutionRef as H, isAgentProfileMeasuredSurface as I, normalizeRolloutPolicy as J, ROLLOUT_POLICY_EXTENSION as K, improve as L, agentProfileImprovementStateDigest as M, assertProfileImprovementTargetsShareIdentity as N, agentImprovementProfileSurfaceInput as O, buildAgentImprovementActivationTargets as P, agenticGenerator as Q, createCommandProfileTrainer as R, createOptimizationActivationReceipt as S, AGENT_PROFILE_MEASURED_SURFACES as T, privateValuePaths as U, assertProfileTrainingIsHeldOut as V, withMethodRuntimeControls as W, serializeRolloutPolicy as X, parseRolloutPolicy as Y, structuralRolloutPolicyFromProfile as Z, profilePolicyWithBudget as _, executeAgentCandidateExperimentCell as a, profileTaskScenarioIdentity as b, requireSealedCandidateExperiment as c, verifyAgentImprovementActivation as d, defaultBuildPrompt as et, verifyAgentImprovementProposal as f, profileImprovementMetadata as g, createProfileImprovementCostLedger as h, createAgentImprovementProposal as i, agentImprovementTargetProfileDiffs as j, agentImprovementTargetDigest as k, reviewAgentImprovementProposal as l, verifyCandidateExecutionEvidence as m, createAgentImprovementActivation as n, proposeAgentImprovement as o, verifyAgentImprovementReview as p, applyRolloutPolicyToProfile as q, createAgentImprovementMeasuredComparison as r, proposeAgentProfileImprovement as s, AgentCandidateExperimentCellExecutionError as t, runAgentCandidateExperiment as u, profilePreparationAccounting as v, AGENT_IMPROVEMENT_PROFILE_SURFACES as w, sealProfileImprovementBenchmark as x, profileStateDigest as y, searchMethod as z };
|
|
4223
4223
|
|
|
4224
|
-
//# sourceMappingURL=improvement-cycle-
|
|
4224
|
+
//# sourceMappingURL=improvement-cycle-xnQwUaC3.js.map
|