Skip to content

feat: integrate the classification and enrichment packages - #49

Merged
kamescg merged 36 commits into
update/v1.1.0-alphafrom
feat/atom-runtime-packages
Oct 27, 2026
Merged

kamescg merged 36 commits into
update/v1.1.0-alphafrom
feat/atom-runtime-packages

Conversation

@kamescg

@kamescg kamescg commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Integration of the atom runtime train into update/v1.1.0-alpha: the three atom runtime workspace packages lifted from Core (held, not published), the Effect-free @0xintuition/pipeline-runtime, the providerLocalHandles ladder policy in @0xintuition/iid-ladder, the credential redaction fix, and the pre-publication hygiene pass across the 16 established packages. This is the reviewed state of packages #45, #46 and #47 (each merged into feat/atom-runtime-packages); its tree is byte-identical to the head that passed the full gate.

Tracks ENG-17069, ENG-17072, ENG-17073, ENG-17074, ENG-17075 (project P-ENG-877).

Package impact

Package Change
pipeline-runtime (new, 0.1.0-alpha.0) Promise-based concurrency, circuit breaking, cancellation, provider observation and host policies copied from the application lineage; no Effect dependency
iid-ladder (0.1.0-alpha.1) providerLocalHandles: 'reject' | 'mint' and createLadder; default unchanged, 532 known-answer vectors from the app
atom-parser, atom-classification, atom-enrichment (0.1.0-alpha.0, held) Core-lineage workspace packages; removed from release-plan.json and documented as held until the application-lineage rebuild publishes 0.1.0-alpha.1. atom-enrichment carries ProviderHttpError and engine-level redactProviderDiagnostic
cli (0.1.0-alpha.0) Library entry externalizes viem and workspace deps; pure envelope builders moved to sdk/actions with deprecated aliases
sdk (4.0.0) Root narrowed to SDK APIs plus the deterministic id helpers (calculateAtomId, calculateTripleId, calculateCounterTripleId, calculateOAuthAtomId); ./protocol escape hatch kept
protocol (4.0.0) Bytecode only on ./contracts; curve shims and curves dependency removed; explicit return types (dist 2.79 MB → 460 KB)
react (0.1.0-alpha.1) All hooks annotated (hooks d.ts 1.44 MB → 49 KB); protocol and deployments as peers
deployments, curves, periphery (0.1.0-alpha.1) Their 0.1.0-alpha.0 is already on the registry; pins cascaded
Shared tooling and docs No declaration maps in tarballs; caret-on-stable / exact-on-prerelease range policy enforced by registry:check; README and docs import checker; docs/release.md records registry dist-tag state, held packages and the live preflight requirement

Identity impact

Identity impact: none — existing golden bytes unchanged. The ladder default remains 'reject'; conformance is 1281/0.

Fixture impact

Adds packages/iid-ladder/__tests__/fixtures/provider-local-handles.json (provenance: app 7fc0c82b4). Existing conformance fixtures unchanged.

Contract artifact

ABI and bytecode contents unchanged; release:check verifies the registry tarball SHA-512 for @0xintuition/contracts-v2@1.1.0-alpha.1 and @0xintuition/contracts-v2-periphery@1.1.0-alpha.0 and byte-identical generated modules. PR #48 (already on the base) removed the same two periphery FeeProxy copies this branch removes; the merge is clean.

Validation

On the identical tree (7bc49d7), every step passed: frozen install, build, typecheck, test (32/32 tasks), check, registry check (20 packages), registry and release-registry tests, supply-chain guard and its tests, artifacts check and tests, conformance, schema validation, generated-output checks, creation-profile check, protocol artifact sync test, pack dry-run, clean-room tarball smoke (Node, Bun, TypeScript), and the live registry preflight (bun run release:registry). bun run release:check passed on the merged integration head.

Rollout notes

🤖 Generated with Claude Code

kamescg and others added 30 commits October 21, 2026 17:17
Preserve parser entrypoints as compiled ESM with declarations. Enforce UTF-8 input limits, reject private IPv6 literals, keep timeouts active through body reads, and release discarded responses. Carry parser parity fixtures and regressions into the public package.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Preserve the runtime and its 28 entrypoints, move the private plugin example, and run all existing colocated plugin tests. Keep application configuration explicit and document the canonical specification boundary.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…pers

