feat(chord): Chord v2 slice 8, registries and host.root

Registries: shared tokens (defineRegistry), one provider per host (host.serve(R, { compose, accepts })),
contributions from facets and host-lifetime objects, plain values or followed Chord watchables, a table
sorted by plugin, lazy compose in the batch that changed the table, failures left out and reported with
the last good value kept; self.registry as a declared dependency, host.registry outside objects, older
readers mapped by accepts[old].value; keyedEntries and orderedEntries. Native sources: self.writable,
registry values and ref.state. self.retryOn wakes failed objects on registry values. host.root gives code
outside objects a call scope sealed at settle, abort and host.close.

Durable: registryReader(value, context); a Session close ends synchronous observers failed
("session closed"), watches still end ended.
This commit is contained in:
Mario Zechner 2026-10-28 21:33:59 +00:00
parent edab3efa83
commit 6eb99ad65b
66 changed files with 5036 additions and 196 deletions

View file

@ -67,8 +67,9 @@ const BUDGETS = {
// The Harness's request identity reaches pi-ai's utils/identity.ts and its version constant. Partial commits
// parse streamed tool-call arguments with pi-ai's utils/streaming-json.ts (and its json-parse.ts) to append what
// argument strings grew by (harness/partial-changes.ts). Chord's watches fold pending ops with Delta's
// pending queue (delta/pending.ts).
maxFiles: 77,
// pending queue (delta/pending.ts). `registryReader` (harness/registry-reader.ts) reads a Chord v2 registry
// value through type-only imports.
maxFiles: 78,
forbid: [
"packages/ai/src/index.ts",
"packages/ai/src/utils/typebox-helpers.ts",