Core object reference¶
Version: 0.4. Specification · Core · Continuation · Reports
Every example below is JSON Schema checked. Object fragments use IDs resolved by an enclosing session or report; they are not standalone session documents. Full scenarios are in examples. Required means unconditionally required; conditional rules follow each table. Normative session semantics and continuation rules also apply.
Browse all objects on this page
- ASIF Document Object
- Capture Object
- Producer Object
- Session Object
- Native Identifier Object
- Lineage Object
- Event Reference Object
- Text Part Object
- Resource Part Object
- Structured Part Object
- Opaque Part Object
- Provenance Object
- Provenance Source Object
- Source Locator Object
- Participant Object
- Participant Child Session Object
- Execution Object
- Execution Model Object
- Tool Object
- Instruction Object
- Instruction Scope Object
- Instruction Activation Object
- Capability Object
- Policy Object
- Configuration Object
- Configuration Secret Requirements Object
- Configuration Model Object
- Requirement Object
- Environment Object
- Environment Definition Object
- Resource Object
- Context Input Object
- Context Object
- Context Model Object
- Context Request Parameters Object
- Branch Object
- Branch Fork Object
- Checkpoint Object
- Open Call Object
- Open Decision Object
- Task State Object
- Usage Object
- Event Object
- Event Data Object
- Extension Map Object
- Message Data Object
- Tool Call Data Object
- Tool Result Data Object
- Decision Request Data Object
- Decision Request Option Object
- Decision Resolution Data Object
- Task Update Data Object
- Context Checkpoint Data Object
- Configuration Change Data Object
- Execution Transition Data Object
- Resource Change Data Object
- Note Data Object
- Extension Data Object
- Coverage Object
- Loss Object
- Loss References Object
- Stream Segment Object
- Stream Object
- External Binding Object
- External Binding Source Object
- External Binding Descriptor Object
- External Call Descriptor Object
- External Request Descriptor Object
- External Request Option Object
ASIF Document Object¶
Root of an immutable session capture. Collections describe identity, history, effective context, resources and known state; coverage explains their limits.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
asif_version |
"0.4" |
Yes | Exact ASIF draft version used by this document. |
capture |
Capture Object | Yes | Immutable capture identity and observation boundary. |
session |
Session Object | Yes | Logical session identity, objective and lineage. |
participants |
array of Participant Object | Yes | Declared actors referenced by the captured interaction. |
events |
array of Event Object | Yes | Immutable captured occurrences in serialization order. |
branches |
array of Branch Object | Yes | Explicit selections of conversation history. Minimum items: 1. |
executions |
array of Execution Object | Yes | Observed agent activity intervals. |
contexts |
array of Context Object | Yes | Resolved or proposed model inputs. |
configurations |
array of Configuration Object | Yes | Immutable configuration snapshots. |
tools |
array of Tool Object | Yes | Callable tool definitions referenced by activity or context. |
resources |
array of Resource Object | Yes | Attachments, artifacts, memory and supporting resources. |
environments |
array of Environment Object | Yes | Workspace, service or runtime descriptions. |
checkpoints |
array of Checkpoint Object | Yes | State observations at branch boundaries, including each captured head. Minimum items: 1. |
coverage |
array of Coverage Object | Yes | One completeness declaration for every required session domain. Minimum items: 13. Maximum items: 13. |
losses |
array of Loss Object | Yes | Explicit information changes or omissions; empty means none declared. |
required_features |
array of string | Yes | Feature identifiers whose semantics a consumer must understand for its capability claim. Items MUST be unique. |
usage |
array of Usage Object | No | Recorded counters with scope, units and provenance. |
continuation |
Continuation Profile Object | No | Optional portable-continuation profile, gated by its required feature identifier. |
streams |
array of Stream Object | No | Optional byte-fragment assemblies, gated by asif.streams/0.1. |
external_bindings |
array of External Binding Object | No | Optional prior-capture call/request descriptors, gated by asif.external-bindings/0.1. |
Rules¶
See session semantics.
- When
continuationis present,required_featuresMUST containasif.portable-continuation/0.2. - When
required_featurescontainsasif.portable-continuation/0.2, requirecontinuation. - When
streamsis present,required_featuresMUST containasif.streams/0.1. - When
required_featurescontainsasif.streams/0.1, requirestreams. - When
external_bindingsis present,required_featuresMUST containasif.external-bindings/0.1. - When
required_featurescontainsasif.external-bindings/0.1, requireexternal_bindings.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"asif_version": "0.4",
"capture": {
"id": "capture-hello",
"producer": {
"name": "ASIF examples",
"version": "0.4"
},
"consistency": "consistent",
"boundary": "One authored greeting; no agent request was captured."
},
"session": {
"id": "session-hello",
"title": "Greeting",
"native_ids": [],
"lineage": []
},
"participants": [
{
"id": "human-1",
"kind": "human"
}
],
"events": [
{
"id": "e1",
"sequence": 0,
"actor_id": "human-1",
"kind": "message",
"causes": [],
"provenance": {
"mode": "synthetic",
"producer": "ASIF examples",
"method": "Authored greeting example.",
"inputs": []
},
"data": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "Hello."
}
]
}
}
],
"branches": [
{
"id": "main",
"event_ids": [
"e1"
],
"head_event_id": "e1"
}
],
"executions": [],
"contexts": [],
"configurations": [],
"tools": [],
"resources": [],
"environments": [],
"checkpoints": [
{
"id": "checkpoint-1",
"branch_id": "main",
"at_event_id": "e1",
"knowledge": "unknown",
"status": "unknown",
"context_id": null,
"configuration_id": null,
"open_calls": [],
"open_decisions": [],
"tasks": [],
"requirements": []
}
],
"coverage": [
{
"scope": "participants",
"status": "complete",
"detail": "Scope of this authored example."
},
{
"scope": "conversation",
"status": "complete",
"detail": "Scope of this authored example."
},
{
"scope": "branches",
"status": "complete",
"detail": "Scope of this authored example."
},
{
"scope": "executions",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "contexts",
"status": "not_inspected",
"detail": "Scope of this authored example."
},
{
"scope": "configuration",
"status": "not_inspected",
"detail": "Scope of this authored example."
},
{
"scope": "tools",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "decisions",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "tasks",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "resources",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "environment",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "native",
"status": "known_empty",
"detail": "Scope of this authored example."
},
{
"scope": "usage",
"status": "known_empty",
"detail": "Scope of this authored example."
}
],
"losses": [],
"required_features": []
}
Capture Object¶
Identifies this immutable observation of a logical session and explains its capture boundary.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
producer |
Producer Object | Yes | Software or instrumentation responsible for the capture or evidence. |
consistency |
enum | Yes | Whether the captured boundary is known to be consistent. One of "consistent", "partial", "unknown". |
boundary |
string | Yes | Explanation or structured declaration of the observation boundary. Minimum length: 1. |
started_at |
string | No | Recorded start time; omitted when unknown. Minimum length: 1. |
ended_at |
string | No | Recorded end time; omitted when unknown. Minimum length: 1. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "capture-image-and-document",
"producer": {
"name": "asif-examples",
"version": "1"
},
"consistency": "consistent",
"boundary": "Invented example through e2; no real model or tool ran."
}
Producer Object¶
Identifies the software that created the capture, including its version.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Recorded name; identity is carried separately by the ID. Minimum length: 1. |
version |
string | Yes | Implementation or format version. Minimum length: 1. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Session Object¶
Identifies the logical interaction across captures, with its objective and lineage.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
title |
string | No | Human-readable session title. |
objective |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | No | Recorded session objective as ordered content parts. |
native_ids |
array of Native Identifier Object | Yes | Original IDs, each qualified by provider and namespace. |
lineage |
array of Lineage Object | Yes | Explicit relationships to source sessions and captures. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "session-image-and-document",
"title": "Image and PDF attachments",
"native_ids": [],
"lineage": []
}
Native Identifier Object¶
Preserves an opaque identifier in a provider's namespace without making it an ASIF identity.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Lineage Object¶
Relates this session to the source of a continuation, fork, translation or copy.
Fixed fields¶
Rules¶
- When
relationis"fork", requireevent_id,inclusive. - When
relationis"translation", requireevent_id,inclusive.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"relation": "fork",
"session_id": "session-parent",
"capture_id": "capture-parent",
"event_id": "e2",
"inclusive": true
}
Event Reference Object¶
Names a local event or explicitly names an event in another session capture. It never causes an automatic fetch.
Fixed fields¶
Rules¶
- When
session_idis present,capture_idMUST also be present. - When
capture_idis present,session_idMUST also be present.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Text Part Object¶
Carries exact Unicode text at one position in ordered content.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Resource Part Object¶
Places an attachment or other resource at one position in ordered content; availability belongs to the Resource Object.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Structured Part Object¶
Carries JSON whose interpretation is defined by a named schema. Unknown schemas remain opaque.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"kind": "structured",
"schema": "example.table/1",
"value": {
"columns": [
"item",
"count"
],
"rows": [
[
"books",
3
]
]
}
}
Opaque Part Object¶
Preserves a resource whose semantic interpretation is unavailable to this reader.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"kind": "opaque",
"resource_id": "native-state",
"semantic_type": "example.agent-state/1",
"reason": "No portable decoder is defined."
}
Provenance Object¶
Distinguishes observed, reported, derived and synthetic evidence and identifies its sources.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
mode |
enum | Yes | Representation or interpretation mode selected by the enclosing object. One of "observed", "reported", "derived", "synthetic". |
producer |
string | Yes | Software or instrumentation responsible for the capture or evidence. Minimum length: 1. |
sources |
array of Provenance Source Object | No | Original resource locations supporting this provenance. |
method |
string | No | Method used to derive, synthesize or capture this record. Minimum length: 1. |
inputs |
array of Event Reference Object | No | Ordered inputs; provenance inputs identify supporting events. |
Rules¶
- When
modeis"derived", requiremethod,inputs. - When
modeis"synthetic", requiremethod,inputs.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Provenance Source Object¶
Identifies a source resource and, optionally, a specific span or structured location within it.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
resource_id |
string | Yes | ID of the referenced Resource Object. Minimum length: 1. |
locator |
Source Locator Object | No | Location interpreted according to its declared syntax or availability. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Source Locator Object¶
Selects bytes or a structured location within a provenance source; unknown syntaxes remain uninterpreted.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Participant Object¶
Identifies a person, agent, tool or service independently of the role used in a particular message.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
kind |
enum | Yes | Discriminator selecting this object's interpretation. One of "human", "agent", "tool", "service", "unknown". |
name |
string | No | Recorded name; identity is carried separately by the ID. |
provider |
string | No | Provider identity for the named object or account. Minimum length: 1. |
native_id |
string | No | Opaque participant identity in its source system. Minimum length: 1. |
parent_participant_id |
string | No | ID of the parent or delegating participant. Minimum length: 1. |
child_session |
Participant Child Session Object | No | Explicit reference to a delegated session capture. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Participant Child Session Object¶
Names a delegated participant's separate session capture; its history is not implicitly included.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Execution Object¶
Records an agent activity interval and its observed state, model contexts and optional usage.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
participant_id |
string | Yes | ID of the participant responsible for the execution. Minimum length: 1. |
status |
enum | Yes | Recorded state at the relevant boundary; see the allowed values. One of "running", "completed", "failed", "cancelled", "interrupted", "unknown". |
context_ids |
array of string | Yes | IDs of contexts associated with this execution. Items MUST be unique. |
started_at |
string | No | Recorded start time; omitted when unknown. Minimum length: 1. |
ended_at |
string | No | Recorded end time; omitted when unknown. Minimum length: 1. |
model |
Execution Model Object | No | Recorded model identity or settings for this scope. |
usage |
array of Usage Object | No | Recorded counters with scope, units and provenance. |
error |
JSON value | No | Captured error evidence; its contents do not establish a recovery action. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Execution Model Object¶
Retains the model settings recorded for an execution. Provider-specific values require a declared interpretation before reuse.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
This is an open map. Preserve unknown values. Reuse requires support for their declared semantics; an empty map does not prove that the source had no hidden settings.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Tool Object¶
Defines a callable interface, including its JSON Schema input contract. A definition does not implement the tool.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "read-notes",
"name": "example.notes.read",
"description": "Read a meeting document by logical identifier.",
"input_schema": {
"type": "object",
"properties": {
"document_id": {
"type": "string"
}
},
"required": [
"document_id"
],
"additionalProperties": false
}
}
Instruction Object¶
Records instruction content, source, scope and activation without inventing unknown precedence.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content parts. Order is semantically significant. |
scope |
Instruction Scope Object | Yes | Domain or activation scope to which this declaration applies. |
activation |
Instruction Activation Object | Yes | Conditions under which an instruction or rule applies. |
provenance |
Provenance Object | Yes | Evidence classification and source attribution. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "workspace-rule",
"parts": [
{
"kind": "text",
"text": "Use the declared workspace for file operations."
}
],
"scope": {
"dialect": "example.scope/1",
"value": "workspace"
},
"activation": {
"dialect": "example.activation/1",
"value": "always"
},
"provenance": {
"mode": "synthetic",
"producer": "asif-examples",
"method": "Authored configuration fixture.",
"inputs": []
}
}
Instruction Scope Object¶
Preserves a source dialect's scope declaration. Portable scope bindings are defined by the continuation profile.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Instruction Activation Object¶
Preserves a source dialect's activation declaration. Portable activation bindings are defined by the continuation profile.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Capability Object¶
Describes a skill, plugin, hook, connection or other runtime facility and its supporting resources.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "summary-skill",
"type": "example.skill",
"definition": {
"id": "inventory-summary",
"version": "1"
},
"resource_ids": [
"skill-template"
],
"required": true
}
Policy Object¶
Records a named policy dialect and whether its restrictions were enforced.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "workspace-only",
"type": "example.policy/1",
"definition": {
"file_access": "declared-workspace"
},
"enforcing": true
}
Configuration Object¶
An immutable snapshot of instructions, capabilities, policies and credential prerequisites.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
instructions |
array of Instruction Object | Yes | Recorded instruction sequence; effective order must be known before equivalent continuation. |
capabilities |
array of Capability Object | Yes | Required or declared abilities for this configuration or model. |
policies |
array of Policy Object | Yes | Recorded policy declarations. |
secret_requirements |
array of Configuration Secret Requirements Object | Yes | Logical credential handles and purposes; no credential values. |
knowledge |
enum | Yes | How much of the effective state or configuration is known. One of "effective", "declared", "partial", "unknown". |
model |
Configuration Model Object | No | Recorded model identity or settings for this scope. |
environment_ids |
array of string | No | IDs of environments required by this configuration. Items MUST be unique. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "config-1",
"instructions": [],
"capabilities": [],
"policies": [],
"secret_requirements": [],
"knowledge": "partial"
}
Configuration Secret Requirements Object¶
Names a credential prerequisite using a logical handle and purpose. Credential values do not belong here.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Configuration Model Object¶
Retains configuration-level model settings; a context can identify the settings used for a particular request.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
This is an open map. Preserve unknown values. Reuse requires support for their declared semantics; an empty map does not prove that the source had no hidden settings.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Requirement Object¶
States a prerequisite and the capabilities for which it matters, including whether its resolution is known.
Fixed fields¶
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "req-1",
"kind": "asif.decision",
"description": "Resolve approval-1 under destination policy before any tool execution.",
"required_for": [
"continue"
],
"status": "unresolved"
}
Environment Object¶
Describes a workspace, service or runtime environment and its dependencies without granting access to it.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
kind |
enum | Yes | Discriminator selecting this object's interpretation. One of "workspace", "service", "runtime", "other". |
description |
string | Yes | Human-readable description of this declaration. Minimum length: 1. |
resource_ids |
array of string | Yes | IDs of supporting resources; their availability is declared separately. Items MUST be unique. |
requirements |
array of Requirement Object | Yes | Prerequisites for the stated capability. |
definition |
Environment Definition Object | No | Dialect-specific definition retained without guessing unknown semantics. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "project-env",
"kind": "workspace",
"description": "Synthetic project directory at the captured boundary.",
"resource_ids": [
"source-csv",
"output-csv",
"report"
],
"requirements": [],
"definition": {
"dialect": "example.workspace/1",
"value": {
"cwd": "/Users/example/project"
}
}
}
Environment Definition Object¶
Preserves environment-specific data under an explicit dialect identifier.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Resource Object¶
Describes attachment or dependency identity, availability and integrity. Embedded text, base64 and file-backed resources share the same decoded-byte semantics.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
media_type |
string | Yes | Declared media type of the content or resource. Minimum length: 1. |
availability |
enum | Yes | Whether and how the referenced content is available. One of "embedded", "external", "unavailable", "excluded", "redacted", "unknown". |
purpose |
string | Yes | Intended use of the record or resource. Minimum length: 1. |
name |
string | No | Recorded name; identity is carried separately by the ID. |
original_location |
string | No | Source location retained as metadata; not permission to access it. |
bytes |
integer | No | Exact decoded byte count. Minimum: 0. Maximum: 9007199254740991. |
sha256 |
string | No | Lowercase SHA-256 digest of exact decoded resource bytes. Pattern: ^[0-9a-f]{64}(?![\s\S]). |
text |
string | No | Exact Unicode text; embedded-resource bytes use UTF-8. |
data |
string | No | Base64 encoding of the embedded resource bytes. |
path |
string | No | Portable relative path resolved against the session document or package root. Minimum length: 1. |
locator |
string | No | External resource locator. Reading the document MUST NOT fetch it automatically. Minimum length: 1. |
explanation |
string | No | Reason for the declaration or limitation. Minimum length: 1. |
provenance |
Provenance Object | No | Evidence classification and source attribution. |
Rules¶
See resource rules. Embedded resources MUST select exactly one of text, data and path, with verified decoded bytes and sha256. Other availability states MUST explain the limitation; external resources also require a locator.
- When
availabilityis"embedded", requirebytes,sha256; exactly one oftext,data,path. - When
availabilityis"external", requirelocator,explanation. - When
availabilityis"unavailable", requireexplanation. - When
availabilityis"excluded", requireexplanation. - When
availabilityis"redacted", requireexplanation. - When
availabilityis"unknown", requireexplanation.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "unknown",
"media_type": "image/png",
"purpose": "input",
"availability": "unknown",
"explanation": "The exporter did not inspect attachment availability."
}
Embedded UTF-8 attachment¶
The three embedded examples represent the same decoded bytes and therefore use the same length and digest. The path example assumes those bytes are supplied at assets/items.csv.
{
"id": "attachment-csv",
"media_type": "text/csv",
"purpose": "input",
"availability": "embedded",
"bytes": 19,
"sha256": "de0c9962d43f7e783381c9f07d89c60589342163340cb53a55c2e0cf3f9859b6",
"text": "item,count\nbooks,3\n"
}
Embedded base64 attachment¶
The three embedded examples represent the same decoded bytes and therefore use the same length and digest. The path example assumes those bytes are supplied at assets/items.csv.
{
"id": "attachment-csv",
"media_type": "text/csv",
"purpose": "input",
"availability": "embedded",
"bytes": 19,
"sha256": "de0c9962d43f7e783381c9f07d89c60589342163340cb53a55c2e0cf3f9859b6",
"data": "aXRlbSxjb3VudApib29rcywzCg=="
}
File-backed attachment¶
The three embedded examples represent the same decoded bytes and therefore use the same length and digest. The path example assumes those bytes are supplied at assets/items.csv.
{
"id": "attachment-csv",
"media_type": "text/csv",
"purpose": "input",
"availability": "embedded",
"bytes": 19,
"sha256": "de0c9962d43f7e783381c9f07d89c60589342163340cb53a55c2e0cf3f9859b6",
"path": "assets/items.csv"
}
External attachment¶
The missing bytes are not replaced with invented text. The referring Resource Part retains this resource ID.
{
"id": "attachment-original",
"media_type": "application/pdf",
"purpose": "input",
"availability": "external",
"explanation": "The source only retained a remote locator.",
"locator": "https://example.invalid/report.pdf"
}
Unavailable attachment¶
The missing bytes are not replaced with invented text. The referring Resource Part retains this resource ID.
{
"id": "attachment-original",
"media_type": "application/pdf",
"purpose": "input",
"availability": "unavailable",
"explanation": "The source attachment was deleted before capture."
}
Excluded attachment¶
The missing bytes are not replaced with invented text. The referring Resource Part retains this resource ID.
{
"id": "attachment-original",
"media_type": "application/pdf",
"purpose": "input",
"availability": "excluded",
"explanation": "The producer intentionally excluded these bytes."
}
Redacted attachment¶
The missing bytes are not replaced with invented text. The referring Resource Part retains this resource ID.
{
"id": "attachment-original",
"media_type": "application/pdf",
"purpose": "input",
"availability": "redacted",
"explanation": "The original contains withheld content; sanitized content is a separate resource."
}
Unknown attachment¶
The missing bytes are not replaced with invented text. The referring Resource Part retains this resource ID.
{
"id": "attachment-original",
"media_type": "application/pdf",
"purpose": "input",
"availability": "unknown",
"explanation": "The producer could not determine availability."
}
Context Input Object¶
One resolved, ordered input to a model: a message, tool call or tool result, with source attribution.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
role |
enum | Yes | Message role used for this input, independently of participant identity. One of "user", "assistant", "system", "developer", "tool", "unknown". |
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content parts. Order is semantically significant. |
source_events |
array of Event Reference Object | Yes | Events from which this resolved input was obtained. |
transformation |
string | No | Explanation of a known change from source content. Minimum length: 1. |
kind |
enum | Yes | Discriminator selecting this object's interpretation. One of "message", "tool_call", "tool_result". |
call_id |
string | No | Session-scoped identity of one logical invocation. Minimum length: 1. |
tool_id |
string | No | ID of the referenced tool definition. Minimum length: 1. |
arguments |
JSON value | No | Exact known JSON argument value; completeness is declared separately. |
arguments_status |
enum | No | Whether the known arguments are complete, partial or unknown. One of "complete", "partial", "unknown". |
result_index |
integer | No | Monotonically increasing result position within the call's selected history. Minimum: 0. Maximum: 9007199254740991. |
terminal |
boolean | No | Whether this is the final result or fragment in its declared scope. |
outcome |
enum | No | Recorded result or assessment outcome; unknown remains explicit. One of "success", "error", "cancelled", "unknown". |
Rules¶
- When
kindis"tool_call", requirecall_id,tool_id,arguments,arguments_status;roleMUST be"assistant". - When
kindis"tool_result", requirecall_id,result_index,terminal,outcome;roleMUST be"tool".
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "input-1",
"role": "user",
"parts": [
{
"kind": "text",
"text": "Summarize the selected meeting notes."
}
],
"source_events": [
{
"event_id": "e1"
}
],
"kind": "message"
}
Message input¶
This is one resolved input from the complete another-computer example. Source references provide provenance, not instructions to guess the input.
{
"id": "input-instruction",
"kind": "message",
"role": "system",
"parts": [
{
"kind": "text",
"text": "Use the declared workspace for file operations."
}
],
"source_events": []
}
Tool Call input¶
This is one resolved input from the complete another-computer example. Source references provide provenance, not instructions to guess the input.
{
"id": "input-e2",
"kind": "tool_call",
"role": "assistant",
"parts": [],
"source_events": [
{
"event_id": "e2"
}
],
"call_id": "call-1",
"tool_id": "summarize",
"arguments": {
"resource_id": "source-csv"
},
"arguments_status": "complete"
}
Tool Result input¶
This is one resolved input from the complete another-computer example. Source references provide provenance, not instructions to guess the input.
{
"id": "input-e3",
"kind": "tool_result",
"role": "tool",
"parts": [
{
"kind": "resource",
"resource_id": "output-csv",
"description": "CSV with total row."
},
{
"kind": "resource",
"resource_id": "report",
"description": "Markdown report."
}
],
"source_events": [
{
"event_id": "e3"
}
],
"call_id": "call-1",
"result_index": 0,
"terminal": true,
"outcome": "success"
}
Context Object¶
Records or proposes the actual ordered model input independently of conversation and branch order.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
branch_id |
string | Yes | ID of the selected branch. Minimum length: 1. |
at_event_id |
string / null | Yes | Event at the recorded boundary, or null for an empty boundary. |
purpose |
enum | Yes | Intended use of the record or resource. One of "model_request", "continuation", "summary". |
fidelity |
enum | Yes | How closely this context represents the known model input. One of "exact", "reconstructed", "partial", "unknown". |
inputs |
array of Context Input Object | Yes | Ordered inputs; provenance inputs identify supporting events. |
tool_ids |
array of string | Yes | IDs of tools made available to this context. Items MUST be unique. |
configuration_id |
string | No | ID of the configuration snapshot used at this boundary. Minimum length: 1. |
model |
Context Model Object | No | Recorded model identity or settings for this scope. |
request_parameters |
Context Request Parameters Object | No | Recorded request settings; unknown provider-specific semantics are not inferred. |
Rules¶
- When
fidelityis"exact", requireconfiguration_id,request_parameters.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "context-1",
"branch_id": "main",
"at_event_id": "e1",
"purpose": "model_request",
"fidelity": "reconstructed",
"inputs": [
{
"id": "input-1",
"role": "user",
"parts": [
{
"kind": "text",
"text": "Summarize the selected meeting notes."
}
],
"source_events": [
{
"event_id": "e1"
}
],
"kind": "message"
}
],
"tool_ids": [
"read-notes"
],
"configuration_id": "config-1"
}
Context Model Object¶
Retains the model identity and settings associated with this context.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
This is an open map. Preserve unknown values. Reuse requires support for their declared semantics; an empty map does not prove that the source had no hidden settings.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Context Request Parameters Object¶
Retains request settings associated with this exact context; unknown provider parameters are not silently translated.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
This is an open map. Preserve unknown values. Reuse requires support for their declared semantics; an empty map does not prove that the source had no hidden settings.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Branch Object¶
Selects an ordered conversation history and its head within this capture.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
event_ids |
array of string | Yes | Ordered, duplicate-free selection of included event IDs. Items MUST be unique. |
head_event_id |
string / null | Yes | Final selected event ID, or null for an empty branch. |
fork |
Branch Fork Object | No | Explicit source boundary for a branch fork. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Branch Fork Object¶
Records the source branch boundary at which histories diverged. It does not imply a filesystem rewind.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"session_id": "session-parent",
"capture_id": "capture-parent",
"branch_id": "main",
"event_id": "e2",
"inclusive": true
}
Checkpoint Object¶
Records known state at a selected branch boundary, including unresolved calls, decisions and task revisions.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
branch_id |
string | Yes | ID of the selected branch. Minimum length: 1. |
at_event_id |
string / null | Yes | Event at the recorded boundary, or null for an empty boundary. |
knowledge |
enum | Yes | How much of the effective state or configuration is known. One of "observed", "derived", "unknown". |
status |
enum | Yes | Recorded state at the relevant boundary; see the allowed values. One of "idle", "active", "waiting", "stopped", "ended", "unknown". |
context_id |
string / null | Yes | ID of the selected Context Object. |
configuration_id |
string / null | Yes | ID of the configuration snapshot used at this boundary. |
open_calls |
array of Open Call Object | Yes | Unresolved invocation identities at this checkpoint. |
open_decisions |
array of Open Decision Object | Yes | Unresolved decision-request identities at this checkpoint. |
tasks |
array of Task State Object | Yes | Task revision selections at this checkpoint. |
requirements |
array of Requirement Object | Yes | Prerequisites for the stated capability. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "head",
"branch_id": "main",
"at_event_id": "e4",
"knowledge": "observed",
"status": "idle",
"context_id": "continue-context",
"configuration_id": "effective",
"open_calls": [],
"open_decisions": [],
"tasks": [],
"requirements": []
}
Open Call Object¶
Records a call whose outcome remains unresolved at the checkpoint; it does not authorize replay.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Open Decision Object¶
Records an unresolved decision at the checkpoint; absence of a resolution is not consent.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Task State Object¶
Selects the current revision of a recorded task at a checkpoint.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Usage Object¶
Attributes a measured or reported counter to an explicit scope, unit and provenance.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
scope |
enum | Yes | Domain or activation scope to which this declaration applies. One of "event", "turn", "execution", "session". |
scope_id |
string | Yes | Identity of the entity to which the counter applies. Minimum length: 1. |
unit |
string | Yes | Unit of the reported counter; counters with different units cannot be summed directly. Minimum length: 1. |
value |
number | Yes | Value interpreted according to the enclosing schema, dialect or counter. Minimum: 0. |
counter |
enum | Yes | Whether this value is a delta or a cumulative counter; cumulative observations MUST NOT be added as independent deltas. One of "delta", "cumulative". |
provenance |
Provenance Object | Yes | Evidence classification and source attribution. |
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"scope": "execution",
"scope_id": "execution-1",
"unit": "tokens",
"value": 120,
"counter": "delta",
"provenance": {
"mode": "reported",
"producer": "example-meter"
}
}
Event Object¶
Immutable envelope for a recorded occurrence, including identity, attribution, causality and kind-specific data.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
sequence |
integer | Yes | Unique nonnegative serialization position in this capture; not a causal or wall-clock timestamp. Minimum: 0. Maximum: 9007199254740991. |
actor_id |
string | Yes | ID of the participant responsible for the event. Minimum length: 1. |
kind |
enum | Yes | Discriminator selecting this object's interpretation. One of "message", "tool_call", "tool_result", "decision_request", "decision_resolution", "task_update", "context_checkpoint", "configuration_change", "execution_transition", "resource_change", "note", "extension". |
causes |
array of Event Reference Object | Yes | Explicit causal predecessor event references. |
provenance |
Provenance Object | Yes | Evidence classification and source attribution. |
data |
Event Data Object | Yes | Kind-specific payload; for an embedded resource this is base64-encoded bytes. |
time |
string | No | Recorded observation time; it does not define causality. Minimum length: 1. |
execution_id |
string | No | ID of the associated execution. Minimum length: 1. |
supersedes |
Event Reference Object | No | Reference to an earlier record corrected by this event; evidence remains preserved. |
extensions |
Extension Map Object | No | Namespaced extension values. |
Rules¶
See event rules. The enclosing kind selects one of the event-data objects below. Local causal edges MUST be acyclic and point to earlier serialized events. Task updates MUST omit envelope supersedes; corrections use new task revisions and previous_revision.
- When
kindis"message",datarequiresrole,parts. - When
kindis"tool_call",datarequirescall_id,tool_id,arguments,arguments_status. - When
kindis"tool_result",datarequirescall_id,result_index,terminal,outcome,parts. - When
kindis"decision_request",datarequiresrequest_id,decision_kind,prompt,options. - When
kindis"decision_resolution",datarequiresrequest_id,outcome,answer. - When
kindis"task_update",datarequirestask_id,revision,status,parts; omitsupersedes. - When
kindis"context_checkpoint",datarequirescontext_id,reason. - When
kindis"configuration_change",datarequiresconfiguration_id. - When
kindis"execution_transition",datarequiresexecution_id,status. - When
kindis"resource_change",datarequiresresource_id,operation. - When
kindis"note",datarequiresparts,category. - When
kindis"extension",datarequirestype,value,interpretation_required.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "e1",
"sequence": 0,
"actor_id": "person",
"kind": "message",
"causes": [],
"provenance": {
"mode": "synthetic",
"producer": "asif-example",
"method": "authored conformance example",
"inputs": []
},
"data": {
"role": "user",
"parts": [
{
"kind": "text",
"text": "Summarize the selected meeting notes."
}
]
}
}
Event Data Object¶
Discriminated payload selected by the enclosing Event Object's kind. Use the corresponding event data object below.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Extension Map Object¶
Carries namespaced extension values without changing the meaning of core fields.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
This is an open map. Preserve unknown values. Reuse requires support for their declared semantics; an empty map does not prove that the source had no hidden settings.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Message Data Object¶
A conversation message whose role is separate from the event actor's identity.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
role |
enum | Yes | Message role used for this input, independently of participant identity. One of "user", "assistant", "system", "developer", "tool", "unknown". |
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content parts. Order is semantically significant. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"role": "user",
"parts": [
{
"kind": "text",
"text": "Summarize the selected meeting notes."
}
]
}
Tool Call Data Object¶
One logical invocation and its known arguments. Partial arguments cannot be executed as a completed call.
Fixed fields¶
Rules¶
See tool-call progression rules. A partial or unknown invocation can gain arguments through a new event with local supersedes, retaining its call/tool/actor/execution/retry identity. Completed calls cannot be amended through this mechanism; retries use a new call ID. Selected histories must choose a single amendment chain. These are inter-event semantic checks beyond JSON Schema.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"call_id": "call-1",
"tool_id": "summarize",
"arguments": {
"resource_id": "source-csv"
},
"arguments_status": "complete"
}
Tool Result Data Object¶
One indexed result for a correlated call, including its terminal marker and outcome.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
call_id |
string | Yes | Session-scoped identity of one logical invocation. Minimum length: 1. |
result_index |
integer | Yes | Monotonically increasing result position within the call's selected history. Minimum: 0. Maximum: 9007199254740991. |
terminal |
boolean | Yes | Whether this is the final result or fragment in its declared scope. |
outcome |
enum | Yes | Recorded result or assessment outcome; unknown remains explicit. One of "success", "error", "cancelled", "unknown". |
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content parts. Order is semantically significant. |
Rules¶
- When
terminalisfalse,outcomeMUST be"unknown".
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"call_id": "call-1",
"result_index": 0,
"terminal": true,
"outcome": "success",
"parts": [
{
"kind": "resource",
"resource_id": "output-csv",
"description": "CSV with total row."
},
{
"kind": "resource",
"resource_id": "report",
"description": "Markdown report."
}
]
}
Decision Request Data Object¶
A question, approval or review request, optionally bound to a call or an exact task revision.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
request_id |
string | Yes | Session-scoped identity of the exact decision request. Minimum length: 1. |
decision_kind |
enum | Yes | Whether this request is an approval, question or plan review. One of "approval", "question", "plan_review". |
prompt |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content presented for the decision. |
options |
array of Decision Request Option Object | Yes | Selectable options, with stable IDs within this request. |
call_id |
string | No | Session-scoped identity of one logical invocation. Minimum length: 1. |
task_id |
string | No | Identity of the versioned task. Minimum length: 1. |
task_revision |
integer | No | Exact task revision to which the request applies. Minimum: 0. Maximum: 9007199254740991. |
Rules¶
- When
task_idis present,task_revisionMUST also be present. - When
task_revisionis present,task_idMUST also be present.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"request_id": "approval-1",
"decision_kind": "approval",
"prompt": [
{
"kind": "text",
"text": "Allow access to meeting-42?"
}
],
"options": [
{
"id": "allow",
"label": "Allow"
},
{
"id": "deny",
"label": "Deny"
}
],
"call_id": "call-1"
}
Decision Request Option Object¶
A selectable answer with a stable ID within its decision request.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
label |
string | Yes | Human-readable option label. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Decision Resolution Data Object¶
Records the outcome of the exact referenced request. Historical approval does not authorize a receiving runtime.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
request_id |
string | Yes | Session-scoped identity of the exact decision request. Minimum length: 1. |
outcome |
enum | Yes | Recorded result or assessment outcome; unknown remains explicit. One of "allowed", "denied", "answered", "cancelled", "expired", "unknown". |
answer |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Recorded answer content, which may be empty for non-text outcomes. |
selected_option_id |
string | No | ID of the exact selected option in the referenced request. Minimum length: 1. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"request_id": "question-1",
"outcome": "answered",
"answer": [
{
"kind": "text",
"text": "Use the attached CSV."
}
]
}
Task Update Data Object¶
A versioned task state, with optional predecessor and dependency declarations.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
task_id |
string | Yes | Session-scoped identity of the logical task. Minimum length: 1. |
revision |
integer | Yes | Revision number unique within this task identity; numbers need not be contiguous. Minimum: 0. Maximum: 9007199254740991. |
status |
enum | Yes | Recorded state at the relevant boundary; see the allowed values. One of "proposed", "pending", "in_progress", "completed", "failed", "cancelled", "superseded", "unknown". |
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content parts. Order is semantically significant. |
previous_revision |
integer | No | Exact preceding selected revision, strictly smaller than revision. An omitted predecessor event requires partial task coverage. Minimum: 0. Maximum: 9007199254740991. |
dependencies |
array of string | No | Complete declared prerequisite task IDs for this revision. Resolve to latest selected revisions at the assessed boundary. Omission is unknown; [] declares none. No implicit inheritance, execution ordering or status cascade. Items MUST be unique. |
reopen_reason |
string | No | Required nonempty explanation when a completed, failed, cancelled or superseded task becomes proposed, pending or in_progress. Minimum length: 1. |
Rules¶
See task revision and dependency semantics. Dependencies are session-scoped task IDs interpreted at the selected boundary, with no implicit scheduling or status cascade. Every target must be declared locally, selected dependency graphs must remain acyclic, and absent predecessor history requires partial task coverage. Task updates use previous_revision, never envelope supersedes. Reopening completed, failed, cancelled or superseded tasks as proposed, pending or in_progress requires reopen_reason.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"task_id": "task-1",
"revision": 1,
"status": "pending",
"parts": [
{
"kind": "text",
"text": "Summarize the attached report."
}
]
}
Context Checkpoint Data Object¶
Records the selection or replacement of a context, including a compaction boundary.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Configuration Change Data Object¶
Records a new configuration snapshot; effective use is determined by referencing contexts and executions.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
configuration_id |
string | Yes | ID of the configuration snapshot used at this boundary. Minimum length: 1. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Execution Transition Data Object¶
Records an observed execution lifecycle transition without claiming a process is still alive.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
execution_id |
string | Yes | ID of the associated execution. Minimum length: 1. |
status |
enum | Yes | Recorded state at the relevant boundary; see the allowed values. One of "running", "completed", "failed", "cancelled", "interrupted", "unknown". |
error |
JSON value | No | Captured error evidence; its contents do not establish a recovery action. |
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | No | Ordered content parts. Order is semantically significant. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"execution_id": "execution-1",
"status": "completed",
"parts": [
{
"kind": "text",
"text": "The response was recorded."
}
]
}
Resource Change Data Object¶
Records creation, modification, deletion or observation of a resource identity.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Note Data Object¶
Explanatory content with no implicit execution or authorization meaning.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
parts |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content parts. Order is semantically significant. |
category |
string | Yes | Names the explanatory note category. Minimum length: 1. |
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"category": "redaction",
"parts": [
{
"kind": "text",
"text": "A sanitized replacement is supplied."
},
{
"kind": "resource",
"resource_id": "sanitized",
"description": "Distinct replacement resource."
}
]
}
Extension Data Object¶
An event with namespaced semantics; required interpretation is also advertised in required_features.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"type": "example.annotation/1",
"value": {
"label": "reviewed"
},
"interpretation_required": false
}
Coverage Object¶
Declares the completeness or known absence of one session domain. An empty collection alone makes no completeness claim.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Loss Object¶
Discloses information omitted or changed during capture, normalization, redaction or translation.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
stage |
enum | Yes | Transformation stage; in a Git index entry, the conflict stage number. One of "capture", "normalization", "redaction", "translation". |
kind |
string | Yes | Discriminator selecting this object's interpretation. Minimum length: 1. |
scope |
enum | No | Domain or activation scope to which this declaration applies. One of "participants", "conversation", "branches", "executions", "contexts", "configuration", "tools", "decisions", "tasks", "resources", "environment", "native", "usage". |
references |
array of Loss References Object | No | Typed identities affected by this loss. |
explanation |
string | Yes | Reason for the declaration or limitation. Minimum length: 1. |
Rules¶
- Supply at least one of:
scope,references.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "context-compaction",
"stage": "normalization",
"kind": "summarization",
"scope": "contexts",
"explanation": "The compacted input loses original detail; history and original attachment remain preserved."
}
Loss References Object¶
Identifies an entity affected by a loss using its entity type and ID.
Fixed fields¶
Rules¶
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Stream Segment Object¶
Selects an exact byte slice of a captured resource and its position in a logical stream.
Fixed fields¶
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
Stream Object¶
Binds incremental argument or text-result bytes to a core event. A complete stream must agree with that event's assembled value.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
kind |
enum | Yes | Discriminator selecting this object's interpretation. One of "tool_arguments", "tool_result_text". |
event_id |
string | Yes | Event identity, resolved locally unless an external capture is explicit. Minimum length: 1. |
call_id |
string | Yes | Session-scoped identity of one logical invocation. Minimum length: 1. |
result_index |
integer | No | Monotonically increasing result position within the call's selected history. Minimum: 0. Maximum: 9007199254740991. |
status |
enum | Yes | Recorded state at the relevant boundary; see the allowed values. One of "partial", "complete". |
segments |
array of Stream Segment Object | Yes | Ordered byte-fragment declarations; gaps preserve partial status. |
Rules¶
See stream assembly rules. tool_result_text requires result_index. Complete argument streams MUST decode as JSON equal to the bound call arguments; complete result streams MUST equal the bound text result.
- When
kindis"tool_result_text", requireresult_index.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"id": "stream-1",
"kind": "tool_arguments",
"event_id": "e-call",
"call_id": "call-read",
"status": "complete",
"segments": [
{
"index": 0,
"resource_id": "argument-fragment",
"offset": 0,
"length": 19,
"terminal": true
}
]
}
External Binding Object¶
Binds an invocation or decision request from an earlier capture to its immutable source boundary and descriptor.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
kind |
enum | Yes | Discriminator selecting this object's interpretation. One of "call", "request". |
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
source |
External Binding Source Object | Yes | Source identity and boundary or report binding. |
descriptor |
External Binding Descriptor Object | Yes | Call or request declaration selected by the binding kind. |
Rules¶
See external binding rules. call selects the External Call Descriptor; request selects the External Request Descriptor. Bindings do not synthesize events or authorize replay.
- When
kindis"call",descriptorrequirestool_id,arguments,arguments_status. - When
kindis"request",descriptorrequiresdecision_kind,prompt,options.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
{
"kind": "call",
"id": "call-previous",
"source": {
"session_id": "session-parent",
"capture_id": "capture-parent",
"event_id": "e2"
},
"descriptor": {
"tool_id": "tool-read",
"arguments": {
"path": "notes.md"
},
"arguments_status": "complete"
}
}
External decision request¶
A later capture may contain the answer without including the original request event.
{
"kind": "request",
"id": "question-earlier",
"source": {
"session_id": "session-1",
"capture_id": "capture-earlier",
"event_id": "e-question"
},
"descriptor": {
"decision_kind": "question",
"prompt": [
{
"kind": "text",
"text": "Which report should I summarize?"
}
],
"options": [
{
"id": "annual",
"label": "Annual report"
}
]
}
}
External Binding Source Object¶
Names the exact source event of an external call or request; no external data is fetched implicitly.
Fixed fields¶
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
External Binding Descriptor Object¶
Discriminated descriptor selected by the enclosing external binding's kind.
Fixed fields¶
No fixed fields. This object retains fields defined by its declared dialect or enclosing discriminator.
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
External Call Descriptor Object¶
Preserves the tool and argument contract of an invocation outside the included event history.
Fixed fields¶
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
External Request Descriptor Object¶
Preserves the kind, prompt and options of a decision request outside the included event history.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
decision_kind |
enum | Yes | Whether this request is an approval, question or plan review. One of "approval", "question", "plan_review". |
prompt |
array of Text Part Object / Resource Part Object / Structured Part Object / Opaque Part Object | Yes | Ordered content presented for the decision. |
options |
array of External Request Option Object | Yes | Selectable options, with stable IDs within this request. |
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.
Example¶
External Request Option Object¶
One selectable option of an externally bound decision request.
Fixed fields¶
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Opaque, case-sensitive identity within the object's declared scope. Minimum length: 1. |
label |
string | Yes | Human-readable option label. |
Rules¶
See session semantics.
Additional properties are permitted and MUST be preserved when relaying supported JSON values. They do not acquire execution semantics without a declared feature or dialect.