* refactor(agent-core-v2): replace defineOp/Model with Event2 dispatch and replayable states
- replace defineOp/Op/OpDescriptor/toEvent and defineModel/defineCheckpointedModel with Event2 subclasses: durable classes declare static durable + schema, serialize() keeps the wire record shape byte-frozen, transient classes stay off the journal
- define states via defineState(...).replayable(...).on(Event2, fold): immer produceWithPatches folds with atomic prepare/commit, .undoable() trait drives prompt-submit checkpoints and context.undo, ephemeral kv keys keep imperative set
- degrade IWireService to a journal adapter; the agent event dispatcher owns the pipeline (fold -> set -> appendRecord -> publish) and silent restore
- align downstream event surfaces: kap-server WS envelope timestamp from event.time, klient event schemas gain time, node-sdk/acp-server/print wiring updated
- rewrite gen-wire-manifest/gen-state-manifest for the unified registry and replace the op-uniqueness lint with event-uniqueness
* fix(ci): repair Event2 prompt and media projections
- restore prompt admission and session media materialization
- align transcript, WS, SDK, and replayable media state projections
- update affected tests and generated state manifest
* fix(ci): update prompt event and projection expectations
- update snapshots for the durable prompt.accepted event
- normalize prompt.steered media in transcript projections
* feat(agent-core-v2): add generated config section manifest
- add scripts/gen-config-manifest.mts: drains the live
registerConfigSection / registerConfigOverlay contributions and renders
docs/config-manifest.toml in the on-disk config.toml shape (owner,
scope, registered defaults, env bindings, schema fields)
- add a gen:config-manifest package script (--check mode included) and a
freshness test that rebuilds the manifest and compares byte-for-byte
- point the agent-core-dev config skill and the package AGENTS.md at the
generated manifest instead of the stale hand-maintained ownership map
* feat(agent-core-v2): add generated wire-protocol manifest
- add scripts/gen-wire-manifest.mts to generate docs/wire-manifest.d.ts
from defineOp registrations (payload interfaces, persist policy,
toEvent, cross-reducers) plus a WirePayloadMap
- extract shared JSON Schema helpers from gen-config-manifest.mts into
scripts/lib/jsonSchema.mts
- add gen:wire-manifest script and wireManifest.test.ts freshness check
- document the manifest in packages/agent-core-v2/AGENTS.md
* fix(agent-core-v2): keep array-of-tables manifest sections fully commented
A bare `[hooks]` header parses as a plain table, which array sections
reject on load; emit only the commented `[[hooks]]` shape so the
manifest matches the on-disk config.toml shape it documents.
Addresses a Codex review comment on PR #2086.