Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,18 @@

## Unreleased

## 0.121.0

- `pnpm run check:version-bump` (new, in the `ci` job) fails any change that alters a consumer-visible package surface without raising that package's version. Compared: every field npm copies into the published manifest — `exports`, `files`, `bin`, `directories`, `engines`, `typesVersions`, `dependencies`, `peerDependencies`, install-lifecycle `scripts`, `private` — plus the `pnpm-workspace.yaml` catalog pins those resolve through. A `catalog:` specifier is compared by what it RESOLVES to, because a byte-identical `"catalog:"` hiding a moved version is exactly how 0.119.0 shipped its peer range twice. Packages are keyed by name, not path, so relocating one still compares against what that name already published.

### Runtime accepts the current Sandbox release

`@tangle-network/sandbox@0.16.0` was published after Runtime 0.120.0 with execution-bound session controls, but Runtime's peer range still ended below 0.16.0.
An installation that explicitly selected every latest package therefore failed with `ERESOLVE` before application code could run.

Runtime now requires Sandbox `>=0.16.0 <0.17.0`, and its development cohort tests against 0.16.0.
The narrow profile type adapter remains necessary because Sandbox 0.16.0 is compiled against Interface 0.38.0 while Runtime is compiled against Interface 0.40.0; the profile crosses that adapter unchanged as data.

## 0.120.0

### The runtime's own supervision journal is readable again
Expand Down
5 changes: 5 additions & 0 deletions bench/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## 0.6.0

- Consume Runtime 0.121.0 with Sandbox 0.16.0 so a clean install no longer requires the superseded Sandbox 0.15 line.
- Release under a new minor because Sandbox is a pre-1.0 dependency moving across a minor boundary.

## 0.5.0

- Consume Runtime 0.120.0 with Eval 0.140.1, Interface 0.40.0, Knowledge 7.0.4, and Sandbox 0.15.2.
Expand Down
2 changes: 1 addition & 1 deletion bench/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tangle-network/agent-bench",
"version": "0.5.0",
"version": "0.6.0",
"type": "module",
"description": "Benchmark adapters and execution for agent-runtime across coding, tool-use, RAG, memory, browser, and terminal tasks.",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion docs/api/primitive-catalog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

# Primitive catalog — the never-stale anti-reinvention inventory

> **GENERATED** from `@tangle-network/agent-runtime@0.120.0` and `@tangle-network/agent-eval@0.140.1` by `scripts/gen-primitive-catalog.mjs`. Do NOT hand-edit — run `pnpm run docs:api`. This is the mechanical companion to the JUDGMENT in `canonical-api.md` (§2 decision table + §1.5 AgentProfile law): that doc says WHICH primitive to reach for and what NOT to build; this catalog proves WHAT exists. Per-symbol signatures + `file:line` live in the per-module pages under `docs/api/`.
> **GENERATED** from `@tangle-network/agent-runtime@0.121.0` and `@tangle-network/agent-eval@0.140.1` by `scripts/gen-primitive-catalog.mjs`. Do NOT hand-edit — run `pnpm run docs:api`. This is the mechanical companion to the JUDGMENT in `canonical-api.md` (§2 decision table + §1.5 AgentProfile law): that doc says WHICH primitive to reach for and what NOT to build; this catalog proves WHAT exists. Per-symbol signatures + `file:line` live in the per-module pages under `docs/api/`.

## 1. agent-runtime — own public surface

Expand Down
4 changes: 2 additions & 2 deletions docs/canonical-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
Generated signatures and the complete export list live in docs/api/.
Run pnpm docs:freshness after editing this file. -->

