Skip to content
Open
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
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.110.0

- Run every supervisor, including the root, from one complete `AgentProfile`, preserve exact profile/task/candidate identity through recursive delegation, and reject execution paths that would silently drop profile fields.
- Expose node-scoped product tools, product authorization for exact spawns and continuations, awaited replay-safe coordination observation, structured worker traces, trace-derived failure guidance, and caller cancellation across the complete recursive run.
- Make durable run and assignment identity stable across restart while retaining exact materialization, accounting, delivery, and settlement evidence for each node.
- Add live root-manager steering, trusted post-authorization manager/leaf classification, per-assignment completion checks, a cold recursive forest reader, and public exact-profile candidate conversion helpers.
- Align Runtime with Eval 0.135.4, Interface 0.37.0, Knowledge 7.0.0, and Materialize 0.9.3 so public-source provenance and exact knowledge claims use one package cohort.

## 0.109.2

- Align Runtime with Eval 0.135.2 and Knowledge 6.1.11 so every improvement path uses the corrected paired promotion decisions.
Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,13 @@ One supervisor spawns and steers workers toward a goal. Where the workers run (a
import { supervise } from '@tangle-network/agent-runtime/kernel'

const result = await supervise(
{ name: 'supervisor', harness: null, systemPrompt: 'Delegate to workers; do not solve the task yourself.' },
{
name: 'supervisor',
harness: 'cli-base',
prompt: {
systemPrompt: 'Delegate to workers; do not solve the task yourself.',
},
},
'Implement the feature and make the tests pass.',
{ budget, router, backend }, // backend = where workers run: router-tools | sandbox+harness | bridge
)
Expand Down
81 changes: 80 additions & 1 deletion docs/api/agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -1106,16 +1106,73 @@ the loop produces 20 minutes later).

AgentProfile axis name, with `custom:<name>` reserved for caller-owned extensions.

***

### CanonicalAgentProfileMaterializationAxis