Ship typed ESM exports for enrichment, provider adapters, extraction, and configurable caches. Preserve provider fixtures and behavior; make the public conformance helper executable under Node and Bun and run both suites.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add three alpha runtime packages in dependency order, update the workspace lockfile, and exercise every runtime export plus strict consumer declarations from clean-room tarballs under Node and Bun.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Record runtime ownership, parser transport limits, publication ordering, and a verified Bun workspace-to-registry lockfile transition without regenerating the lock or committing temporary overrides.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Port provider utilities and Promise execution without Effect; preserve app provider-local identities behind an opt-in ladder policy with pinned oracle vectors.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Decode file URLs in release tooling, cover registry CLI execution in spaced and symlinked paths, and smoke-test pipeline subpaths and the bound ladder policy on Node and Bun.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The copied app tests require promtool when CI is set. Install the Ubuntu Prometheus tools before running the workspace tests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Decode file URLs before resolving filesystem paths so uncached builds and release checks run from worktrees whose paths contain spaces. Validated with bun run build.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…endencies ENG-17072

Move pure action envelope builders and schema into SDK actions, retain deprecated CLI aliases, externalize runtime dependencies in the library bundle, and isolate test helpers. Node 20 minimum; Node 24 tested. The executable only exposes encoder commands.

Validation: full workspace build; CLI 116 tests; SDK unit tests. npm pack --dry-run --json (file count / packed bytes / unpacked bytes):
cli: 658 / 213316 / 2464592 -> 656 / 150446 / 1992192
sdk: 64 / 62273 / 268882 -> 101 / 83438 / 395768

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Keep protocol root and internal ABI imports free of bytecode; preserve bytecode on ./contracts. Remove curve math compatibility shims and dependency, document 4.0.0 migration, and give exported read/write/event helpers named return types. SDK OAuth wallet imports canonical bytecode directly.

Validation: workspace build, 216 protocol unit tests. npm pack --dry-run --json: 780 files / 186631 packed bytes / 2787979 unpacked bytes -> 768 files / 99184 packed bytes / 712972 unpacked bytes. Dist: 2732436 -> 654717 bytes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Disable declaration maps in shared TypeScript defaults and remove overrides in the 16 established packages. Smoke checks reject dangling declaration maps for this scope; atom runtime package overrides remain untouched.

Validation: workspace build; npm pack --dry-run --json confirms zero declaration maps for all 16 established packages. Before -> after (files; packed bytes; unpacked bytes):
predicates: 843 -> 563; 135882 -> 119956; 1330547 -> 1199886
schema-org: 2817 -> 1879; 693726 -> 642589; 5743151 -> 5346599
iid-registry: 24 -> 17; 11131 -> 9667; 34786 -> 31150
protocol: 768 -> 513; 99184 -> 78005; 712972 -> 549545
cli: 656 -> 331; 150446 -> 131390; 1992192 -> 1818604
periphery: 201 -> 135; 43832 -> 37883; 278733 -> 246638
iid: 42 -> 29; 28314 -> 25551; 92933 -> 83551
ids: 36 -> 25; 13639 -> 9004; 45962 -> 39031
primitives: 27 -> 19; 28431 -> 25280; 119358 -> 103974
iid-spec: 52 -> 52; 85503 -> 85503; 278403 -> 278403
sdk: 101 -> 70; 83451 -> 71949; 395820 -> 331015
classifications: 264 -> 177; 126245 -> 118598; 1391583 -> 1339414
iid-ladder: 24 -> 17; 29334 -> 27742; 88438 -> 83445
react: 48 -> 33; 90249 -> 85215; 1595033 -> 1528914
deployments: 162 -> 109; 224955 -> 220485; 1972922 -> 1931873
curves: 33 -> 23; 31601 -> 28020; 128733 -> 112850

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ENG-17074

Correct predicate and ID imports in shipped SDK migration guidance. Add a TypeScript-aware import checker covering the root README, every package README, and recursively every package docs Markdown file, including named type exports and export-map wildcards. No existing tracked README import checker was present. Validation: node scripts/check-doc-imports.mjs.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… ENG-17074

SDK 4.0.0 exports its own API and selected ID helpers and input types. Remove wholesale protocol and ID exports, migrate shipped examples to sdk/protocol, and assert the boundary in tarball smoke tests. Validation: workspace build and docs import checks.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Periphery already re-exports canonical artifacts from deployments; stop compiling and shipping unreferenced copies.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add explicit named query return types while preserving wagmi query state and refetch APIs. Every exported hook is annotated. Document all hook groups and peer requirements; move protocol/deployments to peers with dev copies for tests. React 18+ remains supported and React 19 is tested; react-dom is an application renderer dependency.

Validation: React build and 99 tests. npm pack --dry-run --json: 33 files / 85215 packed / 1528914 unpacked bytes -> 33 / 25148 / 133060. Dist: 1522408 -> 124280 bytes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Merge duplicate dynamic-fee and gross-up sections, retain bounded solver details, and list all root exports by source module. Validation: documentation imports resolve against dist.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Use JSON import attributes and provide a readFileSync/createRequire alternative for Node environments without import attributes. Validation: documentation imports resolve against package exports.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Remove the unnecessary direct viem install from iid-ladder guidance, normalize Install/License headings, and explain classifications inherits its viem peer requirement via iid.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…17074