> **Version 0.120.0.**
> **Version 0.121.0.**
> [`docs/api/primitive-catalog.md`](./api/primitive-catalog.md) lists every export and import path.
> `agent-eval` must satisfy `>=0.140.1 <0.141.0`.
> `sandbox` must satisfy `>=0.15.0 <0.16.0`.
> `sandbox` must satisfy `>=0.16.0 <0.17.0`.
> Portable profile and tool-part types come from `@tangle-network/agent-interface` `>=0.40.0 <0.41.0`.
>
> **`./kernel` is the execution kernel**: `package.json` maps it to `src/runtime/index.ts`. Everything below labelled `/kernel` lives there — the recursive atom (`Scope`/`Supervisor`), the executor registry, budget conservation, the finalizer seam, analyst wiring, and the round-synchronous loop.
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tangle-network/agent-runtime",
"version": "0.120.0",
"version": "0.121.0",
"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.",
"homepage": "https://github.com/tangle-network/agent-runtime#readme",
"repository": {
Expand Down Expand Up @@ -171,7 +171,7 @@
"peerDependencies": {
"@tangle-network/agent-eval": ">=0.140.1 <0.141.0",
"@tangle-network/agent-interface": ">=0.40.0 <0.41.0",
"@tangle-network/sandbox": ">=0.15.0 <0.16.0",
"@tangle-network/sandbox": ">=0.16.0 <0.17.0",
"playwright": "^1.40.0"
},
"peerDependenciesMeta": {
Expand Down
33 changes: 17 additions & 16 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pnpm-workspace.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ catalog:
'@tangle-network/agent-interface': 0.40.0
'@tangle-network/agent-knowledge': 7.0.4
'@tangle-network/agent-profile-materialize': 0.9.4
'@tangle-network/sandbox': 0.15.2
'@tangle-network/sandbox': 0.16.0
publint: 0.3.22
tsdown: 0.22.14
tsx: 4.23.1
Expand Down
6 changes: 3 additions & 3 deletions src/runtime/environment-provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -452,8 +452,8 @@ function createInputFromSandboxOptions(
...(options?.git?.ref ? { gitRef: options.git.ref } : {}),
}
return {
// sandboxProfileAsProfile: sandbox 0.15.2 types this profile against
// interface 0.36; it crosses as data (see sandbox-backend.ts).
// sandboxProfileAsProfile: sandbox 0.16.0 types this profile against
// interface 0.38; it crosses as data (see sandbox-backend.ts).
...(profile !== undefined ? { profile: sandboxProfileAsProfile(profile) } : {}),
...(backend ? { backend } : {}),
...(Object.keys(workspace).length > 0 ? { workspace } : {}),
Expand Down Expand Up @@ -497,7 +497,7 @@ async function sandboxOptionsFromCreateInput(
backend: {
...baseBackend,
type: backendType,
// profileAsSandboxProfile: reverse hop of the interface 0.36/0.40 skew
// profileAsSandboxProfile: reverse hop of the interface 0.38/0.40 skew
// (see sandbox-backend.ts); the profile crosses as data.
profile: profileAsSandboxProfile(profile),
},
Expand Down
4 changes: 2 additions & 2 deletions src/runtime/sandbox-backend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ type BackendType = NonNullable<CreateSandboxOptions['backend']>['type']
type BackendOverride = NonNullable<CreateSandboxOptions['backend']>

/** The AgentProfile type as @tangle-network/sandbox declares it — compiled
* against agent-interface 0.36, not this package's 0.40. */
* against agent-interface 0.38, not this package's 0.40. */
export type SandboxAgentProfile = NonNullable<BackendOverride['profile']>

/**
* Version-skew boundary: sandbox 0.15.2 types profiles against interface 0.36
* Version-skew boundary: sandbox 0.16.0 types profiles against interface 0.38
* (MCP `args`/`env`/`headers` as plain strings), while this runtime is on 0.40
* (`AgentProfileConfigValue` objects). No published sandbox release is typed
* against 0.40 yet, and the profile crosses this boundary as data — the values
Expand Down
10 changes: 5 additions & 5 deletions src/testing/fixtures/agent-improvement-proposal.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"changedSurfaces": ["prompt"],
"digest": "sha256:62437295fe316041315ea506f1f32b35fc26ea505e7b203a906e0fa0e07cf2b4",
"digest": "sha256:3e02e3ad50802aba06d197876f9b9e5e51af4ea899f24b47a4fbf6f66516dd46",
"evaluation": {
"decision": {
"contributingChecks": [
Expand Down Expand Up @@ -4810,7 +4810,7 @@
],
"metadata": {
"fixture": "agent-improvement-proposal",
"runtimeVersion": "0.120.0"
"runtimeVersion": "0.121.0"
},
"objectives": [
{
Expand Down Expand Up @@ -4921,8 +4921,8 @@
"baselineContentHash": "sha256:5c21ee53e513fc604cb09754e21c392b24a424da0ef37dbf8f1ee4a8a0b08f09",
"candidateContentHash": "sha256:60fcbb1c728194bd51d7d19cb732d1c3f1881dce7e0a6266b41c8b98cfd65693",
"kind": "agent-eval-loop",
"recordDigest": "sha256:a68132746408aa98829aa6bbab094031961d7c180e00f7f87bf15c562585d5ac",
"runId": "agent-runtime-0.120.0-proposal-fixture",
"recordDigest": "sha256:75215d4401c0d9c8d7eef627c4db45eacc04aa2c22d26d5ea1ca7b63d3c2827d",
"runId": "agent-runtime-0.121.0-proposal-fixture",
"schema": "agent-candidate-experiment"
}
},
Expand All @@ -4949,5 +4949,5 @@
],
"kind": "agent-improvement-proposal",
"proposedAt": "2026-07-10T01:00:00.000Z",
"runId": "agent-runtime-0.120.0-proposal-fixture"
"runId": "agent-runtime-0.121.0-proposal-fixture"
}
6 changes: 3 additions & 3 deletions src/testing/fixtures/agent-profile-improvement-proposal.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"changedSurfaces": ["prompt", "skills"],
"digest": "sha256:07d8464e194b10487570d45bc9f91da367ca5e34e6a78e50dd6849a78a20e538",
"digest": "sha256:37369a278c75d6fd9fa66fa908fa8d286cd2005123268912c611817677c75c8e",
"evaluation": {
"decision": {
"contributingChecks": [
Expand Down Expand Up @@ -1715,7 +1715,7 @@
],
"metadata": {
"fixture": "agent-profile-improvement-proposal",
"runtimeVersion": "0.120.0"
"runtimeVersion": "0.121.0"
},
"objectives": [
{
Expand Down Expand Up @@ -1826,7 +1826,7 @@
"baselineContentHash": "sha256:21c495a37c418c10bde64fbaa188beddeed31f1f051ea60a6a6582a9ee0db704",
"candidateContentHash": "sha256:103f77bc8481601eef1ad5fe6ba84a40dffabc3a44f421f8c8559121edab84e9",
"kind": "agent-eval-loop",
"recordDigest": "sha256:0ec162db37e18ab5119a1dc8e02c8c7d65d0071484fd5bc2d177411d69c68014",
"recordDigest": "sha256:73686dac75ceee1456d2cf7154984e2b44d547c515c2f2c191a880b2d9c605fd",
"runId": "profile-improvement-1",
"schema": "agent-profile-improvement-experiment"
}
Expand Down