> **CanonicalAgentProfileMaterializationAxis** = [`KnownAgentProfileMaterializationAxis`](#knownagentprofilematerializationaxis)

Canonical AgentProfile axes used when checking one complete profile.

## Variables

### AGENT\_PROFILE\_MATERIALIZATION\_AXES

> `const` **AGENT\_PROFILE\_MATERIALIZATION\_AXES**: readonly \[`"identity"`, `"name"`, `"model"`, `"prompt"`, `"systemPrompt"`, `"instructions"`, `"resources"`, `"files"`, `"resourceInstructions"`, `"skills"`, `"resourceTools"`, `"resourceAgents"`, `"commands"`, `"tools"`, `"permissions"`, `"mcp"`, `"mcpConnections"`, `"connections"`, `"subagents"`, `"hooks"`, `"modes"`, `"confidential"`, `"metadata"`, `"extensions"`\]
> `const` **AGENT\_PROFILE\_MATERIALIZATION\_AXES**: readonly \[`"identity"`, `"name"`, `"description"`, `"version"`, `"tags"`, `"model"`, `"modelDefault"`, `"modelSmall"`, `"modelProvider"`, `"modelReasoningEffort"`, `"modelMetadata"`, `"harness"`, `"prompt"`, `"systemPrompt"`, `"instructions"`, `"resources"`, `"files"`, `"resourceInstructions"`, `"skills"`, `"resourceTools"`, `"resourceAgents"`, `"commands"`, `"resourceFailOnError"`, `"tools"`, `"permissions"`, `"mcp"`, `"mcpConnections"`, `"connections"`, `"subagents"`, `"hooks"`, `"modes"`, `"confidential"`, `"metadata"`, `"extensions"`\]

Known AgentProfile axes a run path may or may not carry into execution.

***

### fullProfileMaterialization

> `const` **fullProfileMaterialization**: [`ProfileMaterializationContract`](#profilematerializationcontract)

Materialization contract for a run path that executes every canonical AgentProfile axis.

***

### promptModelProfileMaterialization

> `const` **promptModelProfileMaterialization**: [`ProfileMaterializationContract`](#profilematerializationcontract)

Materialization contract for an intentionally limited prompt-and-model execution path.
Identity, harness, and metadata are control fields consumed for naming, placement,
authorization, and durable attribution; they are carried without adding worker behavior.
Every behavioral axis other than prompt and model remains unsupported.

***

### worktreeCliProfileMaterialization

> `const` **worktreeCliProfileMaterialization**: [`ProfileMaterializationContract`](#profilematerializationcontract)

Materialization contract for a local coding CLI in an isolated git worktree.
The shared workspace materializer carries native tools, permissions, MCP, hooks, subagents,
modes, and file-backed resources when the selected CLI supports their exact values. Runtime
placement concerns (hub connections and confidential execution), provider-native extensions,
unused model hints, and `resources.failOnError` are deliberately absent so they fail before a
worktree or executor is created rather than being mistaken for an effective candidate change.

***

### controlProfileMaterialization

> `const` **controlProfileMaterialization**: [`ProfileMaterializationContract`](#profilematerializationcontract)

Materialization contract for a raw process path that carries only control/identity fields.

***

### promptControlProfileMaterialization

> `const` **promptControlProfileMaterialization**: [`ProfileMaterializationContract`](#profilematerializationcontract)

Materialization contract for an injected inference function whose surrounding driver still
applies the profile prompt, name, placement, and metadata, but not model selection.

***

### sandboxActProfileMaterialization

> `const` **sandboxActProfileMaterialization**: [`ProfileMaterializationContract`](#profilematerializationcontract)
Expand Down Expand Up @@ -1275,6 +1332,28 @@ Define the profile axes a concrete run path actually carries into execution.

***

### profileMaterializationAxes()

> **profileMaterializationAxes**(`profile`): readonly (`"metadata"` \| `"resources"` \| `"name"` \| `"tools"` \| `"model"` \| `"mcp"` \| `"connections"` \| `"subagents"` \| `"hooks"` \| `"modes"` \| `"extensions"` \| `"description"` \| `"version"` \| `"tags"` \| `"prompt"` \| `"harness"` \| `"permissions"` \| `"confidential"` \| `"systemPrompt"` \| `"instructions"` \| `"skills"` \| `"identity"` \| `"modelDefault"` \| `"modelSmall"` \| `"modelProvider"` \| `"modelReasoningEffort"` \| `"modelMetadata"` \| `"files"` \| `"resourceInstructions"` \| `"resourceTools"` \| `"resourceAgents"` \| `"commands"` \| `"resourceFailOnError"` \| `"mcpConnections"`)[]

Return the exact canonical axes a complete profile actually requests. Compound prompt, model,
identity, and resource objects are split so a path cannot claim an entire object while silently
dropping one of its fields.
Empty strings, arrays, and nested records do not claim support; explicit
scalar values such as `false` and `0` remain meaningful requests.

#### Parameters

##### profile

`AgentProfile`

#### Returns

readonly (`"metadata"` \| `"resources"` \| `"name"` \| `"tools"` \| `"model"` \| `"mcp"` \| `"connections"` \| `"subagents"` \| `"hooks"` \| `"modes"` \| `"extensions"` \| `"description"` \| `"version"` \| `"tags"` \| `"prompt"` \| `"harness"` \| `"permissions"` \| `"confidential"` \| `"systemPrompt"` \| `"instructions"` \| `"skills"` \| `"identity"` \| `"modelDefault"` \| `"modelSmall"` \| `"modelProvider"` \| `"modelReasoningEffort"` \| `"modelMetadata"` \| `"files"` \| `"resourceInstructions"` \| `"resourceTools"` \| `"resourceAgents"` \| `"commands"` \| `"resourceFailOnError"` \| `"mcpConnections"`)[]

***

### validateProfileMaterialization()

> **validateProfileMaterialization**(`options`): readonly [`ProfileMaterializationIssue`](#profilematerializationissue)[]
Expand Down
24 changes: 24 additions & 0 deletions docs/api/candidate-execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,12 @@ Re-exports [prepareAgentCandidateExecution](index.md#prepareagentcandidateexecut

***

### agentCandidateProfileAsAgentProfile

Re-exports [agentCandidateProfileAsAgentProfile](index.md#agentcandidateprofileasagentprofile)

***

### applyExactAgentProfileDiff

Re-exports [applyExactAgentProfileDiff](index.md#applyexactagentprofilediff)
Expand All @@ -266,6 +272,18 @@ Re-exports [assertCandidateProfileBinding](index.md#assertcandidateprofilebindin

***

### freezeGenericAgentCandidateProfile

Re-exports [freezeGenericAgentCandidateProfile](index.md#freezegenericagentcandidateprofile)

***

### omitUndefinedObjectFields

Re-exports [omitUndefinedObjectFields](index.md#omitundefinedobjectfields)

***

### parseExactAgentProfile

Re-exports [parseExactAgentProfile](index.md#parseexactagentprofile)
Expand All @@ -278,6 +296,12 @@ Re-exports [parseExactAgentProfileDiff](index.md#parseexactagentprofilediff)

***

### parseExactCandidateProfile

Re-exports [parseExactCandidateProfile](index.md#parseexactcandidateprofile)

***

### AgentCandidateModelGrantActivateInput

Re-exports [AgentCandidateModelGrantActivateInput](index.md#agentcandidatemodelgrantactivateinput)
Expand Down
Loading
Loading