List all primitive subpaths, all 15 schema-org root exports, and the exact case-sensitive generated type subpath contract. Validation: documentation import checker.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Add the three atom runtime ownership rows using the existing migration documentation. Clarify deprecated CLI plan aliases. The duplicate SDK/CLI layer row was removed in ENG-17072; atom runtime package files are untouched.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Choose 0.1.0-alpha.0 for deployments, curves, periphery, and CLI; update all exact dependent pins and the release plan. Document the train policy. Registry metadata derives versions from manifests, avoiding a second hard-coded version list. Validation: bun install and registry:check.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Use stable caret ranges and retain exact prerelease pins in runtime, peer, and dev dependencies. Enforce the policy centrally and in packed manifests; release preflight checks the recorded stable baseline. Document when dependent releases are necessary. Include docs import validation in tarball smoke. Validation: registry:check, registry:test, release:registry:test.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Keep the shared normalizer because existing sources and generators still use extensionless imports. Document the preferred .js convention and the migration prerequisite for removal.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Decode the IID-spec fixture directory URL before reading files. Reconcile remaining release prose with the selected stable-caret and exact-prerelease policy. The excluded atom runtime tests contain similar URL-path assumptions; final CI parity is run from a clean checkout without spaces, without editing those packages.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Fresh-checkout validation found a remaining curves-only type import in getConfig and an SDK test still using root bytecode. Derive the config result from the canonical ABI and update the test to deployments/bytecode. Annotate the generic event parser and receipt/context helpers so the union event declaration does not inline the complete ABI.

Validation: workspace build and 116 SDK tests. Protocol baseline -> current npm pack --dry-run --json: 780 -> 513 files; 186631 -> 73478 packed bytes; 2787979 -> 460455 unpacked bytes. Dist 2732436 -> 402112 bytes; current measurement also includes ENG-17074 declaration-map removal.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…-17069

Add redactProviderDiagnostic and apply it in createPluginError so every
errors[] entry the engine emits is credential-free before any consumer
persists or returns it. The helper strips query strings, fragments and
userinfo from URLs (verbatim or percent-encoded), redacts credential
parameters and headers (plain, quoted, JSON-escaped), bare Bearer/Basic
tokens, and scheme-less userinfo. Mirrors the Core hotfix so both lineages
stay identical.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…s, make promtool optional (ENG-17075)

Stop emitting .d.ts.map from pipeline-runtime so the repo-wide tarball smoke
check (no dangling declaration maps) passes once both prerequisite branches
merge. Reword the metrics contract comments without references to private
repositories or internal worker names. Remove the unpinned apt install from
CI and let the promtool-backed tests skip wherever promtool is absent; the
pure exposition checks still run everywhere. Give createLadder a named
Ladder return type, tighten the README wording on minted handles, and list
the app modules that need an Effect adapter against this package.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
kamescg and others added 6 commits October 22, 2026 12:33
…ges ENG-17074

deployments, curves and periphery already have 0.1.0-alpha.0 on the registry, so
the candidate moves to 0.1.0-alpha.1 with every exact pin, the release plan and
the release notes following; cli stays 0.1.0-alpha.0 because it has never been
published. Record the registry dist-tag state and the release-owner decision on
`latest`, and hold the Core-lineage atom packages out of the plan until the
application-lineage rebuild lands.

Also: envelope metadata reports the SDK as its source package now that the SDK
owns the builders; the triple-id helpers return to the SDK root beside
calculateAtomId (the app imports them there); document the getConfig return type
change in the protocol migration notes and the envelope builders in the SDK README.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
# Conflicts:
#	docs/release.md
#	packages/iid-ladder/README.md
#	release-plan.json
#	scripts/package-registry.mjs
#	scripts/package-registry.test.mjs
…sts ENG-17074

Bun does not rewrite workspace dependency range strings on an incremental
install, so the cli, periphery and sdk entries still carried the old
0.1.0 and 4.0.0 ranges. Patch exactly those strings to the manifest values;
frozen and incremental installs both report no changes.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
fix(providers): redact credentials from HTTP errors (ENG-17069)
…der-policy

feat: add Effect-free pipeline runtime and provider-local ladder policy (ENG-17075)
chore: prepare packages for publication (ENG-17072, ENG-17073, ENG-17074)
@kamescg
kamescg merged commit e21b5ad into update/v1.1.0-alpha Oct 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant