Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------- |
Expand Down
57 changes: 33 additions & 24 deletions docs/VENDORING.md
Original file line number Diff line number Diff line change
@@ -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.

Expand All @@ -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

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
Loading