diff --git a/AGENTS.md b/AGENTS.md index 167b93ae..a7f1b7e4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -75,7 +75,7 @@ It authenticates over HTTPS via `gh`'s credential helper and rewrites the SSH re ## Building on Interchange -Interchange is the standard library for this repo, consumed as published `@intx/*` npm packages pinned at 0.3.0, except `@intx/inference`, `@intx/types`, and `@intx/storage-isogit`, which resolve to vendored source under `vendor/intx-*` at upstream head (coupled by the reactor's approval-suspend primitive; `@intx/inference` also carries a local patch set). See `docs/VENDORING.md` for what's vendored, from which upstream commit, and the re-sync procedure. We never modify or push to the upstream interchange repository. Before writing any new infrastructure — plugins, middleware, utilities, state management, logging, authz, inference, tools — check these packages. +Interchange is the standard library for this repo. Every `@intx/*` package this repo imports resolves to vendored source under `vendor/intx-*` at a single pinned upstream commit — the sole exception is `@intx/tools-lsp`, which remains on published npm (provenance, patch ledgers, and the re-sync procedure: `docs/VENDORING.md`). We never modify or push to the upstream interchange repository. Before writing any new infrastructure — plugins, middleware, utilities, state management, logging, authz, inference, tools — check these packages. | Package | Covers | | ---------------------- | --------------------------------------------------------------------------------------------------------------------- | diff --git a/docs/VENDORING.md b/docs/VENDORING.md index f6041f60..682ae891 100644 --- a/docs/VENDORING.md +++ b/docs/VENDORING.md @@ -1,8 +1,9 @@ # Vendored Interchange packages -Corbits Code consumes most of Interchange as published `@intx/*` npm -packages. A few packages are instead vendored as source, directly from the -upstream Interchange repository, under `vendor/`. This document is the +Corbits Code consumes Interchange by vendoring every `@intx/*` package it +imports as source, directly from the upstream Interchange repository, under +`vendor/` at a single pinned upstream commit. The sole exception is +`@intx/tools-lsp`, which remains on published npm. This document is the authoritative record of what is vendored, from which upstream commit, and whether it carries local patches. @@ -21,18 +22,19 @@ points straight at `./src/*.ts` files rather than a `dist/` build. ## What's vendored -| Package | Vendor path | License | Synced from upstream commit | Retrieved | Local patches | -| ---------------------- | ----------------------------- | ------------- | ------------------------------------------ | ---------- | -------------------------------------------- | -| `@intx/inference` | `vendor/intx-inference/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | Yes — see `vendor/intx-inference/PATCHES.md` | -| `@intx/types` | `vendor/intx-types/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/storage-isogit` | `vendor/intx-storage-isogit/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/agent` | `vendor/intx-agent/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/authz` | `vendor/intx-authz/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/log` | `vendor/intx-log/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/tools-posix` | `vendor/intx-tools-posix/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/mailbox` | `vendor/intx-mailbox/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/harness` | `vendor/intx-harness/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | -| `@intx/mime` | `vendor/intx-mime/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| Package | Vendor path | License | Synced from upstream commit | Retrieved | Local patches | +| -------------------------------------------------- | ------------------------------------- | ------------- | ------------------------------------------ | ---------- | -------------------------------------------- | +| `@intx/inference` | `vendor/intx-inference/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | Yes — see `vendor/intx-inference/PATCHES.md` | +| `@intx/types` | `vendor/intx-types/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/storage-isogit` | `vendor/intx-storage-isogit/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/agent` | `vendor/intx-agent/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/authz` | `vendor/intx-authz/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/log` | `vendor/intx-log/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/tools-posix` | `vendor/intx-tools-posix/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/mailbox` | `vendor/intx-mailbox/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/harness` | `vendor/intx-harness/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/mime` | `vendor/intx-mime/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | +| `@intx/workflow-host` (partial — `adapters/` only) | `vendor/intx-workflow-host/adapters/` | LGPL-2.1-only | `0205b07b64d03f0fec2e4be3593c764070a9ba8a` | 2026-09-07 | None — verbatim | ## Provenance, ownership, and kill dates @@ -185,9 +187,13 @@ those packages now resolves to the single root instance. As of this sync, ## Patched vs. verbatim -`@intx/types` and `@intx/storage-isogit` are verbatim copies of upstream — -no modifications. A diff against any later upstream checkout at the same -paths will show 100% upstream-authored lines. +Of the eleven vendored paths, exactly one carries local patches: +`@intx/inference` — every divergence is a real fix not yet upstream, listed +one-per-patch in `vendor/intx-inference/PATCHES.md`. The other ten paths +(nine whole packages plus the partial `vendor/intx-workflow-host/adapters/` +tree) are verbatim copies of upstream — no modifications. A diff against a +pristine upstream checkout at the same commit and paths will show 100% +upstream-authored lines. ## Notable upstream shape changes carried by the 2026-08-22 sync @@ -238,12 +244,15 @@ does not resolve to a ledger heading, or if a ledger heading has no marker. 1. In the read-only upstream clone, confirm the commit to sync to and note its hash for this document's table. -2. For a **verbatim** package (`@intx/types`, `@intx/storage-isogit`): - copy `src/`, `README.md` over the vendored directory's `src/`, - `README.md` (leave `package.json` and `LICENSE` as they are unless the - package's own `package.json` exports or dependencies changed upstream — - diff the two `package.json` files by hand). Run `bun install`, - `bun run typecheck`, `bun run build`, `bun run test`. +2. For a **verbatim** package, copy `src/`, `README.md` over the vendored + directory's `src/`, `README.md` (leave `package.json` and `LICENSE` as + they are unless the package's own `package.json` exports or dependencies + changed upstream — diff the two `package.json` files by hand; the + partial `vendor/intx-workflow-host/adapters/` tree has no `package.json` + of its own, so just re-copy its two vendored files, + `adapters/substrate-mailbox-store.ts` and + `adapters/substrate-mailbox-store.test.ts`). Run + `bun install`, `bun run typecheck`, `bun run build`, `bun run test`. 3. For a **patched** package (`@intx/inference`): before overwriting anything, run `bin/vendor-patch-diff` (optionally `--upstream /path/to/interchange`) to re-derive the exact local