@tangle-network/agent-runtime 0.292.3 → 0.292.6
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 +12 -0
- package/dist/{activation-Cer3QjGB.js → activation-BZ-umWjG.js} +2 -2
- package/dist/{activation-Cer3QjGB.js.map → activation-BZ-umWjG.js.map} +1 -1
- package/dist/agent.js +2 -2
- package/dist/{coordination-driver-CoTfoTNv.js → coordination-driver-CqiRHR2l.js} +2 -2
- package/dist/{coordination-driver-CoTfoTNv.js.map → coordination-driver-CqiRHR2l.js.map} +1 -1
- package/dist/{delegate-CaeK1_xI.js → delegate-DJCE2ZhK.js} +2 -2
- package/dist/{delegate-CaeK1_xI.js.map → delegate-DJCE2ZhK.js.map} +1 -1
- package/dist/durable.js +2 -2
- package/dist/{graph-tfXugm_A.js → graph-CG7-lOIo.js} +4 -4
- package/dist/{graph-tfXugm_A.js.map → graph-CG7-lOIo.js.map} +1 -1
- package/dist/{improvement-cycle-CeX2I_TB.js → improvement-cycle-B3b8Oae0.js} +3 -3
- package/dist/{improvement-cycle-CeX2I_TB.js.map → improvement-cycle-B3b8Oae0.js.map} +1 -1
- package/dist/index.js +7 -7
- package/dist/intelligence.js +4 -4
- package/dist/kernel.d.ts +2 -1
- package/dist/kernel.js +10 -9
- package/dist/{loop-runner-bin-BI2JSnjR.js → loop-runner-bin-CcncMO2l.js} +3 -3
- package/dist/{loop-runner-bin-BI2JSnjR.js.map → loop-runner-bin-CcncMO2l.js.map} +1 -1
- package/dist/loop-runner-bin.js +1 -1
- package/dist/mcp/bin.js +3 -3
- package/dist/mcp/index.js +4 -4
- package/dist/{provision-supervisor-DBIKsI2A.js → provision-supervisor-BTrCvYKM.js} +3 -3
- package/dist/{provision-supervisor-DBIKsI2A.js.map → provision-supervisor-BTrCvYKM.js.map} +1 -1
- package/dist/{runtime-DDSzPHdr.js → runtime-BfM4ejI3.js} +8 -8
- package/dist/{runtime-DDSzPHdr.js.map → runtime-BfM4ejI3.js.map} +1 -1
- package/dist/{search-method-BbplGQmw.js → search-method-DeoVugYO.js} +2 -2
- package/dist/{search-method-BbplGQmw.js.map → search-method-DeoVugYO.js.map} +1 -1
- package/dist/{server-D3WeSX4C.js → server-DI9zFi9V.js} +3 -3
- package/dist/{server-D3WeSX4C.js.map → server-DI9zFi9V.js.map} +1 -1
- package/dist/{supervise-SCAuJ1Pj.js → supervise-Cap1EaUi.js} +3 -3
- package/dist/{supervise-SCAuJ1Pj.js.map → supervise-Cap1EaUi.js.map} +1 -1
- package/dist/{supervisor-B8uT95S1.js → supervisor-CbD8mnKd.js} +92 -58
- package/dist/supervisor-CbD8mnKd.js.map +1 -0
- package/dist/task-queue-0fKkoweu.d.ts +35 -0
- package/dist/task-queue.d.ts +2 -0
- package/dist/task-queue.js +50 -0
- package/dist/task-queue.js.map +1 -0
- package/dist/testing.js +12 -12
- package/dist/tui/index.js +1 -1
- package/package.json +9 -4
- package/dist/supervisor-B8uT95S1.js.map +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/runtime/task-queue.d.ts
|
|
2
|
+
/** One identified task admitted by a caller-owned ready queue. */
|
|
3
|
+
interface TaskQueueEntry<T> {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly value: T;
|
|
6
|
+
}
|
|
7
|
+
/** Native promise settlement, retaining the exact returned or thrown value. */
|
|
8
|
+
type TaskQueueSettlement<T, R> = {
|
|
9
|
+
readonly task: TaskQueueEntry<T>;
|
|
10
|
+
} & ({
|
|
11
|
+
readonly status: 'fulfilled';
|
|
12
|
+
readonly value: R;
|
|
13
|
+
} | {
|
|
14
|
+
readonly status: 'rejected';
|
|
15
|
+
readonly reason: unknown;
|
|
16
|
+
});
|
|
17
|
+
interface TaskQueueOptions<T, R> {
|
|
18
|
+
readonly concurrency: number;
|
|
19
|
+
/** Return the next ready task, or undefined when none is currently admissible.
|
|
20
|
+
* Called again after each yielded settlement; awaiting admission may persist a
|
|
21
|
+
* checkpoint before execute starts. Active identities cannot be admitted twice. */
|
|
22
|
+
readonly take: (activeIds: ReadonlySet<string>) => TaskQueueEntry<T> | undefined | Promise<TaskQueueEntry<T> | undefined>;
|
|
23
|
+
readonly execute: (task: TaskQueueEntry<T>) => Promise<R>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Admit bounded work and yield settlements for the caller's policy to interpret.
|
|
27
|
+
* Readiness, cancellation, retries, and persistence belong to that caller.
|
|
28
|
+
* A throw or early iterator return stops admission and awaits every started task.
|
|
29
|
+
* Settlements are delivered in completion order, before further admission.
|
|
30
|
+
* Task failures are yielded, never normalized or substituted for caller failures.
|
|
31
|
+
*/
|
|
32
|
+
declare function runTaskQueue<T, R>(options: TaskQueueOptions<T, R>): AsyncGenerator<TaskQueueSettlement<T, R>>;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { runTaskQueue as i, TaskQueueOptions as n, TaskQueueSettlement as r, TaskQueueEntry as t };
|
|
35
|
+
//# sourceMappingURL=task-queue-0fKkoweu.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/runtime/task-queue.ts
|
|
2
|
+
/**
|
|
3
|
+
* Admit bounded work and yield settlements for the caller's policy to interpret.
|
|
4
|
+
* Readiness, cancellation, retries, and persistence belong to that caller.
|
|
5
|
+
* A throw or early iterator return stops admission and awaits every started task.
|
|
6
|
+
* Settlements are delivered in completion order, before further admission.
|
|
7
|
+
* Task failures are yielded, never normalized or substituted for caller failures.
|
|
8
|
+
*/
|
|
9
|
+
async function* runTaskQueue(options) {
|
|
10
|
+
if (!Number.isSafeInteger(options.concurrency) || options.concurrency < 1) throw new RangeError("runTaskQueue: concurrency must be a positive safe integer");
|
|
11
|
+
const active = /* @__PURE__ */ new Map();
|
|
12
|
+
const completed = [];
|
|
13
|
+
try {
|
|
14
|
+
for (;;) {
|
|
15
|
+
while (active.size < options.concurrency && completed.length === 0) {
|
|
16
|
+
const admitted = await options.take(new Set(active.keys()));
|
|
17
|
+
if (admitted === void 0) break;
|
|
18
|
+
const task = Object.freeze({
|
|
19
|
+
id: admitted.id,
|
|
20
|
+
value: admitted.value
|
|
21
|
+
});
|
|
22
|
+
if (active.has(task.id)) throw new Error(`runTaskQueue: task "${task.id}" is already active`);
|
|
23
|
+
const settlement = Promise.resolve().then(() => options.execute(task)).then((value) => ({
|
|
24
|
+
task,
|
|
25
|
+
status: "fulfilled",
|
|
26
|
+
value
|
|
27
|
+
}), (reason) => ({
|
|
28
|
+
task,
|
|
29
|
+
status: "rejected",
|
|
30
|
+
reason
|
|
31
|
+
}));
|
|
32
|
+
active.set(task.id, settlement.then((result) => {
|
|
33
|
+
completed.push(result);
|
|
34
|
+
return result;
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
if (active.size === 0) return;
|
|
38
|
+
if (completed.length === 0) await Promise.race(active.values());
|
|
39
|
+
const settlement = completed.shift();
|
|
40
|
+
active.delete(settlement.task.id);
|
|
41
|
+
yield settlement;
|
|
42
|
+
}
|
|
43
|
+
} finally {
|
|
44
|
+
await Promise.allSettled(active.values());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { runTaskQueue };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=task-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-queue.js","names":[],"sources":["../src/runtime/task-queue.ts"],"sourcesContent":["/** One identified task admitted by a caller-owned ready queue. */\nexport interface TaskQueueEntry<T> {\n readonly id: string\n readonly value: T\n}\n\n/** Native promise settlement, retaining the exact returned or thrown value. */\nexport type TaskQueueSettlement<T, R> = {\n readonly task: TaskQueueEntry<T>\n} & (\n | { readonly status: 'fulfilled'; readonly value: R }\n | { readonly status: 'rejected'; readonly reason: unknown }\n)\n\nexport interface TaskQueueOptions<T, R> {\n readonly concurrency: number\n /** Return the next ready task, or undefined when none is currently admissible.\n * Called again after each yielded settlement; awaiting admission may persist a\n * checkpoint before execute starts. Active identities cannot be admitted twice. */\n readonly take: (\n activeIds: ReadonlySet<string>,\n ) => TaskQueueEntry<T> | undefined | Promise<TaskQueueEntry<T> | undefined>\n readonly execute: (task: TaskQueueEntry<T>) => Promise<R>\n}\n\n/**\n * Admit bounded work and yield settlements for the caller's policy to interpret.\n * Readiness, cancellation, retries, and persistence belong to that caller.\n * A throw or early iterator return stops admission and awaits every started task.\n * Settlements are delivered in completion order, before further admission.\n * Task failures are yielded, never normalized or substituted for caller failures.\n */\nexport async function* runTaskQueue<T, R>(\n options: TaskQueueOptions<T, R>,\n): AsyncGenerator<TaskQueueSettlement<T, R>> {\n if (!Number.isSafeInteger(options.concurrency) || options.concurrency < 1) {\n throw new RangeError('runTaskQueue: concurrency must be a positive safe integer')\n }\n const active = new Map<string, Promise<TaskQueueSettlement<T, R>>>()\n const completed: TaskQueueSettlement<T, R>[] = []\n try {\n for (;;) {\n while (active.size < options.concurrency && completed.length === 0) {\n const admitted = await options.take(new Set(active.keys()))\n if (admitted === undefined) break\n const task = Object.freeze({ id: admitted.id, value: admitted.value })\n if (active.has(task.id)) {\n throw new Error(`runTaskQueue: task \"${task.id}\" is already active`)\n }\n const settlement = Promise.resolve()\n .then(() => options.execute(task))\n .then(\n (value): TaskQueueSettlement<T, R> => ({ task, status: 'fulfilled', value }),\n (reason: unknown): TaskQueueSettlement<T, R> => ({ task, status: 'rejected', reason }),\n )\n active.set(\n task.id,\n settlement.then((result) => {\n completed.push(result)\n return result\n }),\n )\n }\n if (active.size === 0) return\n if (completed.length === 0) await Promise.race(active.values())\n const settlement = completed.shift()!\n active.delete(settlement.task.id)\n yield settlement\n }\n } finally {\n await Promise.allSettled(active.values())\n }\n}\n"],"mappings":";;;;;;;;AAgCA,gBAAuB,aACrB,SAC2C;CAC3C,IAAI,CAAC,OAAO,cAAc,QAAQ,WAAW,KAAK,QAAQ,cAAc,GACtE,MAAM,IAAI,WAAW,2DAA2D;CAElF,MAAM,yBAAS,IAAI,IAAgD;CACnE,MAAM,YAAyC,CAAC;CAChD,IAAI;EACF,SAAS;GACP,OAAO,OAAO,OAAO,QAAQ,eAAe,UAAU,WAAW,GAAG;IAClE,MAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC;IAC1D,IAAI,aAAa,KAAA,GAAW;IAC5B,MAAM,OAAO,OAAO,OAAO;KAAE,IAAI,SAAS;KAAI,OAAO,SAAS;IAAM,CAAC;IACrE,IAAI,OAAO,IAAI,KAAK,EAAE,GACpB,MAAM,IAAI,MAAM,uBAAuB,KAAK,GAAG,oBAAoB;IAErE,MAAM,aAAa,QAAQ,QAAQ,CAAC,CACjC,WAAW,QAAQ,QAAQ,IAAI,CAAC,CAAC,CACjC,MACE,WAAsC;KAAE;KAAM,QAAQ;KAAa;IAAM,KACzE,YAAgD;KAAE;KAAM,QAAQ;KAAY;IAAO,EACtF;IACF,OAAO,IACL,KAAK,IACL,WAAW,MAAM,WAAW;KAC1B,UAAU,KAAK,MAAM;KACrB,OAAO;IACT,CAAC,CACH;GACF;GACA,IAAI,OAAO,SAAS,GAAG;GACvB,IAAI,UAAU,WAAW,GAAG,MAAM,QAAQ,KAAK,OAAO,OAAO,CAAC;GAC9D,MAAM,aAAa,UAAU,MAAM;GACnC,OAAO,OAAO,WAAW,KAAK,EAAE;GAChC,MAAM;EACR;CACF,UAAU;EACR,MAAM,QAAQ,WAAW,OAAO,OAAO,CAAC;CAC1C;AACF"}
|
package/dist/testing.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { O as immutableCandidateValue, w as canonicalCandidateDigest$1 } from "./workspace-archive-MhowMCmp.js";
|
|
2
|
-
import { f as verifyAgentImprovementProposal } from "./improvement-cycle-
|
|
2
|
+
import { f as verifyAgentImprovementProposal } from "./improvement-cycle-B3b8Oae0.js";
|
|
3
3
|
import { i as applyExactAgentProfileDiff, p as parseExactAgentProfile } from "./profile-C4NDjZyB.js";
|
|
4
|
-
import { r as driverAgent } from "./coordination-driver-
|
|
5
|
-
import { a as superviseWithTestBrain, h as supervisorAgentWithTestBrain } from "./supervise-
|
|
6
|
-
import { i as runGraphWithTestBrain } from "./graph-
|
|
4
|
+
import { r as driverAgent } from "./coordination-driver-CqiRHR2l.js";
|
|
5
|
+
import { a as superviseWithTestBrain, h as supervisorAgentWithTestBrain } from "./supervise-Cap1EaUi.js";
|
|
6
|
+
import { i as runGraphWithTestBrain } from "./graph-CG7-lOIo.js";
|
|
7
7
|
import { SANDBOX_SIZE_PRESET_NAMES, canonicalAgentProfileDigest } from "@tangle-network/agent-interface";
|
|
8
8
|
//#region src/testing/fixtures/agent-improvement-proposal.json
|
|
9
9
|
var agent_improvement_proposal_default = {
|
|
10
10
|
changedSurfaces: ["prompt"],
|
|
11
|
-
digest: "sha256:
|
|
11
|
+
digest: "sha256:00f91d939c3e791cf5d728cc5282dc5b7879162c3513f49b24a1aa764868f3a0",
|
|
12
12
|
evaluation: {
|
|
13
13
|
"decision": {
|
|
14
14
|
"contributingChecks": [
|
|
@@ -4579,7 +4579,7 @@ var agent_improvement_proposal_default = {
|
|
|
4579
4579
|
],
|
|
4580
4580
|
"metadata": {
|
|
4581
4581
|
"fixture": "agent-improvement-proposal",
|
|
4582
|
-
"runtimeVersion": "0.292.
|
|
4582
|
+
"runtimeVersion": "0.292.6"
|
|
4583
4583
|
},
|
|
4584
4584
|
"objectives": [
|
|
4585
4585
|
{
|
|
@@ -4690,8 +4690,8 @@ var agent_improvement_proposal_default = {
|
|
|
4690
4690
|
"baselineContentHash": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
|
|
4691
4691
|
"candidateContentHash": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
|
|
4692
4692
|
"kind": "agent-eval-loop",
|
|
4693
|
-
"recordDigest": "sha256:
|
|
4694
|
-
"runId": "agent-runtime-0.292.
|
|
4693
|
+
"recordDigest": "sha256:6ced86630d57858c9a366e8640af24a3531b669102d896e7ca7690ff2197360b",
|
|
4694
|
+
"runId": "agent-runtime-0.292.6-proposal-fixture",
|
|
4695
4695
|
"schema": "agent-candidate-experiment"
|
|
4696
4696
|
}
|
|
4697
4697
|
},
|
|
@@ -4714,13 +4714,13 @@ var agent_improvement_proposal_default = {
|
|
|
4714
4714
|
}],
|
|
4715
4715
|
kind: "agent-improvement-proposal",
|
|
4716
4716
|
proposedAt: "2026-07-10T01:00:00.000Z",
|
|
4717
|
-
runId: "agent-runtime-0.292.
|
|
4717
|
+
runId: "agent-runtime-0.292.6-proposal-fixture"
|
|
4718
4718
|
};
|
|
4719
4719
|
//#endregion
|
|
4720
4720
|
//#region src/testing/fixtures/agent-profile-improvement-proposal.json
|
|
4721
4721
|
var agent_profile_improvement_proposal_default = {
|
|
4722
4722
|
changedSurfaces: ["prompt", "skills"],
|
|
4723
|
-
digest: "sha256:
|
|
4723
|
+
digest: "sha256:dd69caf05b27ae8bdcf7f60edad2728081c5250c2716b6625951891e3b2ceefe",
|
|
4724
4724
|
evaluation: {
|
|
4725
4725
|
"decision": {
|
|
4726
4726
|
"contributingChecks": [
|
|
@@ -6354,7 +6354,7 @@ var agent_profile_improvement_proposal_default = {
|
|
|
6354
6354
|
],
|
|
6355
6355
|
"metadata": {
|
|
6356
6356
|
"fixture": "agent-profile-improvement-proposal",
|
|
6357
|
-
"runtimeVersion": "0.292.
|
|
6357
|
+
"runtimeVersion": "0.292.6"
|
|
6358
6358
|
},
|
|
6359
6359
|
"objectives": [
|
|
6360
6360
|
{
|
|
@@ -6465,7 +6465,7 @@ var agent_profile_improvement_proposal_default = {
|
|
|
6465
6465
|
"baselineContentHash": "sha256:21c495a37c418c10bde64fbaa188beddeed31f1f051ea60a6a6582a9ee0db704",
|
|
6466
6466
|
"candidateContentHash": "sha256:103f77bc8481601eef1ad5fe6ba84a40dffabc3a44f421f8c8559121edab84e9",
|
|
6467
6467
|
"kind": "agent-eval-loop",
|
|
6468
|
-
"recordDigest": "sha256:
|
|
6468
|
+
"recordDigest": "sha256:9636d90897c1fedcee94bfc6152703741689359b12a42217341609b3e6c94c8e",
|
|
6469
6469
|
"runId": "profile-improvement-1",
|
|
6470
6470
|
"schema": "agent-profile-improvement-experiment"
|
|
6471
6471
|
}
|
package/dist/tui/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as provisionSupervisor } from "../provision-supervisor-
|
|
1
|
+
import { t as provisionSupervisor } from "../provision-supervisor-BTrCvYKM.js";
|
|
2
2
|
import { a as renderTopFrameWithLayout, i as renderTopFrame, n as runTopApp, r as loadTopSnapshot, t as renderTopOnce } from "../top-app-DaiR4LXM.js";
|
|
3
3
|
export { loadTopSnapshot, provisionSupervisor, renderTopFrame, renderTopFrameWithLayout, renderTopOnce, runTopApp };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tangle-network/agent-runtime",
|
|
3
|
-
"version": "0.292.
|
|
3
|
+
"version": "0.292.6",
|
|
4
4
|
"description": "Shared task-lifecycle skeleton for agents: a recursive loop kernel for chat turns, one-shot tasks, and multi-attempt loops, with trace capture and eval-gated self-improvement. Domain behavior lives in adapters; scoring and ship-gates in @tangle-network/agent-eval.",
|
|
5
5
|
"homepage": "https://github.com/tangle-network/agent-runtime#readme",
|
|
6
6
|
"repository": {
|
|
@@ -78,6 +78,11 @@
|
|
|
78
78
|
"types": "./dist/tui/index.d.ts",
|
|
79
79
|
"import": "./dist/tui/index.js",
|
|
80
80
|
"default": "./dist/tui/index.js"
|
|
81
|
+
},
|
|
82
|
+
"./task-queue": {
|
|
83
|
+
"types": "./dist/task-queue.d.ts",
|
|
84
|
+
"import": "./dist/task-queue.js",
|
|
85
|
+
"default": "./dist/task-queue.js"
|
|
81
86
|
}
|
|
82
87
|
},
|
|
83
88
|
"bin": {
|
|
@@ -99,7 +104,7 @@
|
|
|
99
104
|
"@biomejs/biome": "^2.5.11",
|
|
100
105
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
101
106
|
"@tangle-network/agent-eval": "0.203.0",
|
|
102
|
-
"@tangle-network/agent-interface": "^2.
|
|
107
|
+
"@tangle-network/agent-interface": "^2.17.0",
|
|
103
108
|
"@tangle-network/agent-provider-tangle": "2.0.0",
|
|
104
109
|
"@tangle-network/sandbox": "^0.60.0",
|
|
105
110
|
"@types/node": "26.4.0",
|
|
@@ -123,7 +128,7 @@
|
|
|
123
128
|
"license": "MIT",
|
|
124
129
|
"peerDependencies": {
|
|
125
130
|
"@tangle-network/agent-eval": ">=0.201.0 <0.204.0",
|
|
126
|
-
"@tangle-network/agent-interface": "^2.
|
|
131
|
+
"@tangle-network/agent-interface": "^2.17.0",
|
|
127
132
|
"@tangle-network/sandbox": ">=0.58.4 <0.61.0"
|
|
128
133
|
},
|
|
129
134
|
"dependencies": {
|
|
@@ -147,7 +152,7 @@
|
|
|
147
152
|
"check:testing-fixture": "tsx scripts/generate-agent-improvement-proposal-fixtures.ts --check",
|
|
148
153
|
"check:skills": "node scripts/check-skills.mjs",
|
|
149
154
|
"conformance:durability": "node scripts/run-durability-conformance.mjs",
|
|
150
|
-
"conformance:capacity": "vitest run scripts/full-capacity-acceptance.test.mjs",
|
|
155
|
+
"conformance:capacity": "vitest run scripts/full-capacity-acceptance.test.mjs scripts/full-capacity-collector.test.mjs",
|
|
151
156
|
"check:model-execution-boundary": "node scripts/check-model-execution-boundary.mjs",
|
|
152
157
|
"check:publish-workflow": "node scripts/check-publish-workflow.mjs",
|
|
153
158
|
"check:upstream-evidence-workflow": "node scripts/check-upstream-evidence-workflow.mjs",
|