API Freeze Inventory¶
Status: v2 module-path audit for 2.0.0; 2.1.0 adds no pkg/...
declarations. The exported surface is functionally identical to 1.7.0. The
1.0.0 surface remains frozen; new declarations are additive.
Audit Result¶
- Exported declarations: 699
- Exported declarations without a doc comment: 0
- Scope:
pkg/...; examples, tests, unexported receiver methods, and testdata are excluded. - The audit covers exported functions, methods on exported types, types, constants, and variables.
The pkg/agent root keeps type aliases for the capability packages, so
existing agent.* imports remain source-compatible while implementation
lives in capability subpackages.
Freeze Scope¶
The 1.0.0 compatibility promise covers:
- exported interfaces and their method sets
- exported struct field names and JSON tags
- exported function signatures
- exported constants and typed string values
- error sentinels and typed error codes
- wire formats documented as contracts (plugin Manifest v1 and host envelopes)
Not covered:
- concrete adapters, product wiring, and Janus/Vulcan internals
- unexported helpers
- examples
- fields explicitly documented as experimental
Package Inventory¶
| Package | Stable surface |
|---|---|
pkg/agent |
Agent, Options, Profile, New, compatibility aliases for capability types |
pkg/agent/context |
budgets, compaction, summarization, offload, AGENTS.md |
pkg/agent/delegation |
async subagent manager and modes |
pkg/agent/evaluation |
rubrics and evaluators |
pkg/agent/hitl |
interrupt actions, decisions, handlers |
pkg/agent/middleware |
call limits, fallback, PII, structured output, tool selection, context editing, todos |
pkg/agent/stream |
typed stream parts |
pkg/agent/types |
shared run-state contracts |
pkg/checkpoint |
Checkpoint, Store, recovery types |
pkg/event |
Event, Sink, multi/filter/publisher sinks |
pkg/flow |
Runnable, Chain, Parallel |
pkg/formatter |
Formatter, detection/execution registry |
pkg/httpclient |
retry-capable client and auth/tracing options |
pkg/memory |
Store, Record, Frame, context assembler |
pkg/model |
Model, Provider, messages, tool specs, response format, CacheHint, ProviderProfile |
pkg/plugin |
Manifest v1, contract kinds, lifecycle, registry, scope, limits, telemetry |
pkg/plugin/bridge |
host-to-provider adapters and codecs |
pkg/plugin/host/process |
process host and platform supervisors |
pkg/plugin/host/wasm |
WASM host and guest ABI |
pkg/plugin/tck |
lifecycle, registry, and host conformance checks |
pkg/policy |
Hook, Decision, PathChecker, path grants |
pkg/prompt |
Template, ChatTemplate |
pkg/retriever |
Document, Retriever |
pkg/sandbox |
Sandbox, Spec, Result, optional Interpreter |
pkg/scheduler |
schedule definitions and engine |
pkg/tool |
Tool, Registry, middleware, retry, gateway |
pkg/tool/jsonschema |
JSON Schema validator |
pkg/vfs |
Backend, entries, matches, optional executor |
pkg/vfs/localfs |
confined local-directory backend |
pkg/vfs/vfstools |
fs.* tools backed by a vfs backend |
pkg/toolcall |
tool-call parsing and markup stripping |
Deprecated Aliases¶
The following paths were deprecated in 0.16.0:
| Deprecated path | Canonical path |
|---|---|
pkg/output |
pkg/toolcall |
pkg/format |
pkg/formatter |
pkg/tool/schema |
pkg/tool/jsonschema |
PRAXOVELA migrated to the canonical paths in 0.16.0. The aliases are removed
in 1.0.0; the release note and migration line live in
docs/05-compatibility.md.
Compatibility Rules¶
- Additive exported changes are allowed in minor releases.
- Removing or changing an exported signature/field requires a major release
after
1.0.0. - Interface additions require a major release unless the interface is documented as extensible.
- JSON tags on exported structs are part of the contract.
- Typed constant string values are part of the contract.
Resolved Decisions¶
toolcall.ToolCallkeepsOperation,Resource,Risk,Reason, andIdempotencyKeyin 1.0 as optional pass-through product metadata. The parser does not interpret them; removing them would break PRAXOVELA's product API. Revisit in 2.0.checkpoint.Messagedeliberately stays a dependency-free serialization shape rather than aliasingmodel.Message.tool.Gatewayis the seam for product-owned external gateways such as Janus.pkg/plugin/bridgeis the seam forplugin.Hostimplementations. Both package docs state the distinction.- The deprecated aliases are removed in
1.0.0; PRAXOVELA already migrated in0.16.0.
1.0 Gate Checklist¶
- [x] exported API inventory
- [x] every exported declaration has a doc comment
- [x] open questions resolved and documented
- [x] API diff review against
0.16.0 - [x] compatibility and migration notes published
- [x]
0.16.0 -> 1.0.0diff reviewed: only the three deprecated alias packages are removed; no other exported changes - [x] framework threat model and security hardening (independent review pending)
- [x] external integrator example
- [x] SBOM/checksum/release-check tooling verified locally
- [x] Linux/Windows/macOS CI and race observed green (2026-10-18)
- [x] release published with SBOM/checksums (annotated tag; GPG signing unavailable)