diff --git a/.diffex/extensions/import-repro.ts b/.diffex/extensions/import-repro.ts index 5a9deb908..67f01511e 100644 --- a/.diffex/extensions/import-repro.ts +++ b/.diffex/extensions/import-repro.ts @@ -18,7 +18,7 @@ import { Buffer } from "node:buffer"; import { existsSync, readFileSync, writeFileSync } from "node:fs"; import { basename, isAbsolute, join, resolve } from "node:path"; -import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionCommandContext } from "@diffexai/diffex"; const GIST_ID_RE = /^[0-9a-fA-F]{20,}$/; const GIST_URL_RE = /^https:\/\/gist\.github\.com\/(?:[^/]+\/)?([0-9a-fA-F]{20,})(?:[/#?].*)?$/; diff --git a/.diffex/extensions/prompt-url-widget.ts b/.diffex/extensions/prompt-url-widget.ts index 0fb462138..e629fe2cb 100644 --- a/.diffex/extensions/prompt-url-widget.ts +++ b/.diffex/extensions/prompt-url-widget.ts @@ -1,8 +1,8 @@ import { readFile } from "node:fs/promises"; import { homedir } from "node:os"; import { resolve } from "node:path"; -import { DynamicBorder, type ExtensionAPI, type ExtensionContext } from "@earendil-works/diffex-coding-agent"; -import { Container, hyperlink, Text } from "@earendil-works/diffex-tui"; +import { DynamicBorder, type ExtensionAPI, type ExtensionContext } from "@diffexai/diffex"; +import { Container, hyperlink, Text } from "@diffexai/diffex-tui"; const PR_PROMPT_PATTERN = /^\s*You are given one or more GitHub PR URLs:\s*(\S+)/im; const ISSUE_PROMPT_PATTERN = /^\s*Analyze GitHub issue\(s\):\s*(\S+)/im; diff --git a/.diffex/extensions/redraws.ts b/.diffex/extensions/redraws.ts index fb1eec2ed..f24a85693 100644 --- a/.diffex/extensions/redraws.ts +++ b/.diffex/extensions/redraws.ts @@ -4,8 +4,8 @@ * Exposes /tui to show TUI redraw stats. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { Text } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { Text } from "@diffexai/diffex-tui"; export default function (pi: ExtensionAPI) { pi.registerCommand("tui", { diff --git a/.diffex/prompts/cl.md b/.diffex/prompts/cl.md index 592d2d67f..9afd7b8d5 100644 --- a/.diffex/prompts/cl.md +++ b/.diffex/prompts/cl.md @@ -50,5 +50,5 @@ Sections (in order): - `### Removed` - Removed features Attribution: -- Internal: `Fixed foo ([#123](https://github.com/earendil-works/pi-mono/issues/123))` -- External: `Added bar ([#456](https://github.com/earendil-works/pi-mono/pull/456) by [@user](https://github.com/user))` +- Internal: `Fixed foo ([#123](https://github.com/diffexai/diffex/issues/123))` +- External: `Added bar ([#456](https://github.com/diffexai/diffex/pull/456) by [@user](https://github.com/user))` diff --git a/.github/workflows/runtime-image.yml b/.github/workflows/runtime-image.yml index 1e76b4d66..02823b44e 100644 --- a/.github/workflows/runtime-image.yml +++ b/.github/workflows/runtime-image.yml @@ -32,6 +32,8 @@ concurrency: jobs: build: + # Publication is paused until the runtime image and deployment consumers are validated. + if: ${{ false }} runs-on: ubuntu-latest permissions: contents: read diff --git a/RELEASING.md b/RELEASING.md index 5d4af6ee7..9cf084080 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -7,7 +7,7 @@ The release tag also builds binaries, stages the GitHub release, announces the v - Use a clean `main` branch with all intended changes merged. - Confirm GitHub Actions can start jobs and the repository billing or spending limit is not blocking runners. -- Confirm the `@earendil-works` npm organization exists and your npm account has package publishing permission with account-level two-factor authentication enabled. +- Confirm the `@diffexai` npm organization exists and your npm account has package publishing permission with account-level two-factor authentication enabled. - Use npm 11.15.0 or newer when configuring trusted publishers. - Confirm every public package has repository metadata pointing to `diffexai/diffex`. @@ -16,7 +16,7 @@ The release tag also builds binaries, stages the GitHub release, announces the v npm requires a package to exist before a trusted publisher can be configured. Use this bootstrap process only once, before the first normal release. -1. Sign in with an npm account that can publish public packages under `@earendil-works`. +1. Sign in with an npm account that can publish public packages under `@diffexai`. ```bash npm login @@ -49,7 +49,7 @@ Use this bootstrap process only once, before the first normal release. 5. Verify each package has the expected trusted publisher. ```bash - npm trust list @earendil-works/diffex-coding-agent + npm trust list @diffexai/diffex ``` 6. Restrict traditional token publishing after trusted publishing is verified. diff --git a/docs/cloud-runtime.md b/docs/cloud-runtime.md index 99dd4f07a..5c03552e3 100644 --- a/docs/cloud-runtime.md +++ b/docs/cloud-runtime.md @@ -5,8 +5,8 @@ The hosted Diffex product runs the same Pi-derived coding-agent runtime as local Diffex. It does not use the archived Rust implementation or a cloud-specific prompt loop. -`@earendil-works/diffex-server` binds the coding-agent runtime to `@earendil-works/diffex-protocol` inside an isolated sandbox. -`@earendil-works/diffex-client` connects to that server through a transport supplied by the product. +`@diffexai/diffex-server` binds the coding-agent runtime to `@diffexai/diffex-protocol` inside an isolated sandbox. +`@diffexai/diffex-client` connects to that server through a transport supplied by the product. ## Boundary @@ -25,7 +25,9 @@ Only Daytona's opaque placeholder enters the sandbox environment, and the real p ## Runtime Image `Dockerfile.runtime` produces the AMD64 image used to create the Daytona sandbox snapshot. -The runtime-image workflow verifies this image on pull requests and publishes an immutable `ghcr.io/diffexai/diffex-runtime:sha-` image after the matching `main` commit passes review. +The runtime-image workflow is disabled during the identity migration, including manual dispatches. +Re-enable the workflow for validation and immutable `ghcr.io/diffexai/diffex-runtime:sha-` publication after reviewing the image and its consumers. +Keep production on its existing tested image and Daytona snapshot until the replacement image and snapshot pass release validation. Before a cloud release, register GHCR with Daytona, create a Daytona snapshot from that exact immutable image tag or digest, and set `DAYTONA_SANDBOX_SNAPSHOT` to the resulting snapshot name. Do not use a floating image tag for production. diff --git a/docs/identity-handoff.md b/docs/identity-handoff.md new file mode 100644 index 000000000..21e059c5d --- /dev/null +++ b/docs/identity-handoff.md @@ -0,0 +1,122 @@ +# Product identity handoff + +Status: source identity migration complete within the owner-approved scope below. +Distribution and backend cutover remain separate release work. +The source migration is based on `4d5859e71143d3c1ba29fa7df4e2068087ba2322`. + +## Confirmed identities + +| Identity | Final value | +|---|---| +| GitHub repository | `diffexai/diffex` | +| Repository URL | `https://github.com/diffexai/diffex` | +| npm scope | `@diffexai` | +| CLI package | `@diffexai/diffex` | +| CLI executable | `diffex` | +| Runtime image | `ghcr.io/diffexai/diffex-runtime` | +| Product author | DiffexAI | +| Legal copyright owner | Luntraa, Inc. | +| Website | `https://diffex.ai/`, verified in GitHub organization metadata | +| Diffex API/Radius hostnames | None, confirmed by owner | +| OAuth application names | None, confirmed by owner | + +Diffex and Luntraa, Inc. are unrelated to Earendil. +The incorrect affiliation announcement, hidden command, component, and exclusive image were removed. + +The package migration changes only the scope except for the coding-agent CLI. +The CLI uses the short package name shown below. +Private packages retain their existing suffixes under the new scope. + +| Workspace | Final package | Publication | +|---|---|---| +| `packages/agent` | `@diffexai/diffex-agent-core` | Public; publication deferred | +| `packages/ai` | `@diffexai/diffex-ai` | Public; publication deferred | +| `packages/client` | `@diffexai/diffex-client` | Public; publication deferred | +| `packages/coding-agent` | `@diffexai/diffex` | Public; publication deferred | +| `packages/coding-agent-server` | `@diffexai/diffex-coding-agent-server` | Public; publication deferred | +| `packages/harness-state` | `@diffexai/diffex-harness-state` | Public; publication deferred | +| `packages/protocol` | `@diffexai/diffex-protocol` | Public; publication deferred | +| `packages/server` | `@diffexai/diffex-server` | Public; publication deferred | +| `packages/session-backends/sqlite-node` | `@diffexai/diffex-session-backend-sqlite-node` | Public; publication deferred | +| `packages/telemetry` | `@diffexai/diffex-telemetry` | Public; publication deferred | +| `packages/tui` | `@diffexai/diffex-tui` | Public; publication deferred | +| `packages/evals` | `@diffexai/diffex-evals` | Private | +| `packages/evolution` | `@diffexai/diffex-evolution` | Private | +| `packages/harness-trace` | `@diffexai/diffex-harness-trace` | Private | +| `packages/coding-agent/install-lock` | `@diffexai/diffex-coding-agent-install` | Generated private installer | + +## Operational evidence + +Read-only checks on 2026-09-10 UTC established the following state. +The authenticated GitHub principal is `Pepps233`, with active organization-admin membership and repository-admin permission. +Both local origin URLs use `https://github.com/diffexai/diffex.git`. +The default branch is `main`; no repository transfer is needed. +Pages is disabled, and the repository has no webhooks or deploy keys. +The organization has no staff teams, and organization-wide two-factor authentication is not required. +The API lists no members or outside collaborators with two-factor authentication disabled. +The only repository environment is `diffex-model-upload`; it contains no secrets. +There are no repository Actions secrets. +Organization-secret inventory returned HTTP 403 and was subsequently skipped by owner instruction. +Ruleset inspection returned HTTP 403 because this private repository's plan does not support the feature. +The organization-installation API lists `chatgpt-codex-connector` and `render`, both with selected-repository access. +Their selected repository lists and downstream deployment configuration were not verified; production inventory is an owner-approved skip. +The `main` branch is unprotected. +The private-vulnerability-reporting endpoint returned HTTP 404, so that reporting channel is not verified. +The organization lists `hello@diffex.ai` as its public email, but this does not verify a security mailbox or delivery. +All eleven public package names returned HTTP 404 from the npm registry. +The initial local npm authentication check returned HTTP 401. +The owner subsequently confirmed all npm requirements are verified and instructed us to skip npm login and further ownership/2FA checks. +This is owner-provided verification, not a successful local account check. + +## Publication hold and consumer inventory + +`.github/workflows/runtime-image.yml` has an unconditional false job condition that also blocks manual dispatch. +Keep it disabled until the runtime image and deployment consumers are validated. +`Dockerfile.runtime` already labels the canonical repository and uses Node 24 for both stages. +`docs/cloud-runtime.md` identifies the target image and the `DAYTONA_SANDBOX_SNAPSHOT` consumer setting. +No production image digest or snapshot value is stored in this repository. +The owner instructed us to skip production image, Daytona snapshot, credential, and deployment-allowlist inventory. +Consumer changes are outside this source identity migration. + +Before publishing, configure the trusted publisher for every public package with repository `diffexai/diffex`, workflow `build-binaries.yml`, environment `npm-publish`, and action `npm publish`. +Do not bootstrap packages, configure publication credentials, publish npm packages, create release assets, publish GHCR images, or activate self-update as part of this source identity migration. + +## Owner-approved scope adjustments + +These decisions were recorded in `/Users/jialeyu/Projects/temp/release/earendil-works-to-diffexai-diffex.md` on 2026-09-09 local time. +Diffex will not be an open source project. +The following exceptions supersede the original plan's operational gates. + +| Step | Final disposition | +|---|---| +| 1, 15 | No API/Radius hostnames or OAuth application names exist; security/support identities skipped | +| 2 | npm requirements verified by owner; no npm login; security mailbox and staff team/member provisioning skipped | +| 3 | Organization-secret inventory skipped; security-reporting and production integration checks deferred | +| 4 | Staff authorization/team/token migration and its tests skipped; existing workflow unchanged | +| 11 | Production inventory skipped; image publication remains disabled | +| 12 | Announcement removal approved and implemented; security/support contact work skipped | +| 13 | Exact retained security/staff references classified as owner-approved skips; other residuals reviewed separately | +| 15 | Confirmed names and explicit absent/skipped identities recorded in this handoff | + +`SECURITY.md` and `.github/workflows/issue-analysis.yml` retain inherited operational references under these explicit skips. +Those references do not establish a relationship between Diffex or Luntraa and Earendil. +Their exact occurrences and retirement conditions appear in `identity-residual-allowlist.md`. + +## Local verification + +`npm run check` and `npm run build:offline` passed after the package migration. +All eleven public workspaces passed `npm pack --dry-run --ignore-scripts`, local packing, and scans for stale active package identities in tarballs. +Historical changelogs were excluded from the active-package scan and are individually recorded in `identity-residual-allowlist.md`. +Lockfiles were regenerated with Node 24.13.0 and npm 11.15.0, followed by the repository shrinkwrap and installer-lock generators. +Using npm 10 would drop libc metadata, so use the documented newer npm toolchain for regeneration. +The initial non-E2E run encountered sandbox denials for loopback and Unix sockets. +The complete `./test.sh` run passed after granting the local socket access required by its mock servers. +The source archive passed its embedded model-data validation. +The exact verified source revision and archive checksums are recorded in `identity-residual-allowlist.md`. +Generated declarations, the source archive, and the macOS standalone archive passed stale active-package identity scans. +The standalone binary returned version `0.2.0` and displayed help when launched from `/tmp` with an isolated agent directory and offline mode. +Exact artifact residuals and their byte offsets are recorded in `identity-residual-allowlist.md`. +The local Docker daemon is not running, so no container build or effective-image-label inspection was performed. +After announcement removal, `npm run check`, all five remaining secondary-dialog tests, and a clean offline build passed. +An isolated offline TUI reproduced the announcement before removal and verified that the old command no longer displays it afterward. +All eleven npm packs, generated declarations, the source archive, and the standalone archive were regenerated and rescanned after removal. diff --git a/identity-residual-allowlist.md b/identity-residual-allowlist.md new file mode 100644 index 000000000..6dc1bbd95 --- /dev/null +++ b/identity-residual-allowlist.md @@ -0,0 +1,3080 @@ +# Identity residual allowlist + +Source revision: `e96184d57f05d9bbfef6896f08314b2bba89adb1`. +Review date: 2026-09-10 UTC. +This records exact retained occurrences, not wildcard exemptions. +The unresolved table is a blocking inventory and does not authorize those identities. +This audit document and the product identity handoff contain descriptive historical identity text and are not executable identity configuration. + +Diffex and Luntraa are unrelated to Earendil. +Security/staff exceptions below were explicitly approved by the owner; they are active inherited references, not historical provenance. + +## Reviewed source occurrences + +| Exact path and line | Exact retained string | Classification | Rationale | Retirement condition | +|---|---|---|---|---| +| .github/workflows/issue-analysis.yml:17 | EARENDIL_ORG_READ_TOKEN | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:18 | earendil-works | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:19 | earendil-works/staff`. | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:78 | secrets.EARENDIL_ORG_READ_TOKEN | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:176 | core.setFailed('EARENDIL_ORG_READ_TOKEN | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:182 | https://api.github.com/orgs/earendil-works/teams/staff/memberships/${encodeURIComponent(username)} | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:194 | earendil-works/staff | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:202 | earendil-works/staff | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:210 | earendil-works/staff | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:213 | console.log(`earendil-works/staff | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| .github/workflows/issue-analysis.yml:217 | earendil-works/staff | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| LICENSE:189 | Copyright 2026 Luntraa, Inc. | Legal attribution | Confirmed copyright owner | Retain while legally required | +| README.md:29 | Harness](https://github.com/earendil-works/pi). | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| SECURITY.md:29 | security@earendil.com | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| SECURITY.md:86 | Earendil | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| SECURITY.md:87 | Earendil-operated | Owner-approved skip | Owner explicitly deferred security contacts and staff authorization because Diffex is private; this is not an affiliation claim | Replace or remove if the owner resumes security-contact or staff-workflow migration | +| package-lock.json:778 | node_modules/@earendil-works/gondolin": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:780 | https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:796 | @earendil-works/gondolin-krun-runner-darwin-arm64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:797 | @earendil-works/gondolin-krun-runner-linux-x64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:800 | node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:802 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:816 | node_modules/@earendil-works/gondolin-krun-runner-linux-x64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:818 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:832 | node_modules/@earendil-works/gondolin/node_modules/undici": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:5712 | packages/agent/node_modules/@earendil-works/pi-ai/node_modules/typebox": | External dependency | npm retains nested third-party dependency records under a prior Pi install path; no active workspace uses this identity | Remove when npm regeneration eliminates the nested record | +| package-lock.json:5886 | @earendil-works/gondolin": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| package-lock.json:5915 | packages/coding-agent/node_modules/@earendil-works/pi-agent-core/node_modules/typebox": | External dependency | npm retains nested third-party dependency records under a prior Pi install path; no active workspace uses this identity | Remove when npm regeneration eliminates the nested record | +| package-lock.json:5922 | packages/coding-agent/node_modules/@earendil-works/pi-ai/node_modules/@anthropic-ai/sdk": | External dependency | npm retains nested third-party dependency records under a prior Pi install path; no active workspace uses this identity | Remove when npm regeneration eliminates the nested record | +| package-lock.json:5943 | packages/coding-agent/node_modules/@earendil-works/pi-ai/node_modules/typebox": | External dependency | npm retains nested third-party dependency records under a prior Pi install path; no active workspace uses this identity | Remove when npm regeneration eliminates the nested record | +| packages/agent/CHANGELOG.md:12 | [#7707](https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/agent/CHANGELOG.md:19 | [#7611](https://github.com/earendil-works/pi/pull/7611 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/agent/CHANGELOG.md:20 | [#7646](https://github.com/earendil-works/pi/pull/7646)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/agent/CHANGELOG.md:21 | [#7367](https://github.com/earendil-works/pi/pull/7367 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/agent/CHANGELOG.md:22 | [#7568](https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/agent/CHANGELOG.md:28 | [#7707](https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/agent/CHANGELOG.md:50 | [#6618](https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/agent/CHANGELOG.md:56 | [#6901](https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Released history: [0.81.1] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:60 | [#6915](https://github.com/earendil-works/pi/issues/6915)). | Immutable changelog | Released history: [0.81.1] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:66 | [#6594](https://github.com/earendil-works/pi/pull/6594 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:67 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:67 | [#6834](https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:68 | @earendil-works/pi-ai/compat | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:68 | [#6851](https://github.com/earendil-works/pi/issues/6851)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:72 | [#6671](https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/agent/CHANGELOG.md:84 | [#6474](https://github.com/earendil-works/pi-mono/pull/6474)). | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/agent/CHANGELOG.md:99 | [#6417](https://github.com/earendil-works/pi/pull/6417 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:100 | [#6435](https://github.com/earendil-works/pi/issues/6435)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:104 | [#5536](https://github.com/earendil-works/pi/issues/5536)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:105 | [#6285](https://github.com/earendil-works/pi/pull/6285)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:106 | [#6343](https://github.com/earendil-works/pi/pull/6343)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:107 | [#6181](https://github.com/earendil-works/pi/issues/6181)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:108 | [#6242](https://github.com/earendil-works/pi/issues/6242)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/agent/CHANGELOG.md:132 | @earendil-works/pi-ai/providers/all | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/agent/CHANGELOG.md:135 | @earendil-works/pi-agent-core/base | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/agent/CHANGELOG.md:139 | [#5999](https://github.com/earendil-works/pi/pull/5999 | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/agent/CHANGELOG.md:140 | [#5526](https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/agent/CHANGELOG.md:148 | [#5893](https://github.com/earendil-works/pi/issues/5893)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/agent/CHANGELOG.md:154 | @earendil-works/pi-agent-core/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/agent/CHANGELOG.md:154 | @earendil-works/pi-ai/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/agent/CHANGELOG.md:154 | [#5348](https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/agent/CHANGELOG.md:170 | [#5573](https://github.com/earendil-works/pi/issues/5573)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/agent/CHANGELOG.md:178 | [#5401](https://github.com/earendil-works/pi/issues/5401)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/agent/CHANGELOG.md:198 | [#4983](https://github.com/earendil-works/pi/issues/4983)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/agent/CHANGELOG.md:211 | [#4276](https://github.com/earendil-works/pi/issues/4276)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/agent/CHANGELOG.md:212 | [#4715](https://github.com/earendil-works/pi/issues/4715)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/agent/CHANGELOG.md:213 | [#4699](https://github.com/earendil-works/pi/issues/4699)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:74 | @earendil-works/pi-telemetry | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:75 | [#7339](https://github.com/earendil-works/pi/pull/7339 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:77 | [#7568](https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:78 | [#7638](https://github.com/earendil-works/pi/pull/7638 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:80 | [#7286](https://github.com/earendil-works/pi/pull/7286 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:88 | [#7560](https://github.com/earendil-works/pi/issues/7560)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:89 | [#7508](https://github.com/earendil-works/pi/issues/7508)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:90 | [#7328](https://github.com/earendil-works/pi/issues/7328)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:91 | [#7027](https://github.com/earendil-works/pi/issues/7027)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:95 | [#7199](https://github.com/earendil-works/pi/issues/7199 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:95 | [#7230](https://github.com/earendil-works/pi/pull/7230 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:96 | [#7676](https://github.com/earendil-works/pi/issues/7676)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:99 | [#7205](https://github.com/earendil-works/pi/pull/7205 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:100 | [#7358](https://github.com/earendil-works/pi/pull/7358 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:101 | [#7362](https://github.com/earendil-works/pi/pull/7362 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:102 | [#7364](https://github.com/earendil-works/pi/pull/7364)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:103 | [#7471](https://github.com/earendil-works/pi/pull/7471 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:104 | [#7494](https://github.com/earendil-works/pi/pull/7494 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:105 | [#7540](https://github.com/earendil-works/pi/pull/7540 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:106 | [#7672](https://github.com/earendil-works/pi/pull/7672 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:107 | [#7670](https://github.com/earendil-works/pi/pull/7670 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/ai/CHANGELOG.md:113 | [#7243](https://github.com/earendil-works/pi/pull/7243 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:118 | [#7158](https://github.com/earendil-works/pi/pull/7158 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:119 | [#7151](https://github.com/earendil-works/pi/pull/7151 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:120 | [#7272](https://github.com/earendil-works/pi/pull/7272)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:121 | [#7114](https://github.com/earendil-works/pi/pull/7114 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:122 | [#7168](https://github.com/earendil-works/pi/pull/7168)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:126 | [#7168](https://github.com/earendil-works/pi/pull/7168)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:130 | [#6951](https://github.com/earendil-works/pi/issues/6951 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:130 | [#6998](https://github.com/earendil-works/pi/issues/6998)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:131 | [#7174](https://github.com/earendil-works/pi/pull/7174 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:132 | [#7176](https://github.com/earendil-works/pi/pull/7176 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:133 | [#7288](https://github.com/earendil-works/pi/pull/7288 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:140 | [#5871](https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/ai/CHANGELOG.md:141 | [#7081](https://github.com/earendil-works/pi/pull/7081 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/ai/CHANGELOG.md:141 | [#7083](https://github.com/earendil-works/pi/pull/7083 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/ai/CHANGELOG.md:152 | [#7016](https://github.com/earendil-works/pi/pull/7016 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:156 | [#6935](https://github.com/earendil-works/pi/pull/6935 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:157 | [#6927](https://github.com/earendil-works/pi/pull/6927 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:163 | [#6928](https://github.com/earendil-works/pi/pull/6928 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:169 | [#6618](https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:170 | [#6946](https://github.com/earendil-works/pi/pull/6946 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:171 | [#6955](https://github.com/earendil-works/pi/pull/6955 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:172 | [#6980](https://github.com/earendil-works/pi/pull/6980 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:173 | [#6941](https://github.com/earendil-works/pi/pull/6941 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/ai/CHANGELOG.md:179 | [#6901](https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Released history: [0.81.1] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:189 | [#6858](https://github.com/earendil-works/pi/pull/6858 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:190 | [#6840](https://github.com/earendil-works/pi/pull/6840 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:191 | [#6834](https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:192 | [#6671](https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:196 | [#6765](https://github.com/earendil-works/pi/pull/6765 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:201 | [#6864](https://github.com/earendil-works/pi/pull/6864 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:202 | [#6854](https://github.com/earendil-works/pi/pull/6854 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:205 | [#6812](https://github.com/earendil-works/pi/pull/6812 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:206 | [#6834](https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:207 | [#6668](https://github.com/earendil-works/pi/issues/6668)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:209 | [#6727](https://github.com/earendil-works/pi/issues/6727)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:210 | [#6853](https://github.com/earendil-works/pi/pull/6853 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/ai/CHANGELOG.md:218 | [#6737](https://github.com/earendil-works/pi/issues/6737)). | Immutable changelog | Released history: [0.80.10] - 2026-07-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:219 | [#6736](https://github.com/earendil-works/pi/issues/6736)). | Immutable changelog | Released history: [0.80.10] - 2026-07-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:230 | [#6734](https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Released history: [0.80.9] - 2026-07-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:238 | [#6734](https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Released history: [0.80.9] - 2026-07-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:258 | [#6651](https://github.com/earendil-works/pi-mono/pull/6651 | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:268 | [#6630](https://github.com/earendil-works/pi-mono/issues/6630)). | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:274 | [#6496](https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:278 | [#6474](https://github.com/earendil-works/pi-mono/pull/6474)). | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:279 | [#6490](https://github.com/earendil-works/pi-mono/pull/6490 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:280 | [#6588](https://github.com/earendil-works/pi-mono/pull/6588 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:284 | [#6481](https://github.com/earendil-works/pi-mono/pull/6481 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:285 | [#6544](https://github.com/earendil-works/pi-mono/pull/6544 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:287 | [#6496](https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:288 | [#6532](https://github.com/earendil-works/pi-mono/pull/6532 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:289 | [#6292](https://github.com/earendil-works/pi-mono/pull/6292 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:290 | [#6598](https://github.com/earendil-works/pi-mono/pull/6598 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:291 | [#6608](https://github.com/earendil-works/pi-mono/pull/6608 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:292 | [#6611](https://github.com/earendil-works/pi-mono/pull/6611 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:293 | [#6645](https://github.com/earendil-works/pi-mono/pull/6645 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/ai/CHANGELOG.md:303 | [#6464](https://github.com/earendil-works/pi/issues/6464)). | Immutable changelog | Released history: [0.80.6] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:306 | [#6457](https://github.com/earendil-works/pi/pull/6457 | Immutable changelog | Released history: [0.80.6] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:314 | [#6449](https://github.com/earendil-works/pi/pull/6449 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:315 | [#6343](https://github.com/earendil-works/pi/pull/6343)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:316 | [#6204](https://github.com/earendil-works/pi/issues/6204)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:317 | [#6187](https://github.com/earendil-works/pi/issues/6187)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:318 | [#6187](https://github.com/earendil-works/pi/issues/6187)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:320 | [#6195](https://github.com/earendil-works/pi/issues/6195)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:321 | [#6235](https://github.com/earendil-works/pi/issues/6235)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:323 | [#6262](https://github.com/earendil-works/pi/issues/6262)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:324 | [#6268](https://github.com/earendil-works/pi/issues/6268)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:325 | [#6021](https://github.com/earendil-works/pi/issues/6021)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:327 | [#6265](https://github.com/earendil-works/pi/issues/6265)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:328 | [#6239](https://github.com/earendil-works/pi/issues/6239)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:329 | [#6431](https://github.com/earendil-works/pi/issues/6431)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:330 | [#6439](https://github.com/earendil-works/pi/issues/6439)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:335 | [#6341](https://github.com/earendil-works/pi/pull/6341)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:336 | [#6256](https://github.com/earendil-works/pi/issues/6256)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:337 | [#6200](https://github.com/earendil-works/pi/issues/6200)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:345 | [#6004](https://github.com/earendil-works/pi/pull/6004 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:346 | [#6057](https://github.com/earendil-works/pi/issues/6057)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:350 | [#4945](https://github.com/earendil-works/pi/issues/4945)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:355 | [#6138](https://github.com/earendil-works/pi/issues/6138)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:356 | [#5832](https://github.com/earendil-works/pi/pull/5832 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:357 | [#5595](https://github.com/earendil-works/pi/issues/5595)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:358 | [#6009](https://github.com/earendil-works/pi/issues/6009)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:359 | [#6019](https://github.com/earendil-works/pi/issues/6019)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:360 | [#6083](https://github.com/earendil-works/pi/issues/6083)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/ai/CHANGELOG.md:371 | [#6021](https://github.com/earendil-works/pi/issues/6021)). | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:372 | [#6016](https://github.com/earendil-works/pi/issues/6016 | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:372 | [#6017](https://github.com/earendil-works/pi/issues/6017)). | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:373 | [#6020](https://github.com/earendil-works/pi/issues/6020)). | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:387 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:387 | @earendil-works/pi-ai/compat | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:387 | @earendil-works/pi-ai/providers/all | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:389 | @earendil-works/pi-ai/api/* | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:389 | @earendil-works/pi-ai/api/*`. | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:390 | @earendil-works/pi-ai/base | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:395 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:395 | @earendil-works/pi-ai/compat`. | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:399 | @earendil-works/pi-ai/providers/all | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:413 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:414 | @earendil-works/pi-ai/providers/anthropic | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:420 | @earendil-works/pi-ai/api/* | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:423 | @earendil-works/pi-ai/api/anthropic-messages | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:424 | @earendil-works/pi-ai/providers/all | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:442 | @earendil-works/pi-ai/providers/* | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:442 | @earendil-works/pi-ai/providers/all | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:450 | [#5526](https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:454 | [#5973](https://github.com/earendil-works/pi/issues/5973)). | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:455 | [#5967](https://github.com/earendil-works/pi/issues/5967)). | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:461 | [#5114](https://github.com/earendil-works/pi/issues/5114)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/ai/CHANGELOG.md:467 | [#5673](https://github.com/earendil-works/pi/issues/5673)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:471 | [#5923](https://github.com/earendil-works/pi/issues/5923)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:472 | [#5770](https://github.com/earendil-works/pi/issues/5770)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:473 | [#5897](https://github.com/earendil-works/pi/issues/5897)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:479 | @earendil-works/pi-ai/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/ai/CHANGELOG.md:479 | [#5348](https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/ai/CHANGELOG.md:480 | [#5854](https://github.com/earendil-works/pi/issues/5854)). | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/ai/CHANGELOG.md:481 | [#5866](https://github.com/earendil-works/pi/pull/5866 | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/ai/CHANGELOG.md:487 | [#5860](https://github.com/earendil-works/pi/issues/5860)). | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:499 | [#5728](https://github.com/earendil-works/pi/issues/5728)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:503 | [#5819](https://github.com/earendil-works/pi/issues/5819)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:504 | [#5818](https://github.com/earendil-works/pi/issues/5818)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:505 | [#5770](https://github.com/earendil-works/pi/issues/5770)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:506 | [#5761](https://github.com/earendil-works/pi/issues/5761)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:507 | [#5760](https://github.com/earendil-works/pi/issues/5760)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:513 | [#5738](https://github.com/earendil-works/pi/pull/5738 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/ai/CHANGELOG.md:514 | [#4637](https://github.com/earendil-works/pi/issues/4637)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/ai/CHANGELOG.md:515 | [#5702](https://github.com/earendil-works/pi/issues/5702)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/ai/CHANGELOG.md:527 | [#5561](https://github.com/earendil-works/pi/pull/5561 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/ai/CHANGELOG.md:531 | [#5677](https://github.com/earendil-works/pi/issues/5677)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/ai/CHANGELOG.md:532 | [#5644](https://github.com/earendil-works/pi/issues/5644)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/ai/CHANGELOG.md:533 | [#4945](https://github.com/earendil-works/pi/issues/4945)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/ai/CHANGELOG.md:534 | [#5666](https://github.com/earendil-works/pi/pull/5666 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/ai/CHANGELOG.md:535 | [#5567](https://github.com/earendil-works/pi/pull/5567 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/ai/CHANGELOG.md:545 | [#5527](https://github.com/earendil-works/pi/pull/5527 | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:546 | [#5330](https://github.com/earendil-works/pi/issues/5330)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:547 | [#5331](https://github.com/earendil-works/pi/issues/5331)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:548 | [#5531](https://github.com/earendil-works/pi/issues/5531)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:549 | [#5530](https://github.com/earendil-works/pi/issues/5530)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:550 | [#5559](https://github.com/earendil-works/pi/issues/5559)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:551 | [#5559](https://github.com/earendil-works/pi/issues/5559)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/ai/CHANGELOG.md:557 | [#5456](https://github.com/earendil-works/pi/issues/5456)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/ai/CHANGELOG.md:558 | [#5347](https://github.com/earendil-works/pi/issues/5347)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/ai/CHANGELOG.md:565 | [#5313](https://github.com/earendil-works/pi/issues/5313)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/ai/CHANGELOG.md:570 | [#4975](https://github.com/earendil-works/pi/issues/4975)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/ai/CHANGELOG.md:571 | [#5251](https://github.com/earendil-works/pi/pull/5251 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/ai/CHANGELOG.md:572 | [#5243](https://github.com/earendil-works/pi/issues/5243)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/ai/CHANGELOG.md:573 | [#5309](https://github.com/earendil-works/pi/issues/5309)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/ai/CHANGELOG.md:574 | [#5221](https://github.com/earendil-works/pi/pull/5221 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/ai/CHANGELOG.md:585 | [#5178](https://github.com/earendil-works/pi-mono/pull/5178 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:589 | [#5159](https://github.com/earendil-works/pi-mono/issues/5159)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:590 | [#5169](https://github.com/earendil-works/pi-mono/issues/5169)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/ai/CHANGELOG.md:598 | [#4911](https://github.com/earendil-works/pi/pull/4911 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/ai/CHANGELOG.md:603 | [#4801](https://github.com/earendil-works/pi/issues/4801)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/ai/CHANGELOG.md:604 | [#5148](https://github.com/earendil-works/pi/issues/5148)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/ai/CHANGELOG.md:605 | [#4464](https://github.com/earendil-works/pi/issues/4464)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/ai/CHANGELOG.md:607 | [#5078](https://github.com/earendil-works/pi/issues/5078)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/ai/CHANGELOG.md:608 | [#5075](https://github.com/earendil-works/pi/issues/5075)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/ai/CHANGELOG.md:614 | [#4967](https://github.com/earendil-works/pi/issues/4967)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/ai/CHANGELOG.md:615 | [#4969](https://github.com/earendil-works/pi/issues/4969)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/ai/CHANGELOG.md:616 | [#4943](https://github.com/earendil-works/pi/issues/4943)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/ai/CHANGELOG.md:617 | [#4945](https://github.com/earendil-works/pi/issues/4945)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/ai/CHANGELOG.md:618 | [#4991](https://github.com/earendil-works/pi-mono/pull/4991 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/ai/CHANGELOG.md:624 | [#4788](https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:628 | [#4797](https://github.com/earendil-works/pi-mono/pull/4797 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:629 | [#4788](https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:630 | [#4842](https://github.com/earendil-works/pi/issues/4842)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:631 | [#4848](https://github.com/earendil-works/pi/issues/4848)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/ai/CHANGELOG.md:646 | [#4675](https://github.com/earendil-works/pi/issues/4675)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:647 | [#4720](https://github.com/earendil-works/pi/issues/4720)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/ai/CHANGELOG.md:655 | [#4678](https://github.com/earendil-works/pi/issues/4678)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:661 | [#4342](https://github.com/earendil-works/pi/issues/4342)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:662 | [#4223](https://github.com/earendil-works/pi/issues/4223)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:663 | [#4232](https://github.com/earendil-works/pi/issues/4232)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:664 | [#4505](https://github.com/earendil-works/pi/issues/4505)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:665 | [#4251](https://github.com/earendil-works/pi/issues/4251)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/ai/CHANGELOG.md:679 | [#4603](https://github.com/earendil-works/pi-mono/pull/4603 | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/ai/CHANGELOG.md:680 | [#4622](https://github.com/earendil-works/pi-mono/pull/4622 | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/ai/CHANGELOG.md:681 | [#4614](https://github.com/earendil-works/pi/issues/4614)). | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/ai/CHANGELOG.md:687 | [#3887](https://github.com/earendil-works/pi-mono/pull/3887 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:688 | [#3624](https://github.com/earendil-works/pi-mono/pull/3624 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:692 | [#4485](https://github.com/earendil-works/pi/issues/4485)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:693 | [#4345](https://github.com/earendil-works/pi/issues/4345)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:694 | [#4358](https://github.com/earendil-works/pi-mono/pull/4358 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:695 | [#4354](https://github.com/earendil-works/pi-mono/pull/4354 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:698 | [#4513](https://github.com/earendil-works/pi/issues/4513)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:703 | [#4563](https://github.com/earendil-works/pi/issues/4563)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:704 | [#4539](https://github.com/earendil-works/pi/issues/4539)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/ai/CHANGELOG.md:712 | [#4190](https://github.com/earendil-works/pi-mono/pull/4190 | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/ai/CHANGELOG.md:719 | [#4218](https://github.com/earendil-works/pi-mono/issues/4218)). | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/ai/CHANGELOG.md:720 | [#4184](https://github.com/earendil-works/pi-mono/issues/4184)). | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/ai/src/api/azure-openai-responses.ts:25 | https://github.com/earendil-works/pi/issues/6265 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/ai/src/api/openai-responses-shared.ts:518 | https://github.com/earendil-works/pi/issues/6409. | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/ai/src/api/openai-responses.ts:31 | https://github.com/earendil-works/pi/issues/6265 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/ai/test/openai-completions-empty-tools.test.ts:7 | https://github.com/earendil-works/pi-mono/issues/<issue-number> | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/ai/test/tool-call-id-normalization.test.ts:10 | https://github.com/earendil-works/pi-mono/issues/1022 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/client/CHANGELOG.md:9 | [#7708](https://github.com/earendil-works/pi/pull/7708)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:11 | [#7152](https://github.com/earendil-works/pi/issues/7152)). | Upstream history | Inherited upstream release record and provenance | Retain accurate historical facts | +| packages/coding-agent/CHANGELOG.md:20 | [#7128](https://github.com/earendil-works/pi/issues/7128)). | Upstream history | Inherited upstream release record and provenance | Retain accurate historical facts | +| packages/coding-agent/CHANGELOG.md:28 | [#7731](https://github.com/earendil-works/pi/issues/7731)). | Upstream history | Inherited upstream release record and provenance | Retain accurate historical facts | +| packages/coding-agent/CHANGELOG.md:48 | [#7290](https://github.com/earendil-works/pi/issues/7290)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:49 | [#7030](https://github.com/earendil-works/pi/issues/7030)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:117 | [#7707](https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:118 | [#7708](https://github.com/earendil-works/pi/pull/7708)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:123 | @earendil-works/pi-coding-agent/client | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:123 | [#7344](https://github.com/earendil-works/pi/pull/7344 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:123 | [#7348](https://github.com/earendil-works/pi/pull/7348 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:123 | [#7371](https://github.com/earendil-works/pi/pull/7371 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:123 | [#7409](https://github.com/earendil-works/pi/pull/7409)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:125 | [#7231](https://github.com/earendil-works/pi/pull/7231 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:126 | [#7304](https://github.com/earendil-works/pi/issues/7304)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:132 | [#7624](https://github.com/earendil-works/pi/pull/7624 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:134 | [#7681](https://github.com/earendil-works/pi/pull/7681 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:135 | [#7493](https://github.com/earendil-works/pi/pull/7493 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:138 | [#7568](https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:139 | [#7638](https://github.com/earendil-works/pi/pull/7638 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:141 | [#7339](https://github.com/earendil-works/pi/pull/7339 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:143 | [#7286](https://github.com/earendil-works/pi/pull/7286 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:144 | [#7367](https://github.com/earendil-works/pi/pull/7367 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:145 | [#7611](https://github.com/earendil-works/pi/pull/7611 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:146 | [#7448](https://github.com/earendil-works/pi/pull/7448 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:146 | [#7646](https://github.com/earendil-works/pi/pull/7646)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:156 | [#7684](https://github.com/earendil-works/pi/issues/7684)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:158 | [#7508](https://github.com/earendil-works/pi/issues/7508)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:159 | [#7328](https://github.com/earendil-works/pi/issues/7328)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:160 | [#7676](https://github.com/earendil-works/pi/issues/7676)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:162 | [#7707](https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:163 | [#6817](https://github.com/earendil-works/pi/issues/6817)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:165 | [#7064](https://github.com/earendil-works/pi/issues/7064 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:165 | [#7547](https://github.com/earendil-works/pi/issues/7547)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:166 | [#7572](https://github.com/earendil-works/pi/issues/7572)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:167 | [#7560](https://github.com/earendil-works/pi/issues/7560)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:169 | [#7327](https://github.com/earendil-works/pi/issues/7327)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:170 | [#7390](https://github.com/earendil-works/pi/pull/7390 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:175 | [#7333](https://github.com/earendil-works/pi/issues/7333)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:176 | [#7187](https://github.com/earendil-works/pi/issues/7187)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:178 | [#7292](https://github.com/earendil-works/pi/issues/7292)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:179 | [#7325](https://github.com/earendil-works/pi/pull/7325)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:180 | [#7319](https://github.com/earendil-works/pi/issues/7319)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:182 | [#7316](https://github.com/earendil-works/pi/issues/7316)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:183 | [#7301](https://github.com/earendil-works/pi/issues/7301 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:183 | [#7421](https://github.com/earendil-works/pi/pull/7421 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:185 | [#7027](https://github.com/earendil-works/pi/issues/7027 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:185 | [#7113](https://github.com/earendil-works/pi/issues/7113 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:185 | [#7418](https://github.com/earendil-works/pi/issues/7418)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:186 | [#7153](https://github.com/earendil-works/pi/issues/7153)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:187 | [#7443](https://github.com/earendil-works/pi/issues/7443)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:193 | [#6768](https://github.com/earendil-works/pi/issues/6768)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:194 | [#7579](https://github.com/earendil-works/pi/issues/7579)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:195 | [#7574](https://github.com/earendil-works/pi/issues/7574)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:196 | [#7656](https://github.com/earendil-works/pi/pull/7656 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:197 | [#7387](https://github.com/earendil-works/pi/pull/7387)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:198 | [#7435](https://github.com/earendil-works/pi/pull/7435 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:199 | [#7330](https://github.com/earendil-works/pi/pull/7330 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:200 | [#7552](https://github.com/earendil-works/pi/pull/7552 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:201 | [#7370](https://github.com/earendil-works/pi/pull/7370 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:202 | [#7540](https://github.com/earendil-works/pi/pull/7540 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:203 | [#7570](https://github.com/earendil-works/pi/pull/7570 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:204 | [#7569](https://github.com/earendil-works/pi/pull/7569 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:205 | [#7632](https://github.com/earendil-works/pi/pull/7632 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:208 | [#7205](https://github.com/earendil-works/pi/pull/7205 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:209 | [#7358](https://github.com/earendil-works/pi/pull/7358 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:210 | [#7362](https://github.com/earendil-works/pi/pull/7362 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:211 | [#7364](https://github.com/earendil-works/pi/pull/7364)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:212 | [#7471](https://github.com/earendil-works/pi/pull/7471 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:213 | [#7494](https://github.com/earendil-works/pi/pull/7494 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:214 | [#7672](https://github.com/earendil-works/pi/pull/7672 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:215 | [#7670](https://github.com/earendil-works/pi/pull/7670 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:216 | [#6987](https://github.com/earendil-works/pi/pull/6987 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:218 | [#7550](https://github.com/earendil-works/pi/pull/7550)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:219 | [#7581](https://github.com/earendil-works/pi/pull/7581)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:220 | [#7612](https://github.com/earendil-works/pi/pull/7612)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:221 | [#7657](https://github.com/earendil-works/pi/pull/7657 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:223 | [#7199](https://github.com/earendil-works/pi/issues/7199 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:223 | [#7230](https://github.com/earendil-works/pi/pull/7230 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:242 | [#7243](https://github.com/earendil-works/pi/pull/7243 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:246 | [#7168](https://github.com/earendil-works/pi/pull/7168)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:247 | [#7191](https://github.com/earendil-works/pi/pull/7191 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:247 | [#7215](https://github.com/earendil-works/pi/pull/7215)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:249 | [#7151](https://github.com/earendil-works/pi/pull/7151 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:250 | [#7272](https://github.com/earendil-works/pi/pull/7272)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:251 | [#7114](https://github.com/earendil-works/pi/pull/7114 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:252 | [#7158](https://github.com/earendil-works/pi/pull/7158 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:256 | [#7168](https://github.com/earendil-works/pi/pull/7168)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:260 | [#7180](https://github.com/earendil-works/pi/issues/7180)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:261 | [#7096](https://github.com/earendil-works/pi/issues/7096)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:262 | [#7221](https://github.com/earendil-works/pi/pull/7221 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:263 | [#7258](https://github.com/earendil-works/pi/pull/7258 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:264 | [#7022](https://github.com/earendil-works/pi/pull/7022 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:265 | [#7210](https://github.com/earendil-works/pi/pull/7210 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:266 | [#7211](https://github.com/earendil-works/pi/pull/7211 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:267 | [#7214](https://github.com/earendil-works/pi/pull/7214)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:268 | [#6968](https://github.com/earendil-works/pi/issues/6968)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:269 | [#7103](https://github.com/earendil-works/pi/pull/7103 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:270 | [#7110](https://github.com/earendil-works/pi/pull/7110 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:271 | [#6951](https://github.com/earendil-works/pi/issues/6951 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:271 | [#6998](https://github.com/earendil-works/pi/issues/6998)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:272 | [#7174](https://github.com/earendil-works/pi/pull/7174 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:273 | [#7176](https://github.com/earendil-works/pi/pull/7176 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:274 | [#7262](https://github.com/earendil-works/pi/pull/7262)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:275 | [#7288](https://github.com/earendil-works/pi/pull/7288 | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:287 | [#7045](https://github.com/earendil-works/pi/pull/7045 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:288 | [#5871](https://github.com/earendil-works/pi/issues/5871)). | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:289 | [#7081](https://github.com/earendil-works/pi/pull/7081 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:289 | [#7083](https://github.com/earendil-works/pi/pull/7083 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:299 | [#5871](https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:300 | [#6949](https://github.com/earendil-works/pi/issues/6949 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:300 | [#7032](https://github.com/earendil-works/pi/pull/7032 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:301 | [#7106](https://github.com/earendil-works/pi/pull/7106 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:302 | [#7072](https://github.com/earendil-works/pi/pull/7072 | Immutable changelog | Released history: [0.82.1] - 2026-07-25 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:316 | [#6935](https://github.com/earendil-works/pi/pull/6935 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:317 | [#6927](https://github.com/earendil-works/pi/pull/6927 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:319 | [#6971](https://github.com/earendil-works/pi/pull/6971 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:323 | [#6928](https://github.com/earendil-works/pi/pull/6928 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:327 | [#6946](https://github.com/earendil-works/pi/pull/6946 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:328 | [#6941](https://github.com/earendil-works/pi/pull/6941 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:329 | [#6955](https://github.com/earendil-works/pi/pull/6955 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:330 | [#6958](https://github.com/earendil-works/pi/pull/6958 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:331 | [#6903](https://github.com/earendil-works/pi/pull/6903 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:332 | [#6964](https://github.com/earendil-works/pi/pull/6964 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:333 | [#6618](https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:334 | [#6977](https://github.com/earendil-works/pi/issues/6977)). | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:335 | [#6210](https://github.com/earendil-works/pi/issues/6210)). | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:336 | [#6980](https://github.com/earendil-works/pi/pull/6980 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:337 | [#7016](https://github.com/earendil-works/pi/pull/7016 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:338 | [#7015](https://github.com/earendil-works/pi/pull/7015 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:339 | [#7034](https://github.com/earendil-works/pi/pull/7034 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:341 | [#7005](https://github.com/earendil-works/pi/issues/7005)). | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:342 | [#7009](https://github.com/earendil-works/pi/pull/7009 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:343 | [#6999](https://github.com/earendil-works/pi/issues/6999)). | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:354 | [#6913](https://github.com/earendil-works/pi/pull/6913 | Immutable changelog | Released history: [0.81.1] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:358 | [#6901](https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Released history: [0.81.1] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:360 | [#6915](https://github.com/earendil-works/pi/issues/6915)). | Immutable changelog | Released history: [0.81.1] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:374 | [#6858](https://github.com/earendil-works/pi/pull/6858 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:375 | [#6865](https://github.com/earendil-works/pi/pull/6865 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:376 | [#6772](https://github.com/earendil-works/pi/pull/6772 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:379 | [#6671](https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:383 | [#6896](https://github.com/earendil-works/pi/pull/6896 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:385 | [#6864](https://github.com/earendil-works/pi/pull/6864 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:386 | [#6854](https://github.com/earendil-works/pi/pull/6854 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:389 | [#6812](https://github.com/earendil-works/pi/pull/6812 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:390 | [#6790](https://github.com/earendil-works/pi/pull/6790 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:391 | [#6764](https://github.com/earendil-works/pi/pull/6764 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:392 | [#6844](https://github.com/earendil-works/pi/issues/6844)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:393 | [#6834](https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:394 | [#6853](https://github.com/earendil-works/pi/pull/6853 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:395 | [#6730](https://github.com/earendil-works/pi/pull/6730 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:396 | [#6731](https://github.com/earendil-works/pi/pull/6731 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:399 | [#6793](https://github.com/earendil-works/pi/issues/6793)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:400 | [#6695](https://github.com/earendil-works/pi/issues/6695)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:401 | [#6735](https://github.com/earendil-works/pi/issues/6735)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:403 | [#6727](https://github.com/earendil-works/pi/issues/6727)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:415 | [#6737](https://github.com/earendil-works/pi/issues/6737)). | Immutable changelog | Released history: [0.80.10] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:416 | [#6736](https://github.com/earendil-works/pi/issues/6736)). | Immutable changelog | Released history: [0.80.10] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:431 | [#6734](https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Released history: [0.80.9] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:440 | [#6734](https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Released history: [0.80.9] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:465 | [#6651](https://github.com/earendil-works/pi-mono/pull/6651 | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:477 | [#6630](https://github.com/earendil-works/pi-mono/issues/6630)). | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:478 | [#6697](https://github.com/earendil-works/pi-mono/pull/6697 | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:479 | [#6629](https://github.com/earendil-works/pi-mono/issues/6629)). | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:486 | [#6496](https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:496 | [#6474](https://github.com/earendil-works/pi-mono/pull/6474)). | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:497 | [#6490](https://github.com/earendil-works/pi-mono/pull/6490 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:499 | [#6588](https://github.com/earendil-works/pi-mono/pull/6588 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:503 | [#6481](https://github.com/earendil-works/pi-mono/pull/6481 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:504 | [#6496](https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:507 | [#6532](https://github.com/earendil-works/pi-mono/pull/6532 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:508 | [#6292](https://github.com/earendil-works/pi-mono/pull/6292 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:509 | [#6523](https://github.com/earendil-works/pi-mono/pull/6523 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:510 | [#6544](https://github.com/earendil-works/pi-mono/pull/6544 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:511 | [#6595](https://github.com/earendil-works/pi-mono/pull/6595 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:512 | [#6598](https://github.com/earendil-works/pi-mono/pull/6598 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:513 | [#6604](https://github.com/earendil-works/pi-mono/pull/6604 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:514 | [#6608](https://github.com/earendil-works/pi-mono/pull/6608 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:515 | [#6611](https://github.com/earendil-works/pi-mono/pull/6611 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:516 | [#6645](https://github.com/earendil-works/pi-mono/pull/6645 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:517 | [#6621](https://github.com/earendil-works/pi/issues/6621)). | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:530 | [#6470](https://github.com/earendil-works/pi/pull/6470 | Immutable changelog | Released history: [0.80.6] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:534 | [#6464](https://github.com/earendil-works/pi/issues/6464)). | Immutable changelog | Released history: [0.80.6] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:537 | [#6457](https://github.com/earendil-works/pi/pull/6457 | Immutable changelog | Released history: [0.80.6] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:553 | [#6200](https://github.com/earendil-works/pi/issues/6200)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:556 | [#6201](https://github.com/earendil-works/pi/issues/6201)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:557 | [#6363](https://github.com/earendil-works/pi/issues/6363)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:558 | [#6350](https://github.com/earendil-works/pi/pull/6350 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:559 | [#6267](https://github.com/earendil-works/pi/pull/6267 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:561 | [#6309](https://github.com/earendil-works/pi/pull/6309)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:562 | [#6435](https://github.com/earendil-works/pi/issues/6435)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:563 | [#6417](https://github.com/earendil-works/pi/pull/6417 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:568 | [#6449](https://github.com/earendil-works/pi/pull/6449 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:569 | [#6239](https://github.com/earendil-works/pi/issues/6239)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:570 | [#6187](https://github.com/earendil-works/pi/issues/6187)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:571 | [#6268](https://github.com/earendil-works/pi/issues/6268)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:572 | [#6262](https://github.com/earendil-works/pi/issues/6262)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:573 | [#6195](https://github.com/earendil-works/pi/issues/6195)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:574 | [#6430](https://github.com/earendil-works/pi/pull/6430 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:575 | [#6418](https://github.com/earendil-works/pi/pull/6418 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:576 | [#6439](https://github.com/earendil-works/pi/issues/6439)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:577 | [#6397](https://github.com/earendil-works/pi/pull/6397 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:578 | [#6343](https://github.com/earendil-works/pi/pull/6343)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:579 | [#6285](https://github.com/earendil-works/pi/pull/6285)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:581 | [#6265](https://github.com/earendil-works/pi/issues/6265)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:582 | [#6235](https://github.com/earendil-works/pi/issues/6235)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:585 | [#6279](https://github.com/earendil-works/pi/pull/6279 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:586 | [#6204](https://github.com/earendil-works/pi/issues/6204)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:587 | [#6231](https://github.com/earendil-works/pi/issues/6231)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:588 | [#6189](https://github.com/earendil-works/pi/issues/6189)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:589 | [#6223](https://github.com/earendil-works/pi/issues/6223)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:590 | [#5536](https://github.com/earendil-works/pi/issues/5536)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:591 | [#6326](https://github.com/earendil-works/pi/issues/6326)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:593 | [#6181](https://github.com/earendil-works/pi/issues/6181)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:594 | [#6278](https://github.com/earendil-works/pi/issues/6278)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:595 | [#6354](https://github.com/earendil-works/pi/issues/6354)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:596 | [#6431](https://github.com/earendil-works/pi/issues/6431)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:597 | [#6367](https://github.com/earendil-works/pi/issues/6367)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:598 | [#6369](https://github.com/earendil-works/pi/issues/6369)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:599 | [#6407](https://github.com/earendil-works/pi/issues/6407)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:600 | [#6395](https://github.com/earendil-works/pi/issues/6395)). | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:620 | [#6078](https://github.com/earendil-works/pi/pull/6078 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:622 | [#6175](https://github.com/earendil-works/pi/pull/6175 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:623 | [#6004](https://github.com/earendil-works/pi/pull/6004 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:624 | [#6057](https://github.com/earendil-works/pi/issues/6057)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:625 | [#6122](https://github.com/earendil-works/pi/issues/6122)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:626 | [#6168](https://github.com/earendil-works/pi/issues/6168)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:631 | [#4945](https://github.com/earendil-works/pi/issues/4945)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:636 | [#6138](https://github.com/earendil-works/pi/issues/6138)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:637 | [#5832](https://github.com/earendil-works/pi/pull/5832 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:638 | [#5595](https://github.com/earendil-works/pi/issues/5595)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:639 | [#6009](https://github.com/earendil-works/pi/issues/6009)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:640 | [#6083](https://github.com/earendil-works/pi/issues/6083)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:641 | [#6074](https://github.com/earendil-works/pi/pull/6074 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:642 | [#6048](https://github.com/earendil-works/pi/pull/6048 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:643 | [#6030](https://github.com/earendil-works/pi/pull/6030 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:643 | [#6063](https://github.com/earendil-works/pi/pull/6063 | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:644 | [#6162](https://github.com/earendil-works/pi/issues/6162)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:645 | [#6133](https://github.com/earendil-works/pi/issues/6133)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:647 | [#6026](https://github.com/earendil-works/pi/pull/6026)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:648 | [#6002](https://github.com/earendil-works/pi/issues/6002)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:649 | [#6105](https://github.com/earendil-works/pi/issues/6105)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:650 | [#4290](https://github.com/earendil-works/pi/issues/4290)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:651 | [#6070](https://github.com/earendil-works/pi/issues/6070)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:652 | [#6047](https://github.com/earendil-works/pi/issues/6047)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:653 | [#6019](https://github.com/earendil-works/pi/issues/6019)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:665 | [#6021](https://github.com/earendil-works/pi/issues/6021)). | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:666 | [#6016](https://github.com/earendil-works/pi/issues/6016 | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:666 | [#6017](https://github.com/earendil-works/pi/issues/6017)). | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:667 | [#6020](https://github.com/earendil-works/pi/issues/6020)). | Immutable changelog | Released history: [0.80.2] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:682 | [#5965](https://github.com/earendil-works/pi/issues/5965)). | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:683 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:683 | @earendil-works/pi-ai/compat`. | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:683 | @earendil-works/pi-ai/compat | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:687 | [#5999](https://github.com/earendil-works/pi/pull/5999 | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:688 | [#5784](https://github.com/earendil-works/pi/pull/5784 | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:690 | [#5526](https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:691 | [#5973](https://github.com/earendil-works/pi/issues/5973)). | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:695 | [#5967](https://github.com/earendil-works/pi/issues/5967)). | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:697 | [#5953](https://github.com/earendil-works/pi/issues/5953)). | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:701 | @earendil-works/pi-ai/base | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:701 | @earendil-works/pi-agent-core/base | Immutable changelog | Released history: [0.80.0] - 2026-06-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:712 | [#5962](https://github.com/earendil-works/pi/pull/5962 | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:716 | [#5960](https://github.com/earendil-works/pi/issues/5960)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:717 | [#5959](https://github.com/earendil-works/pi/issues/5959)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:718 | [#5114](https://github.com/earendil-works/pi/issues/5114)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:719 | [#5957](https://github.com/earendil-works/pi/issues/5957)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:720 | [#5943](https://github.com/earendil-works/pi/issues/5943)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:721 | [#5940](https://github.com/earendil-works/pi/issues/5940)). | Immutable changelog | Released history: [0.79.10] - 2026-06-22 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:734 | [#5673](https://github.com/earendil-works/pi/issues/5673)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:738 | [#5923](https://github.com/earendil-works/pi/issues/5923)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:739 | [#5905](https://github.com/earendil-works/pi/issues/5905)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:740 | [#5909](https://github.com/earendil-works/pi/issues/5909)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:741 | [#5770](https://github.com/earendil-works/pi/issues/5770)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:742 | [#5846](https://github.com/earendil-works/pi/pull/5846 | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:743 | [#5899](https://github.com/earendil-works/pi/issues/5899)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:744 | [#5893](https://github.com/earendil-works/pi/issues/5893)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:745 | [#5897](https://github.com/earendil-works/pi/issues/5897)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:746 | [#5892](https://github.com/earendil-works/pi/issues/5892)). | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:752 | @earendil-works/pi-ai/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:752 | @earendil-works/pi-agent-core/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:759 | @earendil-works/pi-ai/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:759 | @earendil-works/pi-agent-core/base | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:759 | [#5348](https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:760 | [#5854](https://github.com/earendil-works/pi/issues/5854)). | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:761 | [#5877](https://github.com/earendil-works/pi/issues/5877)). | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:762 | [#5866](https://github.com/earendil-works/pi/pull/5866 | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:767 | [#4811](https://github.com/earendil-works/pi/issues/4811)). | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:768 | [#5720](https://github.com/earendil-works/pi/issues/5720)). | Immutable changelog | Released history: [0.79.8] - 2026-06-19 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:781 | [#5874](https://github.com/earendil-works/pi/pull/5874)). | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:782 | [#5841](https://github.com/earendil-works/pi/pull/5841 | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:783 | [#5869](https://github.com/earendil-works/pi/pull/5869 | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:784 | [#5756](https://github.com/earendil-works/pi/pull/5756 | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:794 | [#5868](https://github.com/earendil-works/pi/issues/5868)). | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:796 | [#5830](https://github.com/earendil-works/pi/issues/5830)). | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:815 | [#5798](https://github.com/earendil-works/pi/pull/5798 | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:817 | [#5790](https://github.com/earendil-works/pi/issues/5790)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:818 | [#5728](https://github.com/earendil-works/pi/issues/5728)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:826 | [#5819](https://github.com/earendil-works/pi/issues/5819)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:827 | [#5818](https://github.com/earendil-works/pi/issues/5818)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:829 | [#5789](https://github.com/earendil-works/pi/pull/5789 | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:830 | [#5770](https://github.com/earendil-works/pi/issues/5770)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:831 | [#5805](https://github.com/earendil-works/pi/issues/5805)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:832 | [#5761](https://github.com/earendil-works/pi/issues/5761)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:833 | [#5747](https://github.com/earendil-works/pi/issues/5747)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:834 | [#5760](https://github.com/earendil-works/pi/issues/5760)). | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:845 | [#5739](https://github.com/earendil-works/pi/issues/5739)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:846 | [#5385](https://github.com/earendil-works/pi/pull/5385 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:850 | [#5753](https://github.com/earendil-works/pi/pull/5753 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:851 | [#5055](https://github.com/earendil-works/pi/issues/5055)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:852 | [#5724](https://github.com/earendil-works/pi/issues/5724)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:853 | [#5729](https://github.com/earendil-works/pi/issues/5729)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:854 | [#5708](https://github.com/earendil-works/pi/pull/5708 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:855 | [#5687](https://github.com/earendil-works/pi/issues/5687)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:856 | [#5689](https://github.com/earendil-works/pi/issues/5689)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:857 | [#5695](https://github.com/earendil-works/pi/issues/5695)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:858 | [#5738](https://github.com/earendil-works/pi/pull/5738 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:859 | [#4637](https://github.com/earendil-works/pi/issues/4637)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:860 | [#5702](https://github.com/earendil-works/pi/issues/5702)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:861 | [#5297](https://github.com/earendil-works/pi/issues/5297)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:862 | [#5618](https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:862 | [#4415](https://github.com/earendil-works/pi/issues/4415)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:863 | [#5661](https://github.com/earendil-works/pi/issues/5661)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:879 | [#5587](https://github.com/earendil-works/pi/pull/5587 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:880 | [#5561](https://github.com/earendil-works/pi/pull/5561 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:884 | [#5619](https://github.com/earendil-works/pi/issues/5619)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:885 | [#5627](https://github.com/earendil-works/pi/pull/5627 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:886 | [#5677](https://github.com/earendil-works/pi/issues/5677)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:887 | [#5644](https://github.com/earendil-works/pi/issues/5644)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:888 | [#5666](https://github.com/earendil-works/pi/pull/5666 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:889 | [#4945](https://github.com/earendil-works/pi/issues/4945)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:890 | [#5567](https://github.com/earendil-works/pi/pull/5567 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:891 | [#5573](https://github.com/earendil-works/pi/issues/5573)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:892 | [#5657](https://github.com/earendil-works/pi/issues/5657)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:894 | [#5618](https://github.com/earendil-works/pi/issues/5618)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:895 | [#5585](https://github.com/earendil-works/pi/pull/5585 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:896 | [#5562](https://github.com/earendil-works/pi/pull/5562 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:897 | [#5643](https://github.com/earendil-works/pi/issues/5643)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:898 | [#5669](https://github.com/earendil-works/pi/issues/5669)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:899 | [#5596](https://github.com/earendil-works/pi/issues/5596)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:900 | [#5560](https://github.com/earendil-works/pi/pull/5560 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:913 | [#5553](https://github.com/earendil-works/pi/pull/5553 | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:914 | [#5547](https://github.com/earendil-works/pi/pull/5547 | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:915 | [#5523](https://github.com/earendil-works/pi/issues/5523)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:917 | [#4703](https://github.com/earendil-works/pi/issues/4703)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:918 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:922 | [#5527](https://github.com/earendil-works/pi/pull/5527 | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:923 | [#5283](https://github.com/earendil-works/pi/pull/5283 | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:924 | [#5330](https://github.com/earendil-works/pi/issues/5330)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:925 | [#5331](https://github.com/earendil-works/pi/issues/5331)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:926 | [#5531](https://github.com/earendil-works/pi/issues/5531)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:927 | [#5530](https://github.com/earendil-works/pi/issues/5530)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:928 | [#5559](https://github.com/earendil-works/pi/issues/5559)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:929 | [#5559](https://github.com/earendil-works/pi/issues/5559)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:930 | [#5494](https://github.com/earendil-works/pi/issues/5494)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:931 | [#5495](https://github.com/earendil-works/pi/issues/5495)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:932 | [#5433](https://github.com/earendil-works/pi/issues/5433)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:933 | [#5377](https://github.com/earendil-works/pi/issues/5377)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:934 | [#5418](https://github.com/earendil-works/pi/issues/5418)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:935 | [#5516](https://github.com/earendil-works/pi/issues/5516)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:937 | [#5045](https://github.com/earendil-works/pi/issues/5045)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:938 | [#4841](https://github.com/earendil-works/pi/issues/4841)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:952 | [#5332](https://github.com/earendil-works/pi/pull/5332)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:954 | [#5455](https://github.com/earendil-works/pi/issues/5455)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:955 | [#5415](https://github.com/earendil-works/pi/issues/5415)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:961 | [#5499](https://github.com/earendil-works/pi/pull/5499 | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:964 | [#5188](https://github.com/earendil-works/pi/issues/5188)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:965 | [#5401](https://github.com/earendil-works/pi/issues/5401)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:966 | [#5456](https://github.com/earendil-works/pi/issues/5456)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:967 | [#5454](https://github.com/earendil-works/pi/issues/5454)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:968 | [#5432](https://github.com/earendil-works/pi/issues/5432)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:969 | [#5347](https://github.com/earendil-works/pi/issues/5347)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:970 | [#5359](https://github.com/earendil-works/pi/issues/5359)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:971 | [#5371](https://github.com/earendil-works/pi/pull/5371 | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:984 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:984 | [#5313](https://github.com/earendil-works/pi/issues/5313)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:987 | [#5306](https://github.com/earendil-works/pi/pull/5306 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:994 | [#5226](https://github.com/earendil-works/pi/issues/5226)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:995 | [#5294](https://github.com/earendil-works/pi/issues/5294)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:996 | [#4975](https://github.com/earendil-works/pi/issues/4975)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:997 | [#5251](https://github.com/earendil-works/pi/pull/5251 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:998 | [#5243](https://github.com/earendil-works/pi/issues/5243)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:999 | [#5309](https://github.com/earendil-works/pi/issues/5309)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1000 | [#5221](https://github.com/earendil-works/pi/pull/5221 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1001 | [#5235](https://github.com/earendil-works/pi/pull/5235 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1002 | [#5218](https://github.com/earendil-works/pi/issues/5218)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1003 | [#5231](https://github.com/earendil-works/pi/issues/5231)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1004 | [#5264](https://github.com/earendil-works/pi/pull/5264 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1005 | [#5299](https://github.com/earendil-works/pi/issues/5299)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1017 | [#5167](https://github.com/earendil-works/pi-mono/pull/5167 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1018 | [#5202](https://github.com/earendil-works/pi-mono/pull/5202 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1019 | [#5153](https://github.com/earendil-works/pi-mono/issues/5153)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1020 | [#5176](https://github.com/earendil-works/pi-mono/pull/5176 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1021 | [#5189](https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1022 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1022 | [#5178](https://github.com/earendil-works/pi-mono/pull/5178 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1026 | [#5200](https://github.com/earendil-works/pi-mono/issues/5200)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1027 | [#5201](https://github.com/earendil-works/pi-mono/issues/5201)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1028 | [#5184](https://github.com/earendil-works/pi-mono/issues/5184)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1029 | [#5195](https://github.com/earendil-works/pi-mono/pull/5195 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1030 | [#5159](https://github.com/earendil-works/pi-mono/issues/5159)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1031 | [#5169](https://github.com/earendil-works/pi-mono/issues/5169)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1034 | [#5189](https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1035 | [#5185](https://github.com/earendil-works/pi-mono/issues/5185)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1048 | [#5109](https://github.com/earendil-works/pi/issues/5109)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1049 | [#4911](https://github.com/earendil-works/pi/pull/4911 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1050 | [#5107](https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1055 | [#4829](https://github.com/earendil-works/pi/issues/4829)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1056 | [#4801](https://github.com/earendil-works/pi/issues/4801)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1058 | [#5080](https://github.com/earendil-works/pi/issues/5080)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1059 | [#5091](https://github.com/earendil-works/pi/pull/5091 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1060 | [#5028](https://github.com/earendil-works/pi/issues/5028)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1061 | [#5095](https://github.com/earendil-works/pi/issues/5095)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1062 | [#5029](https://github.com/earendil-works/pi/pull/5029 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1063 | [#4879](https://github.com/earendil-works/pi/issues/4879)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1064 | [#5148](https://github.com/earendil-works/pi/issues/5148)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1065 | [#4464](https://github.com/earendil-works/pi/issues/4464)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1067 | [#5078](https://github.com/earendil-works/pi/issues/5078)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1068 | [#5075](https://github.com/earendil-works/pi/issues/5075)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1069 | [#5115](https://github.com/earendil-works/pi/pull/5115 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1070 | [#5107](https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1071 | [#5132](https://github.com/earendil-works/pi/issues/5132)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1072 | [#5092](https://github.com/earendil-works/pi/issues/5092)). | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1085 | [#4874](https://github.com/earendil-works/pi/issues/4874)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1086 | [#5039](https://github.com/earendil-works/pi/issues/5039)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1090 | [#5013](https://github.com/earendil-works/pi/issues/5013)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1091 | [#4929](https://github.com/earendil-works/pi/issues/4929)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1092 | [#4983](https://github.com/earendil-works/pi/issues/4983)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1093 | [#4945](https://github.com/earendil-works/pi/issues/4945)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1094 | [#4764](https://github.com/earendil-works/pi/issues/4764)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1095 | [#4907](https://github.com/earendil-works/pi/issues/4907)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1096 | [#4897](https://github.com/earendil-works/pi/issues/4897)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1097 | [#4967](https://github.com/earendil-works/pi/issues/4967)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1098 | [#4969](https://github.com/earendil-works/pi/issues/4969)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1099 | [#4943](https://github.com/earendil-works/pi/issues/4943)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1100 | [#4991](https://github.com/earendil-works/pi-mono/pull/4991 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1102 | [#4923](https://github.com/earendil-works/pi/issues/4923)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1103 | [#5037](https://github.com/earendil-works/pi-mono/pull/5037 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1104 | [#5022](https://github.com/earendil-works/pi-mono/pull/5022 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1104 | [#5067](https://github.com/earendil-works/pi-mono/pull/5067 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1104 | [#5068](https://github.com/earendil-works/pi-mono/pull/5068 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1105 | [#5041](https://github.com/earendil-works/pi/issues/5041)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1118 | [#4797](https://github.com/earendil-works/pi-mono/pull/4797 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1119 | [#4821](https://github.com/earendil-works/pi/issues/4821)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1124 | [#4916](https://github.com/earendil-works/pi/issues/4916)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1125 | [#4480](https://github.com/earendil-works/pi/issues/4480)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1126 | [#4868](https://github.com/earendil-works/pi/issues/4868)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1130 | [#4869](https://github.com/earendil-works/pi/issues/4869)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1131 | [#4873](https://github.com/earendil-works/pi-mono/pull/4873 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1132 | [#4898](https://github.com/earendil-works/pi-mono/pull/4898 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1133 | [#4830](https://github.com/earendil-works/pi-mono/pull/4830 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1134 | [#4847](https://github.com/earendil-works/pi/issues/4847)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1135 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1135 | [#4842](https://github.com/earendil-works/pi/issues/4842)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1136 | [#4848](https://github.com/earendil-works/pi/issues/4848)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1137 | [#4832](https://github.com/earendil-works/pi/issues/4832)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1138 | [#4788](https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1139 | [#4870](https://github.com/earendil-works/pi/issues/4870)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1140 | [#4876](https://github.com/earendil-works/pi/issues/4876)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1141 | [#4819](https://github.com/earendil-works/pi/issues/4819)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1142 | [#4818](https://github.com/earendil-works/pi/issues/4818)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1143 | [#4878](https://github.com/earendil-works/pi/issues/4878)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1144 | [#4307](https://github.com/earendil-works/pi/issues/4307)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1145 | [#4756](https://github.com/earendil-works/pi-mono/pull/4756 | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1155 | [#4724](https://github.com/earendil-works/pi-mono/pull/4724 | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1156 | [#4775](https://github.com/earendil-works/pi-mono/pull/4775 | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1168 | [#4752](https://github.com/earendil-works/pi/issues/4752)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1169 | [#4276](https://github.com/earendil-works/pi/issues/4276)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1171 | [#4799](https://github.com/earendil-works/pi-mono/pull/4799 | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1172 | [#4710](https://github.com/earendil-works/pi/issues/4710)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1173 | [#4699](https://github.com/earendil-works/pi/issues/4699)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1174 | [#4763](https://github.com/earendil-works/pi/issues/4763)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1175 | [#4759](https://github.com/earendil-works/pi-mono/pull/4759 | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1176 | [#4709](https://github.com/earendil-works/pi-mono/pull/4709 | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1177 | [#4664](https://github.com/earendil-works/pi-mono/pull/4664 | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1180 | @earendil-works/pi-tui | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1181 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1181 | [#4675](https://github.com/earendil-works/pi/issues/4675)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1182 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1182 | [#4720](https://github.com/earendil-works/pi/issues/4720)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1183 | [#4793](https://github.com/earendil-works/pi/issues/4793)). | Immutable changelog | Released history: [0.75.4] - 2026-05-20 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1189 | [#4681](https://github.com/earendil-works/pi/issues/4681)). | Immutable changelog | Released history: [0.75.3] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1195 | [#4661](https://github.com/earendil-works/pi-mono/pull/4661 | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1196 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1196 | [#4678](https://github.com/earendil-works/pi/issues/4678)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1197 | [#4612](https://github.com/earendil-works/pi/issues/4612)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1198 | [#4157](https://github.com/earendil-works/pi/issues/4157)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1199 | [#4647](https://github.com/earendil-works/pi/issues/4647)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1200 | [#4157](https://github.com/earendil-works/pi/issues/4157)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1201 | [#4665](https://github.com/earendil-works/pi/issues/4665)). | Immutable changelog | Released history: [0.75.2] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1207 | [#4243](https://github.com/earendil-works/pi-mono/pull/4243 | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1208 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1208 | [#4342](https://github.com/earendil-works/pi/issues/4342)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1209 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1209 | [#4223](https://github.com/earendil-works/pi/issues/4223)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1210 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1210 | [#4232](https://github.com/earendil-works/pi/issues/4232)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1211 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1211 | [#4251](https://github.com/earendil-works/pi/issues/4251)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1212 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1212 | [#4505](https://github.com/earendil-works/pi/issues/4505)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1213 | [#4650](https://github.com/earendil-works/pi/issues/4650 | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1213 | [#4652](https://github.com/earendil-works/pi/issues/4652 | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1213 | [#4653](https://github.com/earendil-works/pi/issues/4653)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1214 | [#4623](https://github.com/earendil-works/pi/issues/4623)). | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1218 | @earendil-works/pi-ai`. | Immutable changelog | Released history: [0.75.1] - 2026-05-18 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1228 | [#4484](https://github.com/earendil-works/pi/issues/4484)). | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1229 | [#4541](https://github.com/earendil-works/pi-mono/pull/4541 | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1230 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1230 | [#4603](https://github.com/earendil-works/pi-mono/pull/4603 | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1231 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1231 | [#4622](https://github.com/earendil-works/pi-mono/pull/4622 | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1232 | [#4587](https://github.com/earendil-works/pi/issues/4587)). | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1233 | [#4619](https://github.com/earendil-works/pi/issues/4619)). | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1234 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1234 | [#4614](https://github.com/earendil-works/pi/issues/4614)). | Immutable changelog | Released history: [0.75.0] - 2026-05-17 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1240 | @earendil-works/pi-ai`. | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1243 | @earendil-works/pi-tui`. | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1247 | @earendil-works/pi-ai | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1247 | [#3887](https://github.com/earendil-works/pi-mono/pull/3887 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1248 | [#3624](https://github.com/earendil-works/pi-mono/pull/3624 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1249 | [#4458](https://github.com/earendil-works/pi/pull/4458 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1253 | [#4519](https://github.com/earendil-works/pi/issues/4519)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1255 | [#4492](https://github.com/earendil-works/pi/issues/4492)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1256 | [#4508](https://github.com/earendil-works/pi/issues/4508)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1258 | [#4559](https://github.com/earendil-works/pi/issues/4559)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1259 | [#4534](https://github.com/earendil-works/pi/issues/4534)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1260 | [#4553](https://github.com/earendil-works/pi/issues/4553)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1261 | [#4583](https://github.com/earendil-works/pi/issues/4583)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1262 | [#4510](https://github.com/earendil-works/pi/issues/4510)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1264 | [#4503](https://github.com/earendil-works/pi/issues/4503)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1265 | [#4429](https://github.com/earendil-works/pi/issues/4429)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1266 | [#4433](https://github.com/earendil-works/pi/issues/4433)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1268 | [#4426](https://github.com/earendil-works/pi-mono/pull/4426 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1271 | @earendil-works/pi-ai`. | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1272 | @earendil-works/pi-tui`. | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1273 | [#4333](https://github.com/earendil-works/pi/issues/4333)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1274 | [#4289](https://github.com/earendil-works/pi/issues/4289)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1275 | [#4280](https://github.com/earendil-works/pi/issues/4280)). | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1281 | earendil-works/pi-mono | Immutable changelog | Released history: [0.74.0] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1281 | @earendil-works/* | Immutable changelog | Released history: [0.74.0] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1287 | @earendil-works/pi-coding-agent`. | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1293 | [#4190](https://github.com/earendil-works/pi-mono/pull/4190 | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1298 | [#4244](https://github.com/earendil-works/pi-mono/pull/4244 | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1299 | [#4162](https://github.com/earendil-works/pi-mono/pull/4162 | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1306 | [#4234](https://github.com/earendil-works/pi-mono/pull/4234 | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1309 | [#4184](https://github.com/earendil-works/pi-mono/issues/4184)). | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1310 | [#4218](https://github.com/earendil-works/pi-mono/issues/4218)). | Immutable changelog | Released history: [0.73.1] - 2026-05-07 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1903 | Earendil | Immutable changelog | Released history: [0.66.1] - 2026-04-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1909 | Earendil | Immutable changelog | Released history: [0.66.0] - 2026-04-08 | Never rewrite released records | +| packages/coding-agent/CHANGELOG.md:1916 | Earendil | Immutable changelog | Released history: [0.66.0] - 2026-04-08 | Never rewrite released records | +| packages/coding-agent/docs/containerization.md:21 | [Gondolin](https://github.com/earendil-works/gondolin | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/docs/containerization.md:43 | @earendil-works/gondolin | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/index.ts:18 | @earendil-works/gondolin | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/index.ts:45 | @earendil-works/gondolin | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:11 | @earendil-works/gondolin": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:23 | node_modules/@earendil-works/gondolin": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:25 | https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:41 | @earendil-works/gondolin-krun-runner-darwin-arm64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:42 | @earendil-works/gondolin-krun-runner-linux-x64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:45 | node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:47 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:61 | node_modules/@earendil-works/gondolin-krun-runner-linux-x64": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package-lock.json:63 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/examples/extensions/gondolin/package.json:17 | @earendil-works/gondolin": | External dependency | Published third-party Gondolin identity; not a Diffex-owned package | Remove only when the dependency is intentionally replaced | +| packages/coding-agent/src/core/tools/find.ts:240 | https://github.com/earendil-works/pi/issues/5960 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/src/migrations.ts:81 | https://github.com/earendil-works/pi-mono/issues/320 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/src/utils/changelog.ts:14 | /^https:\/\/github\.com\/(?:badlogic|earendil-works)\/pi-mono(?=\/|$)/ | Supported migration behavior | Matches old repository links for canonical display normalization | Maintainers remove only when legacy-link normalization is retired | +| packages/coding-agent/src/utils/child-process.ts:44 | earendil-works/pi#5303). | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/changelog.test.ts:37 | [#5167](https://github.com/earendil-works/pi-mono/pull/5167 | Supported migration behavior | Matches old repository links for canonical display normalization | Maintainers remove only when legacy-link normalization is retired | +| packages/coding-agent/test/suite/regressions/2791-fswatch-error-crash.test.ts:8 | https://github.com/earendil-works/pi-mono/issues/2791 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/3302-find-path-glob.test.ts:8 | https://github.com/earendil-works/pi-mono/issues/3302 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/3303-find-nested-gitignore.test.ts:8 | https://github.com/earendil-works/pi-mono/issues/3303 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/5080-signal-shutdown-extension-cleanup.test.ts:10 | https://github.com/earendil-works/pi/issues/5080 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/5303-bash-output-truncation.test.ts:8 | https://github.com/earendil-works/pi/issues/5303 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/5724-sigterm-signal-exit.test.ts:4 | https://github.com/earendil-works/pi/issues/5724 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/5868-rpc-unknown-command-id.test.ts:6 | https://github.com/earendil-works/pi/issues/5868 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/coding-agent/test/suite/regressions/6104-find-root-relativization.test.ts:6 | https://github.com/earendil-works/pi/issues/6104 | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/protocol/CHANGELOG.md:10 | [#7708](https://github.com/earendil-works/pi/pull/7708)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/protocol/CHANGELOG.md:15 | [#7644](https://github.com/earendil-works/pi/pull/7644)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/server/CHANGELOG.md:10 | [#7708](https://github.com/earendil-works/pi/pull/7708)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/server/CHANGELOG.md:15 | [#7644](https://github.com/earendil-works/pi/pull/7644)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/server/CHANGELOG.md:29 | [#6898](https://github.com/earendil-works/pi/pull/6898 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/session-backends/sqlite-node/CHANGELOG.md:13 | @earendil-works/pi-storage-sqlite-node | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/session-backends/sqlite-node/CHANGELOG.md:13 | @earendil-works/pi-session-backend-sqlite-node`. | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/session-backends/sqlite-node/CHANGELOG.md:22 | [#7655](https://github.com/earendil-works/pi/pull/7655)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/session-backends/sqlite-node/CHANGELOG.md:36 | [#6594](https://github.com/earendil-works/pi/pull/6594 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/tui/CHANGELOG.md:7 | [#7735](https://github.com/earendil-works/pi/issues/7735)). | Upstream history | Inherited upstream release record and provenance | Retain accurate historical facts | +| packages/tui/CHANGELOG.md:8 | [#7725](https://github.com/earendil-works/pi/issues/7725)). | Upstream history | Inherited upstream release record and provenance | Retain accurate historical facts | +| packages/tui/CHANGELOG.md:25 | [#7304](https://github.com/earendil-works/pi/issues/7304)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:31 | [#7361](https://github.com/earendil-works/pi/pull/7361)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:43 | [#6987](https://github.com/earendil-works/pi/pull/6987 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:48 | [#7574](https://github.com/earendil-works/pi/issues/7574)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:51 | [#7550](https://github.com/earendil-works/pi/pull/7550)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:52 | [#7581](https://github.com/earendil-works/pi/pull/7581)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:53 | [#7612](https://github.com/earendil-works/pi/pull/7612)). | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:54 | [#7657](https://github.com/earendil-works/pi/pull/7657 | Immutable changelog | Released history: [0.84.0] - 2026-08-06 | Never rewrite released records | +| packages/tui/CHANGELOG.md:60 | [#7262](https://github.com/earendil-works/pi/pull/7262)). | Immutable changelog | Released history: [0.83.0] - 2026-07-29 | Never rewrite released records | +| packages/tui/CHANGELOG.md:68 | [#6958](https://github.com/earendil-works/pi/pull/6958 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/tui/CHANGELOG.md:69 | [#7015](https://github.com/earendil-works/pi/pull/7015 | Immutable changelog | Released history: [0.82.0] - 2026-07-24 | Never rewrite released records | +| packages/tui/CHANGELOG.md:77 | [#6790](https://github.com/earendil-works/pi/pull/6790 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/tui/CHANGELOG.md:78 | [#6764](https://github.com/earendil-works/pi/pull/6764 | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/tui/CHANGELOG.md:79 | [#6844](https://github.com/earendil-works/pi/issues/6844)). | Immutable changelog | Released history: [0.81.0] - 2026-07-21 | Never rewrite released records | +| packages/tui/CHANGELOG.md:89 | [#6697](https://github.com/earendil-works/pi-mono/pull/6697 | Immutable changelog | Released history: [0.80.8] - 2026-07-16 | Never rewrite released records | +| packages/tui/CHANGELOG.md:95 | [#6523](https://github.com/earendil-works/pi-mono/pull/6523 | Immutable changelog | Released history: [0.80.7] - 2026-07-14 | Never rewrite released records | +| packages/tui/CHANGELOG.md:105 | [#6397](https://github.com/earendil-works/pi/pull/6397 | Immutable changelog | Released history: [0.80.4] - 2026-07-09 | Never rewrite released records | +| packages/tui/CHANGELOG.md:111 | [#6105](https://github.com/earendil-works/pi/issues/6105)). | Immutable changelog | Released history: [0.80.3] - 2026-06-30 | Never rewrite released records | +| packages/tui/CHANGELOG.md:129 | [#5846](https://github.com/earendil-works/pi/pull/5846 | Immutable changelog | Released history: [0.79.9] - 2026-06-20 | Never rewrite released records | +| packages/tui/CHANGELOG.md:137 | [#5874](https://github.com/earendil-works/pi/pull/5874)). | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/tui/CHANGELOG.md:138 | [#5841](https://github.com/earendil-works/pi/pull/5841 | Immutable changelog | Released history: [0.79.7] - 2026-06-18 | Never rewrite released records | +| packages/tui/CHANGELOG.md:151 | [#5789](https://github.com/earendil-works/pi/pull/5789 | Immutable changelog | Released history: [0.79.5] - 2026-06-16 | Never rewrite released records | +| packages/tui/CHANGELOG.md:157 | [#5385](https://github.com/earendil-works/pi/pull/5385 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/tui/CHANGELOG.md:161 | [#5297](https://github.com/earendil-works/pi/issues/5297)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/tui/CHANGELOG.md:162 | [#5618](https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/tui/CHANGELOG.md:162 | [#4415](https://github.com/earendil-works/pi/issues/4415)). | Immutable changelog | Released history: [0.79.4] - 2026-06-15 | Never rewrite released records | +| packages/tui/CHANGELOG.md:170 | [#5657](https://github.com/earendil-works/pi/issues/5657)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/tui/CHANGELOG.md:172 | [#5618](https://github.com/earendil-works/pi/issues/5618)). | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/tui/CHANGELOG.md:173 | [#5585](https://github.com/earendil-works/pi/pull/5585 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/tui/CHANGELOG.md:174 | [#5562](https://github.com/earendil-works/pi/pull/5562 | Immutable changelog | Released history: [0.79.2] - 2026-06-12 | Never rewrite released records | +| packages/tui/CHANGELOG.md:180 | [#4703](https://github.com/earendil-works/pi/issues/4703)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/tui/CHANGELOG.md:184 | [#5283](https://github.com/earendil-works/pi/pull/5283 | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/tui/CHANGELOG.md:185 | [#5494](https://github.com/earendil-works/pi/issues/5494)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/tui/CHANGELOG.md:186 | [#5495](https://github.com/earendil-works/pi/issues/5495)). | Immutable changelog | Released history: [0.79.1] - 2026-06-09 | Never rewrite released records | +| packages/tui/CHANGELOG.md:192 | [#5454](https://github.com/earendil-works/pi/issues/5454)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/tui/CHANGELOG.md:193 | [#5188](https://github.com/earendil-works/pi/issues/5188)). | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/tui/CHANGELOG.md:195 | [#5499](https://github.com/earendil-works/pi/pull/5499 | Immutable changelog | Released history: [0.79.0] - 2026-06-08 | Never rewrite released records | +| packages/tui/CHANGELOG.md:201 | [#5235](https://github.com/earendil-works/pi/pull/5235 | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/tui/CHANGELOG.md:202 | [#5218](https://github.com/earendil-works/pi/issues/5218)). | Immutable changelog | Released history: [0.78.1] - 2026-06-04 | Never rewrite released records | +| packages/tui/CHANGELOG.md:208 | [#5185](https://github.com/earendil-works/pi-mono/issues/5185)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/tui/CHANGELOG.md:209 | [#5200](https://github.com/earendil-works/pi-mono/issues/5200)). | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/tui/CHANGELOG.md:210 | [#5189](https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Released history: [0.78.0] - 2026-05-29 | Never rewrite released records | +| packages/tui/CHANGELOG.md:216 | [#5091](https://github.com/earendil-works/pi/pull/5091 | Immutable changelog | Released history: [0.77.0] - 2026-05-28 | Never rewrite released records | +| packages/tui/CHANGELOG.md:222 | [#5013](https://github.com/earendil-works/pi/issues/5013)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/tui/CHANGELOG.md:227 | [#4923](https://github.com/earendil-works/pi/issues/4923)). | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/tui/CHANGELOG.md:228 | [#5037](https://github.com/earendil-works/pi-mono/pull/5037 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/tui/CHANGELOG.md:229 | [#5022](https://github.com/earendil-works/pi-mono/pull/5022 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/tui/CHANGELOG.md:229 | [#5067](https://github.com/earendil-works/pi-mono/pull/5067 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/tui/CHANGELOG.md:229 | [#5068](https://github.com/earendil-works/pi-mono/pull/5068 | Immutable changelog | Released history: [0.76.0] - 2026-05-27 | Never rewrite released records | +| packages/tui/CHANGELOG.md:235 | [#4480](https://github.com/earendil-works/pi/issues/4480)). | Immutable changelog | Released history: [0.75.5] - 2026-05-23 | Never rewrite released records | +| packages/tui/CHANGELOG.md:264 | [#4327](https://github.com/earendil-works/pi-mono/pull/4327 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/tui/CHANGELOG.md:268 | [#4379](https://github.com/earendil-works/pi-mono/pull/4379 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/tui/CHANGELOG.md:269 | [#4463](https://github.com/earendil-works/pi-mono/pull/4463 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/tui/CHANGELOG.md:270 | [#4461](https://github.com/earendil-works/pi-mono/pull/4461 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/tui/CHANGELOG.md:271 | [#4482](https://github.com/earendil-works/pi-mono/pull/4482 | Immutable changelog | Released history: [0.74.1] - 2026-05-16 | Never rewrite released records | +| packages/tui/src/components/markdown.ts:162 | https://github.com/earendil-works/pi/issues/5825. | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| packages/tui/test/editor.test.ts:2310 | earendil-works/pi#5496: | Upstream history | Original upstream source or issue provenance | Retain while the referenced upstream history remains relevant | +| scripts/release-notes.mjs:12 | /^https:\/\/github\.com\/(?:badlogic|earendil-works)\/pi-mono(?=\/|$)/ | Supported migration behavior | Matches old repository links for canonical display normalization | Maintainers remove only when legacy-link normalization is retired | + +## Unresolved active occurrences + +| Exact path and line | Exact string | Classification | Required action | Retirement condition | +|---|---|---|---|---| + +None outside the exact owner-approved skips above. + +## Artifact verification + +All eleven local npm tarballs were scanned for stale active product package names, excluding historical changelogs; no matches were found. +Source archive, generated declarations, and the macOS standalone archive passed active-package identity scans. +The exact residual records below distinguish retained history and dependencies from unresolved active branding. +Docker image inspection is unavailable because no local Docker daemon is running. + +## Exact artifact occurrences + +Artifacts were built from the source revision above. +Byte offsets identify exact occurrences without relying on generated line wrapping. +The source archive includes the preceding audit and handoff; those two exact descriptive documents are excluded to avoid recursively auditing previous audit output. +Rows marked unresolved are blocking findings, not allowlist exceptions. + +| Artifact, member, and byte offset | Exact string | Classification | Rationale and retirement condition | +|---|---|---|---| +| diffexai-diffex-0.2.0.tgz!package/dist/utils/changelog.js@byte-287 | earendil-works | Supported migration behavior | Legacy repository matcher; maintainers retire with legacy-link normalization | +| diffexai-diffex-0.2.0.tgz!package/dist/utils/child-process.js@byte-879 | earendil-works/pi#5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/core/tools/find.js@byte-9344 | https://github.com/earendil-works/pi/issues/5960 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/migrations.js@byte-2912 | https://github.com/earendil-works/pi-mono/issues/320 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-215 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-576 | node_modules/@earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-658 | https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-1138 | @earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-1205 | @earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-1276 | node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-1383 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-1813 | node_modules/@earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package-lock.json@byte-1917 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/package.json@byte-306 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/dist/utils/changelog.d.ts.map@byte-1529 | earendil-works | Supported migration behavior | Legacy repository matcher; maintainers retire with legacy-link normalization | +| diffexai-diffex-0.2.0.tgz!package/dist/utils/changelog.js.map@byte-9908 | earendil-works | Supported migration behavior | Legacy repository matcher; maintainers retire with legacy-link normalization | +| diffexai-diffex-0.2.0.tgz!package/dist/utils/child-process.d.ts.map@byte-2459 | earendil-works/pi#5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/utils/child-process.js.map@byte-5033 | earendil-works/pi#5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/core/tools/find.d.ts.map@byte-11427 | https://github.com/earendil-works/pi/issues/5960\n\t\t\t\t\t\tlet | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/core/tools/find.js.map@byte-22811 | https://github.com/earendil-works/pi/issues/5960\n\t\t\t\t\t\tlet | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/migrations.d.ts.map@byte-3321 | https://github.com/earendil-works/pi-mono/issues/320\n | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/dist/migrations.js.map@byte-11595 | https://github.com/earendil-works/pi-mono/issues/320\n | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-407 | https://github.com/earendil-works/pi/issues/7152 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-1659 | https://github.com/earendil-works/pi/issues/7128 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-2379 | https://github.com/earendil-works/pi/issues/7731 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-4189 | https://github.com/earendil-works/pi/issues/7290 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-4626 | https://github.com/earendil-works/pi/issues/7030 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-8452 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-8808 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-9120 | @earendil-works/pi-coding-agent/client | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-9304 | https://github.com/earendil-works/pi/pull/7344 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-9361 | https://github.com/earendil-works/pi/pull/7348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-9418 | https://github.com/earendil-works/pi/pull/7371 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-9475 | https://github.com/earendil-works/pi/pull/7409 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-9891 | https://github.com/earendil-works/pi/pull/7231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-10087 | https://github.com/earendil-works/pi/issues/7304 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-10937 | https://github.com/earendil-works/pi/pull/7624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-11414 | https://github.com/earendil-works/pi/pull/7681 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-11669 | https://github.com/earendil-works/pi/pull/7493 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-12209 | https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-12449 | https://github.com/earendil-works/pi/pull/7638 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-12985 | https://github.com/earendil-works/pi/pull/7339 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-13459 | https://github.com/earendil-works/pi/pull/7286 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-13784 | https://github.com/earendil-works/pi/pull/7367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-13978 | https://github.com/earendil-works/pi/pull/7611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-14188 | https://github.com/earendil-works/pi/pull/7448 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-14245 | https://github.com/earendil-works/pi/pull/7646 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-14924 | https://github.com/earendil-works/pi/issues/7684 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-15238 | https://github.com/earendil-works/pi/issues/7508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-15496 | https://github.com/earendil-works/pi/issues/7328 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-15753 | https://github.com/earendil-works/pi/issues/7676 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-16117 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-16291 | https://github.com/earendil-works/pi/issues/6817 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-16615 | https://github.com/earendil-works/pi/issues/7064 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-16674 | https://github.com/earendil-works/pi/issues/7547 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-16840 | https://github.com/earendil-works/pi/issues/7572 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-16987 | https://github.com/earendil-works/pi/issues/7560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-17313 | https://github.com/earendil-works/pi/issues/7327 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-17515 | https://github.com/earendil-works/pi/pull/7390 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-18264 | https://github.com/earendil-works/pi/issues/7333 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-18405 | https://github.com/earendil-works/pi/issues/7187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-18709 | https://github.com/earendil-works/pi/issues/7292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-18966 | https://github.com/earendil-works/pi/pull/7325 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-19190 | https://github.com/earendil-works/pi/issues/7319 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-19437 | https://github.com/earendil-works/pi/issues/7316 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-19593 | https://github.com/earendil-works/pi/issues/7301 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-19652 | https://github.com/earendil-works/pi/pull/7421 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-20013 | https://github.com/earendil-works/pi/issues/7027 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-20072 | https://github.com/earendil-works/pi/issues/7113 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-20131 | https://github.com/earendil-works/pi/issues/7418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-20327 | https://github.com/earendil-works/pi/issues/7153 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-20477 | https://github.com/earendil-works/pi/issues/7443 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-21395 | https://github.com/earendil-works/pi/issues/6768 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-21646 | https://github.com/earendil-works/pi/issues/7579 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-21865 | https://github.com/earendil-works/pi/issues/7574 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-22003 | https://github.com/earendil-works/pi/pull/7656 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-22205 | https://github.com/earendil-works/pi/pull/7387 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-22369 | https://github.com/earendil-works/pi/pull/7435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-22626 | https://github.com/earendil-works/pi/pull/7330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-22809 | https://github.com/earendil-works/pi/pull/7552 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-22972 | https://github.com/earendil-works/pi/pull/7370 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-23194 | https://github.com/earendil-works/pi/pull/7540 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-23419 | https://github.com/earendil-works/pi/pull/7570 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-23656 | https://github.com/earendil-works/pi/pull/7569 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-23870 | https://github.com/earendil-works/pi/pull/7632 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-24254 | https://github.com/earendil-works/pi/pull/7205 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-24469 | https://github.com/earendil-works/pi/pull/7358 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-24685 | https://github.com/earendil-works/pi/pull/7362 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-24917 | https://github.com/earendil-works/pi/pull/7364 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-25083 | https://github.com/earendil-works/pi/pull/7471 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-25302 | https://github.com/earendil-works/pi/pull/7494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-25495 | https://github.com/earendil-works/pi/pull/7672 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-25690 | https://github.com/earendil-works/pi/pull/7670 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-25880 | https://github.com/earendil-works/pi/pull/6987 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-26158 | https://github.com/earendil-works/pi/pull/7550 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-26300 | https://github.com/earendil-works/pi/pull/7581 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-26463 | https://github.com/earendil-works/pi/pull/7612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-26595 | https://github.com/earendil-works/pi/pull/7657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-26938 | https://github.com/earendil-works/pi/issues/7199 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-26997 | https://github.com/earendil-works/pi/pull/7230 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-28969 | https://github.com/earendil-works/pi/pull/7243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-29290 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-29537 | https://github.com/earendil-works/pi/pull/7191 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-29636 | https://github.com/earendil-works/pi/pull/7215 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-29948 | https://github.com/earendil-works/pi/pull/7151 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-30257 | https://github.com/earendil-works/pi/pull/7272 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-30478 | https://github.com/earendil-works/pi/pull/7114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-30741 | https://github.com/earendil-works/pi/pull/7158 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-31024 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-31159 | https://github.com/earendil-works/pi/issues/7180 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-31404 | https://github.com/earendil-works/pi/issues/7096 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-31614 | https://github.com/earendil-works/pi/pull/7221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-31864 | https://github.com/earendil-works/pi/pull/7258 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-32179 | https://github.com/earendil-works/pi/pull/7022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-32436 | https://github.com/earendil-works/pi/pull/7210 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-32649 | https://github.com/earendil-works/pi/pull/7211 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-32899 | https://github.com/earendil-works/pi/pull/7214 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-33118 | https://github.com/earendil-works/pi/issues/6968 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-33278 | https://github.com/earendil-works/pi/pull/7103 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-33477 | https://github.com/earendil-works/pi/pull/7110 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-33718 | https://github.com/earendil-works/pi/issues/6951 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-33777 | https://github.com/earendil-works/pi/issues/6998 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-33955 | https://github.com/earendil-works/pi/pull/7174 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-34218 | https://github.com/earendil-works/pi/pull/7176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-34507 | https://github.com/earendil-works/pi/pull/7262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-34705 | https://github.com/earendil-works/pi/pull/7288 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-35689 | https://github.com/earendil-works/pi/pull/7045 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-35950 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-36182 | https://github.com/earendil-works/pi/pull/7081 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-36279 | https://github.com/earendil-works/pi/pull/7083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-37019 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-37204 | https://github.com/earendil-works/pi/issues/6949 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-37263 | https://github.com/earendil-works/pi/pull/7032 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-37521 | https://github.com/earendil-works/pi/pull/7106 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-37790 | https://github.com/earendil-works/pi/pull/7072 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-39369 | https://github.com/earendil-works/pi/pull/6935 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-39616 | https://github.com/earendil-works/pi/pull/6927 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-40138 | https://github.com/earendil-works/pi/pull/6971 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-40385 | https://github.com/earendil-works/pi/pull/6928 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-40631 | https://github.com/earendil-works/pi/pull/6946 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-40895 | https://github.com/earendil-works/pi/pull/6941 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-41152 | https://github.com/earendil-works/pi/pull/6955 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-41372 | https://github.com/earendil-works/pi/pull/6958 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-41579 | https://github.com/earendil-works/pi/pull/6903 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-41801 | https://github.com/earendil-works/pi/pull/6964 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-42031 | https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-42200 | https://github.com/earendil-works/pi/issues/6977 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-42363 | https://github.com/earendil-works/pi/issues/6210 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-42535 | https://github.com/earendil-works/pi/pull/6980 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-42766 | https://github.com/earendil-works/pi/pull/7016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-42943 | https://github.com/earendil-works/pi/pull/7015 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-43173 | https://github.com/earendil-works/pi/pull/7034 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-43487 | https://github.com/earendil-works/pi/issues/7005 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-43626 | https://github.com/earendil-works/pi/pull/7009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-43824 | https://github.com/earendil-works/pi/issues/6999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-44755 | https://github.com/earendil-works/pi/pull/6913 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-45079 | https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-45388 | https://github.com/earendil-works/pi/issues/6915 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-46598 | https://github.com/earendil-works/pi/pull/6858 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-46815 | https://github.com/earendil-works/pi/pull/6865 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-47014 | https://github.com/earendil-works/pi/pull/6772 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-47604 | https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-47782 | https://github.com/earendil-works/pi/pull/6896 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-48108 | https://github.com/earendil-works/pi/pull/6864 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-48357 | https://github.com/earendil-works/pi/pull/6854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-48765 | https://github.com/earendil-works/pi/pull/6812 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-48992 | https://github.com/earendil-works/pi/pull/6790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-49198 | https://github.com/earendil-works/pi/pull/6764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-49458 | https://github.com/earendil-works/pi/issues/6844 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-49597 | https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-49808 | https://github.com/earendil-works/pi/pull/6853 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-50004 | https://github.com/earendil-works/pi/pull/6730 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-50185 | https://github.com/earendil-works/pi/pull/6731 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-50638 | https://github.com/earendil-works/pi/issues/6793 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-50796 | https://github.com/earendil-works/pi/issues/6695 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-50956 | https://github.com/earendil-works/pi/issues/6735 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-51221 | https://github.com/earendil-works/pi/issues/6727 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-51992 | https://github.com/earendil-works/pi/issues/6737 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-52129 | https://github.com/earendil-works/pi/issues/6736 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-53215 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-53662 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-56629 | https://github.com/earendil-works/pi-mono/pull/6651 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-57771 | https://github.com/earendil-works/pi-mono/issues/6630 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-57912 | https://github.com/earendil-works/pi-mono/pull/6697 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-58079 | https://github.com/earendil-works/pi-mono/issues/6629 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-58581 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-59696 | https://github.com/earendil-works/pi-mono/pull/6474 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-59877 | https://github.com/earendil-works/pi-mono/pull/6490 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-60191 | https://github.com/earendil-works/pi-mono/pull/6588 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-60400 | https://github.com/earendil-works/pi-mono/pull/6481 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-60653 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-61116 | https://github.com/earendil-works/pi-mono/pull/6532 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-61377 | https://github.com/earendil-works/pi-mono/pull/6292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-61592 | https://github.com/earendil-works/pi-mono/pull/6523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-61798 | https://github.com/earendil-works/pi-mono/pull/6544 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-62006 | https://github.com/earendil-works/pi-mono/pull/6595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-62242 | https://github.com/earendil-works/pi-mono/pull/6598 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-62439 | https://github.com/earendil-works/pi-mono/pull/6604 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-62676 | https://github.com/earendil-works/pi-mono/pull/6608 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-62879 | https://github.com/earendil-works/pi-mono/pull/6611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-63127 | https://github.com/earendil-works/pi-mono/pull/6645 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-63344 | https://github.com/earendil-works/pi/issues/6621 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-64433 | https://github.com/earendil-works/pi/pull/6470 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-64691 | https://github.com/earendil-works/pi/issues/6464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-65355 | https://github.com/earendil-works/pi/pull/6457 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-66839 | https://github.com/earendil-works/pi/issues/6200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-67138 | https://github.com/earendil-works/pi/issues/6201 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-67309 | https://github.com/earendil-works/pi/issues/6363 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-67466 | https://github.com/earendil-works/pi/pull/6350 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-67640 | https://github.com/earendil-works/pi/pull/6267 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-68073 | https://github.com/earendil-works/pi/pull/6309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-68232 | https://github.com/earendil-works/pi/issues/6435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-68360 | https://github.com/earendil-works/pi/pull/6417 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-68731 | https://github.com/earendil-works/pi/pull/6449 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-68912 | https://github.com/earendil-works/pi/issues/6239 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-69194 | https://github.com/earendil-works/pi/issues/6187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-69424 | https://github.com/earendil-works/pi/issues/6268 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-69623 | https://github.com/earendil-works/pi/issues/6262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-69812 | https://github.com/earendil-works/pi/issues/6195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-69943 | https://github.com/earendil-works/pi/pull/6430 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-70108 | https://github.com/earendil-works/pi/pull/6418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-70362 | https://github.com/earendil-works/pi/issues/6439 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-70532 | https://github.com/earendil-works/pi/pull/6397 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-70800 | https://github.com/earendil-works/pi/pull/6343 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-70981 | https://github.com/earendil-works/pi/pull/6285 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-71360 | https://github.com/earendil-works/pi/issues/6265 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-71513 | https://github.com/earendil-works/pi/issues/6235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-71991 | https://github.com/earendil-works/pi/pull/6279 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-72235 | https://github.com/earendil-works/pi/issues/6204 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-72425 | https://github.com/earendil-works/pi/issues/6231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-72627 | https://github.com/earendil-works/pi/issues/6189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-72819 | https://github.com/earendil-works/pi/issues/6223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-73006 | https://github.com/earendil-works/pi/issues/5536 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-73152 | https://github.com/earendil-works/pi/issues/6326 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-73499 | https://github.com/earendil-works/pi/issues/6181 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-73681 | https://github.com/earendil-works/pi/issues/6278 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-73802 | https://github.com/earendil-works/pi/issues/6354 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-74035 | https://github.com/earendil-works/pi/issues/6431 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-74184 | https://github.com/earendil-works/pi/issues/6367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-74390 | https://github.com/earendil-works/pi/issues/6369 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-74564 | https://github.com/earendil-works/pi/issues/6407 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-74711 | https://github.com/earendil-works/pi/issues/6395 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-76320 | https://github.com/earendil-works/pi/pull/6078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-76557 | https://github.com/earendil-works/pi/pull/6175 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-76742 | https://github.com/earendil-works/pi/pull/6004 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-76947 | https://github.com/earendil-works/pi/issues/6057 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-77162 | https://github.com/earendil-works/pi/issues/6122 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-77323 | https://github.com/earendil-works/pi/issues/6168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-77644 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-77950 | https://github.com/earendil-works/pi/issues/6138 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-78108 | https://github.com/earendil-works/pi/pull/5832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-78361 | https://github.com/earendil-works/pi/issues/5595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-78538 | https://github.com/earendil-works/pi/issues/6009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-78790 | https://github.com/earendil-works/pi/issues/6083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-78940 | https://github.com/earendil-works/pi/pull/6074 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-79121 | https://github.com/earendil-works/pi/pull/6048 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-79383 | https://github.com/earendil-works/pi/pull/6030 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-79474 | https://github.com/earendil-works/pi/pull/6063 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-79724 | https://github.com/earendil-works/pi/issues/6162 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-79889 | https://github.com/earendil-works/pi/issues/6133 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-80209 | https://github.com/earendil-works/pi/pull/6026 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-80383 | https://github.com/earendil-works/pi/issues/6002 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-80556 | https://github.com/earendil-works/pi/issues/6105 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-80713 | https://github.com/earendil-works/pi/issues/4290 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-80894 | https://github.com/earendil-works/pi/issues/6070 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-81069 | https://github.com/earendil-works/pi/issues/6047 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-81226 | https://github.com/earendil-works/pi/issues/6019 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-82054 | https://github.com/earendil-works/pi/issues/6021 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-82247 | https://github.com/earendil-works/pi/issues/6016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-82306 | https://github.com/earendil-works/pi/issues/6017 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-82488 | https://github.com/earendil-works/pi/issues/6020 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-83149 | https://github.com/earendil-works/pi/issues/5965 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-83363 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-83406 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-83712 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-84019 | https://github.com/earendil-works/pi/pull/5999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-84229 | https://github.com/earendil-works/pi/pull/5784 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-84633 | https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-84877 | https://github.com/earendil-works/pi/issues/5973 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-85415 | https://github.com/earendil-works/pi/issues/5967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-85697 | https://github.com/earendil-works/pi/issues/5953 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-85803 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-85836 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-86883 | https://github.com/earendil-works/pi/pull/5962 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-87130 | https://github.com/earendil-works/pi/issues/5960 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-87268 | https://github.com/earendil-works/pi/issues/5959 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-87462 | https://github.com/earendil-works/pi/issues/5114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-87597 | https://github.com/earendil-works/pi/issues/5957 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-87838 | https://github.com/earendil-works/pi/issues/5943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-88077 | https://github.com/earendil-works/pi/issues/5940 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-89349 | https://github.com/earendil-works/pi/issues/5673 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-89554 | https://github.com/earendil-works/pi/issues/5923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-89755 | https://github.com/earendil-works/pi/issues/5905 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-89901 | https://github.com/earendil-works/pi/issues/5909 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-90080 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-90292 | https://github.com/earendil-works/pi/pull/5846 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-90511 | https://github.com/earendil-works/pi/issues/5899 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-90696 | https://github.com/earendil-works/pi/issues/5893 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-90854 | https://github.com/earendil-works/pi/issues/5897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-91027 | https://github.com/earendil-works/pi/issues/5892 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-91189 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-91222 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-92236 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-92269 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-92387 | https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-92633 | https://github.com/earendil-works/pi/issues/5854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-92782 | https://github.com/earendil-works/pi/issues/5877 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-92912 | https://github.com/earendil-works/pi/pull/5866 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-93241 | https://github.com/earendil-works/pi/issues/4811 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-93404 | https://github.com/earendil-works/pi/issues/5720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-94390 | https://github.com/earendil-works/pi/pull/5874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-94570 | https://github.com/earendil-works/pi/pull/5841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-94805 | https://github.com/earendil-works/pi/pull/5869 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-95058 | https://github.com/earendil-works/pi/pull/5756 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-95670 | https://github.com/earendil-works/pi/issues/5868 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-95986 | https://github.com/earendil-works/pi/issues/5830 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-97194 | https://github.com/earendil-works/pi/pull/5798 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-97481 | https://github.com/earendil-works/pi/issues/5790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-97697 | https://github.com/earendil-works/pi/issues/5728 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-97999 | https://github.com/earendil-works/pi/issues/5819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-98173 | https://github.com/earendil-works/pi/issues/5818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-98427 | https://github.com/earendil-works/pi/pull/5789 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-98650 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-98881 | https://github.com/earendil-works/pi/issues/5805 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-99179 | https://github.com/earendil-works/pi/issues/5761 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-99383 | https://github.com/earendil-works/pi/issues/5747 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-99594 | https://github.com/earendil-works/pi/issues/5760 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-100184 | https://github.com/earendil-works/pi/issues/5739 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-100320 | https://github.com/earendil-works/pi/pull/5385 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-100586 | https://github.com/earendil-works/pi/pull/5753 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-100798 | https://github.com/earendil-works/pi/issues/5055 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-101075 | https://github.com/earendil-works/pi/issues/5724 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-101280 | https://github.com/earendil-works/pi/issues/5729 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-101463 | https://github.com/earendil-works/pi/pull/5708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-101712 | https://github.com/earendil-works/pi/issues/5687 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-101891 | https://github.com/earendil-works/pi/issues/5689 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-102118 | https://github.com/earendil-works/pi/issues/5695 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-102331 | https://github.com/earendil-works/pi/pull/5738 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-102561 | https://github.com/earendil-works/pi/issues/4637 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-102771 | https://github.com/earendil-works/pi/issues/5702 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-102967 | https://github.com/earendil-works/pi/issues/5297 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-103217 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-103276 | https://github.com/earendil-works/pi/issues/4415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-103545 | https://github.com/earendil-works/pi/issues/5661 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-104469 | https://github.com/earendil-works/pi/pull/5587 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-104697 | https://github.com/earendil-works/pi/pull/5561 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-104984 | https://github.com/earendil-works/pi/issues/5619 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-105146 | https://github.com/earendil-works/pi/pull/5627 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-105366 | https://github.com/earendil-works/pi/issues/5677 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-105569 | https://github.com/earendil-works/pi/issues/5644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-105739 | https://github.com/earendil-works/pi/pull/5666 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-106032 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-106216 | https://github.com/earendil-works/pi/pull/5567 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-106459 | https://github.com/earendil-works/pi/issues/5573 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-106623 | https://github.com/earendil-works/pi/issues/5657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-106932 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-107112 | https://github.com/earendil-works/pi/pull/5585 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-107314 | https://github.com/earendil-works/pi/pull/5562 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-107545 | https://github.com/earendil-works/pi/issues/5643 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-107699 | https://github.com/earendil-works/pi/issues/5669 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-107887 | https://github.com/earendil-works/pi/issues/5596 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-108113 | https://github.com/earendil-works/pi/pull/5560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-109308 | https://github.com/earendil-works/pi/pull/5553 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-109507 | https://github.com/earendil-works/pi/pull/5547 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-109743 | https://github.com/earendil-works/pi/issues/5523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-110048 | https://github.com/earendil-works/pi/issues/4703 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-110153 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-110423 | https://github.com/earendil-works/pi/pull/5527 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-110620 | https://github.com/earendil-works/pi/pull/5283 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-110846 | https://github.com/earendil-works/pi/issues/5330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-111006 | https://github.com/earendil-works/pi/issues/5331 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-111201 | https://github.com/earendil-works/pi/issues/5531 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-111352 | https://github.com/earendil-works/pi/issues/5530 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-111568 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-111792 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-111963 | https://github.com/earendil-works/pi/issues/5494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-112170 | https://github.com/earendil-works/pi/issues/5495 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-112359 | https://github.com/earendil-works/pi/issues/5433 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-112521 | https://github.com/earendil-works/pi/issues/5377 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-112744 | https://github.com/earendil-works/pi/issues/5418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-112923 | https://github.com/earendil-works/pi/issues/5516 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-113227 | https://github.com/earendil-works/pi/issues/5045 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-113418 | https://github.com/earendil-works/pi/issues/4841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-114693 | https://github.com/earendil-works/pi/pull/5332 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-114895 | https://github.com/earendil-works/pi/issues/5455 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-115027 | https://github.com/earendil-works/pi/issues/5415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-115373 | https://github.com/earendil-works/pi/pull/5499 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-115813 | https://github.com/earendil-works/pi/issues/5188 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-115983 | https://github.com/earendil-works/pi/issues/5401 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-116179 | https://github.com/earendil-works/pi/issues/5456 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-116376 | https://github.com/earendil-works/pi/issues/5454 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-116562 | https://github.com/earendil-works/pi/issues/5432 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-116790 | https://github.com/earendil-works/pi/issues/5347 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-116928 | https://github.com/earendil-works/pi/issues/5359 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-117085 | https://github.com/earendil-works/pi/pull/5371 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-117880 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-117964 | https://github.com/earendil-works/pi/issues/5313 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-118343 | https://github.com/earendil-works/pi/pull/5306 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-119193 | https://github.com/earendil-works/pi/issues/5226 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-119784 | https://github.com/earendil-works/pi/issues/5294 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-119988 | https://github.com/earendil-works/pi/issues/4975 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-120149 | https://github.com/earendil-works/pi/pull/5251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-120341 | https://github.com/earendil-works/pi/issues/5243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-120497 | https://github.com/earendil-works/pi/issues/5309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-120660 | https://github.com/earendil-works/pi/pull/5221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-120896 | https://github.com/earendil-works/pi/pull/5235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-121142 | https://github.com/earendil-works/pi/issues/5218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-121355 | https://github.com/earendil-works/pi/issues/5231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-121513 | https://github.com/earendil-works/pi/pull/5264 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-121713 | https://github.com/earendil-works/pi/issues/5299 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-122351 | https://github.com/earendil-works/pi-mono/pull/5167 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-122510 | https://github.com/earendil-works/pi-mono/pull/5202 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-122675 | https://github.com/earendil-works/pi-mono/issues/5153 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-122805 | https://github.com/earendil-works/pi-mono/pull/5176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-122997 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-123161 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-123193 | https://github.com/earendil-works/pi-mono/pull/5178 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-123417 | https://github.com/earendil-works/pi-mono/issues/5200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-123634 | https://github.com/earendil-works/pi-mono/issues/5201 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-123829 | https://github.com/earendil-works/pi-mono/issues/5184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-124000 | https://github.com/earendil-works/pi-mono/pull/5195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-124215 | https://github.com/earendil-works/pi-mono/issues/5159 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-124481 | https://github.com/earendil-works/pi-mono/issues/5169 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-124853 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-125036 | https://github.com/earendil-works/pi-mono/issues/5185 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-126033 | https://github.com/earendil-works/pi/issues/5109 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-126226 | https://github.com/earendil-works/pi/pull/4911 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-126471 | https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-126804 | https://github.com/earendil-works/pi/issues/4829 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-127005 | https://github.com/earendil-works/pi/issues/4801 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-127525 | https://github.com/earendil-works/pi/issues/5080 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-127725 | https://github.com/earendil-works/pi/pull/5091 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-127943 | https://github.com/earendil-works/pi/issues/5028 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-128277 | https://github.com/earendil-works/pi/issues/5095 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-128438 | https://github.com/earendil-works/pi/pull/5029 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-128679 | https://github.com/earendil-works/pi/issues/4879 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-128918 | https://github.com/earendil-works/pi/issues/5148 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-129128 | https://github.com/earendil-works/pi/issues/4464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-129392 | https://github.com/earendil-works/pi/issues/5078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-129539 | https://github.com/earendil-works/pi/issues/5075 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-129707 | https://github.com/earendil-works/pi/pull/5115 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-129929 | https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-130141 | https://github.com/earendil-works/pi/issues/5132 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-130338 | https://github.com/earendil-works/pi/issues/5092 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-131431 | https://github.com/earendil-works/pi/issues/4874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-131599 | https://github.com/earendil-works/pi/issues/5039 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-131761 | https://github.com/earendil-works/pi/issues/5013 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-131936 | https://github.com/earendil-works/pi/issues/4929 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-132098 | https://github.com/earendil-works/pi/issues/4983 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-132365 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-132545 | https://github.com/earendil-works/pi/issues/4764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-132732 | https://github.com/earendil-works/pi/issues/4907 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-132916 | https://github.com/earendil-works/pi/issues/4897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-133095 | https://github.com/earendil-works/pi/issues/4967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-133245 | https://github.com/earendil-works/pi/issues/4969 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-133403 | https://github.com/earendil-works/pi/issues/4943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-133633 | https://github.com/earendil-works/pi-mono/pull/4991 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-133984 | https://github.com/earendil-works/pi/issues/4923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-134158 | https://github.com/earendil-works/pi-mono/pull/5037 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-134393 | https://github.com/earendil-works/pi-mono/pull/5022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-134497 | https://github.com/earendil-works/pi-mono/pull/5067 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-134601 | https://github.com/earendil-works/pi-mono/pull/5068 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-134788 | https://github.com/earendil-works/pi/issues/5041 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-135766 | https://github.com/earendil-works/pi-mono/pull/4797 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-135949 | https://github.com/earendil-works/pi/issues/4821 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-136202 | https://github.com/earendil-works/pi/issues/4916 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-136431 | https://github.com/earendil-works/pi/issues/4480 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-136583 | https://github.com/earendil-works/pi/issues/4868 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-136733 | https://github.com/earendil-works/pi/issues/4869 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-136873 | https://github.com/earendil-works/pi-mono/pull/4873 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-137067 | https://github.com/earendil-works/pi-mono/pull/4898 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-137253 | https://github.com/earendil-works/pi-mono/pull/4830 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-137439 | https://github.com/earendil-works/pi/issues/4847 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-137633 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-137665 | https://github.com/earendil-works/pi/issues/4842 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-137871 | https://github.com/earendil-works/pi/issues/4848 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-138009 | https://github.com/earendil-works/pi/issues/4832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-138236 | https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-138477 | https://github.com/earendil-works/pi/issues/4870 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-138652 | https://github.com/earendil-works/pi/issues/4876 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-138801 | https://github.com/earendil-works/pi/issues/4819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-138958 | https://github.com/earendil-works/pi/issues/4818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-139128 | https://github.com/earendil-works/pi/issues/4878 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-139321 | https://github.com/earendil-works/pi/issues/4307 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-139518 | https://github.com/earendil-works/pi-mono/pull/4756 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-140261 | https://github.com/earendil-works/pi-mono/pull/4724 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-140445 | https://github.com/earendil-works/pi-mono/pull/4775 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-141284 | https://github.com/earendil-works/pi/issues/4752 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-141481 | https://github.com/earendil-works/pi/issues/4276 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-141822 | https://github.com/earendil-works/pi-mono/pull/4799 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-142092 | https://github.com/earendil-works/pi/issues/4710 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-142265 | https://github.com/earendil-works/pi/issues/4699 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-142414 | https://github.com/earendil-works/pi/issues/4763 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-142585 | https://github.com/earendil-works/pi-mono/pull/4759 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-142789 | https://github.com/earendil-works/pi-mono/pull/4709 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-142996 | https://github.com/earendil-works/pi-mono/pull/4664 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-143330 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-143484 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-143586 | https://github.com/earendil-works/pi/issues/4675 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-143687 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-143766 | https://github.com/earendil-works/pi/issues/4720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-143965 | https://github.com/earendil-works/pi/issues/4793 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-144201 | https://github.com/earendil-works/pi/issues/4681 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-144423 | https://github.com/earendil-works/pi-mono/pull/4661 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-144686 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-144718 | https://github.com/earendil-works/pi/issues/4678 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-144876 | https://github.com/earendil-works/pi/issues/4612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-145061 | https://github.com/earendil-works/pi/issues/4157 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-145239 | https://github.com/earendil-works/pi/issues/4647 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-145421 | https://github.com/earendil-works/pi/issues/4157 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-145587 | https://github.com/earendil-works/pi/issues/4665 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-145763 | https://github.com/earendil-works/pi-mono/pull/4243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146063 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146095 | https://github.com/earendil-works/pi/issues/4342 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146267 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146299 | https://github.com/earendil-works/pi/issues/4223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146580 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146612 | https://github.com/earendil-works/pi/issues/4232 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146815 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-146847 | https://github.com/earendil-works/pi/issues/4251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147068 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147100 | https://github.com/earendil-works/pi/issues/4505 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147304 | https://github.com/earendil-works/pi/issues/4650 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147363 | https://github.com/earendil-works/pi/issues/4652 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147422 | https://github.com/earendil-works/pi/issues/4653 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147601 | https://github.com/earendil-works/pi/issues/4623 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147738 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-147998 | https://github.com/earendil-works/pi/issues/4484 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-148215 | https://github.com/earendil-works/pi-mono/pull/4541 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-148413 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-148445 | https://github.com/earendil-works/pi-mono/pull/4603 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-148621 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-148696 | https://github.com/earendil-works/pi-mono/pull/4622 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-148985 | https://github.com/earendil-works/pi/issues/4587 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-149211 | https://github.com/earendil-works/pi/issues/4619 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-149438 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-149470 | https://github.com/earendil-works/pi/issues/4614 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-149726 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-150281 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-150357 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-150494 | https://github.com/earendil-works/pi-mono/pull/3887 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-150716 | https://github.com/earendil-works/pi-mono/pull/3624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-150880 | https://github.com/earendil-works/pi/pull/4458 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-151133 | https://github.com/earendil-works/pi/issues/4519 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-151393 | https://github.com/earendil-works/pi/issues/4492 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-151538 | https://github.com/earendil-works/pi/issues/4508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-151811 | https://github.com/earendil-works/pi/issues/4559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-151966 | https://github.com/earendil-works/pi/issues/4534 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-152114 | https://github.com/earendil-works/pi/issues/4553 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-152291 | https://github.com/earendil-works/pi/issues/4583 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-152470 | https://github.com/earendil-works/pi/issues/4510 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-152715 | https://github.com/earendil-works/pi/issues/4503 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-152855 | https://github.com/earendil-works/pi/issues/4429 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-152988 | https://github.com/earendil-works/pi/issues/4433 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-153216 | https://github.com/earendil-works/pi-mono/pull/4426 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-153611 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-153813 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-153947 | https://github.com/earendil-works/pi/issues/4333 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-154072 | https://github.com/earendil-works/pi/issues/4289 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-154261 | https://github.com/earendil-works/pi/issues/4280 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-154420 | earendil-works/pi-mono | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-154449 | @earendil-works/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-154685 | @earendil-works/pi-coding-agent | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-155510 | https://github.com/earendil-works/pi-mono/pull/4190 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-155959 | https://github.com/earendil-works/pi-mono/pull/4244 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-156127 | https://github.com/earendil-works/pi-mono/pull/4162 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-156969 | https://github.com/earendil-works/pi-mono/pull/4234 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-157415 | https://github.com/earendil-works/pi-mono/issues/4184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-157547 | https://github.com/earendil-works/pi-mono/issues/4218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-233030 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-233178 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/CHANGELOG.md@byte-233958 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-0.2.0.tgz!package/docs/containerization.md@byte-1147 | https://github.com/earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/docs/containerization.md@byte-1938 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/dist/utils/child-process.d.ts@byte-1068 | earendil-works/pi#5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/index.ts@byte-568 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/examples/extensions/gondolin/index.ts@byte-1194 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffexai-diffex-0.2.0.tgz!package/dist/migrations.d.ts@byte-553 | https://github.com/earendil-works/pi-mono/issues/320 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/azure-openai-responses.js@byte-962 | https://github.com/earendil-works/pi/issues/6265 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/openai-responses-shared.js@byte-17306 | https://github.com/earendil-works/pi/issues/6409. | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/openai-responses.js@byte-1050 | https://github.com/earendil-works/pi/issues/6265 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/azure-openai-responses.d.ts.map@byte-1944 | https://github.com/earendil-works/pi/issues/6265\nconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/azure-openai-responses.js.map@byte-10629 | https://github.com/earendil-works/pi/issues/6265\nconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/openai-responses-shared.d.ts.map@byte-21829 | https://github.com/earendil-works/pi/issues/6409.\n\tconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/openai-responses-shared.js.map@byte-45356 | https://github.com/earendil-works/pi/issues/6409.\n\tconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/openai-responses.d.ts.map@byte-2129 | https://github.com/earendil-works/pi/issues/6265\nconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-ai-0.2.0.tgz!package/dist/api/openai-responses.js.map@byte-12308 | https://github.com/earendil-works/pi/issues/6265\nconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-client-0.2.0.tgz!package/CHANGELOG.md@byte-262 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-server-0.2.0.tgz!package/CHANGELOG.md@byte-322 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-server-0.2.0.tgz!package/CHANGELOG.md@byte-701 | https://github.com/earendil-works/pi/pull/7644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-server-0.2.0.tgz!package/CHANGELOG.md@byte-990 | https://github.com/earendil-works/pi/pull/6898 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-session-backend-sqlite-node-0.2.0.tgz!package/CHANGELOG.md@byte-195 | @earendil-works/pi-storage-sqlite-node | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-session-backend-sqlite-node-0.2.0.tgz!package/CHANGELOG.md@byte-239 | @earendil-works/pi-session-backend-sqlite-node | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-session-backend-sqlite-node-0.2.0.tgz!package/CHANGELOG.md@byte-817 | https://github.com/earendil-works/pi/pull/7655 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-session-backend-sqlite-node-0.2.0.tgz!package/CHANGELOG.md@byte-1139 | https://github.com/earendil-works/pi/pull/6594 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffexai-diffex-tui-0.2.0.tgz!package/dist/components/markdown.js@byte-5201 | https://github.com/earendil-works/pi/issues/5825. | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-tui-0.2.0.tgz!package/dist/components/markdown.d.ts.map@byte-8338 | https://github.com/earendil-works/pi/issues/5825.\n\tconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffexai-diffex-tui-0.2.0.tgz!package/dist/components/markdown.js.map@byte-39247 | https://github.com/earendil-works/pi/issues/5825.\n\tconst | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-867 | EARENDIL_ORG_READ_TOKEN | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-924 | earendil-works | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-1048 | earendil-works/staff | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-3628 | secrets.EARENDIL_ORG_READ_TOKEN | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-7583 | EARENDIL_ORG_READ_TOKEN | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-7777 | https://api.github.com/orgs/earendil-works/teams/staff/memberships/ | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-8326 | earendil-works/staff | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-8597 | earendil-works/staff | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-8954 | earendil-works/staff | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-9053 | earendil-works/staff | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/.github/workflows/issue-analysis.yml@byte-9262 | earendil-works/staff | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/LICENSE@byte-10777 | Luntraa | Legal attribution | Confirmed copyright owner; retain while legally required | +| diffex-identity-source.tar.gz!diffex-0.2.0/README.md@byte-1551 | https://github.com/earendil-works/pi | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/SECURITY.md@byte-1421 | security@earendil.com | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/SECURITY.md@byte-4233 | Earendil | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/SECURITY.md@byte-4262 | Earendil-operated | Owner-approved skip | Exact inherited security/staff reference deferred by owner; replace or remove when that operational migration resumes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-25698 | node_modules/@earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-25780 | https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-26260 | @earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-26327 | @earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-26398 | node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-26505 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-26935 | node_modules/@earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-27039 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-27460 | node_modules/@earendil-works/gondolin/node_modules/undici | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-180096 | packages/agent/node_modules/@earendil-works/pi-ai/node_modules/typebox | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-185200 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-186028 | packages/coding-agent/node_modules/@earendil-works/pi-agent-core/node_modules/typebox | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-186382 | packages/coding-agent/node_modules/@earendil-works/pi-ai/node_modules/@anthropic-ai/sdk | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/package-lock.json@byte-186995 | packages/coding-agent/node_modules/@earendil-works/pi-ai/node_modules/typebox | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-833 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-1516 | https://github.com/earendil-works/pi/pull/7611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-1727 | https://github.com/earendil-works/pi/pull/7646 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-1981 | https://github.com/earendil-works/pi/pull/7367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-2162 | https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-2681 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-3558 | https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-3812 | https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-4091 | https://github.com/earendil-works/pi/issues/6915 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-4411 | https://github.com/earendil-works/pi/pull/6594 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-4551 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-4583 | https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-4815 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-4922 | https://github.com/earendil-works/pi/issues/6851 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-5097 | https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-5475 | https://github.com/earendil-works/pi-mono/pull/6474 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-5851 | https://github.com/earendil-works/pi/pull/6417 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-6020 | https://github.com/earendil-works/pi/issues/6435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-6238 | https://github.com/earendil-works/pi/issues/5536 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-6419 | https://github.com/earendil-works/pi/pull/6285 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-6620 | https://github.com/earendil-works/pi/pull/6343 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-6833 | https://github.com/earendil-works/pi/issues/6181 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-7062 | https://github.com/earendil-works/pi/issues/6242 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-8126 | @earendil-works/pi-ai/providers/all | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-8501 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-8738 | https://github.com/earendil-works/pi/pull/5999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-8947 | https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-9261 | https://github.com/earendil-works/pi/issues/5893 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-9360 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-9458 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-9517 | https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-9924 | https://github.com/earendil-works/pi/issues/5573 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-10158 | https://github.com/earendil-works/pi/issues/5401 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-10727 | https://github.com/earendil-works/pi/issues/4983 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-11244 | https://github.com/earendil-works/pi/issues/4276 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-11396 | https://github.com/earendil-works/pi/issues/4715 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/agent/CHANGELOG.md@byte-11572 | https://github.com/earendil-works/pi/issues/4699 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-3081 | @earendil-works/pi-telemetry | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-3316 | https://github.com/earendil-works/pi/pull/7339 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-3720 | https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-3950 | https://github.com/earendil-works/pi/pull/7638 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-4345 | https://github.com/earendil-works/pi/pull/7286 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-4707 | https://github.com/earendil-works/pi/issues/7560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-4854 | https://github.com/earendil-works/pi/issues/7508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-5113 | https://github.com/earendil-works/pi/issues/7328 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-5299 | https://github.com/earendil-works/pi/issues/7027 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-5852 | https://github.com/earendil-works/pi/issues/7199 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-5911 | https://github.com/earendil-works/pi/pull/7230 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-6192 | https://github.com/earendil-works/pi/issues/7676 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-6534 | https://github.com/earendil-works/pi/pull/7205 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-6739 | https://github.com/earendil-works/pi/pull/7358 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-6945 | https://github.com/earendil-works/pi/pull/7362 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-7167 | https://github.com/earendil-works/pi/pull/7364 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-7323 | https://github.com/earendil-works/pi/pull/7471 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-7532 | https://github.com/earendil-works/pi/pull/7494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-7829 | https://github.com/earendil-works/pi/pull/7540 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-8018 | https://github.com/earendil-works/pi/pull/7672 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-8203 | https://github.com/earendil-works/pi/pull/7670 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-8704 | https://github.com/earendil-works/pi/pull/7243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-9186 | https://github.com/earendil-works/pi/pull/7158 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-9414 | https://github.com/earendil-works/pi/pull/7151 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-9737 | https://github.com/earendil-works/pi/pull/7272 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-9916 | https://github.com/earendil-works/pi/pull/7114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-10157 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-10359 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-10558 | https://github.com/earendil-works/pi/issues/6951 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-10617 | https://github.com/earendil-works/pi/issues/6998 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-10805 | https://github.com/earendil-works/pi/pull/7174 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-11012 | https://github.com/earendil-works/pi/pull/7176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-11280 | https://github.com/earendil-works/pi/pull/7288 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-11638 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-11859 | https://github.com/earendil-works/pi/pull/7081 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-11956 | https://github.com/earendil-works/pi/pull/7083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-12638 | https://github.com/earendil-works/pi/pull/7016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-12897 | https://github.com/earendil-works/pi/pull/6935 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-13100 | https://github.com/earendil-works/pi/pull/6927 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-13854 | https://github.com/earendil-works/pi/pull/6928 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-14468 | https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-14690 | https://github.com/earendil-works/pi/pull/6946 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-14951 | https://github.com/earendil-works/pi/pull/6955 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-15157 | https://github.com/earendil-works/pi/pull/6980 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-15399 | https://github.com/earendil-works/pi/pull/6941 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-15665 | https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-16103 | https://github.com/earendil-works/pi/pull/6858 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-16282 | https://github.com/earendil-works/pi/pull/6840 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-16438 | https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-16587 | https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-16846 | https://github.com/earendil-works/pi/pull/6765 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-17304 | https://github.com/earendil-works/pi/pull/6864 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-17547 | https://github.com/earendil-works/pi/pull/6854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-18018 | https://github.com/earendil-works/pi/pull/6812 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-18243 | https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-18414 | https://github.com/earendil-works/pi/issues/6668 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-18684 | https://github.com/earendil-works/pi/issues/6727 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-18853 | https://github.com/earendil-works/pi/pull/6853 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-19315 | https://github.com/earendil-works/pi/issues/6737 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-19442 | https://github.com/earendil-works/pi/issues/6736 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-19885 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-20200 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-22578 | https://github.com/earendil-works/pi-mono/pull/6651 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-23284 | https://github.com/earendil-works/pi-mono/issues/6630 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-23682 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-24105 | https://github.com/earendil-works/pi-mono/pull/6474 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-24276 | https://github.com/earendil-works/pi-mono/pull/6490 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-24490 | https://github.com/earendil-works/pi-mono/pull/6588 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-24689 | https://github.com/earendil-works/pi-mono/pull/6481 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-24901 | https://github.com/earendil-works/pi-mono/pull/6544 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-25243 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-25465 | https://github.com/earendil-works/pi-mono/pull/6532 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-25716 | https://github.com/earendil-works/pi-mono/pull/6292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-25944 | https://github.com/earendil-works/pi-mono/pull/6598 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-26171 | https://github.com/earendil-works/pi-mono/pull/6608 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-26364 | https://github.com/earendil-works/pi-mono/pull/6611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-26602 | https://github.com/earendil-works/pi-mono/pull/6645 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-27258 | https://github.com/earendil-works/pi/issues/6464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-27944 | https://github.com/earendil-works/pi/pull/6457 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-28237 | https://github.com/earendil-works/pi/pull/6449 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-28492 | https://github.com/earendil-works/pi/pull/6343 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-28692 | https://github.com/earendil-works/pi/issues/6204 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-28922 | https://github.com/earendil-works/pi/issues/6187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-29237 | https://github.com/earendil-works/pi/issues/6187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-29571 | https://github.com/earendil-works/pi/issues/6195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-29714 | https://github.com/earendil-works/pi/issues/6235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-30003 | https://github.com/earendil-works/pi/issues/6262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-30223 | https://github.com/earendil-works/pi/issues/6268 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-30590 | https://github.com/earendil-works/pi/issues/6021 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-31010 | https://github.com/earendil-works/pi/issues/6265 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-31137 | https://github.com/earendil-works/pi/issues/6239 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-31352 | https://github.com/earendil-works/pi/issues/6431 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-31661 | https://github.com/earendil-works/pi/issues/6439 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-32339 | https://github.com/earendil-works/pi/pull/6341 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-32556 | https://github.com/earendil-works/pi/issues/6256 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-32677 | https://github.com/earendil-works/pi/issues/6200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-33198 | https://github.com/earendil-works/pi/pull/6004 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-33786 | https://github.com/earendil-works/pi/issues/6057 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-34048 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-34334 | https://github.com/earendil-works/pi/issues/6138 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-34482 | https://github.com/earendil-works/pi/pull/5832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-34748 | https://github.com/earendil-works/pi/issues/5595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-34915 | https://github.com/earendil-works/pi/issues/6009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-35075 | https://github.com/earendil-works/pi/issues/6019 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-35317 | https://github.com/earendil-works/pi/issues/6083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-35976 | https://github.com/earendil-works/pi/issues/6021 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-36153 | https://github.com/earendil-works/pi/issues/6016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-36212 | https://github.com/earendil-works/pi/issues/6017 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-36384 | https://github.com/earendil-works/pi/issues/6020 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-36896 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-37002 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-37339 | @earendil-works/pi-ai/providers/all | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-37825 | @earendil-works/pi-ai/api/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-38316 | @earendil-works/pi-ai/api/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-38361 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-38766 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-38793 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-39155 | @earendil-works/pi-ai/providers/all | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-39595 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-39656 | @earendil-works/pi-ai/providers/anthropic | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-39842 | @earendil-works/pi-ai/api/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-40101 | @earendil-works/pi-ai/api/anthropic-messages | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-40183 | @earendil-works/pi-ai/providers/all | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-41747 | @earendil-works/pi-ai/providers/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-41842 | @earendil-works/pi-ai/providers/all | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-43177 | https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-43697 | https://github.com/earendil-works/pi/issues/5973 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-43858 | https://github.com/earendil-works/pi/issues/5967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-44081 | https://github.com/earendil-works/pi/issues/5114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-44335 | https://github.com/earendil-works/pi/issues/5673 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-44530 | https://github.com/earendil-works/pi/issues/5923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-44699 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-44864 | https://github.com/earendil-works/pi/issues/5897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-44963 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-45129 | https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-45378 | https://github.com/earendil-works/pi/issues/5854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-45498 | https://github.com/earendil-works/pi/pull/5866 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-45705 | https://github.com/earendil-works/pi/issues/5860 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-46195 | https://github.com/earendil-works/pi/issues/5728 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-46385 | https://github.com/earendil-works/pi/issues/5819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-46549 | https://github.com/earendil-works/pi/issues/5818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-46724 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-47012 | https://github.com/earendil-works/pi/issues/5761 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-47213 | https://github.com/earendil-works/pi/issues/5760 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-47454 | https://github.com/earendil-works/pi/pull/5738 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-47674 | https://github.com/earendil-works/pi/issues/4637 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-47887 | https://github.com/earendil-works/pi/issues/5702 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-48423 | https://github.com/earendil-works/pi/pull/5561 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-48641 | https://github.com/earendil-works/pi/issues/5677 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-48834 | https://github.com/earendil-works/pi/issues/5644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-49073 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-49233 | https://github.com/earendil-works/pi/pull/5666 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-49451 | https://github.com/earendil-works/pi/pull/5567 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-49843 | https://github.com/earendil-works/pi/pull/5527 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-50061 | https://github.com/earendil-works/pi/issues/5330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-50211 | https://github.com/earendil-works/pi/issues/5331 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-50396 | https://github.com/earendil-works/pi/issues/5531 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-50537 | https://github.com/earendil-works/pi/issues/5530 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-50743 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-50965 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-51174 | https://github.com/earendil-works/pi/issues/5456 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-51405 | https://github.com/earendil-works/pi/issues/5347 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-51759 | https://github.com/earendil-works/pi/issues/5313 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-52076 | https://github.com/earendil-works/pi/issues/4975 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-52227 | https://github.com/earendil-works/pi/pull/5251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-52409 | https://github.com/earendil-works/pi/issues/5243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-52600 | https://github.com/earendil-works/pi/issues/5309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-52753 | https://github.com/earendil-works/pi/pull/5221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-53245 | https://github.com/earendil-works/pi-mono/pull/5178 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-53476 | https://github.com/earendil-works/pi-mono/issues/5159 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-53742 | https://github.com/earendil-works/pi-mono/issues/5169 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-54208 | https://github.com/earendil-works/pi/pull/4911 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-54571 | https://github.com/earendil-works/pi/issues/4801 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-54810 | https://github.com/earendil-works/pi/issues/5148 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-55020 | https://github.com/earendil-works/pi/issues/4464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-55284 | https://github.com/earendil-works/pi/issues/5078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-55431 | https://github.com/earendil-works/pi/issues/5075 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-55648 | https://github.com/earendil-works/pi/issues/4967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-55802 | https://github.com/earendil-works/pi/issues/4969 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-55960 | https://github.com/earendil-works/pi/issues/4943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-56180 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-56414 | https://github.com/earendil-works/pi-mono/pull/4991 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-56730 | https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-57076 | https://github.com/earendil-works/pi-mono/pull/4797 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-57306 | https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-57547 | https://github.com/earendil-works/pi/issues/4842 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-57775 | https://github.com/earendil-works/pi/issues/4848 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-58569 | https://github.com/earendil-works/pi/issues/4675 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-58812 | https://github.com/earendil-works/pi/issues/4720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-59084 | https://github.com/earendil-works/pi/issues/4678 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-59362 | https://github.com/earendil-works/pi/issues/4342 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-59526 | https://github.com/earendil-works/pi/issues/4223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-59800 | https://github.com/earendil-works/pi/issues/4232 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-60014 | https://github.com/earendil-works/pi/issues/4505 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-60209 | https://github.com/earendil-works/pi/issues/4251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-60545 | https://github.com/earendil-works/pi-mono/pull/4603 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-60757 | https://github.com/earendil-works/pi-mono/pull/4622 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-61028 | https://github.com/earendil-works/pi/issues/4614 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-61229 | https://github.com/earendil-works/pi-mono/pull/3887 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-61480 | https://github.com/earendil-works/pi-mono/pull/3624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-61767 | https://github.com/earendil-works/pi/issues/4485 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-62013 | https://github.com/earendil-works/pi/issues/4345 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-62193 | https://github.com/earendil-works/pi-mono/pull/4358 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-62387 | https://github.com/earendil-works/pi-mono/pull/4354 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-62879 | https://github.com/earendil-works/pi/issues/4513 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-63736 | https://github.com/earendil-works/pi/issues/4563 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-63928 | https://github.com/earendil-works/pi/issues/4539 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-64152 | https://github.com/earendil-works/pi-mono/pull/4190 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-64857 | https://github.com/earendil-works/pi-mono/issues/4218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/CHANGELOG.md@byte-64997 | https://github.com/earendil-works/pi-mono/issues/4184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/src/api/azure-openai-responses.ts@byte-1191 | https://github.com/earendil-works/pi/issues/6265 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/src/api/openai-responses-shared.ts@byte-18130 | https://github.com/earendil-works/pi/issues/6409. | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/src/api/openai-responses.ts@byte-1360 | https://github.com/earendil-works/pi/issues/6265 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/test/openai-completions-empty-tools.test.ts@byte-402 | https://github.com/earendil-works/pi-mono/issues/ | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/ai/test/tool-call-id-normalization.test.ts@byte-356 | https://github.com/earendil-works/pi-mono/issues/1022 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/client/CHANGELOG.md@byte-262 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-407 | https://github.com/earendil-works/pi/issues/7152 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-1659 | https://github.com/earendil-works/pi/issues/7128 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-2379 | https://github.com/earendil-works/pi/issues/7731 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-4189 | https://github.com/earendil-works/pi/issues/7290 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-4626 | https://github.com/earendil-works/pi/issues/7030 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-8452 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-8808 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-9120 | @earendil-works/pi-coding-agent/client | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-9304 | https://github.com/earendil-works/pi/pull/7344 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-9361 | https://github.com/earendil-works/pi/pull/7348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-9418 | https://github.com/earendil-works/pi/pull/7371 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-9475 | https://github.com/earendil-works/pi/pull/7409 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-9891 | https://github.com/earendil-works/pi/pull/7231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-10087 | https://github.com/earendil-works/pi/issues/7304 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-10937 | https://github.com/earendil-works/pi/pull/7624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-11414 | https://github.com/earendil-works/pi/pull/7681 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-11669 | https://github.com/earendil-works/pi/pull/7493 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-12209 | https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-12449 | https://github.com/earendil-works/pi/pull/7638 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-12985 | https://github.com/earendil-works/pi/pull/7339 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-13459 | https://github.com/earendil-works/pi/pull/7286 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-13784 | https://github.com/earendil-works/pi/pull/7367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-13978 | https://github.com/earendil-works/pi/pull/7611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-14188 | https://github.com/earendil-works/pi/pull/7448 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-14245 | https://github.com/earendil-works/pi/pull/7646 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-14924 | https://github.com/earendil-works/pi/issues/7684 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-15238 | https://github.com/earendil-works/pi/issues/7508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-15496 | https://github.com/earendil-works/pi/issues/7328 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-15753 | https://github.com/earendil-works/pi/issues/7676 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-16117 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-16291 | https://github.com/earendil-works/pi/issues/6817 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-16615 | https://github.com/earendil-works/pi/issues/7064 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-16674 | https://github.com/earendil-works/pi/issues/7547 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-16840 | https://github.com/earendil-works/pi/issues/7572 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-16987 | https://github.com/earendil-works/pi/issues/7560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-17313 | https://github.com/earendil-works/pi/issues/7327 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-17515 | https://github.com/earendil-works/pi/pull/7390 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-18264 | https://github.com/earendil-works/pi/issues/7333 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-18405 | https://github.com/earendil-works/pi/issues/7187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-18709 | https://github.com/earendil-works/pi/issues/7292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-18966 | https://github.com/earendil-works/pi/pull/7325 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-19190 | https://github.com/earendil-works/pi/issues/7319 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-19437 | https://github.com/earendil-works/pi/issues/7316 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-19593 | https://github.com/earendil-works/pi/issues/7301 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-19652 | https://github.com/earendil-works/pi/pull/7421 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-20013 | https://github.com/earendil-works/pi/issues/7027 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-20072 | https://github.com/earendil-works/pi/issues/7113 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-20131 | https://github.com/earendil-works/pi/issues/7418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-20327 | https://github.com/earendil-works/pi/issues/7153 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-20477 | https://github.com/earendil-works/pi/issues/7443 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-21395 | https://github.com/earendil-works/pi/issues/6768 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-21646 | https://github.com/earendil-works/pi/issues/7579 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-21865 | https://github.com/earendil-works/pi/issues/7574 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-22003 | https://github.com/earendil-works/pi/pull/7656 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-22205 | https://github.com/earendil-works/pi/pull/7387 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-22369 | https://github.com/earendil-works/pi/pull/7435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-22626 | https://github.com/earendil-works/pi/pull/7330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-22809 | https://github.com/earendil-works/pi/pull/7552 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-22972 | https://github.com/earendil-works/pi/pull/7370 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-23194 | https://github.com/earendil-works/pi/pull/7540 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-23419 | https://github.com/earendil-works/pi/pull/7570 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-23656 | https://github.com/earendil-works/pi/pull/7569 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-23870 | https://github.com/earendil-works/pi/pull/7632 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-24254 | https://github.com/earendil-works/pi/pull/7205 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-24469 | https://github.com/earendil-works/pi/pull/7358 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-24685 | https://github.com/earendil-works/pi/pull/7362 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-24917 | https://github.com/earendil-works/pi/pull/7364 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-25083 | https://github.com/earendil-works/pi/pull/7471 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-25302 | https://github.com/earendil-works/pi/pull/7494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-25495 | https://github.com/earendil-works/pi/pull/7672 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-25690 | https://github.com/earendil-works/pi/pull/7670 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-25880 | https://github.com/earendil-works/pi/pull/6987 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-26158 | https://github.com/earendil-works/pi/pull/7550 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-26300 | https://github.com/earendil-works/pi/pull/7581 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-26463 | https://github.com/earendil-works/pi/pull/7612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-26595 | https://github.com/earendil-works/pi/pull/7657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-26938 | https://github.com/earendil-works/pi/issues/7199 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-26997 | https://github.com/earendil-works/pi/pull/7230 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-28969 | https://github.com/earendil-works/pi/pull/7243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-29290 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-29537 | https://github.com/earendil-works/pi/pull/7191 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-29636 | https://github.com/earendil-works/pi/pull/7215 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-29948 | https://github.com/earendil-works/pi/pull/7151 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-30257 | https://github.com/earendil-works/pi/pull/7272 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-30478 | https://github.com/earendil-works/pi/pull/7114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-30741 | https://github.com/earendil-works/pi/pull/7158 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-31024 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-31159 | https://github.com/earendil-works/pi/issues/7180 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-31404 | https://github.com/earendil-works/pi/issues/7096 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-31614 | https://github.com/earendil-works/pi/pull/7221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-31864 | https://github.com/earendil-works/pi/pull/7258 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-32179 | https://github.com/earendil-works/pi/pull/7022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-32436 | https://github.com/earendil-works/pi/pull/7210 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-32649 | https://github.com/earendil-works/pi/pull/7211 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-32899 | https://github.com/earendil-works/pi/pull/7214 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-33118 | https://github.com/earendil-works/pi/issues/6968 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-33278 | https://github.com/earendil-works/pi/pull/7103 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-33477 | https://github.com/earendil-works/pi/pull/7110 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-33718 | https://github.com/earendil-works/pi/issues/6951 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-33777 | https://github.com/earendil-works/pi/issues/6998 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-33955 | https://github.com/earendil-works/pi/pull/7174 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-34218 | https://github.com/earendil-works/pi/pull/7176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-34507 | https://github.com/earendil-works/pi/pull/7262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-34705 | https://github.com/earendil-works/pi/pull/7288 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-35689 | https://github.com/earendil-works/pi/pull/7045 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-35950 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-36182 | https://github.com/earendil-works/pi/pull/7081 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-36279 | https://github.com/earendil-works/pi/pull/7083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-37019 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-37204 | https://github.com/earendil-works/pi/issues/6949 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-37263 | https://github.com/earendil-works/pi/pull/7032 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-37521 | https://github.com/earendil-works/pi/pull/7106 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-37790 | https://github.com/earendil-works/pi/pull/7072 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-39369 | https://github.com/earendil-works/pi/pull/6935 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-39616 | https://github.com/earendil-works/pi/pull/6927 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-40138 | https://github.com/earendil-works/pi/pull/6971 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-40385 | https://github.com/earendil-works/pi/pull/6928 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-40631 | https://github.com/earendil-works/pi/pull/6946 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-40895 | https://github.com/earendil-works/pi/pull/6941 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-41152 | https://github.com/earendil-works/pi/pull/6955 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-41372 | https://github.com/earendil-works/pi/pull/6958 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-41579 | https://github.com/earendil-works/pi/pull/6903 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-41801 | https://github.com/earendil-works/pi/pull/6964 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-42031 | https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-42200 | https://github.com/earendil-works/pi/issues/6977 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-42363 | https://github.com/earendil-works/pi/issues/6210 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-42535 | https://github.com/earendil-works/pi/pull/6980 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-42766 | https://github.com/earendil-works/pi/pull/7016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-42943 | https://github.com/earendil-works/pi/pull/7015 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-43173 | https://github.com/earendil-works/pi/pull/7034 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-43487 | https://github.com/earendil-works/pi/issues/7005 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-43626 | https://github.com/earendil-works/pi/pull/7009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-43824 | https://github.com/earendil-works/pi/issues/6999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-44755 | https://github.com/earendil-works/pi/pull/6913 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-45079 | https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-45388 | https://github.com/earendil-works/pi/issues/6915 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-46598 | https://github.com/earendil-works/pi/pull/6858 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-46815 | https://github.com/earendil-works/pi/pull/6865 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-47014 | https://github.com/earendil-works/pi/pull/6772 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-47604 | https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-47782 | https://github.com/earendil-works/pi/pull/6896 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-48108 | https://github.com/earendil-works/pi/pull/6864 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-48357 | https://github.com/earendil-works/pi/pull/6854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-48765 | https://github.com/earendil-works/pi/pull/6812 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-48992 | https://github.com/earendil-works/pi/pull/6790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-49198 | https://github.com/earendil-works/pi/pull/6764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-49458 | https://github.com/earendil-works/pi/issues/6844 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-49597 | https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-49808 | https://github.com/earendil-works/pi/pull/6853 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-50004 | https://github.com/earendil-works/pi/pull/6730 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-50185 | https://github.com/earendil-works/pi/pull/6731 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-50638 | https://github.com/earendil-works/pi/issues/6793 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-50796 | https://github.com/earendil-works/pi/issues/6695 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-50956 | https://github.com/earendil-works/pi/issues/6735 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-51221 | https://github.com/earendil-works/pi/issues/6727 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-51992 | https://github.com/earendil-works/pi/issues/6737 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-52129 | https://github.com/earendil-works/pi/issues/6736 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-53215 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-53662 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-56629 | https://github.com/earendil-works/pi-mono/pull/6651 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-57771 | https://github.com/earendil-works/pi-mono/issues/6630 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-57912 | https://github.com/earendil-works/pi-mono/pull/6697 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-58079 | https://github.com/earendil-works/pi-mono/issues/6629 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-58581 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-59696 | https://github.com/earendil-works/pi-mono/pull/6474 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-59877 | https://github.com/earendil-works/pi-mono/pull/6490 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-60191 | https://github.com/earendil-works/pi-mono/pull/6588 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-60400 | https://github.com/earendil-works/pi-mono/pull/6481 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-60653 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-61116 | https://github.com/earendil-works/pi-mono/pull/6532 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-61377 | https://github.com/earendil-works/pi-mono/pull/6292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-61592 | https://github.com/earendil-works/pi-mono/pull/6523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-61798 | https://github.com/earendil-works/pi-mono/pull/6544 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-62006 | https://github.com/earendil-works/pi-mono/pull/6595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-62242 | https://github.com/earendil-works/pi-mono/pull/6598 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-62439 | https://github.com/earendil-works/pi-mono/pull/6604 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-62676 | https://github.com/earendil-works/pi-mono/pull/6608 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-62879 | https://github.com/earendil-works/pi-mono/pull/6611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-63127 | https://github.com/earendil-works/pi-mono/pull/6645 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-63344 | https://github.com/earendil-works/pi/issues/6621 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-64433 | https://github.com/earendil-works/pi/pull/6470 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-64691 | https://github.com/earendil-works/pi/issues/6464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-65355 | https://github.com/earendil-works/pi/pull/6457 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-66839 | https://github.com/earendil-works/pi/issues/6200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-67138 | https://github.com/earendil-works/pi/issues/6201 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-67309 | https://github.com/earendil-works/pi/issues/6363 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-67466 | https://github.com/earendil-works/pi/pull/6350 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-67640 | https://github.com/earendil-works/pi/pull/6267 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-68073 | https://github.com/earendil-works/pi/pull/6309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-68232 | https://github.com/earendil-works/pi/issues/6435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-68360 | https://github.com/earendil-works/pi/pull/6417 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-68731 | https://github.com/earendil-works/pi/pull/6449 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-68912 | https://github.com/earendil-works/pi/issues/6239 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-69194 | https://github.com/earendil-works/pi/issues/6187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-69424 | https://github.com/earendil-works/pi/issues/6268 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-69623 | https://github.com/earendil-works/pi/issues/6262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-69812 | https://github.com/earendil-works/pi/issues/6195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-69943 | https://github.com/earendil-works/pi/pull/6430 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-70108 | https://github.com/earendil-works/pi/pull/6418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-70362 | https://github.com/earendil-works/pi/issues/6439 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-70532 | https://github.com/earendil-works/pi/pull/6397 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-70800 | https://github.com/earendil-works/pi/pull/6343 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-70981 | https://github.com/earendil-works/pi/pull/6285 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-71360 | https://github.com/earendil-works/pi/issues/6265 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-71513 | https://github.com/earendil-works/pi/issues/6235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-71991 | https://github.com/earendil-works/pi/pull/6279 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-72235 | https://github.com/earendil-works/pi/issues/6204 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-72425 | https://github.com/earendil-works/pi/issues/6231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-72627 | https://github.com/earendil-works/pi/issues/6189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-72819 | https://github.com/earendil-works/pi/issues/6223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-73006 | https://github.com/earendil-works/pi/issues/5536 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-73152 | https://github.com/earendil-works/pi/issues/6326 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-73499 | https://github.com/earendil-works/pi/issues/6181 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-73681 | https://github.com/earendil-works/pi/issues/6278 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-73802 | https://github.com/earendil-works/pi/issues/6354 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-74035 | https://github.com/earendil-works/pi/issues/6431 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-74184 | https://github.com/earendil-works/pi/issues/6367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-74390 | https://github.com/earendil-works/pi/issues/6369 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-74564 | https://github.com/earendil-works/pi/issues/6407 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-74711 | https://github.com/earendil-works/pi/issues/6395 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-76320 | https://github.com/earendil-works/pi/pull/6078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-76557 | https://github.com/earendil-works/pi/pull/6175 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-76742 | https://github.com/earendil-works/pi/pull/6004 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-76947 | https://github.com/earendil-works/pi/issues/6057 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-77162 | https://github.com/earendil-works/pi/issues/6122 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-77323 | https://github.com/earendil-works/pi/issues/6168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-77644 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-77950 | https://github.com/earendil-works/pi/issues/6138 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-78108 | https://github.com/earendil-works/pi/pull/5832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-78361 | https://github.com/earendil-works/pi/issues/5595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-78538 | https://github.com/earendil-works/pi/issues/6009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-78790 | https://github.com/earendil-works/pi/issues/6083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-78940 | https://github.com/earendil-works/pi/pull/6074 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-79121 | https://github.com/earendil-works/pi/pull/6048 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-79383 | https://github.com/earendil-works/pi/pull/6030 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-79474 | https://github.com/earendil-works/pi/pull/6063 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-79724 | https://github.com/earendil-works/pi/issues/6162 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-79889 | https://github.com/earendil-works/pi/issues/6133 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-80209 | https://github.com/earendil-works/pi/pull/6026 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-80383 | https://github.com/earendil-works/pi/issues/6002 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-80556 | https://github.com/earendil-works/pi/issues/6105 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-80713 | https://github.com/earendil-works/pi/issues/4290 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-80894 | https://github.com/earendil-works/pi/issues/6070 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-81069 | https://github.com/earendil-works/pi/issues/6047 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-81226 | https://github.com/earendil-works/pi/issues/6019 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-82054 | https://github.com/earendil-works/pi/issues/6021 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-82247 | https://github.com/earendil-works/pi/issues/6016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-82306 | https://github.com/earendil-works/pi/issues/6017 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-82488 | https://github.com/earendil-works/pi/issues/6020 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-83149 | https://github.com/earendil-works/pi/issues/5965 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-83363 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-83406 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-83712 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-84019 | https://github.com/earendil-works/pi/pull/5999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-84229 | https://github.com/earendil-works/pi/pull/5784 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-84633 | https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-84877 | https://github.com/earendil-works/pi/issues/5973 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-85415 | https://github.com/earendil-works/pi/issues/5967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-85697 | https://github.com/earendil-works/pi/issues/5953 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-85803 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-85836 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-86883 | https://github.com/earendil-works/pi/pull/5962 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-87130 | https://github.com/earendil-works/pi/issues/5960 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-87268 | https://github.com/earendil-works/pi/issues/5959 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-87462 | https://github.com/earendil-works/pi/issues/5114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-87597 | https://github.com/earendil-works/pi/issues/5957 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-87838 | https://github.com/earendil-works/pi/issues/5943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-88077 | https://github.com/earendil-works/pi/issues/5940 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-89349 | https://github.com/earendil-works/pi/issues/5673 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-89554 | https://github.com/earendil-works/pi/issues/5923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-89755 | https://github.com/earendil-works/pi/issues/5905 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-89901 | https://github.com/earendil-works/pi/issues/5909 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-90080 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-90292 | https://github.com/earendil-works/pi/pull/5846 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-90511 | https://github.com/earendil-works/pi/issues/5899 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-90696 | https://github.com/earendil-works/pi/issues/5893 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-90854 | https://github.com/earendil-works/pi/issues/5897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-91027 | https://github.com/earendil-works/pi/issues/5892 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-91189 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-91222 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-92236 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-92269 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-92387 | https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-92633 | https://github.com/earendil-works/pi/issues/5854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-92782 | https://github.com/earendil-works/pi/issues/5877 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-92912 | https://github.com/earendil-works/pi/pull/5866 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-93241 | https://github.com/earendil-works/pi/issues/4811 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-93404 | https://github.com/earendil-works/pi/issues/5720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-94390 | https://github.com/earendil-works/pi/pull/5874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-94570 | https://github.com/earendil-works/pi/pull/5841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-94805 | https://github.com/earendil-works/pi/pull/5869 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-95058 | https://github.com/earendil-works/pi/pull/5756 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-95670 | https://github.com/earendil-works/pi/issues/5868 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-95986 | https://github.com/earendil-works/pi/issues/5830 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-97194 | https://github.com/earendil-works/pi/pull/5798 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-97481 | https://github.com/earendil-works/pi/issues/5790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-97697 | https://github.com/earendil-works/pi/issues/5728 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-97999 | https://github.com/earendil-works/pi/issues/5819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-98173 | https://github.com/earendil-works/pi/issues/5818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-98427 | https://github.com/earendil-works/pi/pull/5789 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-98650 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-98881 | https://github.com/earendil-works/pi/issues/5805 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-99179 | https://github.com/earendil-works/pi/issues/5761 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-99383 | https://github.com/earendil-works/pi/issues/5747 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-99594 | https://github.com/earendil-works/pi/issues/5760 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-100184 | https://github.com/earendil-works/pi/issues/5739 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-100320 | https://github.com/earendil-works/pi/pull/5385 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-100586 | https://github.com/earendil-works/pi/pull/5753 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-100798 | https://github.com/earendil-works/pi/issues/5055 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-101075 | https://github.com/earendil-works/pi/issues/5724 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-101280 | https://github.com/earendil-works/pi/issues/5729 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-101463 | https://github.com/earendil-works/pi/pull/5708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-101712 | https://github.com/earendil-works/pi/issues/5687 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-101891 | https://github.com/earendil-works/pi/issues/5689 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-102118 | https://github.com/earendil-works/pi/issues/5695 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-102331 | https://github.com/earendil-works/pi/pull/5738 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-102561 | https://github.com/earendil-works/pi/issues/4637 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-102771 | https://github.com/earendil-works/pi/issues/5702 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-102967 | https://github.com/earendil-works/pi/issues/5297 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-103217 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-103276 | https://github.com/earendil-works/pi/issues/4415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-103545 | https://github.com/earendil-works/pi/issues/5661 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-104469 | https://github.com/earendil-works/pi/pull/5587 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-104697 | https://github.com/earendil-works/pi/pull/5561 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-104984 | https://github.com/earendil-works/pi/issues/5619 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-105146 | https://github.com/earendil-works/pi/pull/5627 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-105366 | https://github.com/earendil-works/pi/issues/5677 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-105569 | https://github.com/earendil-works/pi/issues/5644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-105739 | https://github.com/earendil-works/pi/pull/5666 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-106032 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-106216 | https://github.com/earendil-works/pi/pull/5567 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-106459 | https://github.com/earendil-works/pi/issues/5573 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-106623 | https://github.com/earendil-works/pi/issues/5657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-106932 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-107112 | https://github.com/earendil-works/pi/pull/5585 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-107314 | https://github.com/earendil-works/pi/pull/5562 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-107545 | https://github.com/earendil-works/pi/issues/5643 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-107699 | https://github.com/earendil-works/pi/issues/5669 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-107887 | https://github.com/earendil-works/pi/issues/5596 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-108113 | https://github.com/earendil-works/pi/pull/5560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-109308 | https://github.com/earendil-works/pi/pull/5553 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-109507 | https://github.com/earendil-works/pi/pull/5547 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-109743 | https://github.com/earendil-works/pi/issues/5523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-110048 | https://github.com/earendil-works/pi/issues/4703 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-110153 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-110423 | https://github.com/earendil-works/pi/pull/5527 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-110620 | https://github.com/earendil-works/pi/pull/5283 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-110846 | https://github.com/earendil-works/pi/issues/5330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-111006 | https://github.com/earendil-works/pi/issues/5331 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-111201 | https://github.com/earendil-works/pi/issues/5531 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-111352 | https://github.com/earendil-works/pi/issues/5530 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-111568 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-111792 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-111963 | https://github.com/earendil-works/pi/issues/5494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-112170 | https://github.com/earendil-works/pi/issues/5495 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-112359 | https://github.com/earendil-works/pi/issues/5433 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-112521 | https://github.com/earendil-works/pi/issues/5377 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-112744 | https://github.com/earendil-works/pi/issues/5418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-112923 | https://github.com/earendil-works/pi/issues/5516 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-113227 | https://github.com/earendil-works/pi/issues/5045 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-113418 | https://github.com/earendil-works/pi/issues/4841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-114693 | https://github.com/earendil-works/pi/pull/5332 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-114895 | https://github.com/earendil-works/pi/issues/5455 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-115027 | https://github.com/earendil-works/pi/issues/5415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-115373 | https://github.com/earendil-works/pi/pull/5499 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-115813 | https://github.com/earendil-works/pi/issues/5188 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-115983 | https://github.com/earendil-works/pi/issues/5401 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-116179 | https://github.com/earendil-works/pi/issues/5456 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-116376 | https://github.com/earendil-works/pi/issues/5454 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-116562 | https://github.com/earendil-works/pi/issues/5432 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-116790 | https://github.com/earendil-works/pi/issues/5347 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-116928 | https://github.com/earendil-works/pi/issues/5359 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-117085 | https://github.com/earendil-works/pi/pull/5371 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-117880 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-117964 | https://github.com/earendil-works/pi/issues/5313 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-118343 | https://github.com/earendil-works/pi/pull/5306 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-119193 | https://github.com/earendil-works/pi/issues/5226 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-119784 | https://github.com/earendil-works/pi/issues/5294 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-119988 | https://github.com/earendil-works/pi/issues/4975 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-120149 | https://github.com/earendil-works/pi/pull/5251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-120341 | https://github.com/earendil-works/pi/issues/5243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-120497 | https://github.com/earendil-works/pi/issues/5309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-120660 | https://github.com/earendil-works/pi/pull/5221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-120896 | https://github.com/earendil-works/pi/pull/5235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-121142 | https://github.com/earendil-works/pi/issues/5218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-121355 | https://github.com/earendil-works/pi/issues/5231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-121513 | https://github.com/earendil-works/pi/pull/5264 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-121713 | https://github.com/earendil-works/pi/issues/5299 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-122351 | https://github.com/earendil-works/pi-mono/pull/5167 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-122510 | https://github.com/earendil-works/pi-mono/pull/5202 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-122675 | https://github.com/earendil-works/pi-mono/issues/5153 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-122805 | https://github.com/earendil-works/pi-mono/pull/5176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-122997 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-123161 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-123193 | https://github.com/earendil-works/pi-mono/pull/5178 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-123417 | https://github.com/earendil-works/pi-mono/issues/5200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-123634 | https://github.com/earendil-works/pi-mono/issues/5201 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-123829 | https://github.com/earendil-works/pi-mono/issues/5184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-124000 | https://github.com/earendil-works/pi-mono/pull/5195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-124215 | https://github.com/earendil-works/pi-mono/issues/5159 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-124481 | https://github.com/earendil-works/pi-mono/issues/5169 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-124853 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-125036 | https://github.com/earendil-works/pi-mono/issues/5185 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-126033 | https://github.com/earendil-works/pi/issues/5109 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-126226 | https://github.com/earendil-works/pi/pull/4911 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-126471 | https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-126804 | https://github.com/earendil-works/pi/issues/4829 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-127005 | https://github.com/earendil-works/pi/issues/4801 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-127525 | https://github.com/earendil-works/pi/issues/5080 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-127725 | https://github.com/earendil-works/pi/pull/5091 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-127943 | https://github.com/earendil-works/pi/issues/5028 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-128277 | https://github.com/earendil-works/pi/issues/5095 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-128438 | https://github.com/earendil-works/pi/pull/5029 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-128679 | https://github.com/earendil-works/pi/issues/4879 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-128918 | https://github.com/earendil-works/pi/issues/5148 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-129128 | https://github.com/earendil-works/pi/issues/4464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-129392 | https://github.com/earendil-works/pi/issues/5078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-129539 | https://github.com/earendil-works/pi/issues/5075 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-129707 | https://github.com/earendil-works/pi/pull/5115 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-129929 | https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-130141 | https://github.com/earendil-works/pi/issues/5132 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-130338 | https://github.com/earendil-works/pi/issues/5092 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-131431 | https://github.com/earendil-works/pi/issues/4874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-131599 | https://github.com/earendil-works/pi/issues/5039 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-131761 | https://github.com/earendil-works/pi/issues/5013 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-131936 | https://github.com/earendil-works/pi/issues/4929 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-132098 | https://github.com/earendil-works/pi/issues/4983 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-132365 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-132545 | https://github.com/earendil-works/pi/issues/4764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-132732 | https://github.com/earendil-works/pi/issues/4907 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-132916 | https://github.com/earendil-works/pi/issues/4897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-133095 | https://github.com/earendil-works/pi/issues/4967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-133245 | https://github.com/earendil-works/pi/issues/4969 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-133403 | https://github.com/earendil-works/pi/issues/4943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-133633 | https://github.com/earendil-works/pi-mono/pull/4991 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-133984 | https://github.com/earendil-works/pi/issues/4923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-134158 | https://github.com/earendil-works/pi-mono/pull/5037 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-134393 | https://github.com/earendil-works/pi-mono/pull/5022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-134497 | https://github.com/earendil-works/pi-mono/pull/5067 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-134601 | https://github.com/earendil-works/pi-mono/pull/5068 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-134788 | https://github.com/earendil-works/pi/issues/5041 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-135766 | https://github.com/earendil-works/pi-mono/pull/4797 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-135949 | https://github.com/earendil-works/pi/issues/4821 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-136202 | https://github.com/earendil-works/pi/issues/4916 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-136431 | https://github.com/earendil-works/pi/issues/4480 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-136583 | https://github.com/earendil-works/pi/issues/4868 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-136733 | https://github.com/earendil-works/pi/issues/4869 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-136873 | https://github.com/earendil-works/pi-mono/pull/4873 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-137067 | https://github.com/earendil-works/pi-mono/pull/4898 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-137253 | https://github.com/earendil-works/pi-mono/pull/4830 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-137439 | https://github.com/earendil-works/pi/issues/4847 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-137633 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-137665 | https://github.com/earendil-works/pi/issues/4842 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-137871 | https://github.com/earendil-works/pi/issues/4848 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-138009 | https://github.com/earendil-works/pi/issues/4832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-138236 | https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-138477 | https://github.com/earendil-works/pi/issues/4870 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-138652 | https://github.com/earendil-works/pi/issues/4876 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-138801 | https://github.com/earendil-works/pi/issues/4819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-138958 | https://github.com/earendil-works/pi/issues/4818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-139128 | https://github.com/earendil-works/pi/issues/4878 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-139321 | https://github.com/earendil-works/pi/issues/4307 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-139518 | https://github.com/earendil-works/pi-mono/pull/4756 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-140261 | https://github.com/earendil-works/pi-mono/pull/4724 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-140445 | https://github.com/earendil-works/pi-mono/pull/4775 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-141284 | https://github.com/earendil-works/pi/issues/4752 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-141481 | https://github.com/earendil-works/pi/issues/4276 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-141822 | https://github.com/earendil-works/pi-mono/pull/4799 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-142092 | https://github.com/earendil-works/pi/issues/4710 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-142265 | https://github.com/earendil-works/pi/issues/4699 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-142414 | https://github.com/earendil-works/pi/issues/4763 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-142585 | https://github.com/earendil-works/pi-mono/pull/4759 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-142789 | https://github.com/earendil-works/pi-mono/pull/4709 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-142996 | https://github.com/earendil-works/pi-mono/pull/4664 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-143330 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-143484 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-143586 | https://github.com/earendil-works/pi/issues/4675 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-143687 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-143766 | https://github.com/earendil-works/pi/issues/4720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-143965 | https://github.com/earendil-works/pi/issues/4793 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-144201 | https://github.com/earendil-works/pi/issues/4681 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-144423 | https://github.com/earendil-works/pi-mono/pull/4661 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-144686 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-144718 | https://github.com/earendil-works/pi/issues/4678 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-144876 | https://github.com/earendil-works/pi/issues/4612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-145061 | https://github.com/earendil-works/pi/issues/4157 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-145239 | https://github.com/earendil-works/pi/issues/4647 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-145421 | https://github.com/earendil-works/pi/issues/4157 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-145587 | https://github.com/earendil-works/pi/issues/4665 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-145763 | https://github.com/earendil-works/pi-mono/pull/4243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146063 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146095 | https://github.com/earendil-works/pi/issues/4342 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146267 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146299 | https://github.com/earendil-works/pi/issues/4223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146580 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146612 | https://github.com/earendil-works/pi/issues/4232 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146815 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-146847 | https://github.com/earendil-works/pi/issues/4251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147068 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147100 | https://github.com/earendil-works/pi/issues/4505 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147304 | https://github.com/earendil-works/pi/issues/4650 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147363 | https://github.com/earendil-works/pi/issues/4652 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147422 | https://github.com/earendil-works/pi/issues/4653 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147601 | https://github.com/earendil-works/pi/issues/4623 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147738 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-147998 | https://github.com/earendil-works/pi/issues/4484 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-148215 | https://github.com/earendil-works/pi-mono/pull/4541 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-148413 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-148445 | https://github.com/earendil-works/pi-mono/pull/4603 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-148621 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-148696 | https://github.com/earendil-works/pi-mono/pull/4622 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-148985 | https://github.com/earendil-works/pi/issues/4587 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-149211 | https://github.com/earendil-works/pi/issues/4619 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-149438 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-149470 | https://github.com/earendil-works/pi/issues/4614 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-149726 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-150281 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-150357 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-150494 | https://github.com/earendil-works/pi-mono/pull/3887 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-150716 | https://github.com/earendil-works/pi-mono/pull/3624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-150880 | https://github.com/earendil-works/pi/pull/4458 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-151133 | https://github.com/earendil-works/pi/issues/4519 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-151393 | https://github.com/earendil-works/pi/issues/4492 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-151538 | https://github.com/earendil-works/pi/issues/4508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-151811 | https://github.com/earendil-works/pi/issues/4559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-151966 | https://github.com/earendil-works/pi/issues/4534 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-152114 | https://github.com/earendil-works/pi/issues/4553 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-152291 | https://github.com/earendil-works/pi/issues/4583 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-152470 | https://github.com/earendil-works/pi/issues/4510 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-152715 | https://github.com/earendil-works/pi/issues/4503 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-152855 | https://github.com/earendil-works/pi/issues/4429 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-152988 | https://github.com/earendil-works/pi/issues/4433 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-153216 | https://github.com/earendil-works/pi-mono/pull/4426 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-153611 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-153813 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-153947 | https://github.com/earendil-works/pi/issues/4333 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-154072 | https://github.com/earendil-works/pi/issues/4289 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-154261 | https://github.com/earendil-works/pi/issues/4280 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-154420 | earendil-works/pi-mono | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-154449 | @earendil-works/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-154685 | @earendil-works/pi-coding-agent | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-155510 | https://github.com/earendil-works/pi-mono/pull/4190 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-155959 | https://github.com/earendil-works/pi-mono/pull/4244 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-156127 | https://github.com/earendil-works/pi-mono/pull/4162 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-156969 | https://github.com/earendil-works/pi-mono/pull/4234 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-157415 | https://github.com/earendil-works/pi-mono/issues/4184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-157547 | https://github.com/earendil-works/pi-mono/issues/4218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-233030 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-233178 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/CHANGELOG.md@byte-233958 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/docs/containerization.md@byte-1147 | https://github.com/earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/docs/containerization.md@byte-1938 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/index.ts@byte-568 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/index.ts@byte-1194 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-215 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-576 | node_modules/@earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-658 | https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-1138 | @earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-1205 | @earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-1276 | node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-1383 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-1813 | node_modules/@earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package-lock.json@byte-1917 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/examples/extensions/gondolin/package.json@byte-306 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/src/core/tools/find.ts@byte-8995 | https://github.com/earendil-works/pi/issues/5960 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/src/migrations.ts@byte-2629 | https://github.com/earendil-works/pi-mono/issues/320 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/src/utils/changelog.ts@byte-391 | earendil-works | Supported migration behavior | Legacy repository matcher; maintainers retire with legacy-link normalization | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/src/utils/child-process.ts@byte-1531 | earendil-works/pi#5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/changelog.test.ts@byte-1331 | https://github.com/earendil-works/pi-mono/pull/5167 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/2791-fswatch-error-crash.test.ts@byte-304 | https://github.com/earendil-works/pi-mono/issues/2791 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/3302-find-path-glob.test.ts@byte-315 | https://github.com/earendil-works/pi-mono/issues/3302 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/3303-find-nested-gitignore.test.ts@byte-315 | https://github.com/earendil-works/pi-mono/issues/3303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/5080-signal-shutdown-extension-cleanup.test.ts@byte-453 | https://github.com/earendil-works/pi/issues/5080 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/5303-bash-output-truncation.test.ts@byte-327 | https://github.com/earendil-works/pi/issues/5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/5724-sigterm-signal-exit.test.ts@byte-169 | https://github.com/earendil-works/pi/issues/5724 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/5868-rpc-unknown-command-id.test.ts@byte-296 | https://github.com/earendil-works/pi/issues/5868 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/coding-agent/test/suite/regressions/6104-find-root-relativization.test.ts@byte-219 | https://github.com/earendil-works/pi/issues/6104 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/protocol/CHANGELOG.md@byte-388 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/protocol/CHANGELOG.md@byte-666 | https://github.com/earendil-works/pi/pull/7644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/server/CHANGELOG.md@byte-322 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/server/CHANGELOG.md@byte-701 | https://github.com/earendil-works/pi/pull/7644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/server/CHANGELOG.md@byte-990 | https://github.com/earendil-works/pi/pull/6898 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/session-backends/sqlite-node/CHANGELOG.md@byte-195 | @earendil-works/pi-storage-sqlite-node | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/session-backends/sqlite-node/CHANGELOG.md@byte-239 | @earendil-works/pi-session-backend-sqlite-node | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/session-backends/sqlite-node/CHANGELOG.md@byte-817 | https://github.com/earendil-works/pi/pull/7655 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/session-backends/sqlite-node/CHANGELOG.md@byte-1139 | https://github.com/earendil-works/pi/pull/6594 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-198 | https://github.com/earendil-works/pi/issues/7735 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-377 | https://github.com/earendil-works/pi/issues/7725 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-1547 | https://github.com/earendil-works/pi/issues/7304 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-2350 | https://github.com/earendil-works/pi/pull/7361 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-3034 | https://github.com/earendil-works/pi/pull/6987 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-3932 | https://github.com/earendil-works/pi/issues/7574 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-4242 | https://github.com/earendil-works/pi/pull/7550 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-4374 | https://github.com/earendil-works/pi/pull/7581 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-4527 | https://github.com/earendil-works/pi/pull/7612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-4649 | https://github.com/earendil-works/pi/pull/7657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-4971 | https://github.com/earendil-works/pi/pull/7262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-5243 | https://github.com/earendil-works/pi/pull/6958 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-5452 | https://github.com/earendil-works/pi/pull/7015 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-5779 | https://github.com/earendil-works/pi/pull/6790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-5988 | https://github.com/earendil-works/pi/pull/6764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-6389 | https://github.com/earendil-works/pi/issues/6844 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-6606 | https://github.com/earendil-works/pi-mono/pull/6697 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-6841 | https://github.com/earendil-works/pi-mono/pull/6523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-7185 | https://github.com/earendil-works/pi/pull/6397 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-7437 | https://github.com/earendil-works/pi/issues/6105 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-7870 | https://github.com/earendil-works/pi/pull/5846 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-8245 | https://github.com/earendil-works/pi/pull/5874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-8376 | https://github.com/earendil-works/pi/pull/5841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-8785 | https://github.com/earendil-works/pi/pull/5789 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-8989 | https://github.com/earendil-works/pi/pull/5385 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-9229 | https://github.com/earendil-works/pi/issues/5297 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-9469 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-9528 | https://github.com/earendil-works/pi/issues/4415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-9788 | https://github.com/earendil-works/pi/issues/5657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-10077 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-10247 | https://github.com/earendil-works/pi/pull/5585 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-10439 | https://github.com/earendil-works/pi/pull/5562 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-10709 | https://github.com/earendil-works/pi/issues/4703 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-10866 | https://github.com/earendil-works/pi/pull/5283 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-11067 | https://github.com/earendil-works/pi/issues/5494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-11264 | https://github.com/earendil-works/pi/issues/5495 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-11550 | https://github.com/earendil-works/pi/issues/5454 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-11738 | https://github.com/earendil-works/pi/issues/5188 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-11946 | https://github.com/earendil-works/pi/pull/5499 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-12220 | https://github.com/earendil-works/pi/pull/5235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-12456 | https://github.com/earendil-works/pi/issues/5218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-12634 | https://github.com/earendil-works/pi-mono/issues/5185 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-12788 | https://github.com/earendil-works/pi-mono/issues/5200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-12930 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-13211 | https://github.com/earendil-works/pi/pull/5091 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-13462 | https://github.com/earendil-works/pi/issues/5013 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-13779 | https://github.com/earendil-works/pi/issues/4923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-13953 | https://github.com/earendil-works/pi-mono/pull/5037 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-14188 | https://github.com/earendil-works/pi-mono/pull/5022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-14292 | https://github.com/earendil-works/pi-mono/pull/5067 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-14396 | https://github.com/earendil-works/pi-mono/pull/5068 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-14700 | https://github.com/earendil-works/pi/issues/4480 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-15463 | https://github.com/earendil-works/pi-mono/pull/4327 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-15629 | https://github.com/earendil-works/pi-mono/pull/4379 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-15805 | https://github.com/earendil-works/pi-mono/pull/4463 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-16008 | https://github.com/earendil-works/pi-mono/pull/4461 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/CHANGELOG.md@byte-16196 | https://github.com/earendil-works/pi-mono/pull/4482 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/src/components/markdown.ts@byte-5102 | https://github.com/earendil-works/pi/issues/5825. | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/packages/tui/test/editor.test.ts@byte-80874 | earendil-works/pi#5496: | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| diffex-identity-source.tar.gz!diffex-0.2.0/scripts/release-notes.mjs@byte-478 | earendil-works | Supported migration behavior | Legacy repository matcher; maintainers retire with legacy-link normalization | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-407 | https://github.com/earendil-works/pi/issues/7152 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-1659 | https://github.com/earendil-works/pi/issues/7128 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-2379 | https://github.com/earendil-works/pi/issues/7731 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-4189 | https://github.com/earendil-works/pi/issues/7290 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-4626 | https://github.com/earendil-works/pi/issues/7030 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-8452 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-8808 | https://github.com/earendil-works/pi/pull/7708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-9120 | @earendil-works/pi-coding-agent/client | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-9304 | https://github.com/earendil-works/pi/pull/7344 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-9361 | https://github.com/earendil-works/pi/pull/7348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-9418 | https://github.com/earendil-works/pi/pull/7371 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-9475 | https://github.com/earendil-works/pi/pull/7409 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-9891 | https://github.com/earendil-works/pi/pull/7231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-10087 | https://github.com/earendil-works/pi/issues/7304 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-10937 | https://github.com/earendil-works/pi/pull/7624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-11414 | https://github.com/earendil-works/pi/pull/7681 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-11669 | https://github.com/earendil-works/pi/pull/7493 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-12209 | https://github.com/earendil-works/pi/pull/7568 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-12449 | https://github.com/earendil-works/pi/pull/7638 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-12985 | https://github.com/earendil-works/pi/pull/7339 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-13459 | https://github.com/earendil-works/pi/pull/7286 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-13784 | https://github.com/earendil-works/pi/pull/7367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-13978 | https://github.com/earendil-works/pi/pull/7611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-14188 | https://github.com/earendil-works/pi/pull/7448 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-14245 | https://github.com/earendil-works/pi/pull/7646 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-14924 | https://github.com/earendil-works/pi/issues/7684 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-15238 | https://github.com/earendil-works/pi/issues/7508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-15496 | https://github.com/earendil-works/pi/issues/7328 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-15753 | https://github.com/earendil-works/pi/issues/7676 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-16117 | https://github.com/earendil-works/pi/pull/7707 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-16291 | https://github.com/earendil-works/pi/issues/6817 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-16615 | https://github.com/earendil-works/pi/issues/7064 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-16674 | https://github.com/earendil-works/pi/issues/7547 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-16840 | https://github.com/earendil-works/pi/issues/7572 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-16987 | https://github.com/earendil-works/pi/issues/7560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-17313 | https://github.com/earendil-works/pi/issues/7327 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-17515 | https://github.com/earendil-works/pi/pull/7390 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-18264 | https://github.com/earendil-works/pi/issues/7333 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-18405 | https://github.com/earendil-works/pi/issues/7187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-18709 | https://github.com/earendil-works/pi/issues/7292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-18966 | https://github.com/earendil-works/pi/pull/7325 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-19190 | https://github.com/earendil-works/pi/issues/7319 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-19437 | https://github.com/earendil-works/pi/issues/7316 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-19593 | https://github.com/earendil-works/pi/issues/7301 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-19652 | https://github.com/earendil-works/pi/pull/7421 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-20013 | https://github.com/earendil-works/pi/issues/7027 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-20072 | https://github.com/earendil-works/pi/issues/7113 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-20131 | https://github.com/earendil-works/pi/issues/7418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-20327 | https://github.com/earendil-works/pi/issues/7153 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-20477 | https://github.com/earendil-works/pi/issues/7443 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-21395 | https://github.com/earendil-works/pi/issues/6768 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-21646 | https://github.com/earendil-works/pi/issues/7579 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-21865 | https://github.com/earendil-works/pi/issues/7574 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-22003 | https://github.com/earendil-works/pi/pull/7656 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-22205 | https://github.com/earendil-works/pi/pull/7387 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-22369 | https://github.com/earendil-works/pi/pull/7435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-22626 | https://github.com/earendil-works/pi/pull/7330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-22809 | https://github.com/earendil-works/pi/pull/7552 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-22972 | https://github.com/earendil-works/pi/pull/7370 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-23194 | https://github.com/earendil-works/pi/pull/7540 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-23419 | https://github.com/earendil-works/pi/pull/7570 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-23656 | https://github.com/earendil-works/pi/pull/7569 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-23870 | https://github.com/earendil-works/pi/pull/7632 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-24254 | https://github.com/earendil-works/pi/pull/7205 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-24469 | https://github.com/earendil-works/pi/pull/7358 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-24685 | https://github.com/earendil-works/pi/pull/7362 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-24917 | https://github.com/earendil-works/pi/pull/7364 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-25083 | https://github.com/earendil-works/pi/pull/7471 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-25302 | https://github.com/earendil-works/pi/pull/7494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-25495 | https://github.com/earendil-works/pi/pull/7672 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-25690 | https://github.com/earendil-works/pi/pull/7670 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-25880 | https://github.com/earendil-works/pi/pull/6987 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-26158 | https://github.com/earendil-works/pi/pull/7550 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-26300 | https://github.com/earendil-works/pi/pull/7581 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-26463 | https://github.com/earendil-works/pi/pull/7612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-26595 | https://github.com/earendil-works/pi/pull/7657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-26938 | https://github.com/earendil-works/pi/issues/7199 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-26997 | https://github.com/earendil-works/pi/pull/7230 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-28969 | https://github.com/earendil-works/pi/pull/7243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-29290 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-29537 | https://github.com/earendil-works/pi/pull/7191 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-29636 | https://github.com/earendil-works/pi/pull/7215 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-29948 | https://github.com/earendil-works/pi/pull/7151 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-30257 | https://github.com/earendil-works/pi/pull/7272 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-30478 | https://github.com/earendil-works/pi/pull/7114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-30741 | https://github.com/earendil-works/pi/pull/7158 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-31024 | https://github.com/earendil-works/pi/pull/7168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-31159 | https://github.com/earendil-works/pi/issues/7180 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-31404 | https://github.com/earendil-works/pi/issues/7096 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-31614 | https://github.com/earendil-works/pi/pull/7221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-31864 | https://github.com/earendil-works/pi/pull/7258 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-32179 | https://github.com/earendil-works/pi/pull/7022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-32436 | https://github.com/earendil-works/pi/pull/7210 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-32649 | https://github.com/earendil-works/pi/pull/7211 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-32899 | https://github.com/earendil-works/pi/pull/7214 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-33118 | https://github.com/earendil-works/pi/issues/6968 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-33278 | https://github.com/earendil-works/pi/pull/7103 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-33477 | https://github.com/earendil-works/pi/pull/7110 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-33718 | https://github.com/earendil-works/pi/issues/6951 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-33777 | https://github.com/earendil-works/pi/issues/6998 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-33955 | https://github.com/earendil-works/pi/pull/7174 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-34218 | https://github.com/earendil-works/pi/pull/7176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-34507 | https://github.com/earendil-works/pi/pull/7262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-34705 | https://github.com/earendil-works/pi/pull/7288 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-35689 | https://github.com/earendil-works/pi/pull/7045 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-35950 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-36182 | https://github.com/earendil-works/pi/pull/7081 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-36279 | https://github.com/earendil-works/pi/pull/7083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-37019 | https://github.com/earendil-works/pi/issues/5871 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-37204 | https://github.com/earendil-works/pi/issues/6949 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-37263 | https://github.com/earendil-works/pi/pull/7032 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-37521 | https://github.com/earendil-works/pi/pull/7106 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-37790 | https://github.com/earendil-works/pi/pull/7072 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-39369 | https://github.com/earendil-works/pi/pull/6935 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-39616 | https://github.com/earendil-works/pi/pull/6927 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-40138 | https://github.com/earendil-works/pi/pull/6971 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-40385 | https://github.com/earendil-works/pi/pull/6928 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-40631 | https://github.com/earendil-works/pi/pull/6946 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-40895 | https://github.com/earendil-works/pi/pull/6941 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-41152 | https://github.com/earendil-works/pi/pull/6955 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-41372 | https://github.com/earendil-works/pi/pull/6958 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-41579 | https://github.com/earendil-works/pi/pull/6903 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-41801 | https://github.com/earendil-works/pi/pull/6964 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-42031 | https://github.com/earendil-works/pi/pull/6618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-42200 | https://github.com/earendil-works/pi/issues/6977 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-42363 | https://github.com/earendil-works/pi/issues/6210 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-42535 | https://github.com/earendil-works/pi/pull/6980 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-42766 | https://github.com/earendil-works/pi/pull/7016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-42943 | https://github.com/earendil-works/pi/pull/7015 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-43173 | https://github.com/earendil-works/pi/pull/7034 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-43487 | https://github.com/earendil-works/pi/issues/7005 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-43626 | https://github.com/earendil-works/pi/pull/7009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-43824 | https://github.com/earendil-works/pi/issues/6999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-44755 | https://github.com/earendil-works/pi/pull/6913 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-45079 | https://github.com/earendil-works/pi/pull/6901 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-45388 | https://github.com/earendil-works/pi/issues/6915 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-46598 | https://github.com/earendil-works/pi/pull/6858 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-46815 | https://github.com/earendil-works/pi/pull/6865 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-47014 | https://github.com/earendil-works/pi/pull/6772 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-47604 | https://github.com/earendil-works/pi/pull/6671 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-47782 | https://github.com/earendil-works/pi/pull/6896 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-48108 | https://github.com/earendil-works/pi/pull/6864 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-48357 | https://github.com/earendil-works/pi/pull/6854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-48765 | https://github.com/earendil-works/pi/pull/6812 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-48992 | https://github.com/earendil-works/pi/pull/6790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-49198 | https://github.com/earendil-works/pi/pull/6764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-49458 | https://github.com/earendil-works/pi/issues/6844 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-49597 | https://github.com/earendil-works/pi/pull/6834 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-49808 | https://github.com/earendil-works/pi/pull/6853 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-50004 | https://github.com/earendil-works/pi/pull/6730 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-50185 | https://github.com/earendil-works/pi/pull/6731 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-50638 | https://github.com/earendil-works/pi/issues/6793 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-50796 | https://github.com/earendil-works/pi/issues/6695 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-50956 | https://github.com/earendil-works/pi/issues/6735 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-51221 | https://github.com/earendil-works/pi/issues/6727 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-51992 | https://github.com/earendil-works/pi/issues/6737 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-52129 | https://github.com/earendil-works/pi/issues/6736 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-53215 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-53662 | https://github.com/earendil-works/pi-mono/pull/6734 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-56629 | https://github.com/earendil-works/pi-mono/pull/6651 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-57771 | https://github.com/earendil-works/pi-mono/issues/6630 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-57912 | https://github.com/earendil-works/pi-mono/pull/6697 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-58079 | https://github.com/earendil-works/pi-mono/issues/6629 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-58581 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-59696 | https://github.com/earendil-works/pi-mono/pull/6474 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-59877 | https://github.com/earendil-works/pi-mono/pull/6490 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-60191 | https://github.com/earendil-works/pi-mono/pull/6588 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-60400 | https://github.com/earendil-works/pi-mono/pull/6481 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-60653 | https://github.com/earendil-works/pi-mono/pull/6496 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-61116 | https://github.com/earendil-works/pi-mono/pull/6532 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-61377 | https://github.com/earendil-works/pi-mono/pull/6292 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-61592 | https://github.com/earendil-works/pi-mono/pull/6523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-61798 | https://github.com/earendil-works/pi-mono/pull/6544 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-62006 | https://github.com/earendil-works/pi-mono/pull/6595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-62242 | https://github.com/earendil-works/pi-mono/pull/6598 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-62439 | https://github.com/earendil-works/pi-mono/pull/6604 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-62676 | https://github.com/earendil-works/pi-mono/pull/6608 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-62879 | https://github.com/earendil-works/pi-mono/pull/6611 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-63127 | https://github.com/earendil-works/pi-mono/pull/6645 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-63344 | https://github.com/earendil-works/pi/issues/6621 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-64433 | https://github.com/earendil-works/pi/pull/6470 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-64691 | https://github.com/earendil-works/pi/issues/6464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-65355 | https://github.com/earendil-works/pi/pull/6457 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-66839 | https://github.com/earendil-works/pi/issues/6200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-67138 | https://github.com/earendil-works/pi/issues/6201 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-67309 | https://github.com/earendil-works/pi/issues/6363 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-67466 | https://github.com/earendil-works/pi/pull/6350 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-67640 | https://github.com/earendil-works/pi/pull/6267 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-68073 | https://github.com/earendil-works/pi/pull/6309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-68232 | https://github.com/earendil-works/pi/issues/6435 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-68360 | https://github.com/earendil-works/pi/pull/6417 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-68731 | https://github.com/earendil-works/pi/pull/6449 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-68912 | https://github.com/earendil-works/pi/issues/6239 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-69194 | https://github.com/earendil-works/pi/issues/6187 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-69424 | https://github.com/earendil-works/pi/issues/6268 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-69623 | https://github.com/earendil-works/pi/issues/6262 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-69812 | https://github.com/earendil-works/pi/issues/6195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-69943 | https://github.com/earendil-works/pi/pull/6430 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-70108 | https://github.com/earendil-works/pi/pull/6418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-70362 | https://github.com/earendil-works/pi/issues/6439 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-70532 | https://github.com/earendil-works/pi/pull/6397 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-70800 | https://github.com/earendil-works/pi/pull/6343 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-70981 | https://github.com/earendil-works/pi/pull/6285 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-71360 | https://github.com/earendil-works/pi/issues/6265 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-71513 | https://github.com/earendil-works/pi/issues/6235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-71991 | https://github.com/earendil-works/pi/pull/6279 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-72235 | https://github.com/earendil-works/pi/issues/6204 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-72425 | https://github.com/earendil-works/pi/issues/6231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-72627 | https://github.com/earendil-works/pi/issues/6189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-72819 | https://github.com/earendil-works/pi/issues/6223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-73006 | https://github.com/earendil-works/pi/issues/5536 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-73152 | https://github.com/earendil-works/pi/issues/6326 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-73499 | https://github.com/earendil-works/pi/issues/6181 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-73681 | https://github.com/earendil-works/pi/issues/6278 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-73802 | https://github.com/earendil-works/pi/issues/6354 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-74035 | https://github.com/earendil-works/pi/issues/6431 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-74184 | https://github.com/earendil-works/pi/issues/6367 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-74390 | https://github.com/earendil-works/pi/issues/6369 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-74564 | https://github.com/earendil-works/pi/issues/6407 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-74711 | https://github.com/earendil-works/pi/issues/6395 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-76320 | https://github.com/earendil-works/pi/pull/6078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-76557 | https://github.com/earendil-works/pi/pull/6175 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-76742 | https://github.com/earendil-works/pi/pull/6004 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-76947 | https://github.com/earendil-works/pi/issues/6057 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-77162 | https://github.com/earendil-works/pi/issues/6122 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-77323 | https://github.com/earendil-works/pi/issues/6168 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-77644 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-77950 | https://github.com/earendil-works/pi/issues/6138 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-78108 | https://github.com/earendil-works/pi/pull/5832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-78361 | https://github.com/earendil-works/pi/issues/5595 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-78538 | https://github.com/earendil-works/pi/issues/6009 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-78790 | https://github.com/earendil-works/pi/issues/6083 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-78940 | https://github.com/earendil-works/pi/pull/6074 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-79121 | https://github.com/earendil-works/pi/pull/6048 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-79383 | https://github.com/earendil-works/pi/pull/6030 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-79474 | https://github.com/earendil-works/pi/pull/6063 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-79724 | https://github.com/earendil-works/pi/issues/6162 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-79889 | https://github.com/earendil-works/pi/issues/6133 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-80209 | https://github.com/earendil-works/pi/pull/6026 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-80383 | https://github.com/earendil-works/pi/issues/6002 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-80556 | https://github.com/earendil-works/pi/issues/6105 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-80713 | https://github.com/earendil-works/pi/issues/4290 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-80894 | https://github.com/earendil-works/pi/issues/6070 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-81069 | https://github.com/earendil-works/pi/issues/6047 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-81226 | https://github.com/earendil-works/pi/issues/6019 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-82054 | https://github.com/earendil-works/pi/issues/6021 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-82247 | https://github.com/earendil-works/pi/issues/6016 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-82306 | https://github.com/earendil-works/pi/issues/6017 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-82488 | https://github.com/earendil-works/pi/issues/6020 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-83149 | https://github.com/earendil-works/pi/issues/5965 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-83363 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-83406 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-83712 | @earendil-works/pi-ai/compat | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-84019 | https://github.com/earendil-works/pi/pull/5999 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-84229 | https://github.com/earendil-works/pi/pull/5784 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-84633 | https://github.com/earendil-works/pi/pull/5526 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-84877 | https://github.com/earendil-works/pi/issues/5973 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-85415 | https://github.com/earendil-works/pi/issues/5967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-85697 | https://github.com/earendil-works/pi/issues/5953 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-85803 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-85836 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-86883 | https://github.com/earendil-works/pi/pull/5962 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-87130 | https://github.com/earendil-works/pi/issues/5960 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-87268 | https://github.com/earendil-works/pi/issues/5959 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-87462 | https://github.com/earendil-works/pi/issues/5114 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-87597 | https://github.com/earendil-works/pi/issues/5957 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-87838 | https://github.com/earendil-works/pi/issues/5943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-88077 | https://github.com/earendil-works/pi/issues/5940 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-89349 | https://github.com/earendil-works/pi/issues/5673 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-89554 | https://github.com/earendil-works/pi/issues/5923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-89755 | https://github.com/earendil-works/pi/issues/5905 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-89901 | https://github.com/earendil-works/pi/issues/5909 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-90080 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-90292 | https://github.com/earendil-works/pi/pull/5846 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-90511 | https://github.com/earendil-works/pi/issues/5899 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-90696 | https://github.com/earendil-works/pi/issues/5893 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-90854 | https://github.com/earendil-works/pi/issues/5897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-91027 | https://github.com/earendil-works/pi/issues/5892 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-91189 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-91222 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-92236 | @earendil-works/pi-ai/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-92269 | @earendil-works/pi-agent-core/base | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-92387 | https://github.com/earendil-works/pi/pull/5348 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-92633 | https://github.com/earendil-works/pi/issues/5854 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-92782 | https://github.com/earendil-works/pi/issues/5877 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-92912 | https://github.com/earendil-works/pi/pull/5866 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-93241 | https://github.com/earendil-works/pi/issues/4811 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-93404 | https://github.com/earendil-works/pi/issues/5720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-94390 | https://github.com/earendil-works/pi/pull/5874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-94570 | https://github.com/earendil-works/pi/pull/5841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-94805 | https://github.com/earendil-works/pi/pull/5869 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-95058 | https://github.com/earendil-works/pi/pull/5756 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-95670 | https://github.com/earendil-works/pi/issues/5868 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-95986 | https://github.com/earendil-works/pi/issues/5830 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-97194 | https://github.com/earendil-works/pi/pull/5798 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-97481 | https://github.com/earendil-works/pi/issues/5790 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-97697 | https://github.com/earendil-works/pi/issues/5728 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-97999 | https://github.com/earendil-works/pi/issues/5819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-98173 | https://github.com/earendil-works/pi/issues/5818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-98427 | https://github.com/earendil-works/pi/pull/5789 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-98650 | https://github.com/earendil-works/pi/issues/5770 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-98881 | https://github.com/earendil-works/pi/issues/5805 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-99179 | https://github.com/earendil-works/pi/issues/5761 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-99383 | https://github.com/earendil-works/pi/issues/5747 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-99594 | https://github.com/earendil-works/pi/issues/5760 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-100184 | https://github.com/earendil-works/pi/issues/5739 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-100320 | https://github.com/earendil-works/pi/pull/5385 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-100586 | https://github.com/earendil-works/pi/pull/5753 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-100798 | https://github.com/earendil-works/pi/issues/5055 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-101075 | https://github.com/earendil-works/pi/issues/5724 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-101280 | https://github.com/earendil-works/pi/issues/5729 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-101463 | https://github.com/earendil-works/pi/pull/5708 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-101712 | https://github.com/earendil-works/pi/issues/5687 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-101891 | https://github.com/earendil-works/pi/issues/5689 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-102118 | https://github.com/earendil-works/pi/issues/5695 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-102331 | https://github.com/earendil-works/pi/pull/5738 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-102561 | https://github.com/earendil-works/pi/issues/4637 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-102771 | https://github.com/earendil-works/pi/issues/5702 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-102967 | https://github.com/earendil-works/pi/issues/5297 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-103217 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-103276 | https://github.com/earendil-works/pi/issues/4415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-103545 | https://github.com/earendil-works/pi/issues/5661 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-104469 | https://github.com/earendil-works/pi/pull/5587 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-104697 | https://github.com/earendil-works/pi/pull/5561 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-104984 | https://github.com/earendil-works/pi/issues/5619 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-105146 | https://github.com/earendil-works/pi/pull/5627 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-105366 | https://github.com/earendil-works/pi/issues/5677 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-105569 | https://github.com/earendil-works/pi/issues/5644 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-105739 | https://github.com/earendil-works/pi/pull/5666 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-106032 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-106216 | https://github.com/earendil-works/pi/pull/5567 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-106459 | https://github.com/earendil-works/pi/issues/5573 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-106623 | https://github.com/earendil-works/pi/issues/5657 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-106932 | https://github.com/earendil-works/pi/issues/5618 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-107112 | https://github.com/earendil-works/pi/pull/5585 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-107314 | https://github.com/earendil-works/pi/pull/5562 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-107545 | https://github.com/earendil-works/pi/issues/5643 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-107699 | https://github.com/earendil-works/pi/issues/5669 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-107887 | https://github.com/earendil-works/pi/issues/5596 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-108113 | https://github.com/earendil-works/pi/pull/5560 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-109308 | https://github.com/earendil-works/pi/pull/5553 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-109507 | https://github.com/earendil-works/pi/pull/5547 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-109743 | https://github.com/earendil-works/pi/issues/5523 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-110048 | https://github.com/earendil-works/pi/issues/4703 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-110153 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-110423 | https://github.com/earendil-works/pi/pull/5527 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-110620 | https://github.com/earendil-works/pi/pull/5283 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-110846 | https://github.com/earendil-works/pi/issues/5330 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-111006 | https://github.com/earendil-works/pi/issues/5331 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-111201 | https://github.com/earendil-works/pi/issues/5531 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-111352 | https://github.com/earendil-works/pi/issues/5530 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-111568 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-111792 | https://github.com/earendil-works/pi/issues/5559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-111963 | https://github.com/earendil-works/pi/issues/5494 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-112170 | https://github.com/earendil-works/pi/issues/5495 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-112359 | https://github.com/earendil-works/pi/issues/5433 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-112521 | https://github.com/earendil-works/pi/issues/5377 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-112744 | https://github.com/earendil-works/pi/issues/5418 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-112923 | https://github.com/earendil-works/pi/issues/5516 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-113227 | https://github.com/earendil-works/pi/issues/5045 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-113418 | https://github.com/earendil-works/pi/issues/4841 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-114693 | https://github.com/earendil-works/pi/pull/5332 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-114895 | https://github.com/earendil-works/pi/issues/5455 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-115027 | https://github.com/earendil-works/pi/issues/5415 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-115373 | https://github.com/earendil-works/pi/pull/5499 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-115813 | https://github.com/earendil-works/pi/issues/5188 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-115983 | https://github.com/earendil-works/pi/issues/5401 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-116179 | https://github.com/earendil-works/pi/issues/5456 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-116376 | https://github.com/earendil-works/pi/issues/5454 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-116562 | https://github.com/earendil-works/pi/issues/5432 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-116790 | https://github.com/earendil-works/pi/issues/5347 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-116928 | https://github.com/earendil-works/pi/issues/5359 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-117085 | https://github.com/earendil-works/pi/pull/5371 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-117880 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-117964 | https://github.com/earendil-works/pi/issues/5313 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-118343 | https://github.com/earendil-works/pi/pull/5306 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-119193 | https://github.com/earendil-works/pi/issues/5226 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-119784 | https://github.com/earendil-works/pi/issues/5294 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-119988 | https://github.com/earendil-works/pi/issues/4975 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-120149 | https://github.com/earendil-works/pi/pull/5251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-120341 | https://github.com/earendil-works/pi/issues/5243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-120497 | https://github.com/earendil-works/pi/issues/5309 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-120660 | https://github.com/earendil-works/pi/pull/5221 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-120896 | https://github.com/earendil-works/pi/pull/5235 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-121142 | https://github.com/earendil-works/pi/issues/5218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-121355 | https://github.com/earendil-works/pi/issues/5231 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-121513 | https://github.com/earendil-works/pi/pull/5264 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-121713 | https://github.com/earendil-works/pi/issues/5299 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-122351 | https://github.com/earendil-works/pi-mono/pull/5167 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-122510 | https://github.com/earendil-works/pi-mono/pull/5202 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-122675 | https://github.com/earendil-works/pi-mono/issues/5153 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-122805 | https://github.com/earendil-works/pi-mono/pull/5176 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-122997 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-123161 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-123193 | https://github.com/earendil-works/pi-mono/pull/5178 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-123417 | https://github.com/earendil-works/pi-mono/issues/5200 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-123634 | https://github.com/earendil-works/pi-mono/issues/5201 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-123829 | https://github.com/earendil-works/pi-mono/issues/5184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-124000 | https://github.com/earendil-works/pi-mono/pull/5195 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-124215 | https://github.com/earendil-works/pi-mono/issues/5159 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-124481 | https://github.com/earendil-works/pi-mono/issues/5169 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-124853 | https://github.com/earendil-works/pi-mono/pull/5189 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-125036 | https://github.com/earendil-works/pi-mono/issues/5185 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-126033 | https://github.com/earendil-works/pi/issues/5109 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-126226 | https://github.com/earendil-works/pi/pull/4911 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-126471 | https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-126804 | https://github.com/earendil-works/pi/issues/4829 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-127005 | https://github.com/earendil-works/pi/issues/4801 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-127525 | https://github.com/earendil-works/pi/issues/5080 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-127725 | https://github.com/earendil-works/pi/pull/5091 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-127943 | https://github.com/earendil-works/pi/issues/5028 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-128277 | https://github.com/earendil-works/pi/issues/5095 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-128438 | https://github.com/earendil-works/pi/pull/5029 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-128679 | https://github.com/earendil-works/pi/issues/4879 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-128918 | https://github.com/earendil-works/pi/issues/5148 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-129128 | https://github.com/earendil-works/pi/issues/4464 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-129392 | https://github.com/earendil-works/pi/issues/5078 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-129539 | https://github.com/earendil-works/pi/issues/5075 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-129707 | https://github.com/earendil-works/pi/pull/5115 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-129929 | https://github.com/earendil-works/pi/pull/5107 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-130141 | https://github.com/earendil-works/pi/issues/5132 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-130338 | https://github.com/earendil-works/pi/issues/5092 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-131431 | https://github.com/earendil-works/pi/issues/4874 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-131599 | https://github.com/earendil-works/pi/issues/5039 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-131761 | https://github.com/earendil-works/pi/issues/5013 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-131936 | https://github.com/earendil-works/pi/issues/4929 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-132098 | https://github.com/earendil-works/pi/issues/4983 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-132365 | https://github.com/earendil-works/pi/issues/4945 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-132545 | https://github.com/earendil-works/pi/issues/4764 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-132732 | https://github.com/earendil-works/pi/issues/4907 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-132916 | https://github.com/earendil-works/pi/issues/4897 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-133095 | https://github.com/earendil-works/pi/issues/4967 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-133245 | https://github.com/earendil-works/pi/issues/4969 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-133403 | https://github.com/earendil-works/pi/issues/4943 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-133633 | https://github.com/earendil-works/pi-mono/pull/4991 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-133984 | https://github.com/earendil-works/pi/issues/4923 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-134158 | https://github.com/earendil-works/pi-mono/pull/5037 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-134393 | https://github.com/earendil-works/pi-mono/pull/5022 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-134497 | https://github.com/earendil-works/pi-mono/pull/5067 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-134601 | https://github.com/earendil-works/pi-mono/pull/5068 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-134788 | https://github.com/earendil-works/pi/issues/5041 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-135766 | https://github.com/earendil-works/pi-mono/pull/4797 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-135949 | https://github.com/earendil-works/pi/issues/4821 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-136202 | https://github.com/earendil-works/pi/issues/4916 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-136431 | https://github.com/earendil-works/pi/issues/4480 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-136583 | https://github.com/earendil-works/pi/issues/4868 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-136733 | https://github.com/earendil-works/pi/issues/4869 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-136873 | https://github.com/earendil-works/pi-mono/pull/4873 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-137067 | https://github.com/earendil-works/pi-mono/pull/4898 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-137253 | https://github.com/earendil-works/pi-mono/pull/4830 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-137439 | https://github.com/earendil-works/pi/issues/4847 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-137633 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-137665 | https://github.com/earendil-works/pi/issues/4842 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-137871 | https://github.com/earendil-works/pi/issues/4848 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-138009 | https://github.com/earendil-works/pi/issues/4832 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-138236 | https://github.com/earendil-works/pi-mono/pull/4788 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-138477 | https://github.com/earendil-works/pi/issues/4870 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-138652 | https://github.com/earendil-works/pi/issues/4876 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-138801 | https://github.com/earendil-works/pi/issues/4819 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-138958 | https://github.com/earendil-works/pi/issues/4818 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-139128 | https://github.com/earendil-works/pi/issues/4878 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-139321 | https://github.com/earendil-works/pi/issues/4307 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-139518 | https://github.com/earendil-works/pi-mono/pull/4756 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-140261 | https://github.com/earendil-works/pi-mono/pull/4724 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-140445 | https://github.com/earendil-works/pi-mono/pull/4775 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-141284 | https://github.com/earendil-works/pi/issues/4752 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-141481 | https://github.com/earendil-works/pi/issues/4276 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-141822 | https://github.com/earendil-works/pi-mono/pull/4799 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-142092 | https://github.com/earendil-works/pi/issues/4710 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-142265 | https://github.com/earendil-works/pi/issues/4699 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-142414 | https://github.com/earendil-works/pi/issues/4763 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-142585 | https://github.com/earendil-works/pi-mono/pull/4759 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-142789 | https://github.com/earendil-works/pi-mono/pull/4709 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-142996 | https://github.com/earendil-works/pi-mono/pull/4664 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-143330 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-143484 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-143586 | https://github.com/earendil-works/pi/issues/4675 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-143687 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-143766 | https://github.com/earendil-works/pi/issues/4720 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-143965 | https://github.com/earendil-works/pi/issues/4793 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-144201 | https://github.com/earendil-works/pi/issues/4681 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-144423 | https://github.com/earendil-works/pi-mono/pull/4661 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-144686 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-144718 | https://github.com/earendil-works/pi/issues/4678 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-144876 | https://github.com/earendil-works/pi/issues/4612 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-145061 | https://github.com/earendil-works/pi/issues/4157 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-145239 | https://github.com/earendil-works/pi/issues/4647 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-145421 | https://github.com/earendil-works/pi/issues/4157 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-145587 | https://github.com/earendil-works/pi/issues/4665 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-145763 | https://github.com/earendil-works/pi-mono/pull/4243 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146063 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146095 | https://github.com/earendil-works/pi/issues/4342 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146267 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146299 | https://github.com/earendil-works/pi/issues/4223 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146580 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146612 | https://github.com/earendil-works/pi/issues/4232 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146815 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-146847 | https://github.com/earendil-works/pi/issues/4251 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147068 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147100 | https://github.com/earendil-works/pi/issues/4505 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147304 | https://github.com/earendil-works/pi/issues/4650 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147363 | https://github.com/earendil-works/pi/issues/4652 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147422 | https://github.com/earendil-works/pi/issues/4653 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147601 | https://github.com/earendil-works/pi/issues/4623 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147738 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-147998 | https://github.com/earendil-works/pi/issues/4484 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-148215 | https://github.com/earendil-works/pi-mono/pull/4541 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-148413 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-148445 | https://github.com/earendil-works/pi-mono/pull/4603 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-148621 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-148696 | https://github.com/earendil-works/pi-mono/pull/4622 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-148985 | https://github.com/earendil-works/pi/issues/4587 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-149211 | https://github.com/earendil-works/pi/issues/4619 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-149438 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-149470 | https://github.com/earendil-works/pi/issues/4614 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-149726 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-150281 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-150357 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-150494 | https://github.com/earendil-works/pi-mono/pull/3887 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-150716 | https://github.com/earendil-works/pi-mono/pull/3624 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-150880 | https://github.com/earendil-works/pi/pull/4458 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-151133 | https://github.com/earendil-works/pi/issues/4519 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-151393 | https://github.com/earendil-works/pi/issues/4492 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-151538 | https://github.com/earendil-works/pi/issues/4508 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-151811 | https://github.com/earendil-works/pi/issues/4559 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-151966 | https://github.com/earendil-works/pi/issues/4534 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-152114 | https://github.com/earendil-works/pi/issues/4553 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-152291 | https://github.com/earendil-works/pi/issues/4583 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-152470 | https://github.com/earendil-works/pi/issues/4510 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-152715 | https://github.com/earendil-works/pi/issues/4503 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-152855 | https://github.com/earendil-works/pi/issues/4429 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-152988 | https://github.com/earendil-works/pi/issues/4433 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-153216 | https://github.com/earendil-works/pi-mono/pull/4426 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-153611 | @earendil-works/pi-ai | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-153813 | @earendil-works/pi-tui | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-153947 | https://github.com/earendil-works/pi/issues/4333 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-154072 | https://github.com/earendil-works/pi/issues/4289 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-154261 | https://github.com/earendil-works/pi/issues/4280 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-154420 | earendil-works/pi-mono | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-154449 | @earendil-works/ | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-154685 | @earendil-works/pi-coding-agent | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-155510 | https://github.com/earendil-works/pi-mono/pull/4190 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-155959 | https://github.com/earendil-works/pi-mono/pull/4244 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-156127 | https://github.com/earendil-works/pi-mono/pull/4162 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-156969 | https://github.com/earendil-works/pi-mono/pull/4234 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-157415 | https://github.com/earendil-works/pi-mono/issues/4184 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-157547 | https://github.com/earendil-works/pi-mono/issues/4218 | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-233030 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-233178 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/CHANGELOG.md@byte-233958 | Earendil | Immutable changelog | Packaged historical release record; retain immutable provenance | +| diffex-darwin-arm64.tar.gz!diffex/diffex@byte-73627059 | earendil-works | Supported migration behavior | Legacy repository matcher; maintainers retire with legacy-link normalization | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-215 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-576 | node_modules/@earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-658 | https://registry.npmjs.org/@earendil-works/gondolin/-/gondolin-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-1138 | @earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-1205 | @earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-1276 | node_modules/@earendil-works/gondolin-krun-runner-darwin-arm64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-1383 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-darwin-arm64/-/gondolin-krun-runner-darwin-arm64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-1813 | node_modules/@earendil-works/gondolin-krun-runner-linux-x64 | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package-lock.json@byte-1917 | https://registry.npmjs.org/@earendil-works/gondolin-krun-runner-linux-x64/-/gondolin-krun-runner-linux-x64-0.12.0.tgz | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/package.json@byte-306 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/index.ts@byte-568 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/examples/extensions/gondolin/index.ts@byte-1194 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/docs/containerization.md@byte-1147 | https://github.com/earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| diffex-darwin-arm64.tar.gz!diffex/docs/containerization.md@byte-1938 | @earendil-works/gondolin | External dependency | Published third-party dependency or npm-maintained nested dependency path; retire when dependency changes | +| generated-declarations!packages/coding-agent/dist/migrations.d.ts@byte-553 | https://github.com/earendil-works/pi-mono/issues/320 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | +| generated-declarations!packages/coding-agent/dist/utils/child-process.d.ts@byte-1068 | earendil-works/pi#5303 | Upstream history | Original upstream provenance; retain while source or issue remains relevant | + +## Artifact checksums + +| Archive | SHA-256 | +|---|---| +| diffexai-diffex-0.2.0.tgz | 732d45c014368df143363c3825d96a782d7a0cbd3c69cb9da604278ad464bae9 | +| diffexai-diffex-agent-core-0.2.0.tgz | 10a10787c5958f3599790741de1e3a0d5b45f2bf9caae4f8bd03390cf7e30508 | +| diffexai-diffex-ai-0.2.0.tgz | f268bba416eef7a8ba8dc977cf4ad3443f1037d82bede351334df9abf00a7e30 | +| diffexai-diffex-client-0.2.0.tgz | 2f87cace71c708ed98a51f971c9c2e854ef820224eff4c6ca199003e96052e0b | +| diffexai-diffex-coding-agent-server-0.2.0.tgz | f70cfde49772a7da4a846d1d084e0a75249e2759036836e4fec20362661a638b | +| diffexai-diffex-harness-state-0.2.0.tgz | 9235d38d4efb96370d7da95ccca3666b0152e347f18defb9646e7dcb8b8f37ae | +| diffexai-diffex-protocol-0.2.0.tgz | 1bd0590a817451289475a8b2c9b15d3e36ca11db3790f9a98be7123de3ad6816 | +| diffexai-diffex-server-0.2.0.tgz | 48d7a28a526c35fa032095cf79d302f06f625027fe6ae185925dbd921fd7c34d | +| diffexai-diffex-session-backend-sqlite-node-0.2.0.tgz | d23826ab601981f1782bb156b907f4398f0a9e435e98c052dd97194a18da6b2b | +| diffexai-diffex-telemetry-0.2.0.tgz | 0f846a375378b6c795c44f9f57f9d89672423ef9a24e04160be69d10ac3a6afb | +| diffexai-diffex-tui-0.2.0.tgz | 73f7bdbb9b7e16be100ff6d82a1292df34f805adec3249dde082e90066b1f2de | +| diffex-identity-source.tar.gz | dc1cb7889f456343383147c5fab8ef90aea028062910c94c92108d8f43e154b2 | +| diffex-darwin-arm64.tar.gz | de2581b2ec6036e0b203c53a1d43b82d9e5bbb494aff286e15161e30ba7afa6b | diff --git a/package-lock.json b/package-lock.json index 121a08121..0fd04e413 100644 --- a/package-lock.json +++ b/package-lock.json @@ -719,59 +719,59 @@ "node": ">=20" } }, - "node_modules/@earendil-works/diffex-agent-core": { + "node_modules/@diffexai/diffex": { + "resolved": "packages/coding-agent", + "link": true + }, + "node_modules/@diffexai/diffex-agent-core": { "resolved": "packages/agent", "link": true }, - "node_modules/@earendil-works/diffex-ai": { + "node_modules/@diffexai/diffex-ai": { "resolved": "packages/ai", "link": true }, - "node_modules/@earendil-works/diffex-client": { + "node_modules/@diffexai/diffex-client": { "resolved": "packages/client", "link": true }, - "node_modules/@earendil-works/diffex-coding-agent": { - "resolved": "packages/coding-agent", - "link": true - }, - "node_modules/@earendil-works/diffex-coding-agent-server": { + "node_modules/@diffexai/diffex-coding-agent-server": { "resolved": "packages/coding-agent-server", "link": true }, - "node_modules/@earendil-works/diffex-evals": { + "node_modules/@diffexai/diffex-evals": { "resolved": "packages/evals", "link": true }, - "node_modules/@earendil-works/diffex-evolution": { + "node_modules/@diffexai/diffex-evolution": { "resolved": "packages/evolution", "link": true }, - "node_modules/@earendil-works/diffex-harness-state": { + "node_modules/@diffexai/diffex-harness-state": { "resolved": "packages/harness-state", "link": true }, - "node_modules/@earendil-works/diffex-harness-trace": { + "node_modules/@diffexai/diffex-harness-trace": { "resolved": "packages/harness-trace", "link": true }, - "node_modules/@earendil-works/diffex-protocol": { + "node_modules/@diffexai/diffex-protocol": { "resolved": "packages/protocol", "link": true }, - "node_modules/@earendil-works/diffex-server": { + "node_modules/@diffexai/diffex-server": { "resolved": "packages/server", "link": true }, - "node_modules/@earendil-works/diffex-session-backend-sqlite-node": { + "node_modules/@diffexai/diffex-session-backend-sqlite-node": { "resolved": "packages/session-backends/sqlite-node", "link": true }, - "node_modules/@earendil-works/diffex-telemetry": { + "node_modules/@diffexai/diffex-telemetry": { "resolved": "packages/telemetry", "link": true }, - "node_modules/@earendil-works/diffex-tui": { + "node_modules/@diffexai/diffex-tui": { "resolved": "packages/tui", "link": true }, @@ -5688,12 +5688,12 @@ } }, "packages/agent": { - "name": "@earendil-works/diffex-agent-core", + "name": "@diffexai/diffex-agent-core", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "diff": "8.0.4", "ignore": "7.0.5", "typebox": "1.3.7", @@ -5734,13 +5734,13 @@ "license": "MIT" }, "packages/ai": { - "name": "@earendil-works/diffex-ai", + "name": "@diffexai/diffex-ai", "version": "0.2.0", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "0.91.1", "@aws-sdk/client-bedrock-runtime": "3.1048.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "@google/genai": "1.52.0", "@mistralai/mistralai": "2.2.6", "@opentelemetry/api": "1.9.0", @@ -5781,11 +5781,11 @@ "license": "MIT" }, "packages/client": { - "name": "@earendil-works/diffex-client", + "name": "@diffexai/diffex-client", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-protocol": "^0.2.0" + "@diffexai/diffex-protocol": "^0.2.0" }, "devDependencies": { "shx": "0.4.0", @@ -5796,16 +5796,16 @@ } }, "packages/coding-agent": { - "name": "@earendil-works/diffex-coding-agent", + "name": "@diffexai/diffex", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-agent-core": "^0.2.0", - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-client": "^0.2.0", - "@earendil-works/diffex-harness-state": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", - "@earendil-works/diffex-tui": "^0.2.0", + "@diffexai/diffex-agent-core": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-client": "^0.2.0", + "@diffexai/diffex-harness-state": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", + "@diffexai/diffex-tui": "^0.2.0", "@napi-rs/keyring": "1.3.0", "@silvia-odwyer/photon-node": "0.3.4", "chalk": "5.6.2", @@ -5847,19 +5847,19 @@ } }, "packages/coding-agent-server": { - "name": "@earendil-works/diffex-coding-agent-server", + "name": "@diffexai/diffex-coding-agent-server", "version": "0.2.0", "license": "Apache-2.0", "dependencies": { - "@earendil-works/diffex-coding-agent": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", - "@earendil-works/diffex-server": "^0.2.0" + "@diffexai/diffex": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", + "@diffexai/diffex-server": "^0.2.0" }, "bin": { "diffex-runtime-server": "dist/cli.js" }, "devDependencies": { - "@earendil-works/diffex-client": "^0.2.0", + "@diffexai/diffex-client": "^0.2.0", "shx": "0.4.0", "vitest": "4.1.9", "ws": "8.21.0" @@ -5965,11 +5965,11 @@ "license": "MIT" }, "packages/evals": { - "name": "@earendil-works/diffex-evals", + "name": "@diffexai/diffex-evals", "version": "0.2.0", "devDependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-coding-agent": "^0.2.0", + "@diffexai/diffex": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", "@types/node": "24.12.4", "shx": "0.4.0", "typescript": "5.9.3", @@ -5995,12 +5995,12 @@ "license": "MIT" }, "packages/evolution": { - "name": "@earendil-works/diffex-evolution", + "name": "@diffexai/diffex-evolution", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-harness-state": "0.2.0", - "@earendil-works/diffex-harness-trace": "0.2.0", + "@diffexai/diffex-harness-state": "0.2.0", + "@diffexai/diffex-harness-trace": "0.2.0", "proper-lockfile": "4.1.2" }, "devDependencies": { @@ -6032,7 +6032,7 @@ "license": "MIT" }, "packages/harness-state": { - "name": "@earendil-works/diffex-harness-state", + "name": "@diffexai/diffex-harness-state", "version": "0.2.0", "license": "MIT", "dependencies": { @@ -6050,11 +6050,11 @@ } }, "packages/harness-trace": { - "name": "@earendil-works/diffex-harness-trace", + "name": "@diffexai/diffex-harness-trace", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-telemetry": "0.2.0" + "@diffexai/diffex-telemetry": "0.2.0" }, "devDependencies": { "@types/node": "24.12.4", @@ -6083,7 +6083,7 @@ "license": "MIT" }, "packages/protocol": { - "name": "@earendil-works/diffex-protocol", + "name": "@diffexai/diffex-protocol", "version": "0.2.0", "license": "MIT", "dependencies": { @@ -6098,12 +6098,12 @@ } }, "packages/server": { - "name": "@earendil-works/diffex-server", + "name": "@diffexai/diffex-server", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", "ws": "8.21.0" }, "devDependencies": { @@ -6116,12 +6116,12 @@ } }, "packages/session-backends/sqlite-node": { - "name": "@earendil-works/diffex-session-backend-sqlite-node", + "name": "@diffexai/diffex-session-backend-sqlite-node", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-agent-core": "^0.2.0", - "@earendil-works/diffex-ai": "^0.2.0" + "@diffexai/diffex-agent-core": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0" }, "devDependencies": { "@vitest/coverage-v8": "4.1.9", @@ -6132,7 +6132,7 @@ } }, "packages/telemetry": { - "name": "@earendil-works/diffex-telemetry", + "name": "@diffexai/diffex-telemetry", "version": "0.2.0", "license": "MIT", "devDependencies": { @@ -6161,7 +6161,7 @@ "license": "MIT" }, "packages/tui": { - "name": "@earendil-works/diffex-tui", + "name": "@diffexai/diffex-tui", "version": "0.2.0", "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index ad965854b..aab9c585f 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "check:model-data": "npm --prefix packages/ai run check:model-data", "generate:model-catalog": "npm --prefix packages/ai run generate-model-catalog", "diff:model-catalog": "node scripts/diff-model-catalog.mjs", - "eval": "npm run eval --workspace=@earendil-works/diffex-evals --", + "eval": "npm run eval --workspace=@diffexai/diffex-evals --", "check:model-catalog": "node scripts/publish-model-catalog.mjs --input .artifacts/model-catalog --dry-run", "profile:tui": "node scripts/profile-coding-agent-node.mjs --mode tui", "profile:rpc": "node scripts/profile-coding-agent-node.mjs --mode rpc", diff --git a/packages/agent/README.md b/packages/agent/README.md index 39f50430a..890c6756a 100644 --- a/packages/agent/README.md +++ b/packages/agent/README.md @@ -1,23 +1,23 @@ -# @earendil-works/diffex-agent-core +# @diffexai/diffex-agent-core -Stateful agent with tool execution and event streaming. Built on `@earendil-works/diffex-ai`. +Stateful agent with tool execution and event streaming. Built on `@diffexai/diffex-ai`. ## Installation ```bash -npm install @earendil-works/diffex-agent-core +npm install @diffexai/diffex-agent-core ``` ### SQLite session backends -The SQLite session backend and the `node:sqlite` adapter live in a separate package, `@earendil-works/diffex-session-backend-sqlite-node`, so the core package does not pull in runtime builtins or native SQLite dependencies by default. The backend accepts a runtime-specific SQLite factory, allowing other session backends to ship as their own packages in the future. +The SQLite session backend and the `node:sqlite` adapter live in a separate package, `@diffexai/diffex-session-backend-sqlite-node`, so the core package does not pull in runtime builtins or native SQLite dependencies by default. The backend accepts a runtime-specific SQLite factory, allowing other session backends to ship as their own packages in the future. ## Quick Start ```typescript -import { Agent } from "@earendil-works/diffex-agent-core"; -import { createModels } from "@earendil-works/diffex-ai"; -import { anthropicProvider } from "@earendil-works/diffex-ai/providers/anthropic"; +import { Agent } from "@diffexai/diffex-agent-core"; +import { createModels } from "@diffexai/diffex-ai"; +import { anthropicProvider } from "@diffexai/diffex-ai/providers/anthropic"; const models = createModels(); models.setProvider(anthropicProvider()); @@ -387,7 +387,7 @@ Follow-up messages are checked only when there are no more tool calls and no ste Extend `AgentMessage` via declaration merging: ```typescript -declare module "@earendil-works/diffex-agent-core" { +declare module "@diffexai/diffex-agent-core" { interface CustomAgentMessages { notification: { role: "notification"; text: string; timestamp: number }; } @@ -469,7 +469,7 @@ Return `terminate: true` from `execute()`, a blocked `beforeToolCall`, or `after For browser apps that proxy through a backend: ```typescript -import { Agent, streamProxy } from "@earendil-works/diffex-agent-core"; +import { Agent, streamProxy } from "@diffexai/diffex-agent-core"; const agent = new Agent({ streamFn: (model, context, options) => @@ -486,7 +486,7 @@ const agent = new Agent({ For direct control without the Agent class: ```typescript -import { agentLoop, agentLoopContinue } from "@earendil-works/diffex-agent-core"; +import { agentLoop, agentLoopContinue } from "@diffexai/diffex-agent-core"; const context: AgentContext = { systemPrompt: "You are helpful.", diff --git a/packages/agent/docs/harness-v2.md b/packages/agent/docs/harness-v2.md index ab9f53325..9e856e4bc 100644 --- a/packages/agent/docs/harness-v2.md +++ b/packages/agent/docs/harness-v2.md @@ -2757,7 +2757,7 @@ Diffex ships no exporter and requires no backend-specific telemetry implementati ### Package ownership -The generic contract, schema-definition machinery, shared no-op, and in-memory reference implementation live under `packages/telemetry/src/` and are exported from `@earendil-works/diffex-telemetry`. The runner-independent conformance cases live under `packages/telemetry/src/testing/` and are exported from `@earendil-works/diffex-telemetry/testing`. Diffex-ai imports only `TelemetryContext` for request options; it owns no span schema or helper and emits no telemetry itself. `packages/agent/src/harness/telemetry.ts` owns both `AI_TELEMETRY_SCHEMA` / `startAiSpan()` and `HARNESS_TELEMETRY_SCHEMA` / `startHarnessSpan()`, plus the readonly `AGENT_TELEMETRY_SCHEMAS` tuple that composes their typed vocabularies without merging their schema data or versions. The agent package root re-exports those domain schemas, helpers, tuple, and the generic telemetry surface. There is one generic contract and one domain-schema owner. +The generic contract, schema-definition machinery, shared no-op, and in-memory reference implementation live under `packages/telemetry/src/` and are exported from `@diffexai/diffex-telemetry`. The runner-independent conformance cases live under `packages/telemetry/src/testing/` and are exported from `@diffexai/diffex-telemetry/testing`. Diffex-ai imports only `TelemetryContext` for request options; it owns no span schema or helper and emits no telemetry itself. `packages/agent/src/harness/telemetry.ts` owns both `AI_TELEMETRY_SCHEMA` / `startAiSpan()` and `HARNESS_TELEMETRY_SCHEMA` / `startHarnessSpan()`, plus the readonly `AGENT_TELEMETRY_SCHEMAS` tuple that composes their typed vocabularies without merging their schema data or versions. The agent package root re-exports those domain schemas, helpers, tuple, and the generic telemetry surface. There is one generic contract and one domain-schema owner. `AgentHarnessOptions.telemetryContext` defaults to the no-op context, and the agent-side request wrapper emits `diffex.ai.request` through the agent-owned AI schema. diff --git a/packages/agent/docs/telemetry-schema.md b/packages/agent/docs/telemetry-schema.md index de1984972..281ca8e0c 100644 --- a/packages/agent/docs/telemetry-schema.md +++ b/packages/agent/docs/telemetry-schema.md @@ -1,4 +1,4 @@ -# Pi Agent Telemetry Schemas +# Diffex Agent Telemetry Schemas diff --git a/packages/agent/package.json b/packages/agent/package.json index 68cf32c2b..2b18f9443 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-agent-core", + "name": "@diffexai/diffex-agent-core", "version": "0.2.0", "description": "General-purpose agent with transport abstraction, state management, and attachment support", "type": "module", @@ -35,8 +35,8 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "diff": "8.0.4", "ignore": "7.0.5", "typebox": "1.3.7", diff --git a/packages/agent/scripts/generate-telemetry-docs.ts b/packages/agent/scripts/generate-telemetry-docs.ts index c05b6edbe..900d19646 100644 --- a/packages/agent/scripts/generate-telemetry-docs.ts +++ b/packages/agent/scripts/generate-telemetry-docs.ts @@ -1,7 +1,7 @@ import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; import { dirname, resolve } from "node:path"; import { pathToFileURL } from "node:url"; -import type { TelemetryAttributeDefinition, TelemetrySchemaDefinition } from "@earendil-works/diffex-telemetry"; +import type { TelemetryAttributeDefinition, TelemetrySchemaDefinition } from "@diffexai/diffex-telemetry"; import { AGENT_RUNTIME_TELEMETRY_SCHEMA, AI_TELEMETRY_SCHEMA, @@ -87,7 +87,7 @@ function renderSchema(schema: TelemetrySchemaDefinition, title: string): string[ export function renderAgentTelemetrySchemaMarkdown(): string { const lines = [ - "# Pi Agent Telemetry Schemas", + "# Diffex Agent Telemetry Schemas", "", "", "", diff --git a/packages/agent/src/agent-loop.ts b/packages/agent/src/agent-loop.ts index 5d068d275..241644b6d 100644 --- a/packages/agent/src/agent-loop.ts +++ b/packages/agent/src/agent-loop.ts @@ -10,8 +10,8 @@ import { type ToolResultMessage, uuidv7, validateToolArguments, -} from "@earendil-works/diffex-ai"; -import { NOOP_TELEMETRY_CONTEXT } from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-ai"; +import { NOOP_TELEMETRY_CONTEXT } from "@diffexai/diffex-telemetry"; import { type AgentRuntimeTelemetrySpan, type AiTelemetrySpan, diff --git a/packages/agent/src/agent.ts b/packages/agent/src/agent.ts index 2db2e4b41..7fef20abb 100644 --- a/packages/agent/src/agent.ts +++ b/packages/agent/src/agent.ts @@ -6,8 +6,8 @@ import type { TextContent, ThinkingBudgets, Transport, -} from "@earendil-works/diffex-ai"; -import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-ai"; +import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@diffexai/diffex-telemetry"; import { runAgentLoop, runAgentLoopContinue } from "./agent-loop.ts"; import { getDefaultStreamFn } from "./stream-fn.ts"; import type { diff --git a/packages/agent/src/harness/agent-harness.ts b/packages/agent/src/harness/agent-harness.ts index 3e6d1cc34..b406a7536 100644 --- a/packages/agent/src/harness/agent-harness.ts +++ b/packages/agent/src/harness/agent-harness.ts @@ -9,7 +9,7 @@ import type { RetryPolicy, SimpleStreamOptions, Usage, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from "../types.ts"; import type { CompactionSettings } from "./compaction/compaction.ts"; import { type Result as ResultValue, TaggedError } from "./result.ts"; diff --git a/packages/agent/src/harness/compaction/branch-summarization.ts b/packages/agent/src/harness/compaction/branch-summarization.ts index c9d253829..2d6b32771 100644 --- a/packages/agent/src/harness/compaction/branch-summarization.ts +++ b/packages/agent/src/harness/compaction/branch-summarization.ts @@ -6,7 +6,7 @@ import { type RetryCallbacks, type RetryPolicy, type Usage, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import type { AgentMessage } from "../../types.ts"; import { convertToLlm, createBranchSummaryMessage, createCompactionSummaryMessage } from "../messages.ts"; diff --git a/packages/agent/src/harness/compaction/compaction.ts b/packages/agent/src/harness/compaction/compaction.ts index 98b40c4c1..9c9e0222b 100644 --- a/packages/agent/src/harness/compaction/compaction.ts +++ b/packages/agent/src/harness/compaction/compaction.ts @@ -11,7 +11,7 @@ import { type SimpleStreamOptions, type Usage, uuidv7, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import type { AgentMessage, ThinkingLevel } from "../../types.ts"; import { convertToLlm, createBranchSummaryMessage, createCompactionSummaryMessage } from "../messages.ts"; import { buildSessionContext } from "../session/context.ts"; diff --git a/packages/agent/src/harness/compaction/utils.ts b/packages/agent/src/harness/compaction/utils.ts index e67bf9361..098ef903c 100644 --- a/packages/agent/src/harness/compaction/utils.ts +++ b/packages/agent/src/harness/compaction/utils.ts @@ -1,4 +1,4 @@ -import { contentText, type Message } from "@earendil-works/diffex-ai"; +import { contentText, type Message } from "@diffexai/diffex-ai"; import type { AgentMessage } from "../../types.ts"; /** File paths touched by a session branch or compaction range. */ diff --git a/packages/agent/src/harness/messages.ts b/packages/agent/src/harness/messages.ts index bcd1d5355..09ad23a32 100644 --- a/packages/agent/src/harness/messages.ts +++ b/packages/agent/src/harness/messages.ts @@ -1,4 +1,4 @@ -import type { ImageContent, Message, TextContent } from "@earendil-works/diffex-ai"; +import type { ImageContent, Message, TextContent } from "@diffexai/diffex-ai"; import type { AgentMessage } from "../types.ts"; export const COMPACTION_SUMMARY_PREFIX = `The conversation history before this point was compacted into the following summary: diff --git a/packages/agent/src/harness/reducer.ts b/packages/agent/src/harness/reducer.ts index 0e3d179b8..c2228f648 100644 --- a/packages/agent/src/harness/reducer.ts +++ b/packages/agent/src/harness/reducer.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage, DeferredHandle, StopReason } from "@earendil-works/diffex-ai"; +import type { AssistantMessage, DeferredHandle, StopReason } from "@diffexai/diffex-ai"; import { Guard } from "typebox/guard"; import type { AgentMessage, AgentToolCall, ThinkingLevel } from "../types.ts"; import type { diff --git a/packages/agent/src/harness/session/jsonl/repo.ts b/packages/agent/src/harness/session/jsonl/repo.ts index 540427856..4455cc2b6 100644 --- a/packages/agent/src/harness/session/jsonl/repo.ts +++ b/packages/agent/src/harness/session/jsonl/repo.ts @@ -1,4 +1,4 @@ -import { uuidv7 } from "@earendil-works/diffex-ai"; +import { uuidv7 } from "@diffexai/diffex-ai"; import { assertJsonSerializable, Session } from "../session.ts"; import { type ForkOptions, SessionError, type SessionRepo } from "../types.ts"; import { metadataFromHeader, parseHeader } from "./codec.ts"; diff --git a/packages/agent/src/harness/session/memory.ts b/packages/agent/src/harness/session/memory.ts index 3f87cdefe..974a7a0c4 100644 --- a/packages/agent/src/harness/session/memory.ts +++ b/packages/agent/src/harness/session/memory.ts @@ -1,4 +1,4 @@ -import { uuidv7 } from "@earendil-works/diffex-ai"; +import { uuidv7 } from "@diffexai/diffex-ai"; import { Session } from "./session.ts"; import { SessionState } from "./state.ts"; import { diff --git a/packages/agent/src/harness/session/session.ts b/packages/agent/src/harness/session/session.ts index 10aed37f3..67bc484ed 100644 --- a/packages/agent/src/harness/session/session.ts +++ b/packages/agent/src/harness/session/session.ts @@ -1,4 +1,4 @@ -import { uuidv7 } from "@earendil-works/diffex-ai"; +import { uuidv7 } from "@diffexai/diffex-ai"; import type { AgentMessage } from "../../types.ts"; import type { BranchBounds, diff --git a/packages/agent/src/harness/session/types.ts b/packages/agent/src/harness/session/types.ts index 28e1b8c7d..73810de3f 100644 --- a/packages/agent/src/harness/session/types.ts +++ b/packages/agent/src/harness/session/types.ts @@ -1,4 +1,4 @@ -import type { StopReason, Usage } from "@earendil-works/diffex-ai"; +import type { StopReason, Usage } from "@diffexai/diffex-ai"; import "../messages.ts"; import type { AgentMessage } from "../../types.ts"; import type { Session } from "./session.ts"; diff --git a/packages/agent/src/harness/telemetry.ts b/packages/agent/src/harness/telemetry.ts index 692fb4225..73d08db55 100644 --- a/packages/agent/src/harness/telemetry.ts +++ b/packages/agent/src/harness/telemetry.ts @@ -10,7 +10,7 @@ import type { TelemetrySchemaSpanStartAttributes, TelemetrySchemaSpanUnion, TelemetrySpan, -} from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-telemetry"; export type { AttributeValue, @@ -37,7 +37,7 @@ export type { TelemetrySpanDefinition, TelemetryStartAttributeDefinition, TypedSpanStarter, -} from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-telemetry"; export const AI_TELEMETRY_SCHEMA = { version: 1, diff --git a/packages/agent/src/harness/tools/read.ts b/packages/agent/src/harness/tools/read.ts index d44c3f4f6..15247d98d 100644 --- a/packages/agent/src/harness/tools/read.ts +++ b/packages/agent/src/harness/tools/read.ts @@ -1,4 +1,4 @@ -import type { ImageContent, TextContent } from "@earendil-works/diffex-ai"; +import type { ImageContent, TextContent } from "@diffexai/diffex-ai"; import { type Static, Type } from "typebox"; import type { AgentHarnessTool } from "../types.ts"; import { getOrThrow } from "../types.ts"; diff --git a/packages/agent/src/harness/types.ts b/packages/agent/src/harness/types.ts index 9a3ad92da..3ad1ec36f 100644 --- a/packages/agent/src/harness/types.ts +++ b/packages/agent/src/harness/types.ts @@ -1,4 +1,4 @@ -import type { SimpleStreamOptions, Transport } from "@earendil-works/diffex-ai"; +import type { SimpleStreamOptions, Transport } from "@diffexai/diffex-ai"; import type { Static, TSchema } from "typebox"; import type { AgentTool, AgentToolResult, AgentToolUpdateCallback } from "../types.ts"; diff --git a/packages/agent/src/index.ts b/packages/agent/src/index.ts index 53b409e03..f04ea6d55 100644 --- a/packages/agent/src/index.ts +++ b/packages/agent/src/index.ts @@ -1,6 +1,6 @@ // Core Agent -export { uuidv7 } from "@earendil-works/diffex-ai"; +export { uuidv7 } from "@diffexai/diffex-ai"; export type { AttributeValue, ExactTelemetryAttributes, @@ -33,13 +33,13 @@ export type { TelemetrySpanDefinition, TelemetryStartAttributeDefinition, TypedSpanStarter, -} from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-telemetry"; export { createTypedSpanStarter, defineTelemetrySchema, InMemoryTelemetryContext, NOOP_TELEMETRY_CONTEXT, -} from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-telemetry"; export * from "./agent.ts"; // Loop functions export * from "./agent-loop.ts"; diff --git a/packages/agent/src/proxy.ts b/packages/agent/src/proxy.ts index 91887bbd5..abbb6c6cf 100644 --- a/packages/agent/src/proxy.ts +++ b/packages/agent/src/proxy.ts @@ -14,7 +14,7 @@ import { type SimpleStreamOptions, type StopReason, type ToolCall, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; // Create stream class matching ProxyMessageEventStream class ProxyMessageEventStream extends EventStream { diff --git a/packages/agent/src/types.ts b/packages/agent/src/types.ts index 578b57506..07fb4c5cc 100644 --- a/packages/agent/src/types.ts +++ b/packages/agent/src/types.ts @@ -12,8 +12,8 @@ import type { Tool, ToolResultMessage, Usage, -} from "@earendil-works/diffex-ai"; -import type { TelemetryContext } from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-ai"; +import type { TelemetryContext } from "@diffexai/diffex-telemetry"; import type { Static, TSchema } from "typebox"; /** @@ -316,7 +316,7 @@ export interface AgentLoopConfig extends SimpleStreamOptions { /** * Thinking/reasoning level for models that support it. * Note: "xhigh" and "max" are only supported by selected model families. Use model - * thinking-level metadata from @earendil-works/diffex-ai to detect support for a concrete model. + * thinking-level metadata from @diffexai/diffex-ai to detect support for a concrete model. */ export type ThinkingLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max"; diff --git a/packages/agent/test/agent-loop.test.ts b/packages/agent/test/agent-loop.test.ts index cfff201b7..264b90eb6 100644 --- a/packages/agent/test/agent-loop.test.ts +++ b/packages/agent/test/agent-loop.test.ts @@ -5,7 +5,7 @@ import { type Message, type Model, type UserMessage, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { agentLoop, agentLoopContinue } from "../src/agent-loop.ts"; diff --git a/packages/agent/test/agent.test.ts b/packages/agent/test/agent.test.ts index d8c9a522a..fa923370b 100644 --- a/packages/agent/test/agent.test.ts +++ b/packages/agent/test/agent.test.ts @@ -1,9 +1,4 @@ -import { - type AssistantMessage, - type AssistantMessageEvent, - EventStream, - getModel, -} from "@earendil-works/diffex-ai/compat"; +import { type AssistantMessage, type AssistantMessageEvent, EventStream, getModel } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { diff --git a/packages/agent/test/e2e.test.ts b/packages/agent/test/e2e.test.ts index 3e8128f77..fe89b227b 100644 --- a/packages/agent/test/e2e.test.ts +++ b/packages/agent/test/e2e.test.ts @@ -10,7 +10,7 @@ import { streamSimple, type ToolResultMessage, type UserMessage, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it } from "vitest"; import { Agent, type AgentEvent } from "../src/index.ts"; import { calculateTool } from "./utils/calculate.ts"; diff --git a/packages/agent/test/harness/agent-harness-scaffold.test.ts b/packages/agent/test/harness/agent-harness-scaffold.test.ts index f0531f331..c6e3412da 100644 --- a/packages/agent/test/harness/agent-harness-scaffold.test.ts +++ b/packages/agent/test/harness/agent-harness-scaffold.test.ts @@ -1,5 +1,5 @@ -import { createModels, type Usage } from "@earendil-works/diffex-ai"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import { createModels, type Usage } from "@diffexai/diffex-ai"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { describe, expect, it } from "vitest"; import { AgentHarness, diff --git a/packages/agent/test/harness/branch-summarization.test.ts b/packages/agent/test/harness/branch-summarization.test.ts index 54ac4142b..d924e4826 100644 --- a/packages/agent/test/harness/branch-summarization.test.ts +++ b/packages/agent/test/harness/branch-summarization.test.ts @@ -1,4 +1,4 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; import { describe, expect, it } from "vitest"; import { collectEntriesForBranchSummary } from "../../src/harness/compaction/branch-summarization.ts"; import { InMemorySessionStorage, Session } from "../../src/harness/session/index.ts"; diff --git a/packages/agent/test/harness/compaction.test.ts b/packages/agent/test/harness/compaction.test.ts index cf7076659..f2302bf29 100644 --- a/packages/agent/test/harness/compaction.test.ts +++ b/packages/agent/test/harness/compaction.test.ts @@ -9,7 +9,7 @@ import { type Model, type Models, type Usage, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { beforeEach, describe, expect, it } from "vitest"; import { type CompactionPreparation, diff --git a/packages/agent/test/harness/reducer.test.ts b/packages/agent/test/harness/reducer.test.ts index e79e8ffcc..972f6650f 100644 --- a/packages/agent/test/harness/reducer.test.ts +++ b/packages/agent/test/harness/reducer.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage, ToolResultMessage, Usage, UserMessage } from "@earendil-works/diffex-ai"; +import type { AssistantMessage, ToolResultMessage, Usage, UserMessage } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { type EffectiveLaneConfiguration, diff --git a/packages/agent/test/harness/session/context.test.ts b/packages/agent/test/harness/session/context.test.ts index d7f34b4b3..1e8482677 100644 --- a/packages/agent/test/harness/session/context.test.ts +++ b/packages/agent/test/harness/session/context.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage } from "@earendil-works/diffex-ai"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { buildSessionContext } from "../../../src/harness/session/context.ts"; import type { Entry } from "../../../src/harness/session/types.ts"; diff --git a/packages/agent/test/harness/session/jsonl-storage.test.ts b/packages/agent/test/harness/session/jsonl-storage.test.ts index 75d551a60..7a3f90f90 100644 --- a/packages/agent/test/harness/session/jsonl-storage.test.ts +++ b/packages/agent/test/harness/session/jsonl-storage.test.ts @@ -1,7 +1,7 @@ import { mkdtempSync, readFileSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { Usage } from "@earendil-works/diffex-ai"; +import type { Usage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { NodeExecutionEnv } from "../../../src/harness/env/nodejs.ts"; import type { diff --git a/packages/agent/test/harness/telemetry.test.ts b/packages/agent/test/harness/telemetry.test.ts index affee1402..df7d2c26d 100644 --- a/packages/agent/test/harness/telemetry.test.ts +++ b/packages/agent/test/harness/telemetry.test.ts @@ -1,10 +1,6 @@ import { readFileSync } from "node:fs"; import { resolve } from "node:path"; -import { - createTypedSpanStarter, - NOOP_TELEMETRY_CONTEXT, - type TelemetryContext, -} from "@earendil-works/diffex-telemetry"; +import { createTypedSpanStarter, NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@diffexai/diffex-telemetry"; import { describe, expect, expectTypeOf, it } from "vitest"; import { renderAgentTelemetrySchemaMarkdown } from "../../scripts/generate-telemetry-docs.ts"; import { diff --git a/packages/agent/test/utils/calculate.ts b/packages/agent/test/utils/calculate.ts index 058fb587d..014849944 100644 --- a/packages/agent/test/utils/calculate.ts +++ b/packages/agent/test/utils/calculate.ts @@ -1,4 +1,4 @@ -import type { Usage } from "@earendil-works/diffex-ai"; +import type { Usage } from "@diffexai/diffex-ai"; import { type Static, Type } from "typebox"; import type { AgentTool, AgentToolResult } from "../../src/types.ts"; diff --git a/packages/agent/tsconfig.build.json b/packages/agent/tsconfig.build.json index 78d6fed64..76aef8817 100644 --- a/packages/agent/tsconfig.build.json +++ b/packages/agent/tsconfig.build.json @@ -3,9 +3,9 @@ "compilerOptions": { "outDir": "./dist", "paths": { - "@earendil-works/diffex-telemetry": ["../telemetry/dist/index.d.ts"], - "@earendil-works/diffex-ai": ["../ai/dist/index.d.ts"], - "@earendil-works/diffex-ai/*": ["../ai/dist/*.d.ts", "../ai/dist/providers/*.d.ts"] + "@diffexai/diffex-telemetry": ["../telemetry/dist/index.d.ts"], + "@diffexai/diffex-ai": ["../ai/dist/index.d.ts"], + "@diffexai/diffex-ai/*": ["../ai/dist/*.d.ts", "../ai/dist/providers/*.d.ts"] }, "rootDir": "./src" }, diff --git a/packages/agent/vitest.config.ts b/packages/agent/vitest.config.ts index 70996910c..e498f1eec 100644 --- a/packages/agent/vitest.config.ts +++ b/packages/agent/vitest.config.ts @@ -16,10 +16,10 @@ export default defineConfig({ }, resolve: { alias: [ - { find: /^@earendil-works\/diffex-telemetry$/, replacement: telemetrySrcIndex }, - { find: /^@earendil-works\/diffex-agent-core$/, replacement: agentSrcIndex }, - { find: /^@earendil-works\/diffex-ai$/, replacement: aiSrcIndex }, - { find: /^@earendil-works\/diffex-ai\/compat$/, replacement: aiSrcCompat }, + { find: /^@diffexai\/diffex-telemetry$/, replacement: telemetrySrcIndex }, + { find: /^@diffexai\/diffex-agent-core$/, replacement: agentSrcIndex }, + { find: /^@diffexai\/diffex-ai$/, replacement: aiSrcIndex }, + { find: /^@diffexai\/diffex-ai\/compat$/, replacement: aiSrcCompat }, ], }, }); diff --git a/packages/agent/vitest.harness.config.ts b/packages/agent/vitest.harness.config.ts index b97ecdcf0..63746c1b6 100644 --- a/packages/agent/vitest.harness.config.ts +++ b/packages/agent/vitest.harness.config.ts @@ -23,10 +23,10 @@ export default defineConfig({ }, resolve: { alias: [ - { find: /^@earendil-works\/diffex-telemetry$/, replacement: telemetrySrcIndex }, - { find: /^@earendil-works\/diffex-agent-core$/, replacement: agentSrcIndex }, - { find: /^@earendil-works\/diffex-ai$/, replacement: aiSrcIndex }, - { find: /^@earendil-works\/diffex-ai\/compat$/, replacement: aiSrcCompat }, + { find: /^@diffexai\/diffex-telemetry$/, replacement: telemetrySrcIndex }, + { find: /^@diffexai\/diffex-agent-core$/, replacement: agentSrcIndex }, + { find: /^@diffexai\/diffex-ai$/, replacement: aiSrcIndex }, + { find: /^@diffexai\/diffex-ai\/compat$/, replacement: aiSrcCompat }, ], }, }); diff --git a/packages/ai/README.md b/packages/ai/README.md index 7af25b28b..74f971e3a 100644 --- a/packages/ai/README.md +++ b/packages/ai/README.md @@ -1,4 +1,4 @@ -# @earendil-works/diffex-ai +# @diffexai/diffex-ai Unified LLM API with provider collections, automatic auth resolution, token and cost tracking, and simple context persistence and hand-off to other models mid-session. @@ -92,18 +92,18 @@ Unified LLM API with provider collections, automatic auth resolution, token and ## Installation ```bash -npm install @earendil-works/diffex-ai +npm install @diffexai/diffex-ai ``` -TypeBox exports are re-exported from `@earendil-works/diffex-ai`: `Type`, `Static`, and `TSchema`. +TypeBox exports are re-exported from `@diffexai/diffex-ai`: `Type`, `Static`, and `TSchema`. ## Quick Start You build a `Models` collection of providers and stream through it. The quickest start registers every built-in provider; apps that care about bundle size register individual providers instead (see [Provider Factories](#provider-factories) and [Bundling and Tree Shaking](#bundling-and-tree-shaking)). ```typescript -import { Type, type Context, type Tool } from '@earendil-works/diffex-ai'; -import { builtinModels } from '@earendil-works/diffex-ai/providers/all'; +import { Type, type Context, type Tool } from '@diffexai/diffex-ai'; +import { builtinModels } from '@diffexai/diffex-ai/providers/all'; // A Models collection with every built-in provider registered const models = builtinModels(); @@ -238,10 +238,10 @@ Providers internally share **API implementations** (the wire protocols): Anthrop For apps that only need specific providers, there is one factory per built-in provider, each a subpath import that pulls only that provider's catalog: ```typescript -import { anthropicProvider } from '@earendil-works/diffex-ai/providers/anthropic'; -import { openaiProvider } from '@earendil-works/diffex-ai/providers/openai'; -import { openrouterProvider } from '@earendil-works/diffex-ai/providers/openrouter'; -import { amazonBedrockProvider } from '@earendil-works/diffex-ai/providers/amazon-bedrock'; +import { anthropicProvider } from '@diffexai/diffex-ai/providers/anthropic'; +import { openaiProvider } from '@diffexai/diffex-ai/providers/openai'; +import { openrouterProvider } from '@diffexai/diffex-ai/providers/openrouter'; +import { amazonBedrockProvider } from '@diffexai/diffex-ai/providers/amazon-bedrock'; // ...one module per provider in the Supported Providers list const models = createModels(); @@ -256,7 +256,7 @@ Provider factories import their model catalog and a lazy API wrapper. They do no For apps that want everything (as in Quick Start): ```typescript -import { builtinModels } from '@earendil-works/diffex-ai/providers/all'; +import { builtinModels } from '@diffexai/diffex-ai/providers/all'; const models = builtinModels(); // a Models collection with every built-in provider registered ``` @@ -287,7 +287,7 @@ for (const m of anthropicModels) { Dynamically listed models are typed `Model`. Narrow with the `hasApi()` guard when you need API-specific option typing: ```typescript -import { hasApi } from '@earendil-works/diffex-ai'; +import { hasApi } from '@diffexai/diffex-ai'; const m = models.getModel('anthropic', 'claude-sonnet-4-5'); if (m && hasApi(m, 'anthropic-messages')) { @@ -301,7 +301,7 @@ if (m && hasApi(m, 'anthropic-messages')) { For tooling that wants the generated built-in catalog with full literal typing (provider and model IDs auto-complete), independent of any collection: ```typescript -import { getBuiltinModel, getBuiltinModels, getBuiltinProviders } from '@earendil-works/diffex-ai/providers/all'; +import { getBuiltinModel, getBuiltinModels, getBuiltinProviders } from '@diffexai/diffex-ai/providers/all'; const model = getBuiltinModel('openai', 'gpt-4o-mini'); // typed Model<'openai-responses'> const providers = getBuiltinProviders(); @@ -384,7 +384,7 @@ Header names are merged case-insensitively. Explicit headers override auth/model Stored credentials (API keys entered interactively, OAuth tokens) live in a `CredentialStore` — one type-tagged credential per provider. diffex-ai ships an in-memory default; apps inject persistent storage: ```typescript -import { createModels, type CredentialStore } from '@earendil-works/diffex-ai'; +import { createModels, type CredentialStore } from '@diffexai/diffex-ai'; const models = createModels({ credentials: myFileBackedStore }); // builtinModels() takes the same options: @@ -462,7 +462,7 @@ Tools enable LLMs to interact with external systems. This library uses TypeBox s ### Defining Tools ```typescript -import { Type, type Tool, StringEnum } from '@earendil-works/diffex-ai'; +import { Type, type Tool, StringEnum } from '@diffexai/diffex-ai'; // Define tool parameters with TypeBox const weatherTool: Tool = { @@ -620,7 +620,7 @@ for await (const event of s) { When implementing your own tool execution loop, use `validateToolCall` to validate arguments before passing them to your tools: ```typescript -import { validateToolCall, type Tool } from '@earendil-works/diffex-ai'; +import { validateToolCall, type Tool } from '@diffexai/diffex-ai'; const tools: Tool[] = [weatherTool, calculatorTool]; const s = models.stream(model, { messages, tools }); @@ -713,7 +713,7 @@ Image generation uses a separate API surface from text/chat generation, mirrorin ### Basic Image Generation ```typescript -import { builtinImagesModels } from '@earendil-works/diffex-ai/providers/all'; +import { builtinImagesModels } from '@diffexai/diffex-ai/providers/all'; // Every built-in image-generation provider; accepts the same options as createModels() const imagesModels = builtinImagesModels(); @@ -735,12 +735,12 @@ for (const block of result.output) { } ``` -Like the chat side, you can build the collection from parts: `createImagesModels({ credentials?, authContext? })`, the `openrouterImagesProvider()` factory from `@earendil-works/diffex-ai/providers/openrouter-images`, and `createImagesProvider({ id, auth, models, refreshModels?, api })` for custom image providers (with `imagesModels.refresh(provider?)` for dynamic lists). Failures never reject — they return an `AssistantImages` with `stopReason: "error"`. The collection's provider-scoped `getAuth(providerId)` works exactly like the chat-side one. +Like the chat side, you can build the collection from parts: `createImagesModels({ credentials?, authContext? })`, the `openrouterImagesProvider()` factory from `@diffexai/diffex-ai/providers/openrouter-images`, and `createImagesProvider({ id, auth, models, refreshModels?, api })` for custom image providers (with `imagesModels.refresh(provider?)` for dynamic lists). Failures never reject — they return an `AssistantImages` with `stopReason: "error"`. The collection's provider-scoped `getAuth(providerId)` works exactly like the chat-side one. The old global API (`getImageModel()` / `getImageModels()` / `getImageProviders()` / `generateImages()`) remains available on the [compat entrypoint](#migrating-from-the-old-global-api): ```typescript -import { getImageModel, generateImages } from '@earendil-works/diffex-ai/compat'; +import { getImageModel, generateImages } from '@diffexai/diffex-ai/compat'; const model = getImageModel('openrouter', 'google/gemini-2.5-flash-image'); const result = await generateImages(model, { @@ -825,7 +825,7 @@ for (const block of response.content) { `models.stream()`/`complete()` accept the owning API's full option set. Use `hasApi()` to narrow a dynamically looked-up model to its API for full option typing: ```typescript -import { hasApi } from '@earendil-works/diffex-ai'; +import { hasApi } from '@diffexai/diffex-ai'; // OpenAI Reasoning (o1, o3, gpt-5) const openaiModel = models.getModel('openai', 'gpt-5-mini')!; @@ -998,8 +998,8 @@ The callback is supported by `stream`, `complete`, `streamSimple`, and `complete `createProvider()` builds a provider from parts: identity, auth, a model list, and an API implementation. Use it for local inference servers, proxies, or any OpenAI/Anthropic-compatible endpoint: ```typescript -import { createModels, createProvider, envApiKeyAuth, type Model } from '@earendil-works/diffex-ai'; -import { openAICompletionsApi } from '@earendil-works/diffex-ai/api/openai-completions.lazy'; +import { createModels, createProvider, envApiKeyAuth, type Model } from '@diffexai/diffex-ai'; +import { openAICompletionsApi } from '@diffexai/diffex-ai/api/openai-completions.lazy'; const ollamaModel: Model<'openai-completions'> = { id: 'llama-3.1-8b', @@ -1044,8 +1044,8 @@ const proxy = createProvider({ Mixed-API providers pass a map keyed by `model.api`; each model dispatches to its API's implementation: ```typescript -import { anthropicMessagesApi } from '@earendil-works/diffex-ai/api/anthropic-messages.lazy'; -import { openAIResponsesApi } from '@earendil-works/diffex-ai/api/openai-responses.lazy'; +import { anthropicMessagesApi } from '@diffexai/diffex-ai/api/anthropic-messages.lazy'; +import { openAIResponsesApi } from '@diffexai/diffex-ai/api/openai-responses.lazy'; const gateway = createProvider({ id: 'my-gateway', @@ -1138,7 +1138,7 @@ const ollamaReasoningModel: Model<'openai-completions'> = { The API implementations are importable on their own. Each module exports exactly `stream` and `streamSimple` with that API's full option typing. Direct calls bypass provider auth — pass `apiKey` explicitly: ```typescript -import { stream } from '@earendil-works/diffex-ai/api/anthropic-messages'; +import { stream } from '@diffexai/diffex-ai/api/anthropic-messages'; const s = stream(claudeModel, context, { apiKey: process.env.ANTHROPIC_API_KEY, @@ -1161,7 +1161,7 @@ Built-in API implementations live under `./api/`: | `mistral-conversations` | `MistralOptions` | | `bedrock-converse-stream` | `BedrockOptions` | -Importing an implementation module loads its SDK. The `./api/.lazy` wrappers (used by the provider factories) defer that load to the first request when the runtime or bundler supports dynamic import chunking. Legacy raw API subpaths from older releases (`./anthropic`, `./google`, `./mistral`, `./openai-completions`, ...) were removed; use `@earendil-works/diffex-ai/api/`. +Importing an implementation module loads its SDK. The `./api/.lazy` wrappers (used by the provider factories) defer that load to the first request when the runtime or bundler supports dynamic import chunking. Legacy raw API subpaths from older releases (`./anthropic`, `./google`, `./mistral`, `./openai-completions`, ...) were removed; use `@diffexai/diffex-ai/api/`. ### OpenAI Compatibility Settings @@ -1217,7 +1217,7 @@ import { fauxText, fauxThinking, fauxToolCall, -} from '@earendil-works/diffex-ai'; +} from '@diffexai/diffex-ai'; const faux = fauxProvider({ tokensPerSecond: 50 // optional @@ -1304,10 +1304,10 @@ When messages from one provider are sent to a different provider, the library au - **Tool calls and regular text** are preserved unchanged ```typescript -import { createModels, type Context } from '@earendil-works/diffex-ai'; -import { anthropicProvider } from '@earendil-works/diffex-ai/providers/anthropic'; -import { openaiProvider } from '@earendil-works/diffex-ai/providers/openai'; -import { googleProvider } from '@earendil-works/diffex-ai/providers/google'; +import { createModels, type Context } from '@diffexai/diffex-ai'; +import { anthropicProvider } from '@diffexai/diffex-ai/providers/anthropic'; +import { openaiProvider } from '@diffexai/diffex-ai/providers/openai'; +import { googleProvider } from '@diffexai/diffex-ai/providers/google'; const models = createModels(); models.setProvider(anthropicProvider()); @@ -1374,8 +1374,8 @@ Models are plain serializable data too — no functions or implementations attac The library supports browser environments. The core entrypoint and provider factories are side-effect free and bundle cleanly. Environment variables are not available in browsers, so pass API keys explicitly — or inject a `CredentialStore` (e.g. localStorage-backed) and let provider auth resolve from stored credentials: ```typescript -import { createModels } from '@earendil-works/diffex-ai'; -import { anthropicProvider } from '@earendil-works/diffex-ai/providers/anthropic'; +import { createModels } from '@diffexai/diffex-ai'; +import { anthropicProvider } from '@diffexai/diffex-ai/providers/anthropic'; const models = createModels(); models.setProvider(anthropicProvider()); @@ -1401,8 +1401,8 @@ Browser compatibility notes: For small bundles, import only the providers you need: ```typescript -import { createModels } from '@earendil-works/diffex-ai'; -import { openaiProvider } from '@earendil-works/diffex-ai/providers/openai'; +import { createModels } from '@diffexai/diffex-ai'; +import { openaiProvider } from '@diffexai/diffex-ai/providers/openai'; const models = createModels(); models.setProvider(openaiProvider()); @@ -1410,14 +1410,14 @@ models.setProvider(openaiProvider()); Rules: -- `@earendil-works/diffex-ai` is the core entrypoint and does not import built-in catalogs, provider factories, or SDK implementations. -- `@earendil-works/diffex-ai/providers/` imports that provider's catalog and lazy API wrapper only. -- `@earendil-works/diffex-ai/providers/all` imports every built-in provider factory and all catalogs. Use it only when you want the full built-in set. +- `@diffexai/diffex-ai` is the core entrypoint and does not import built-in catalogs, provider factories, or SDK implementations. +- `@diffexai/diffex-ai/providers/` imports that provider's catalog and lazy API wrapper only. +- `@diffexai/diffex-ai/providers/all` imports every built-in provider factory and all catalogs. Use it only when you want the full built-in set. - With code splitting, provider SDKs stay in lazy chunks and load on first request. - Without code splitting, bundlers fold reachable lazy API implementations into the single bundle. A single-provider bundle then includes that provider's SDK; `providers/all` includes all statically visible SDKs. Bedrock is the exception: its AWS SDK implementation is loaded through a bundler-opaque Node-only import. -- Importing `@earendil-works/diffex-ai/api/` directly loads that API implementation and its SDK immediately. +- Importing `@diffexai/diffex-ai/api/` directly loads that API implementation and its SDK immediately. -Avoid `@earendil-works/diffex-ai/compat` in new bundled apps; it preserves the old global API and imports the full built-in catalog surface. +Avoid `@diffexai/diffex-ai/compat` in new bundled apps; it preserves the old global API and imports the full built-in catalog surface. For single-file Node ESM bundles, some SDK dependencies may still use dynamic CommonJS `require()` internally. If you see errors such as `Dynamic require of "child_process" is not supported`, add a Node `require` shim to the bundle. With esbuild: @@ -1432,8 +1432,8 @@ This is only for Node bundles; it is not a browser or Cloudflare Workers workaro Bedrock is Node-only. Add it like any other provider: ```typescript -import { createModels } from '@earendil-works/diffex-ai'; -import { amazonBedrockProvider } from '@earendil-works/diffex-ai/providers/amazon-bedrock'; +import { createModels } from '@diffexai/diffex-ai'; +import { amazonBedrockProvider } from '@diffexai/diffex-ai/providers/amazon-bedrock'; const models = createModels(); models.setProvider(amazonBedrockProvider()); @@ -1442,8 +1442,8 @@ models.setProvider(amazonBedrockProvider()); In normal Node package usage and code-split bundles, Bedrock loads its AWS SDK implementation lazily. For a standalone single-file bundle that must include Bedrock support, register the implementation module explicitly: ```typescript -import { setBedrockProviderModule } from '@earendil-works/diffex-ai/api/bedrock-converse-stream.lazy'; -import { bedrockProviderModule } from '@earendil-works/diffex-ai/bedrock-provider'; +import { setBedrockProviderModule } from '@diffexai/diffex-ai/api/bedrock-converse-stream.lazy'; +import { bedrockProviderModule } from '@diffexai/diffex-ai/bedrock-provider'; setBedrockProviderModule(bedrockProviderModule); ``` @@ -1481,8 +1481,8 @@ Several providers support OAuth authentication instead of static API keys: Each of these providers carries an `OAuthAuth` on `provider.auth.oauth` with three operations: `login(interaction)` uses the provider-neutral `AuthInteraction.prompt()`/`notify()` protocol and returns a credential, `refresh(credential, signal)` refreshes expiring credentials when applicable, and `toAuth(credential)` derives request auth (GitHub Copilot's per-account base URL comes from here). Provider login interactions and refresh calls always carry a concrete abort signal. Refresh is automatic: `models.getAuth(providerId)` and request paths refresh expired tokens under a credential-store lock, so concurrent requests and processes cannot double-refresh. OpenRouter's OAuth flow instead returns a permanent API key, so its refresh operation is a no-op. ```typescript -import { createModels } from '@earendil-works/diffex-ai'; -import { anthropicProvider } from '@earendil-works/diffex-ai/providers/anthropic'; +import { createModels } from '@diffexai/diffex-ai'; +import { anthropicProvider } from '@diffexai/diffex-ai/providers/anthropic'; const models = createModels({ credentials: myStore }); // persistent CredentialStore models.setProvider(anthropicProvider()); @@ -1541,16 +1541,16 @@ Official docs: [Application Default Credentials](https://cloud.google.com/docs/a The quickest way to authenticate: ```bash -npx @earendil-works/diffex-ai login # interactive provider selection -npx @earendil-works/diffex-ai login anthropic # login to specific provider -npx @earendil-works/diffex-ai list # list available providers +npx @diffexai/diffex-ai login # interactive provider selection +npx @diffexai/diffex-ai login anthropic # login to specific provider +npx @diffexai/diffex-ai list # list available providers ``` Credentials are saved to `auth.json` in the current directory. ### Programmatic OAuth -Built-in login and refresh flows are private provider implementations. Use provider-owned `OAuthAuth`, which composes with `CredentialStore` and gets locked auto-refresh through `Models`. The `@earendil-works/diffex-ai/oauth` entry point retains only type declarations required by coding-agent extension OAuth compatibility. +Built-in login and refresh flows are private provider implementations. Use provider-owned `OAuthAuth`, which composes with `CredentialStore` and gets locked auto-refresh through `Models`. The `@diffexai/diffex-ai/oauth` entry point retains only type declarations required by coding-agent extension OAuth compatibility. Provider notes: @@ -1566,10 +1566,10 @@ Older versions exposed a global API: `stream()`/`complete()` dispatching on `mod ```typescript // Before -import { getModel, complete } from '@earendil-works/diffex-ai'; +import { getModel, complete } from '@diffexai/diffex-ai'; // After (verbatim behavior, one import-path change) -import { getModel, complete } from '@earendil-works/diffex-ai/compat'; +import { getModel, complete } from '@diffexai/diffex-ai/compat'; ``` Compat is a strict superset of the root entrypoint, so a file can switch its import path wholesale. It will be removed in a future release; migrate to `createModels()` + provider factories: @@ -1581,7 +1581,7 @@ Compat is a strict superset of the root entrypoint, so a file can switch its imp | `stream(model, ctx, opts)` (env-key injection) | `models.stream(model, ctx, opts)` (provider auth resolution) | | `registerApiProvider({ api, stream, streamSimple })` | `createProvider({ id, auth, models, api })` + `models.setProvider()` | | `getEnvApiKey('openai')` | `await models.getAuth(model.provider)` | -| `streamAnthropic(model, ctx, opts)` | `stream` from `@earendil-works/diffex-ai/api/anthropic-messages`, or a provider in a collection | +| `streamAnthropic(model, ctx, opts)` | `stream` from `@diffexai/diffex-ai/api/anthropic-messages`, or a provider in a collection | | `registerFauxProvider()` | `fauxProvider()` + `models.setProvider()` | ## Development @@ -1605,7 +1605,7 @@ Create a new API implementation file (for example `bedrock-converse-stream.ts`) - Tool conversion if the provider supports tools - Response parsing to emit standardized events (`text`, `tool_call`, `thinking`, `usage`, `stop`) -Add a lazy wrapper `src/api/.lazy.ts` (`Api()` via `lazyApi()`) so providers can reference the implementation without importing its SDK. Add any root-level `export type` re-exports in `src/index.ts` that should remain available from `@earendil-works/diffex-ai`. +Add a lazy wrapper `src/api/.lazy.ts` (`Api()` via `lazyApi()`) so providers can reference the implementation without importing its SDK. Add any root-level `export type` re-exports in `src/index.ts` that should remain available from `@diffexai/diffex-ai`. #### 3. Model Generation (`scripts/generate-models.ts`, `scripts/generate-image-models.ts`) diff --git a/packages/ai/package.json b/packages/ai/package.json index ea29e42f8..f0b0a74b3 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-ai", + "name": "@diffexai/diffex-ai", "version": "0.2.0", "description": "Unified LLM API with automatic model discovery and provider configuration", "type": "module", @@ -62,7 +62,7 @@ "dependencies": { "@anthropic-ai/sdk": "0.91.1", "@aws-sdk/client-bedrock-runtime": "3.1048.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "@google/genai": "1.52.0", "@mistralai/mistralai": "2.2.6", "@opentelemetry/api": "1.9.0", diff --git a/packages/ai/src/cli.ts b/packages/ai/src/cli.ts index 24f578655..23b0cc149 100644 --- a/packages/ai/src/cli.ts +++ b/packages/ai/src/cli.ts @@ -82,7 +82,7 @@ async function main(): Promise { if (!command || command === "help" || command === "--help" || command === "-h") { const providerList = PROVIDERS.map((provider) => ` ${provider.id.padEnd(20)} ${provider.name}`).join("\n"); console.log( - `Usage: npx @earendil-works/diffex-ai [provider]\n\nCommands:\n login [provider] Login to an OAuth provider\n list List available providers\n\nProviders:\n${providerList}`, + `Usage: npx @diffexai/diffex-ai [provider]\n\nCommands:\n login [provider] Login to an OAuth provider\n list List available providers\n\nProviders:\n${providerList}`, ); return; } diff --git a/packages/ai/src/compat.ts b/packages/ai/src/compat.ts index 1af6e2e29..d82260c12 100644 --- a/packages/ai/src/compat.ts +++ b/packages/ai/src/compat.ts @@ -4,8 +4,8 @@ * the api-registry, generated catalog reads (`getModel`/`getModels`/ * `getProviders`), per-API lazy stream wrappers, and image generation. * - * Existing apps switch imports from "@earendil-works/diffex-ai" to - * "@earendil-works/diffex-ai/compat" unchanged; new code uses `createModels()` + * Existing apps switch imports from "@diffexai/diffex-ai" to + * "@diffexai/diffex-ai/compat" unchanged; new code uses `createModels()` * and the provider factories. This module is deleted with the coding-agent * ModelManager migration. */ @@ -59,13 +59,13 @@ import type { StreamOptions, } from "./types.ts"; -/** @deprecated Static catalog read. Use `getBuiltinModel` from "@earendil-works/diffex-ai/providers/all" or `Models.getModel()`. */ +/** @deprecated Static catalog read. Use `getBuiltinModel` from "@diffexai/diffex-ai/providers/all" or `Models.getModel()`. */ export const getModel = getBuiltinModel; -/** @deprecated Static catalog read. Use `getBuiltinModels` from "@earendil-works/diffex-ai/providers/all" or `Models.getModels()`. */ +/** @deprecated Static catalog read. Use `getBuiltinModels` from "@diffexai/diffex-ai/providers/all" or `Models.getModels()`. */ export const getModels = getBuiltinModels; -/** @deprecated Static catalog read. Use `getBuiltinProviders` from "@earendil-works/diffex-ai/providers/all" or `Models.getProviders()`. */ +/** @deprecated Static catalog read. Use `getBuiltinProviders` from "@diffexai/diffex-ai/providers/all" or `Models.getProviders()`. */ export const getProviders = getBuiltinProviders; export type ApiStreamFunction = ( diff --git a/packages/ai/src/index.ts b/packages/ai/src/index.ts index 2d687028e..b15455080 100644 --- a/packages/ai/src/index.ts +++ b/packages/ai/src/index.ts @@ -3,9 +3,9 @@ export { Type } from "typebox"; // Core only, side-effect free: no generated catalogs, no provider factories, // no api-registry, no OAuth implementations, no compat. Provider factories -// live under "@earendil-works/diffex-ai/providers/*", API implementations under -// "@earendil-works/diffex-ai/api/*", the old global API under -// "@earendil-works/diffex-ai/compat". +// live under "@diffexai/diffex-ai/providers/*", API implementations under +// "@diffexai/diffex-ai/api/*", the old global API under +// "@diffexai/diffex-ai/compat". export type { AnthropicEffort, AnthropicOptions, AnthropicThinkingDisplay } from "./api/anthropic-messages.ts"; export type { AzureOpenAIResponsesOptions } from "./api/azure-openai-responses.ts"; export type { BedrockOptions, BedrockThinkingDisplay } from "./api/bedrock-converse-stream.ts"; diff --git a/packages/ai/src/legacy-api-aliases.ts b/packages/ai/src/legacy-api-aliases.ts index 07dadeaf7..908a4e6d2 100644 --- a/packages/ai/src/legacy-api-aliases.ts +++ b/packages/ai/src/legacy-api-aliases.ts @@ -25,83 +25,83 @@ const openAICodexResponsesStreams = openAICodexResponsesApi(); const openAICompletionsStreams = openAICompletionsApi(); const openAIResponsesStreams = openAIResponsesApi(); -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/anthropic-messages` or `anthropicMessagesApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/anthropic-messages` or `anthropicMessagesApi().stream`. */ export const streamAnthropic = anthropicMessagesStreams.stream as StreamFunction< "anthropic-messages", AnthropicOptions >; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/anthropic-messages` or `anthropicMessagesApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/anthropic-messages` or `anthropicMessagesApi().streamSimple`. */ export const streamSimpleAnthropic = anthropicMessagesStreams.streamSimple as StreamFunction< "anthropic-messages", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().stream`. */ export const streamAzureOpenAIResponses = azureOpenAIResponsesStreams.stream as StreamFunction< "azure-openai-responses", AzureOpenAIResponsesOptions >; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/azure-openai-responses` or `azureOpenAIResponsesApi().streamSimple`. */ export const streamSimpleAzureOpenAIResponses = azureOpenAIResponsesStreams.streamSimple as StreamFunction< "azure-openai-responses", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/google-generative-ai` or `googleGenerativeAIApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/google-generative-ai` or `googleGenerativeAIApi().stream`. */ export const streamGoogle = googleGenerativeAIStreams.stream as StreamFunction<"google-generative-ai", GoogleOptions>; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/google-generative-ai` or `googleGenerativeAIApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/google-generative-ai` or `googleGenerativeAIApi().streamSimple`. */ export const streamSimpleGoogle = googleGenerativeAIStreams.streamSimple as StreamFunction< "google-generative-ai", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/google-vertex` or `googleVertexApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/google-vertex` or `googleVertexApi().stream`. */ export const streamGoogleVertex = googleVertexStreams.stream as StreamFunction<"google-vertex", GoogleVertexOptions>; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/google-vertex` or `googleVertexApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/google-vertex` or `googleVertexApi().streamSimple`. */ export const streamSimpleGoogleVertex = googleVertexStreams.streamSimple as StreamFunction< "google-vertex", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/mistral-conversations` or `mistralConversationsApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/mistral-conversations` or `mistralConversationsApi().stream`. */ export const streamMistral = mistralConversationsStreams.stream as StreamFunction< "mistral-conversations", MistralOptions >; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/mistral-conversations` or `mistralConversationsApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/mistral-conversations` or `mistralConversationsApi().streamSimple`. */ export const streamSimpleMistral = mistralConversationsStreams.streamSimple as StreamFunction< "mistral-conversations", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/openai-codex-responses` or `openAICodexResponsesApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/openai-codex-responses` or `openAICodexResponsesApi().stream`. */ export const streamOpenAICodexResponses = openAICodexResponsesStreams.stream as StreamFunction< "openai-codex-responses", OpenAICodexResponsesOptions >; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/openai-codex-responses` or `openAICodexResponsesApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/openai-codex-responses` or `openAICodexResponsesApi().streamSimple`. */ export const streamSimpleOpenAICodexResponses = openAICodexResponsesStreams.streamSimple as StreamFunction< "openai-codex-responses", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/openai-completions` or `openAICompletionsApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/openai-completions` or `openAICompletionsApi().stream`. */ export const streamOpenAICompletions = openAICompletionsStreams.stream as StreamFunction< "openai-completions", OpenAICompletionsOptions >; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/openai-completions` or `openAICompletionsApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/openai-completions` or `openAICompletionsApi().streamSimple`. */ export const streamSimpleOpenAICompletions = openAICompletionsStreams.streamSimple as StreamFunction< "openai-completions", SimpleStreamOptions >; -/** @deprecated Use `stream` from `@earendil-works/diffex-ai/api/openai-responses` or `openAIResponsesApi().stream`. */ +/** @deprecated Use `stream` from `@diffexai/diffex-ai/api/openai-responses` or `openAIResponsesApi().stream`. */ export const streamOpenAIResponses = openAIResponsesStreams.stream as StreamFunction< "openai-responses", OpenAIResponsesOptions >; -/** @deprecated Use `streamSimple` from `@earendil-works/diffex-ai/api/openai-responses` or `openAIResponsesApi().streamSimple`. */ +/** @deprecated Use `streamSimple` from `@diffexai/diffex-ai/api/openai-responses` or `openAIResponsesApi().streamSimple`. */ export const streamSimpleOpenAIResponses = openAIResponsesStreams.streamSimple as StreamFunction< "openai-responses", SimpleStreamOptions diff --git a/packages/ai/src/types.ts b/packages/ai/src/types.ts index 6f47aedf4..7806a3f10 100644 --- a/packages/ai/src/types.ts +++ b/packages/ai/src/types.ts @@ -1,4 +1,4 @@ -import type { TelemetryContext } from "@earendil-works/diffex-telemetry"; +import type { TelemetryContext } from "@diffexai/diffex-telemetry"; import type { AnthropicOptions } from "./api/anthropic-messages.ts"; import type { AzureOpenAIResponsesOptions } from "./api/azure-openai-responses.ts"; import type { BedrockOptions } from "./api/bedrock-converse-stream.ts"; diff --git a/packages/ai/test/github-copilot-oauth.test.ts b/packages/ai/test/github-copilot-oauth.test.ts index 60c6df475..44b785eb7 100644 --- a/packages/ai/test/github-copilot-oauth.test.ts +++ b/packages/ai/test/github-copilot-oauth.test.ts @@ -2,16 +2,14 @@ import { afterEach, describe, expect, it, vi } from "vitest"; import { InMemoryCredentialStore } from "../src/auth/credential-store.ts"; import { githubCopilotOAuth } from "../src/auth/oauth/github-copilot.ts"; import { createModels } from "../src/models.ts"; -import { githubCopilotProvider } from "../src/providers/github-copilot.ts"; import { GITHUB_COPILOT_MODELS } from "../src/providers/github-copilot.models.ts"; +import { githubCopilotProvider } from "../src/providers/github-copilot.ts"; const neverAbortedSignal = new AbortController().signal; // Copilot retires models from the generated catalog independently of this test, // so select the asserted model from the current catalog instead of pinning an id. -const copilotPickerModelId = Object.values(GITHUB_COPILOT_MODELS).find( - (model) => model.api === "openai-responses", -)?.id; +const copilotPickerModelId = Object.values(GITHUB_COPILOT_MODELS).find((model) => model.api === "openai-responses")?.id; if (copilotPickerModelId === undefined) { throw new Error("GitHub Copilot generated catalog has no openai-responses model"); } diff --git a/packages/ai/test/telemetry-options.test.ts b/packages/ai/test/telemetry-options.test.ts index 3a4f53605..28a5299af 100644 --- a/packages/ai/test/telemetry-options.test.ts +++ b/packages/ai/test/telemetry-options.test.ts @@ -1,4 +1,4 @@ -import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@earendil-works/diffex-telemetry"; +import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@diffexai/diffex-telemetry"; import { describe, expect, it } from "vitest"; import { buildBaseOptions } from "../src/api/simple-options.ts"; import { generateImages } from "../src/images.ts"; diff --git a/packages/ai/vitest.config.ts b/packages/ai/vitest.config.ts index 2e62c8621..d54c473dc 100644 --- a/packages/ai/vitest.config.ts +++ b/packages/ai/vitest.config.ts @@ -12,6 +12,6 @@ export default defineConfig({ silent: "passed-only", }, resolve: { - alias: [{ find: /^@earendil-works\/diffex-telemetry$/, replacement: telemetrySrcIndex }], + alias: [{ find: /^@diffexai\/diffex-telemetry$/, replacement: telemetrySrcIndex }], }, }); diff --git a/packages/client/README.md b/packages/client/README.md index 967c31631..b6751ec5a 100644 --- a/packages/client/README.md +++ b/packages/client/README.md @@ -1,9 +1,9 @@ -# @earendil-works/diffex-client +# @diffexai/diffex-client Transport-neutral client for remote Diffex sessions. `DiffexClient` exchanges length-prefixed CBOR messages through a small `ByteTransport` interface. The package has no Node-specific imports. ```ts -import { DiffexClient, type ByteTransportFactory } from "@earendil-works/diffex-client"; +import { DiffexClient, type ByteTransportFactory } from "@diffexai/diffex-client"; const transportFactory: ByteTransportFactory = async (handlers) => { // Connect using WebSocket, Unix socket, or another ordered byte transport. @@ -46,8 +46,8 @@ Subscriber exceptions are isolated from protocol state. Set `onListenerError` in Node.js and Bun consumers can use the separately exported Unix-domain socket transport: ```ts -import { DiffexClient } from "@earendil-works/diffex-client"; -import { createUnixTransportFactory } from "@earendil-works/diffex-client/unix"; +import { DiffexClient } from "@diffexai/diffex-client"; +import { createUnixTransportFactory } from "@diffexai/diffex-client/unix"; const client = new DiffexClient({ transportFactory: createUnixTransportFactory({ @@ -60,15 +60,15 @@ await client.connect(); `maxPendingBytes` bounds queued outbound data. It defaults to four times the protocol frame limit. The transport preserves send order and waits for socket backpressure before resolving each send. -The `@earendil-works/diffex-client` root remains transport- and runtime-neutral. Importing the Node-compatible transport requires the explicit `@earendil-works/diffex-client/unix` subpath. +The `@diffexai/diffex-client` root remains transport- and runtime-neutral. Importing the Node-compatible transport requires the explicit `@diffexai/diffex-client/unix` subpath. ## Hosted Diffex cloud Use the separately exported cloud client for the authenticated REST lifecycle and native WebSocket attachment: ```ts -import { DiffexClient } from "@earendil-works/diffex-client"; -import { DiffexCloudClient } from "@earendil-works/diffex-client/cloud"; +import { DiffexClient } from "@diffexai/diffex-client"; +import { DiffexCloudClient } from "@diffexai/diffex-client/cloud"; const cloud = new DiffexCloudClient({ baseUrl: "https://api.diffex.ai", @@ -89,8 +89,8 @@ Every transport connection obtains a fresh, short-lived attachment URL, and only Browser and Node runtimes with a global `WebSocket` implementation can use the separately exported transport: ```ts -import { DiffexClient } from "@earendil-works/diffex-client"; -import { createWebSocketTransportFactory } from "@earendil-works/diffex-client/websocket"; +import { DiffexClient } from "@diffexai/diffex-client"; +import { createWebSocketTransportFactory } from "@diffexai/diffex-client/websocket"; const client = new DiffexClient({ transportFactory: createWebSocketTransportFactory({ diff --git a/packages/client/package.json b/packages/client/package.json index 39de37430..86b2f1dd0 100644 --- a/packages/client/package.json +++ b/packages/client/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-client", + "name": "@diffexai/diffex-client", "version": "0.2.0", "description": "Transport-neutral client for remote Diffex sessions over framed CBOR bytes", "type": "module", @@ -44,7 +44,7 @@ "cbor", "binary" ], - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", @@ -55,7 +55,7 @@ "node": ">=22.19.0" }, "dependencies": { - "@earendil-works/diffex-protocol": "^0.2.0" + "@diffexai/diffex-protocol": "^0.2.0" }, "devDependencies": { "shx": "0.4.0", diff --git a/packages/client/src/client.ts b/packages/client/src/client.ts index 3027519ab..1c45d9a13 100644 --- a/packages/client/src/client.ts +++ b/packages/client/src/client.ts @@ -9,7 +9,7 @@ import { type ServerEvent, type ServerSnapshot, type SessionMetadata, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { Connection } from "./connection.ts"; import { DiffexClientDisposedError, diff --git a/packages/client/src/cloud.ts b/packages/client/src/cloud.ts index 29935be94..7120ebb05 100644 --- a/packages/client/src/cloud.ts +++ b/packages/client/src/cloud.ts @@ -1,4 +1,4 @@ -import { PROTOCOL_VERSION } from "@earendil-works/diffex-protocol"; +import { PROTOCOL_VERSION } from "@diffexai/diffex-protocol"; import type { ByteTransportFactory } from "./transport.ts"; import { createWebSocketTransportFactory, type WebSocketConstructor } from "./websocket.ts"; diff --git a/packages/client/src/connection.ts b/packages/client/src/connection.ts index 4bd7082bc..f5ff46950 100644 --- a/packages/client/src/connection.ts +++ b/packages/client/src/connection.ts @@ -6,7 +6,7 @@ import { type ServerMessage, ServerMessageDecoder, type ServerSnapshot, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { DiffexDisconnectedError, DiffexServerError, toDisconnectedError, toError } from "./errors.ts"; import { createPromiseResolvers, type PromiseResolvers } from "./promise.ts"; import type { ByteTransport, ByteTransportFactory, ByteTransportHandlers } from "./transport.ts"; diff --git a/packages/client/src/errors.ts b/packages/client/src/errors.ts index a1dfdad68..746656b7c 100644 --- a/packages/client/src/errors.ts +++ b/packages/client/src/errors.ts @@ -1,4 +1,4 @@ -import type { JsonValue, ProtocolError, ProtocolErrorCode } from "@earendil-works/diffex-protocol"; +import type { JsonValue, ProtocolError, ProtocolErrorCode } from "@diffexai/diffex-protocol"; export class DiffexServerError extends Error { readonly code: ProtocolErrorCode; diff --git a/packages/client/src/session-handle.ts b/packages/client/src/session-handle.ts index 4d791014e..2e5dfbc0b 100644 --- a/packages/client/src/session-handle.ts +++ b/packages/client/src/session-handle.ts @@ -5,7 +5,7 @@ import type { ServerEvent, SessionSnapshot, ThinkingLevel, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import type { Unsubscribe } from "./types.ts"; type SessionCommand = Extract; diff --git a/packages/client/src/state.ts b/packages/client/src/state.ts index 1552c0b39..29539d44b 100644 --- a/packages/client/src/state.ts +++ b/packages/client/src/state.ts @@ -1,4 +1,4 @@ -import type { CommandResult, ServerEvent, ServerSnapshot, SessionSnapshot } from "@earendil-works/diffex-protocol"; +import type { CommandResult, ServerEvent, ServerSnapshot, SessionSnapshot } from "@diffexai/diffex-protocol"; import { toError } from "./errors.ts"; import type { ListenerErrorHandler, Unsubscribe } from "./types.ts"; diff --git a/packages/client/src/types.ts b/packages/client/src/types.ts index 9251f3bfd..712216a7f 100644 --- a/packages/client/src/types.ts +++ b/packages/client/src/types.ts @@ -1,4 +1,4 @@ -import type { ModelRef, ThinkingLevel } from "@earendil-works/diffex-protocol"; +import type { ModelRef, ThinkingLevel } from "@diffexai/diffex-protocol"; import type { ByteTransportFactory } from "./transport.ts"; export type ConnectionState = "disconnected" | "connecting" | "connected"; diff --git a/packages/client/src/unix.ts b/packages/client/src/unix.ts index ae15beecd..3077ec920 100644 --- a/packages/client/src/unix.ts +++ b/packages/client/src/unix.ts @@ -1,5 +1,5 @@ import { createConnection, type Socket } from "node:net"; -import { DEFAULT_MAX_FRAME_LENGTH } from "@earendil-works/diffex-protocol"; +import { DEFAULT_MAX_FRAME_LENGTH } from "@diffexai/diffex-protocol"; import type { ByteTransport, ByteTransportFactory, ByteTransportHandlers } from "./transport.ts"; const MAX_UNIX_SOCKET_PATH_BYTES = process.platform === "linux" ? 107 : 103; diff --git a/packages/client/src/websocket.ts b/packages/client/src/websocket.ts index 384ddaddc..11e1a792b 100644 --- a/packages/client/src/websocket.ts +++ b/packages/client/src/websocket.ts @@ -1,4 +1,4 @@ -import { DEFAULT_MAX_FRAME_LENGTH } from "@earendil-works/diffex-protocol"; +import { DEFAULT_MAX_FRAME_LENGTH } from "@diffexai/diffex-protocol"; import type { ByteTransport, ByteTransportFactory, ByteTransportHandlers } from "./transport.ts"; type WebSocketData = ArrayBuffer | ArrayBufferView; diff --git a/packages/client/test/connection.test.ts b/packages/client/test/connection.test.ts index c4d6b4e51..37f11bb89 100644 --- a/packages/client/test/connection.test.ts +++ b/packages/client/test/connection.test.ts @@ -6,7 +6,7 @@ import { PROTOCOL_VERSION, ProtocolValidationError, type ServerSnapshot, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { describe, expect, test } from "vitest"; import { type ByteTransportFactory, DiffexClient, DiffexDisconnectedError } from "../src/index.ts"; import { diff --git a/packages/client/test/disposal.test.ts b/packages/client/test/disposal.test.ts index b789e514e..7f29181af 100644 --- a/packages/client/test/disposal.test.ts +++ b/packages/client/test/disposal.test.ts @@ -1,4 +1,4 @@ -import { PROTOCOL_VERSION } from "@earendil-works/diffex-protocol"; +import { PROTOCOL_VERSION } from "@diffexai/diffex-protocol"; import { describe, expect, test } from "vitest"; import { DiffexClient, DiffexClientDisposedError } from "../src/index.ts"; import { attachSession, baseServerSnapshot, connectClient, MemoryByteServer, sessionSnapshot } from "./support.ts"; diff --git a/packages/client/test/support.ts b/packages/client/test/support.ts index 884663120..c03d525df 100644 --- a/packages/client/test/support.ts +++ b/packages/client/test/support.ts @@ -7,7 +7,7 @@ import { type ServerMessage, type ServerSnapshot, type SessionSnapshot, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import type { ByteTransport, ByteTransportHandlers, DiffexSessionHandle } from "../src/index.ts"; import { DiffexClient } from "../src/index.ts"; diff --git a/packages/client/test/unix.test.ts b/packages/client/test/unix.test.ts index 7b0c18be8..cff5ed3e3 100644 --- a/packages/client/test/unix.test.ts +++ b/packages/client/test/unix.test.ts @@ -6,7 +6,7 @@ import { encodeServerMessage, PROTOCOL_VERSION, type ServerSnapshot, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { describe, expect, test } from "vitest"; import { DiffexClient } from "../src/index.ts"; import { createUnixTransportFactory } from "../src/unix.ts"; diff --git a/packages/client/tsconfig.build.json b/packages/client/tsconfig.build.json index b23f7e195..95964444a 100644 --- a/packages/client/tsconfig.build.json +++ b/packages/client/tsconfig.build.json @@ -4,7 +4,7 @@ "outDir": "./dist", "rootDir": "./src", "paths": { - "@earendil-works/diffex-protocol": ["../protocol/dist/index.d.ts"] + "@diffexai/diffex-protocol": ["../protocol/dist/index.d.ts"] } }, "include": ["src/**/*.ts"], diff --git a/packages/client/tsconfig.test.json b/packages/client/tsconfig.test.json index 64249ed6e..21a5f3551 100644 --- a/packages/client/tsconfig.test.json +++ b/packages/client/tsconfig.test.json @@ -6,7 +6,7 @@ "moduleResolution": "NodeNext", "types": ["node", "vitest"], "paths": { - "@earendil-works/diffex-protocol": ["../protocol/src/index.ts"] + "@diffexai/diffex-protocol": ["../protocol/src/index.ts"] } }, "include": ["src/**/*.ts", "test/**/*.ts"] diff --git a/packages/client/vitest.config.ts b/packages/client/vitest.config.ts index 42ca8887e..ec06d9b69 100644 --- a/packages/client/vitest.config.ts +++ b/packages/client/vitest.config.ts @@ -9,7 +9,7 @@ export default defineConfig({ }, resolve: { alias: { - "@earendil-works/diffex-protocol": fileURLToPath(new URL("../protocol/src/index.ts", import.meta.url)), + "@diffexai/diffex-protocol": fileURLToPath(new URL("../protocol/src/index.ts", import.meta.url)), }, }, }); diff --git a/packages/coding-agent-server/README.md b/packages/coding-agent-server/README.md index bbfe6b946..2a415d3e0 100644 --- a/packages/coding-agent-server/README.md +++ b/packages/coding-agent-server/README.md @@ -1,6 +1,6 @@ -# @earendil-works/diffex-coding-agent-server +# @diffexai/diffex-coding-agent-server -Production service adapter between the Pi-derived Diffex coding-agent runtime and `@earendil-works/diffex-server`. +Production service adapter between the Pi-derived Diffex coding-agent runtime and `@diffexai/diffex-server`. The hosted control plane allocates one cloud session per sandbox and passes its stable session ID to this service. Protocol clients attach to that existing session rather than creating an unrelated runtime identity. diff --git a/packages/coding-agent-server/package.json b/packages/coding-agent-server/package.json index 0b1d38c66..c0d3ac904 100644 --- a/packages/coding-agent-server/package.json +++ b/packages/coding-agent-server/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-coding-agent-server", + "name": "@diffexai/diffex-coding-agent-server", "version": "0.2.0", "description": "Hosted Diffex protocol service backed by the Pi-derived coding-agent runtime", "type": "module", @@ -23,12 +23,12 @@ "directory": "packages/coding-agent-server" }, "dependencies": { - "@earendil-works/diffex-coding-agent": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", - "@earendil-works/diffex-server": "^0.2.0" + "@diffexai/diffex": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", + "@diffexai/diffex-server": "^0.2.0" }, "devDependencies": { - "@earendil-works/diffex-client": "^0.2.0", + "@diffexai/diffex-client": "^0.2.0", "shx": "0.4.0", "vitest": "4.1.9", "ws": "8.21.0" diff --git a/packages/coding-agent-server/src/cli.ts b/packages/coding-agent-server/src/cli.ts index 873225b18..ec40a2658 100644 --- a/packages/coding-agent-server/src/cli.ts +++ b/packages/coding-agent-server/src/cli.ts @@ -2,8 +2,8 @@ import { timingSafeEqual } from "node:crypto"; import { join } from "node:path"; -import { ModelRuntime } from "@earendil-works/diffex-coding-agent"; -import { createWebSocketServer } from "@earendil-works/diffex-server/websocket"; +import { ModelRuntime } from "@diffexai/diffex"; +import { createWebSocketServer } from "@diffexai/diffex-server/websocket"; import { createHostedCodingAgentService } from "./service.ts"; import { createDurableUsageReporter } from "./usage-reporter.ts"; diff --git a/packages/coding-agent-server/src/service.ts b/packages/coding-agent-server/src/service.ts index 8f817f147..2d010e303 100644 --- a/packages/coding-agent-server/src/service.ts +++ b/packages/coding-agent-server/src/service.ts @@ -7,7 +7,7 @@ import { getAgentDir, ModelRuntime, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; import type { ModelMetadata, ModelRef, @@ -17,7 +17,7 @@ import type { ThinkingLevel, TranscriptItem, UserTranscriptItem, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { type CreateSessionOptions, DiffexServerError, @@ -30,7 +30,7 @@ import { toProtocolModelMetadata, toProtocolToolResultMessage, toProtocolUserMessage, -} from "@earendil-works/diffex-server"; +} from "@diffexai/diffex-server"; import type { RuntimeUsageReporter } from "./usage-reporter.ts"; export interface HostedCodingAgentServiceOptions { sessionId: string; diff --git a/packages/coding-agent-server/test/websocket-flow.test.ts b/packages/coding-agent-server/test/websocket-flow.test.ts index 54ee4bd6d..d28908947 100644 --- a/packages/coding-agent-server/test/websocket-flow.test.ts +++ b/packages/coding-agent-server/test/websocket-flow.test.ts @@ -1,12 +1,12 @@ import { mkdirSync, mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { DiffexClient } from "@earendil-works/diffex-client"; -import { createWebSocketTransportFactory } from "@earendil-works/diffex-client/websocket"; -import { ModelRuntime } from "@earendil-works/diffex-coding-agent"; -import { DiffexServer } from "@earendil-works/diffex-server"; -import { TestServerService } from "@earendil-works/diffex-server/testing"; -import { createWebSocketListener } from "@earendil-works/diffex-server/websocket"; +import { ModelRuntime } from "@diffexai/diffex"; +import { DiffexClient } from "@diffexai/diffex-client"; +import { createWebSocketTransportFactory } from "@diffexai/diffex-client/websocket"; +import { DiffexServer } from "@diffexai/diffex-server"; +import { TestServerService } from "@diffexai/diffex-server/testing"; +import { createWebSocketListener } from "@diffexai/diffex-server/websocket"; import { afterEach, describe, expect, it } from "vitest"; import { WebSocket } from "ws"; import { createHostedCodingAgentService } from "../src/service.ts"; diff --git a/packages/coding-agent-server/tsconfig.build.json b/packages/coding-agent-server/tsconfig.build.json index eac5a85dc..3164db08c 100644 --- a/packages/coding-agent-server/tsconfig.build.json +++ b/packages/coding-agent-server/tsconfig.build.json @@ -4,10 +4,10 @@ "outDir": "./dist", "rootDir": "./src", "paths": { - "@earendil-works/diffex-coding-agent": ["../coding-agent/dist/index.d.ts"], - "@earendil-works/diffex-protocol": ["../protocol/dist/index.d.ts"], - "@earendil-works/diffex-server": ["../server/dist/index.d.ts"], - "@earendil-works/diffex-server/websocket": ["../server/dist/transports/websocket/index.d.ts"] + "@diffexai/diffex": ["../coding-agent/dist/index.d.ts"], + "@diffexai/diffex-protocol": ["../protocol/dist/index.d.ts"], + "@diffexai/diffex-server": ["../server/dist/index.d.ts"], + "@diffexai/diffex-server/websocket": ["../server/dist/transports/websocket/index.d.ts"] } }, "include": ["src/**/*.ts"], diff --git a/packages/coding-agent-server/vitest.config.ts b/packages/coding-agent-server/vitest.config.ts index 3a177c301..eda426564 100644 --- a/packages/coding-agent-server/vitest.config.ts +++ b/packages/coding-agent-server/vitest.config.ts @@ -9,31 +9,31 @@ export default mergeConfig( resolve: { alias: [ { - find: /^@earendil-works\/diffex-client\/websocket$/, + find: /^@diffexai\/diffex-client\/websocket$/, replacement: fileURLToPath(new URL("../client/src/websocket.ts", import.meta.url)), }, { - find: /^@earendil-works\/diffex-client$/, + find: /^@diffexai\/diffex-client$/, replacement: fileURLToPath(new URL("../client/src/index.ts", import.meta.url)), }, { - find: /^@earendil-works\/diffex-coding-agent$/, + find: /^@diffexai\/diffex$/, replacement: workspaceSourcePaths.codingAgentIndex, }, { - find: /^@earendil-works\/diffex-protocol$/, + find: /^@diffexai\/diffex-protocol$/, replacement: fileURLToPath(new URL("../protocol/src/index.ts", import.meta.url)), }, { - find: /^@earendil-works\/diffex-server\/testing$/, + find: /^@diffexai\/diffex-server\/testing$/, replacement: fileURLToPath(new URL("../server/src/testing/index.ts", import.meta.url)), }, { - find: /^@earendil-works\/diffex-server\/websocket$/, + find: /^@diffexai\/diffex-server\/websocket$/, replacement: fileURLToPath(new URL("../server/src/transports/websocket/index.ts", import.meta.url)), }, { - find: /^@earendil-works\/diffex-server$/, + find: /^@diffexai\/diffex-server$/, replacement: fileURLToPath(new URL("../server/src/index.ts", import.meta.url)), }, ], diff --git a/packages/coding-agent/README.md b/packages/coding-agent/README.md index 73e739c81..f05fcd92f 100644 --- a/packages/coding-agent/README.md +++ b/packages/coding-agent/README.md @@ -5,7 +5,7 @@

Upstream Discord - npm + npm

> New issues and PRs from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. See [CONTRIBUTING.md](../../CONTRIBUTING.md). @@ -64,7 +64,7 @@ Example upstream `pi-mono` work sessions are published here: ## Quick Start ```bash -npm install -g --ignore-scripts @earendil-works/diffex-coding-agent +npm install -g --ignore-scripts @diffexai/diffex ``` `--ignore-scripts` disables dependency lifecycle scripts during install. Diffex does not require install scripts for normal npm installs. @@ -489,7 +489,7 @@ See [docs/packages.md](docs/packages.md). ### SDK ```typescript -import { createAgentSession, ModelRuntime, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, ModelRuntime, SessionManager } from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create(); const { session } = await createAgentSession({ @@ -728,9 +728,9 @@ MIT ## See Also -- [@earendil-works/diffex-ai](https://www.npmjs.com/package/@earendil-works/diffex-ai): Core LLM toolkit -- [@earendil-works/diffex-agent-core](https://www.npmjs.com/package/@earendil-works/diffex-agent-core): Agent framework -- [@earendil-works/diffex-tui](https://www.npmjs.com/package/@earendil-works/diffex-tui): Terminal UI components +- [@diffexai/diffex-ai](https://www.npmjs.com/package/@diffexai/diffex-ai): Core LLM toolkit +- [@diffexai/diffex-agent-core](https://www.npmjs.com/package/@diffexai/diffex-agent-core): Agent framework +- [@diffexai/diffex-tui](https://www.npmjs.com/package/@diffexai/diffex-tui): Terminal UI components

The upstream project's domain was graciously donated by diff --git a/packages/coding-agent/docs/compaction.md b/packages/coding-agent/docs/compaction.md index 4f24d1db2..b6d04873f 100644 --- a/packages/coding-agent/docs/compaction.md +++ b/packages/coding-agent/docs/compaction.md @@ -9,7 +9,7 @@ LLMs have limited context windows. When conversations grow too long, Diffex uses - [`packages/coding-agent/src/core/session-manager.ts`](https://github.com/diffexai/diffex/blob/main/packages/coding-agent/src/core/session-manager.ts) - Entry types (`CompactionEntry`, `BranchSummaryEntry`) - [`packages/coding-agent/src/core/extensions/types.ts`](https://github.com/diffexai/diffex/blob/main/packages/coding-agent/src/core/extensions/types.ts) - Extension event types -For TypeScript definitions in your project, inspect `node_modules/@earendil-works/diffex-coding-agent/dist/`. +For TypeScript definitions in your project, inspect `node_modules/@diffexai/diffex/dist/`. ## Overview @@ -314,7 +314,7 @@ diffex.on("session_before_compact", async (event, ctx) => { To generate a summary with your own model, convert messages to text using `serializeConversation`: ```typescript -import { convertToLlm, serializeConversation } from "@earendil-works/diffex-coding-agent"; +import { convertToLlm, serializeConversation } from "@diffexai/diffex"; diffex.on("session_before_compact", async (event, ctx) => { const { preparation } = event; diff --git a/packages/coding-agent/docs/containerization.md b/packages/coding-agent/docs/containerization.md index 400f0ec61..3749d0712 100644 --- a/packages/coding-agent/docs/containerization.md +++ b/packages/coding-agent/docs/containerization.md @@ -54,7 +54,7 @@ FROM node:24-bookworm-slim RUN apt-get update \ && apt-get install -y --no-install-recommends bash ca-certificates git ripgrep \ && rm -rf /var/lib/apt/lists/* -RUN npm install -g --ignore-scripts @earendil-works/diffex-coding-agent +RUN npm install -g --ignore-scripts @diffexai/diffex WORKDIR /workspace ENTRYPOINT ["diffex"] diff --git a/packages/coding-agent/docs/custom-provider.md b/packages/coding-agent/docs/custom-provider.md index 22e31185a..f6138c32c 100644 --- a/packages/coding-agent/docs/custom-provider.md +++ b/packages/coding-agent/docs/custom-provider.md @@ -33,8 +33,8 @@ See these complete provider examples: Extensions can register either a complete diffex-ai `Provider` or use the legacy provider-config form. Prefer a complete provider when custom authentication, filtering, refresh, or streaming behavior is required. Diffex composes `models.json` overrides above registered native providers. ```typescript -import { createProvider, openAICompletionsApi } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import { createProvider, openAICompletionsApi } from "@diffexai/diffex-ai"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.registerProvider(createProvider({ @@ -125,7 +125,7 @@ To add a completely new provider, specify `models` along with the required confi If the model list comes from a remote endpoint, use an async extension factory: ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default async function (diffex: ExtensionAPI) { const response = await fetch("http://localhost:1234/v1/models"); @@ -288,7 +288,7 @@ The key is resolved for each request. An explicit request `Authorization` header Add OAuth/SSO authentication that integrates with `/login`: ```typescript -import type { OAuthCredentials, OAuthLoginCallbacks } from "@earendil-works/diffex-ai"; +import type { OAuthCredentials, OAuthLoginCallbacks } from "@diffexai/diffex-ai"; diffex.registerProvider("corporate-ai", { baseUrl: "https://ai.corp.com/v1", @@ -417,7 +417,7 @@ import { type SimpleStreamOptions, calculateCost, createAssistantMessageEventStream, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; function streamMyProvider( model: Model, diff --git a/packages/coding-agent/docs/extensions.md b/packages/coding-agent/docs/extensions.md index ef597856a..9cb08ffcf 100644 --- a/packages/coding-agent/docs/extensions.md +++ b/packages/coding-agent/docs/extensions.md @@ -58,7 +58,7 @@ See [examples/extensions/](../examples/extensions/) for working implementations. Create `~/.diffex/agent/extensions/my-extension.ts`: ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function (diffex: ExtensionAPI) { @@ -140,10 +140,10 @@ To share extensions via npm or git as Diffex packages, see [packages.md](package | Package | Purpose | |---------|---------| -| `@earendil-works/diffex-coding-agent` | Extension types (`ExtensionAPI`, `ExtensionContext`, events) | +| `@diffexai/diffex` | Extension types (`ExtensionAPI`, `ExtensionContext`, events) | | `typebox` | Schema definitions for tool parameters | -| `@earendil-works/diffex-ai` | AI utilities (`StringEnum` for Google-compatible enums) | -| `@earendil-works/diffex-tui` | TUI components for custom rendering | +| `@diffexai/diffex-ai` | AI utilities (`StringEnum` for Google-compatible enums) | +| `@diffexai/diffex-tui` | TUI components for custom rendering | npm dependencies work too. Add a `package.json` next to your extension (or in a parent directory), run `npm install`, and imports from `node_modules/` are resolved automatically. @@ -156,7 +156,7 @@ Node.js built-ins (`node:fs`, `node:path`, etc.) are also available. An extension exports a default factory function that receives `ExtensionAPI`. The factory can be synchronous or asynchronous: ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { // Subscribe to events @@ -185,7 +185,7 @@ If the factory returns a `Promise`, Diffex awaits it before continuing startup. Use an async factory for one-time startup work such as fetching remote configuration or dynamically discovering available models. ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default async function (diffex: ExtensionAPI) { const response = await fetch("http://localhost:1234/v1/models"); @@ -766,7 +766,7 @@ Behavior guarantees: - `terminate` only applies to a blocked call; the agent stops early only when every finalized result in the batch is terminating ```typescript -import { isToolCallEventType } from "@earendil-works/diffex-coding-agent"; +import { isToolCallEventType } from "@diffexai/diffex"; diffex.on("tool_call", async (event, ctx) => { // event.toolName - "bash", "read", "write", "edit", etc. @@ -802,7 +802,7 @@ export type MyToolInput = Static; Use `isToolCallEventType` with explicit type parameters: ```typescript -import { isToolCallEventType } from "@earendil-works/diffex-coding-agent"; +import { isToolCallEventType } from "@diffexai/diffex"; import type { MyToolInput } from "my-extension"; diffex.on("tool_call", (event) => { @@ -826,7 +826,7 @@ In parallel tool mode, `tool_result` and `tool_execution_end` may interleave in Use `ctx.signal` for nested async work inside the handler. This lets Esc cancel model calls, `fetch()`, and other abort-aware operations started by the extension. ```typescript -import { isBashToolResult } from "@earendil-works/diffex-coding-agent"; +import { isBashToolResult } from "@diffexai/diffex"; diffex.on("tool_result", async (event, ctx) => { // event.toolName, event.toolCallId, event.input @@ -854,7 +854,7 @@ diffex.on("tool_result", async (event, ctx) => { Fired when user executes `!` or `!!` commands. **Can intercept.** ```typescript -import { createLocalBashOperations } from "@earendil-works/diffex-coding-agent"; +import { createLocalBashOperations } from "@diffexai/diffex"; diffex.on("user_bash", (event, ctx) => { // event.command - the bash command @@ -948,7 +948,7 @@ Current working directory. Use `CONFIG_DIR_NAME` instead of hardcoding `.diffex` when constructing project-local config paths. Rebranded distributions can use a different config directory name. ```typescript -import { CONFIG_DIR_NAME, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import { CONFIG_DIR_NAME, type ExtensionAPI } from "@diffexai/diffex"; import { join } from "node:path"; export default function (diffex: ExtensionAPI) { @@ -1203,7 +1203,7 @@ Options: To discover available sessions, use the static `SessionManager.list()` or `SessionManager.listAll()` methods: ```typescript -import { SessionManager } from "@earendil-works/diffex-coding-agent"; +import { SessionManager } from "@diffexai/diffex"; diffex.registerCommand("switch", { description: "Switch to another session", @@ -1297,7 +1297,7 @@ Tools run with `ExtensionContext`, so they cannot call `ctx.reload()` directly. Example tool the LLM can call to trigger reload: ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function (diffex: ExtensionAPI) { @@ -1346,7 +1346,7 @@ See [dynamic-tools.ts](../examples/extensions/dynamic-tools.ts) for a full examp ```typescript import { Type } from "typebox"; -import { StringEnum } from "@earendil-works/diffex-ai"; +import { StringEnum } from "@diffexai/diffex-ai"; diffex.registerTool({ name: "my_tool", @@ -1505,7 +1505,7 @@ diffex.registerCommand("stats", { Optional: add argument auto-completion for `/command ...`: ```typescript -import type { AutocompleteItem } from "@earendil-works/diffex-tui"; +import type { AutocompleteItem } from "@diffexai/diffex-tui"; diffex.registerCommand("deploy", { description: "Deploy to an environment", @@ -1584,7 +1584,7 @@ If a transformer throws, Diffex keeps the Markdown produced so far and continues Register a custom TUI renderer for custom entries with your `customType`. Custom entries are created with `diffex.appendEntry()` and do not participate in LLM context. ```typescript -import { Box, Text } from "@earendil-works/diffex-tui"; +import { Box, Text } from "@diffexai/diffex-tui"; diffex.registerEntryRenderer("status-card", (entry, { expanded }, theme) => { const data = entry.data as { title: string; count: number }; @@ -1707,10 +1707,10 @@ Dynamic providers can implement `refreshModels`. Diffex calls it during model re `context.signal` is always a concrete signal and provider callbacks must pass it to blocking I/O. Public `ModelRuntime.refresh()` and `ModelRegistry.refresh()` calls accept an optional signal and are unbounded when it is omitted; extensions and applications choose their own deadlines. Cancellation stops the caller waiting even if a provider ignores the signal, but cooperation is still required to stop the underlying work. -Extensions that need native provider auth, filtering, refresh, or stream behavior can register a complete `Provider` from `@earendil-works/diffex-ai`. The provider becomes the composition base and `models.json` overrides still apply above it. +Extensions that need native provider auth, filtering, refresh, or stream behavior can register a complete `Provider` from `@diffexai/diffex-ai`. The provider becomes the composition base and `models.json` overrides still apply above it. ```typescript -import { createProvider, openAICompletionsApi } from "@earendil-works/diffex-ai"; +import { createProvider, openAICompletionsApi } from "@diffexai/diffex-ai"; const provider = createProvider({ id: "local-server", @@ -1893,7 +1893,7 @@ Pass the real target file path to `withFileMutationQueue()`, not the raw user ar Queue the entire mutation window on that target path. That includes read-modify-write logic, not just the final write. ```typescript -import { withFileMutationQueue } from "@earendil-works/diffex-coding-agent"; +import { withFileMutationQueue } from "@diffexai/diffex"; import { mkdir, readFile, writeFile } from "node:fs/promises"; import { dirname, resolve } from "node:path"; @@ -1918,8 +1918,8 @@ async execute(_toolCallId, params, _signal, _onUpdate, ctx) { ```typescript import { Type } from "typebox"; -import { StringEnum } from "@earendil-works/diffex-ai"; -import { Text } from "@earendil-works/diffex-tui"; +import { StringEnum } from "@diffexai/diffex-ai"; +import { Text } from "@diffexai/diffex-tui"; diffex.registerTool({ name: "my_tool", @@ -1990,7 +1990,7 @@ async execute(toolCallId, params) { } ``` -**Important:** Use `StringEnum` from `@earendil-works/diffex-ai` for string enums. `Type.Union`/`Type.Literal` doesn't work with Google's API. +**Important:** Use `StringEnum` from `@diffexai/diffex-ai` for string enums. `Type.Union`/`Type.Literal` doesn't work with Google's API. **Argument preparation:** `prepareArguments(args)` is optional. If defined, it runs before schema validation and before `execute()`. Use it to mimic an older accepted input shape when Diffex resumes an older session whose stored tool call arguments no longer match the current schema. Return the object you want validated against `parameters`. Keep the public schema strict. Do not add deprecated compatibility fields to `parameters` just to keep old resumed sessions working. @@ -2077,7 +2077,7 @@ Built-in tool implementations: Built-in tools support pluggable operations for delegating to remote systems (SSH, containers, etc.): ```typescript -import { createReadTool, createBashTool, type ReadOperations } from "@earendil-works/diffex-coding-agent"; +import { createReadTool, createBashTool, type ReadOperations } from "@diffexai/diffex"; // Create tool with custom operations const remoteRead = createReadTool(cwd, { @@ -2108,7 +2108,7 @@ For `user_bash`, extensions can reuse Diffex's local shell backend via `createLo The bash tool also supports a spawn hook to adjust the command, cwd, or env before execution: ```typescript -import { createBashTool } from "@earendil-works/diffex-coding-agent"; +import { createBashTool } from "@diffexai/diffex"; const bashTool = createBashTool(cwd, { spawnHook: ({ command, cwd, env }) => ({ @@ -2146,7 +2146,7 @@ import { formatSize, // Human-readable size (e.g., "50KB", "1.5MB") DEFAULT_MAX_BYTES, // 50KB DEFAULT_MAX_LINES, // 2000 -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; async execute(toolCallId, params, signal, onUpdate, ctx) { const output = await runCommand(); @@ -2237,7 +2237,7 @@ Use `context.state` for cross-slot shared state. Keep slot-local caches on the r Renders the tool call or header: ```typescript -import { Text } from "@earendil-works/diffex-tui"; +import { Text } from "@diffexai/diffex-tui"; renderCall(args, theme, context) { const text = (context.lastComponent as Text | undefined) ?? new Text("", 0, 0); @@ -2282,7 +2282,7 @@ If a slot intentionally has no visible content, return an empty `Component` such Use `keyHint()` to display keybinding hints that respect the active keybinding configuration: ```typescript -import { keyHint } from "@earendil-works/diffex-coding-agent"; +import { keyHint } from "@diffexai/diffex"; renderResult(result, { expanded }, theme, context) { let text = theme.fg("success", "✓ Done"); @@ -2364,7 +2364,7 @@ For the best cache behavior, keep the loader tool active for the whole session a The following extension registers two searchable tools, removes them from the initial active set, and keeps only `search_tools` as their loader. The example uses simple keyword matching, but the search implementation could use BM25, embeddings, a remote catalog, or project-specific routing. ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; const SEARCHABLE_TOOL_NAMES = new Set(["lookup_weather", "search_issues"]); @@ -2695,7 +2695,7 @@ See [github-issue-autocomplete.ts](../examples/extensions/github-issue-autocompl For complex UI, use `ctx.ui.custom()`. This temporarily replaces the editor with your component until `done()` is called: ```typescript -import { Text, Component } from "@earendil-works/diffex-tui"; +import { Text, Component } from "@diffexai/diffex-tui"; const result = await ctx.ui.custom((tui, theme, keybindings, done) => { const text = new Text("Press Enter to confirm, Escape to cancel", 1, 1); @@ -2760,8 +2760,8 @@ See [tui.md](tui.md) for the full `OverlayOptions` and `OverlayHandle` API and [ Replace the main input editor with a custom implementation (vim mode, emacs mode, etc.): ```typescript -import { CustomEditor, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { matchesKey } from "@earendil-works/diffex-tui"; +import { CustomEditor, type ExtensionAPI } from "@diffexai/diffex"; +import { matchesKey } from "@diffexai/diffex-tui"; class VimEditor extends CustomEditor { private mode: "normal" | "insert" = "insert"; @@ -2811,7 +2811,7 @@ See [tui.md](tui.md) Pattern 7 for a complete example with mode indicator. Register a custom renderer for messages with your `customType`. Use message renderers for content that should participate in LLM context: ```typescript -import { Text } from "@earendil-works/diffex-tui"; +import { Text } from "@diffexai/diffex-tui"; diffex.registerMessageRenderer("my-extension", (message, options, theme) => { const { expanded, outputPad } = options; @@ -2870,7 +2870,7 @@ theme.strikethrough(text) For syntax highlighting in custom tool renderers: ```typescript -import { highlightCode, getLanguageFromPath } from "@earendil-works/diffex-coding-agent"; +import { highlightCode, getLanguageFromPath } from "@diffexai/diffex"; // Highlight code with explicit language const highlighted = highlightCode("const x = 1;", "typescript", theme); diff --git a/packages/coding-agent/docs/index.md b/packages/coding-agent/docs/index.md index 165f348f9..8a9b67471 100644 --- a/packages/coding-agent/docs/index.md +++ b/packages/coding-agent/docs/index.md @@ -7,7 +7,7 @@ Diffex is a minimal terminal coding harness. It is designed to stay small at the Install Diffex with npm: ```bash -npm install -g --ignore-scripts @earendil-works/diffex-coding-agent +npm install -g --ignore-scripts @diffexai/diffex ``` `--ignore-scripts` disables dependency lifecycle scripts during install. Diffex does not require install scripts for normal npm installs. @@ -15,10 +15,10 @@ npm install -g --ignore-scripts @earendil-works/diffex-coding-agent To uninstall Diffex, use the matching package manager. For npm installs: ```bash -npm uninstall -g @earendil-works/diffex-coding-agent +npm uninstall -g @diffexai/diffex ``` -For pnpm, Yarn, or Bun installs, use the matching global remove command: `pnpm remove -g @earendil-works/diffex-coding-agent`, `yarn global remove @earendil-works/diffex-coding-agent`, or `bun uninstall -g @earendil-works/diffex-coding-agent`. +For pnpm, Yarn, or Bun installs, use the matching global remove command: `pnpm remove -g @diffexai/diffex`, `yarn global remove @diffexai/diffex`, or `bun uninstall -g @diffexai/diffex`. Then run it in a project directory: diff --git a/packages/coding-agent/docs/packages.md b/packages/coding-agent/docs/packages.md index 6e5bb0ea5..a6ca4f851 100644 --- a/packages/coding-agent/docs/packages.md +++ b/packages/coding-agent/docs/packages.md @@ -170,7 +170,7 @@ If no `diffex` manifest is present, Diffex auto-discovers resources from these d Third party runtime dependencies belong in `dependencies` in `package.json`. Dependencies that do not register extensions, skills, prompt templates, or themes also belong in `dependencies`. When Diffex installs a package from npm or git, it runs `npm install`, so those dependencies are installed automatically. -Diffex bundles core packages for extensions and skills. If you import any of these, list them in `peerDependencies` with a `"*"` range and do not bundle them: `@earendil-works/diffex-ai`, `@earendil-works/diffex-agent-core`, `@earendil-works/diffex-coding-agent`, `@earendil-works/diffex-tui`, `typebox`. +Diffex bundles core packages for extensions and skills. If you import any of these, list them in `peerDependencies` with a `"*"` range and do not bundle them: `@diffexai/diffex-ai`, `@diffexai/diffex-agent-core`, `@diffexai/diffex`, `@diffexai/diffex-tui`, `typebox`. Other Diffex packages must be bundled in your tarball. Add them to `dependencies` and `bundledDependencies`, then reference their resources through `node_modules/` paths. Diffex loads packages with separate module roots, so separate installs do not collide or share modules. diff --git a/packages/coding-agent/docs/quickstart.md b/packages/coding-agent/docs/quickstart.md index 414966dbd..fc4d6e09c 100644 --- a/packages/coding-agent/docs/quickstart.md +++ b/packages/coding-agent/docs/quickstart.md @@ -7,7 +7,7 @@ This page gets you from install to a useful first Diffex session. Diffex is distributed as an npm package: ```bash -npm install -g --ignore-scripts @earendil-works/diffex-coding-agent +npm install -g --ignore-scripts @diffexai/diffex ``` `--ignore-scripts` disables dependency lifecycle scripts during install. Diffex does not require install scripts for normal npm installs. @@ -18,16 +18,16 @@ Use the package manager that installed Diffex: ```bash # npm -npm uninstall -g @earendil-works/diffex-coding-agent +npm uninstall -g @diffexai/diffex # pnpm -pnpm remove -g @earendil-works/diffex-coding-agent +pnpm remove -g @diffexai/diffex # Yarn -yarn global remove @earendil-works/diffex-coding-agent +yarn global remove @diffexai/diffex # Bun -bun uninstall -g @earendil-works/diffex-coding-agent +bun uninstall -g @diffexai/diffex ``` Uninstalling Diffex leaves settings, credentials, sessions, and installed Diffex packages in `~/.diffex/agent/`. diff --git a/packages/coding-agent/docs/rpc.md b/packages/coding-agent/docs/rpc.md index 028d0486e..3ca2b66e8 100644 --- a/packages/coding-agent/docs/rpc.md +++ b/packages/coding-agent/docs/rpc.md @@ -2,7 +2,7 @@ RPC mode enables headless operation of the coding agent via a JSON protocol over stdin/stdout. This is useful for embedding the agent in other applications, IDEs, or custom UIs. -**Note for Node.js/TypeScript users**: If you're building a Node.js application, consider using `AgentSession` directly from `@earendil-works/diffex-coding-agent` instead of spawning a subprocess. See [`src/core/agent-session.ts`](../src/core/agent-session.ts) for the API. For a subprocess-based TypeScript client, see [`src/modes/rpc/rpc-client.ts`](../src/modes/rpc/rpc-client.ts). +**Note for Node.js/TypeScript users**: If you're building a Node.js application, consider using `AgentSession` directly from `@diffexai/diffex` instead of spawning a subprocess. See [`src/core/agent-session.ts`](../src/core/agent-session.ts) for the API. For a subprocess-based TypeScript client, see [`src/modes/rpc/rpc-client.ts`](../src/modes/rpc/rpc-client.ts). ## Starting RPC Mode diff --git a/packages/coding-agent/docs/sdk.md b/packages/coding-agent/docs/sdk.md index 1feb74031..054650b5a 100644 --- a/packages/coding-agent/docs/sdk.md +++ b/packages/coding-agent/docs/sdk.md @@ -16,7 +16,7 @@ See [examples/sdk/](../examples/sdk/) for working examples from minimal to full ## Quick Start ```typescript -import { createAgentSession, ModelRuntime, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, ModelRuntime, SessionManager } from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create(); const { session } = await createAgentSession({ @@ -37,7 +37,7 @@ await session.dispose(); ## Installation ```bash -npm install @earendil-works/diffex-coding-agent +npm install @diffexai/diffex ``` The SDK is included in the main package. No separate installation needed. @@ -51,7 +51,7 @@ The main factory function for a single `AgentSession`. `createAgentSession()` uses a `ResourceLoader` to supply extensions, skills, prompt templates, themes, and context files. If you do not provide one, it uses `DefaultResourceLoader` with standard discovery. ```typescript -import { createAgentSession, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, SessionManager } from "@diffexai/diffex"; // Minimal: defaults with DefaultResourceLoader const { session } = await createAgentSession(); @@ -132,7 +132,7 @@ import { createAgentSessionServices, getAgentDir, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => { const services = await createAgentSessionServices({ cwd }); @@ -250,7 +250,7 @@ Both `steer()` and `followUp()` expand file-based prompt templates but error on ### Agent and AgentState -The `Agent` class (from `@earendil-works/diffex-agent-core`) handles the core LLM interaction. Access it via `session.agent`. +The `Agent` class (from `@diffexai/diffex-agent-core`) handles the core LLM interaction. Access it via `session.agent`. ```typescript // Access current state @@ -397,8 +397,8 @@ When you pass a custom `ResourceLoader`, `cwd` and `agentDir` no longer control ### Model ```typescript -import { getModel } from "@earendil-works/diffex-ai"; -import { ModelRuntime } from "@earendil-works/diffex-coding-agent"; +import { getModel } from "@diffexai/diffex-ai"; +import { ModelRuntime } from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create(); @@ -438,7 +438,7 @@ To match CLI model parsing, use the exported resolver helpers: import { resolveCliModel, resolveModelScopeWithDiagnostics, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const cliModel = resolveCliModel({ cliModel: "anthropic/claude-opus-4-5:high", @@ -469,8 +469,8 @@ Authentication resolution priority (handled by `ModelRuntime`): 4. Fallback resolver (for custom provider keys from `models.json`) ```typescript -import { InMemoryCredentialStore } from "@earendil-works/diffex-ai"; -import { createAgentSession, ModelRuntime } from "@earendil-works/diffex-coding-agent"; +import { InMemoryCredentialStore } from "@diffexai/diffex-ai"; +import { createAgentSession, ModelRuntime } from "@diffexai/diffex"; // Default: uses ~/.diffex/agent/auth.json and ~/.diffex/agent/models.json const modelRuntime = await ModelRuntime.create(); @@ -524,7 +524,7 @@ A failed or timed-out network refresh does not undo a successful credential oper Use a `ResourceLoader` to override the system prompt: ```typescript -import { createAgentSession, DefaultResourceLoader } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, DefaultResourceLoader } from "@diffexai/diffex"; const loader = new DefaultResourceLoader({ systemPromptOverride: () => "You are a helpful assistant.", @@ -587,7 +587,7 @@ The `edit` tool returns `details.diff` for Diffex's TUI display and `details.pat The `update_plan` tool returns `details.plan` with the full ordered checklist snapshot. ```typescript -import { createAgentSession } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession } from "@diffexai/diffex"; // Read-only mode const { session } = await createAgentSession({ @@ -625,7 +625,7 @@ const { session } = await createAgentSession({ When you pass a custom `cwd`, `createAgentSession()` builds selected built-in tools for that cwd. ```typescript -import { createAgentSession, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, SessionManager } from "@diffexai/diffex"; const cwd = "/path/to/project"; @@ -649,7 +649,7 @@ const { session } = await createAgentSession({ ```typescript import { Type } from "typebox"; -import { createAgentSession, defineTool } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, defineTool } from "@diffexai/diffex"; // Inline custom tool const myTool = defineTool({ @@ -684,7 +684,7 @@ If you pass `tools`, include each custom or extension tool name you want enabled Extensions are loaded by the `ResourceLoader`. `DefaultResourceLoader` discovers extensions from `~/.diffex/agent/extensions/`, `.diffex/extensions/`, and settings.json extension sources. ```typescript -import { createAgentSession, DefaultResourceLoader } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, DefaultResourceLoader } from "@diffexai/diffex"; const loader = new DefaultResourceLoader({ additionalExtensionPaths: ["/path/to/my-extension.ts"], @@ -706,7 +706,7 @@ Extensions can register tools, subscribe to events, add commands, and more. See **Named inline extensions:** By default, inline factories display as ``, ``, etc. in the startup Extensions list. To show a descriptive name instead, wrap the factory: ```typescript -import type { InlineExtension } from "@earendil-works/diffex-coding-agent"; +import type { InlineExtension } from "@diffexai/diffex"; const myProvider: InlineExtension = { name: "my-provider", @@ -727,7 +727,7 @@ This displays as `` instead of ``. Bare factory fu **Event Bus:** Extensions can communicate via `diffex.events`. Pass a shared `eventBus` to `DefaultResourceLoader` if you need to emit or listen from outside: ```typescript -import { createEventBus, DefaultResourceLoader } from "@earendil-works/diffex-coding-agent"; +import { createEventBus, DefaultResourceLoader } from "@diffexai/diffex"; const eventBus = createEventBus(); const loader = new DefaultResourceLoader({ @@ -747,7 +747,7 @@ import { createAgentSession, DefaultResourceLoader, type Skill, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const customSkill: Skill = { name: "my-skill", @@ -800,7 +800,7 @@ See [Harness Evolution](evolution.md) and [Skills](skills.md). ### Context Files ```typescript -import { createAgentSession, DefaultResourceLoader } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, DefaultResourceLoader } from "@diffexai/diffex"; const loader = new DefaultResourceLoader({ agentsFilesOverride: (current) => ({ @@ -824,7 +824,7 @@ import { createAgentSession, DefaultResourceLoader, type PromptTemplate, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const customCommand: PromptTemplate = { name: "deploy", @@ -859,7 +859,7 @@ import { createAgentSessionServices, getAgentDir, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; // In-memory (no persistence) const { session } = await createAgentSession({ @@ -953,7 +953,7 @@ sm.createBranchedSession(leafId); // Extract path to new file ### Settings Management ```typescript -import { createAgentSession, SettingsManager, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, SettingsManager, SessionManager } from "@diffexai/diffex"; // Default: loads from files (global + project merged) const { session } = await createAgentSession({ @@ -1009,7 +1009,7 @@ Use `DefaultResourceLoader` to discover extensions, skills, prompts, themes, and import { DefaultResourceLoader, getAgentDir, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const loader = new DefaultResourceLoader({ cwd, @@ -1029,7 +1029,7 @@ const contextFiles = loader.getAgentsFiles().agentsFiles; Use `createSkill()` for SDK-provided skills so the same identity and version rules apply: ```typescript -import { createSkill, createSyntheticSourceInfo } from "@earendil-works/diffex-coding-agent"; +import { createSkill, createSyntheticSourceInfo } from "@diffexai/diffex"; const skill = createSkill({ name: "review", @@ -1067,7 +1067,7 @@ interface LoadExtensionsResult { ## Complete Example ```typescript -import { getModel } from "@earendil-works/diffex-ai"; +import { getModel } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { createAgentSession, @@ -1076,7 +1076,7 @@ import { ModelRuntime, SessionManager, SettingsManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create({ authPath: "/custom/agent/auth.json", @@ -1157,7 +1157,7 @@ import { getAgentDir, InteractiveMode, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => { const services = await createAgentSessionServices({ cwd }); @@ -1197,7 +1197,7 @@ import { getAgentDir, runPrintMode, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => { const services = await createAgentSessionServices({ cwd }); @@ -1234,7 +1234,7 @@ import { getAgentDir, runRpcMode, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => { const services = await createAgentSessionServices({ cwd }); diff --git a/packages/coding-agent/docs/session-format.md b/packages/coding-agent/docs/session-format.md index 05ede29bd..dbdcffa03 100644 --- a/packages/coding-agent/docs/session-format.md +++ b/packages/coding-agent/docs/session-format.md @@ -34,7 +34,7 @@ Source on GitHub ([diffex](https://github.com/diffexai/diffex)): - [`packages/ai/src/types.ts`](https://github.com/diffexai/diffex/blob/main/packages/ai/src/types.ts) - Base message types (UserMessage, AssistantMessage, ToolResultMessage) - [`packages/agent/src/types.ts`](https://github.com/diffexai/diffex/blob/main/packages/agent/src/types.ts) - AgentMessage union type -For TypeScript definitions in your project, inspect `node_modules/@earendil-works/diffex-coding-agent/dist/` and `node_modules/@earendil-works/diffex-ai/dist/`. +For TypeScript definitions in your project, inspect `node_modules/@diffexai/diffex/dist/` and `node_modules/@diffexai/diffex-ai/dist/`. ## Message Types diff --git a/packages/coding-agent/docs/termux.md b/packages/coding-agent/docs/termux.md index 6b2939466..61dd6f439 100644 --- a/packages/coding-agent/docs/termux.md +++ b/packages/coding-agent/docs/termux.md @@ -17,7 +17,7 @@ pkg update && pkg upgrade pkg install nodejs termux-api git # Install Diffex -npm install -g --ignore-scripts @earendil-works/diffex-coding-agent +npm install -g --ignore-scripts @diffexai/diffex # Create config directory mkdir -p ~/.diffex/agent diff --git a/packages/coding-agent/docs/tui.md b/packages/coding-agent/docs/tui.md index e514daa8a..07aebd879 100644 --- a/packages/coding-agent/docs/tui.md +++ b/packages/coding-agent/docs/tui.md @@ -4,7 +4,7 @@ Extensions and custom tools can render custom TUI components for interactive user interfaces. This page covers the component system and available building blocks. -**Source:** [`@earendil-works/diffex-tui`](https://github.com/diffexai/diffex/tree/main/packages/tui) +**Source:** [`@diffexai/diffex-tui`](https://github.com/diffexai/diffex/tree/main/packages/tui) ## Component Interface @@ -33,7 +33,7 @@ The TUI appends a full SGR reset and OSC 8 reset at the end of each rendered lin Components that display a text cursor and need IME (Input Method Editor) support should implement the `Focusable` interface: ```typescript -import { CURSOR_MARKER, type Component, type Focusable } from "@earendil-works/diffex-tui"; +import { CURSOR_MARKER, type Component, type Focusable } from "@diffexai/diffex-tui"; class MyInput implements Component, Focusable { focused: boolean = false; // Set by TUI when focus changes @@ -59,7 +59,7 @@ The cursor remains hidden by default. This keeps the fake cursor rendering, whil When a container component (dialog, selector, etc.) contains an `Input` or `Editor` child, the container must implement `Focusable` and propagate the focus state to the child. Otherwise, the hardware cursor won't be positioned correctly for IME input. ```typescript -import { Container, type Focusable, Input } from "@earendil-works/diffex-tui"; +import { Container, type Focusable, Input } from "@diffexai/diffex-tui"; class SearchDialog extends Container implements Focusable { private searchInput: Input; @@ -201,10 +201,10 @@ See [overlay-qa-tests.ts](../examples/extensions/overlay-qa-tests.ts) for compre ## Built-in Components -Import from `@earendil-works/diffex-tui`: +Import from `@diffexai/diffex-tui`: ```typescript -import { Text, Box, Container, Spacer, Markdown } from "@earendil-works/diffex-tui"; +import { Text, Box, Container, Spacer, Markdown } from "@diffexai/diffex-tui"; ``` ### Text @@ -286,7 +286,7 @@ const image = new Image( Use `matchesKey()` for key detection: ```typescript -import { matchesKey, Key } from "@earendil-works/diffex-tui"; +import { matchesKey, Key } from "@diffexai/diffex-tui"; handleInput(data: string) { if (matchesKey(data, Key.up)) { @@ -312,7 +312,7 @@ handleInput(data: string) { **Critical:** Each line from `render()` must not exceed the `width` parameter. ```typescript -import { visibleWidth, truncateToWidth } from "@earendil-works/diffex-tui"; +import { visibleWidth, truncateToWidth } from "@diffexai/diffex-tui"; render(width: number): string[] { // Truncate long lines @@ -333,7 +333,7 @@ Example: Interactive selector import { matchesKey, Key, truncateToWidth, visibleWidth -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; class MySelector { private items: string[]; @@ -450,8 +450,8 @@ renderResult(result, options, theme, context) { **For Markdown**, use `getMarkdownTheme()`: ```typescript -import { getMarkdownTheme } from "@earendil-works/diffex-coding-agent"; -import { Markdown } from "@earendil-works/diffex-tui"; +import { getMarkdownTheme } from "@diffexai/diffex"; +import { Markdown } from "@diffexai/diffex-tui"; renderResult(result, options, theme, context) { const mdTheme = getMarkdownTheme(); @@ -612,12 +612,12 @@ These patterns cover the most common UI needs in extensions. **Copy these patter ### Pattern 1: Selection Dialog (SelectList) -For letting users pick from a list of options. Use `SelectList` from `@earendil-works/diffex-tui` with `DynamicBorder` for framing. +For letting users pick from a list of options. Use `SelectList` from `@diffexai/diffex-tui` with `DynamicBorder` for framing. ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { DynamicBorder } from "@earendil-works/diffex-coding-agent"; -import { Container, type SelectItem, SelectList, Text } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { DynamicBorder } from "@diffexai/diffex"; +import { Container, type SelectItem, SelectList, Text } from "@diffexai/diffex-tui"; diffex.registerCommand("pick", { handler: async (_args, ctx) => { @@ -675,7 +675,7 @@ diffex.registerCommand("pick", { For operations that take time and should be cancellable. `BorderedLoader` shows a spinner and handles escape to cancel. ```typescript -import { BorderedLoader } from "@earendil-works/diffex-coding-agent"; +import { BorderedLoader } from "@diffexai/diffex"; diffex.registerCommand("fetch", { handler: async (_args, ctx) => { @@ -704,11 +704,11 @@ diffex.registerCommand("fetch", { ### Pattern 3: Settings/Toggles (SettingsList) -For toggling multiple settings. Use `SettingsList` from `@earendil-works/diffex-tui` with `getSettingsListTheme()`. +For toggling multiple settings. Use `SettingsList` from `@diffexai/diffex-tui` with `getSettingsListTheme()`. ```typescript -import { getSettingsListTheme } from "@earendil-works/diffex-coding-agent"; -import { Container, type SettingItem, SettingsList, Text } from "@earendil-works/diffex-tui"; +import { getSettingsListTheme } from "@diffexai/diffex"; +import { Container, type SettingItem, SettingsList, Text } from "@diffexai/diffex-tui"; diffex.registerCommand("settings", { handler: async (_args, ctx) => { @@ -845,8 +845,8 @@ Token stats available via `ctx.sessionManager.getBranch()` and `ctx.model`. Replace the main input editor with a custom implementation. Useful for modal editing (vim), different keybindings (emacs), or specialized input handling. ```typescript -import { CustomEditor, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { matchesKey, truncateToWidth } from "@earendil-works/diffex-tui"; +import { CustomEditor, type ExtensionAPI } from "@diffexai/diffex"; +import { matchesKey, truncateToWidth } from "@diffexai/diffex-tui"; type Mode = "normal" | "insert"; diff --git a/packages/coding-agent/examples/extensions/README.md b/packages/coding-agent/examples/extensions/README.md index a3d0f17df..969f61ab1 100644 --- a/packages/coding-agent/examples/extensions/README.md +++ b/packages/coding-agent/examples/extensions/README.md @@ -141,7 +141,7 @@ cp permission-gate.ts ~/.diffex/agent/extensions/ See [docs/extensions.md](../../docs/extensions.md) for full documentation. ```typescript -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function (diffex: ExtensionAPI) { @@ -183,7 +183,7 @@ export default function (diffex: ExtensionAPI) { **Use StringEnum for string parameters** (required for Google API compatibility): ```typescript -import { StringEnum } from "@earendil-works/diffex-ai"; +import { StringEnum } from "@diffexai/diffex-ai"; // Good action: StringEnum(["list", "add"] as const) diff --git a/packages/coding-agent/examples/extensions/auto-commit-on-exit.ts b/packages/coding-agent/examples/extensions/auto-commit-on-exit.ts index 777fc35c0..214a71b3b 100644 --- a/packages/coding-agent/examples/extensions/auto-commit-on-exit.ts +++ b/packages/coding-agent/examples/extensions/auto-commit-on-exit.ts @@ -5,7 +5,7 @@ * Uses the last assistant message to generate a commit message. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("session_shutdown", async (_event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/bash-spawn-hook.ts b/packages/coding-agent/examples/extensions/bash-spawn-hook.ts index 0ee0a5eb5..90d35e4de 100644 --- a/packages/coding-agent/examples/extensions/bash-spawn-hook.ts +++ b/packages/coding-agent/examples/extensions/bash-spawn-hook.ts @@ -7,8 +7,8 @@ * diffex -e ./bash-spawn-hook.ts */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { createBashTool } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { createBashTool } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { const cwd = process.cwd(); diff --git a/packages/coding-agent/examples/extensions/bookmark.ts b/packages/coding-agent/examples/extensions/bookmark.ts index 2ece7f1f7..cdbf5299c 100644 --- a/packages/coding-agent/examples/extensions/bookmark.ts +++ b/packages/coding-agent/examples/extensions/bookmark.ts @@ -7,7 +7,7 @@ * Usage: /bookmark [label] - bookmark the last assistant message */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.registerCommand("bookmark", { diff --git a/packages/coding-agent/examples/extensions/border-status-editor.ts b/packages/coding-agent/examples/extensions/border-status-editor.ts index 96c9e6d15..f94e36e34 100644 --- a/packages/coding-agent/examples/extensions/border-status-editor.ts +++ b/packages/coding-agent/examples/extensions/border-status-editor.ts @@ -1,11 +1,6 @@ -import { - CustomEditor, - type ExtensionAPI, - type ExtensionContext, - type KeybindingsManager, -} from "@earendil-works/diffex-coding-agent"; -import type { Component, EditorTheme, TUI } from "@earendil-works/diffex-tui"; -import { truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import { CustomEditor, type ExtensionAPI, type ExtensionContext, type KeybindingsManager } from "@diffexai/diffex"; +import type { Component, EditorTheme, TUI } from "@diffexai/diffex-tui"; +import { truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; function fitBorder( left: string, diff --git a/packages/coding-agent/examples/extensions/built-in-tool-renderer.ts b/packages/coding-agent/examples/extensions/built-in-tool-renderer.ts index cb84b8adc..0a019847d 100644 --- a/packages/coding-agent/examples/extensions/built-in-tool-renderer.ts +++ b/packages/coding-agent/examples/extensions/built-in-tool-renderer.ts @@ -25,14 +25,9 @@ * diffex -e ./built-in-tool-renderer.ts */ -import type { - BashToolDetails, - EditToolDetails, - ExtensionAPI, - ReadToolDetails, -} from "@earendil-works/diffex-coding-agent"; -import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@earendil-works/diffex-coding-agent"; -import { Text } from "@earendil-works/diffex-tui"; +import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@diffexai/diffex"; +import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@diffexai/diffex"; +import { Text } from "@diffexai/diffex-tui"; export default function (diffex: ExtensionAPI) { const cwd = process.cwd(); diff --git a/packages/coding-agent/examples/extensions/claude-rules.ts b/packages/coding-agent/examples/extensions/claude-rules.ts index 8dcece064..2079c1004 100644 --- a/packages/coding-agent/examples/extensions/claude-rules.ts +++ b/packages/coding-agent/examples/extensions/claude-rules.ts @@ -19,7 +19,7 @@ import * as fs from "node:fs"; import * as path from "node:path"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; /** * Recursively find all .md files in a directory diff --git a/packages/coding-agent/examples/extensions/commands.ts b/packages/coding-agent/examples/extensions/commands.ts index abae561c1..254c4b3b7 100644 --- a/packages/coding-agent/examples/extensions/commands.ts +++ b/packages/coding-agent/examples/extensions/commands.ts @@ -10,7 +10,7 @@ * 3. Use /commands extensions to filter by source */ -import type { ExtensionAPI, SlashCommandInfo } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, SlashCommandInfo } from "@diffexai/diffex"; export default function commandsExtension(diffex: ExtensionAPI) { diffex.registerCommand("commands", { diff --git a/packages/coding-agent/examples/extensions/confirm-destructive.ts b/packages/coding-agent/examples/extensions/confirm-destructive.ts index ae2e3b264..d65e9969e 100644 --- a/packages/coding-agent/examples/extensions/confirm-destructive.ts +++ b/packages/coding-agent/examples/extensions/confirm-destructive.ts @@ -5,7 +5,7 @@ * Demonstrates how to cancel session events using the before_* events. */ -import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("session_before_switch", async (event: SessionBeforeSwitchEvent, ctx) => { diff --git a/packages/coding-agent/examples/extensions/custom-compaction.ts b/packages/coding-agent/examples/extensions/custom-compaction.ts index ca75cf78a..834af16bf 100644 --- a/packages/coding-agent/examples/extensions/custom-compaction.ts +++ b/packages/coding-agent/examples/extensions/custom-compaction.ts @@ -13,9 +13,9 @@ * diffex --extension examples/extensions/custom-compaction.ts */ -import { uuidv7 } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { convertToLlm, serializeConversation } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { convertToLlm, serializeConversation } from "@diffexai/diffex"; +import { uuidv7 } from "@diffexai/diffex-ai"; export default function (diffex: ExtensionAPI) { diffex.on("session_before_compact", async (event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/custom-footer.ts b/packages/coding-agent/examples/extensions/custom-footer.ts index b3393ac8a..b10aa5fd1 100644 --- a/packages/coding-agent/examples/extensions/custom-footer.ts +++ b/packages/coding-agent/examples/extensions/custom-footer.ts @@ -8,9 +8,9 @@ * Token stats come from ctx.sessionManager/ctx.model (already accessible). */ -import type { AssistantMessage } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; +import { truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; export default function (diffex: ExtensionAPI) { let enabled = false; diff --git a/packages/coding-agent/examples/extensions/custom-header.ts b/packages/coding-agent/examples/extensions/custom-header.ts index a8d0d219e..2f016879d 100644 --- a/packages/coding-agent/examples/extensions/custom-header.ts +++ b/packages/coding-agent/examples/extensions/custom-header.ts @@ -5,8 +5,8 @@ * (logo + keybinding hints) with a custom component showing the Diffex mascot. */ -import type { ExtensionAPI, Theme } from "@earendil-works/diffex-coding-agent"; -import { VERSION } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, Theme } from "@diffexai/diffex"; +import { VERSION } from "@diffexai/diffex"; // --- DIFFEX MASCOT --- // Based on the Diffex agent character diff --git a/packages/coding-agent/examples/extensions/custom-provider-anthropic/index.ts b/packages/coding-agent/examples/extensions/custom-provider-anthropic/index.ts index c715bc0b9..bd84dbb24 100644 --- a/packages/coding-agent/examples/extensions/custom-provider-anthropic/index.ts +++ b/packages/coding-agent/examples/extensions/custom-provider-anthropic/index.ts @@ -23,6 +23,7 @@ import Anthropic from "@anthropic-ai/sdk"; import type { ContentBlockParam, MessageCreateParamsStreaming } from "@anthropic-ai/sdk/resources/messages.js"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { type Api, type AssistantMessage, @@ -42,8 +43,7 @@ import { type Tool, type ToolCall, type ToolResultMessage, -} from "@earendil-works/diffex-ai"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex-ai"; // ============================================================================= // OAuth implementation adapted for the legacy extension compatibility interface. diff --git a/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts b/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts index 584d6f27e..c6839ed38 100644 --- a/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts +++ b/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/index.ts @@ -9,6 +9,7 @@ * # Then /login gitlab-duo, or set GITLAB_TOKEN=glpat-... */ +import type { ExtensionAPI } from "@diffexai/diffex"; import { type Api, type AssistantMessageEventStream, @@ -21,8 +22,7 @@ import { openAIResponsesApi, type SimpleStreamOptions, type ThinkingLevelMap, -} from "@earendil-works/diffex-ai/compat"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex-ai/compat"; // ============================================================================= // Constants diff --git a/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts b/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts index 4f6091a46..48c5dc41e 100644 --- a/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts +++ b/packages/coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts @@ -8,13 +8,7 @@ * npx tsx test.ts claude-sonnet-4-5-20250929 --thinking */ -import { - type Api, - type Context, - type Model, - registerApiProvider, - streamSimple, -} from "@earendil-works/diffex-ai/compat"; +import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@diffexai/diffex-ai/compat"; import { readFileSync } from "fs"; import { getAgentDir } from "packages/coding-agent/src/config.js"; import { join } from "path"; diff --git a/packages/coding-agent/examples/extensions/dirty-repo-guard.ts b/packages/coding-agent/examples/extensions/dirty-repo-guard.ts index f8a43b9d8..7e25ba5ef 100644 --- a/packages/coding-agent/examples/extensions/dirty-repo-guard.ts +++ b/packages/coding-agent/examples/extensions/dirty-repo-guard.ts @@ -5,7 +5,7 @@ * Useful to ensure work is committed before switching context. */ -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; async function checkDirtyRepo( diffex: ExtensionAPI, diff --git a/packages/coding-agent/examples/extensions/doom-overlay/doom-component.ts b/packages/coding-agent/examples/extensions/doom-overlay/doom-component.ts index 6a9473ede..e9042cdd4 100644 --- a/packages/coding-agent/examples/extensions/doom-overlay/doom-component.ts +++ b/packages/coding-agent/examples/extensions/doom-overlay/doom-component.ts @@ -5,8 +5,8 @@ * Height is calculated from width to maintain DOOM's aspect ratio. */ -import type { Component } from "@earendil-works/diffex-tui"; -import { isKeyRelease, type TUI } from "@earendil-works/diffex-tui"; +import type { Component } from "@diffexai/diffex-tui"; +import { isKeyRelease, type TUI } from "@diffexai/diffex-tui"; import type { DoomEngine } from "./doom-engine.ts"; import { DoomKeys, mapKeyToDoom } from "./doom-keys.ts"; diff --git a/packages/coding-agent/examples/extensions/doom-overlay/doom-keys.ts b/packages/coding-agent/examples/extensions/doom-overlay/doom-keys.ts index 773b28297..26e9d6c5a 100644 --- a/packages/coding-agent/examples/extensions/doom-overlay/doom-keys.ts +++ b/packages/coding-agent/examples/extensions/doom-overlay/doom-keys.ts @@ -34,7 +34,7 @@ export const DoomKeys = { KEY_RALT: 0x80 + 0x38, } as const; -import { Key, matchesKey, parseKey } from "@earendil-works/diffex-tui"; +import { Key, matchesKey, parseKey } from "@diffexai/diffex-tui"; /** * Map terminal key input to DOOM key codes diff --git a/packages/coding-agent/examples/extensions/doom-overlay/index.ts b/packages/coding-agent/examples/extensions/doom-overlay/index.ts index 88dc3a4ba..1dff52f21 100644 --- a/packages/coding-agent/examples/extensions/doom-overlay/index.ts +++ b/packages/coding-agent/examples/extensions/doom-overlay/index.ts @@ -9,7 +9,7 @@ * This demonstrates that overlays can handle real-time game rendering at 35 FPS. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { DoomOverlayComponent } from "./doom-component.ts"; import { DoomEngine } from "./doom-engine.ts"; import { ensureWadFile } from "./wad-finder.ts"; diff --git a/packages/coding-agent/examples/extensions/dynamic-resources/dynamic.json b/packages/coding-agent/examples/extensions/dynamic-resources/dynamic.json index e7b01a859..914613b2f 100644 --- a/packages/coding-agent/examples/extensions/dynamic-resources/dynamic.json +++ b/packages/coding-agent/examples/extensions/dynamic-resources/dynamic.json @@ -1,5 +1,5 @@ { - "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json", + "$schema": "https://raw.githubusercontent.com/diffexai/diffex/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json", "name": "dynamic-resources", "vars": { "cyan": "#00d7ff", diff --git a/packages/coding-agent/examples/extensions/dynamic-resources/index.ts b/packages/coding-agent/examples/extensions/dynamic-resources/index.ts index 6c083282f..77f43a751 100644 --- a/packages/coding-agent/examples/extensions/dynamic-resources/index.ts +++ b/packages/coding-agent/examples/extensions/dynamic-resources/index.ts @@ -1,6 +1,6 @@ import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; const baseDir = dirname(fileURLToPath(import.meta.url)); diff --git a/packages/coding-agent/examples/extensions/dynamic-tools.ts b/packages/coding-agent/examples/extensions/dynamic-tools.ts index a3d583e9d..c74016b11 100644 --- a/packages/coding-agent/examples/extensions/dynamic-tools.ts +++ b/packages/coding-agent/examples/extensions/dynamic-tools.ts @@ -7,7 +7,7 @@ * - Registers additional tools at runtime via /add-echo-tool */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; const ECHO_PARAMS = Type.Object({ diff --git a/packages/coding-agent/examples/extensions/entry-renderer.ts b/packages/coding-agent/examples/extensions/entry-renderer.ts index 1815587f6..fd198246c 100644 --- a/packages/coding-agent/examples/extensions/entry-renderer.ts +++ b/packages/coding-agent/examples/extensions/entry-renderer.ts @@ -8,8 +8,8 @@ * Usage: /status-card [message] */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { Box, Text } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { Box, Text } from "@diffexai/diffex-tui"; interface StatusCardData { message: string; diff --git a/packages/coding-agent/examples/extensions/event-bus.ts b/packages/coding-agent/examples/extensions/event-bus.ts index bef4db3a4..33fbd10b8 100644 --- a/packages/coding-agent/examples/extensions/event-bus.ts +++ b/packages/coding-agent/examples/extensions/event-bus.ts @@ -7,7 +7,7 @@ * Usage: /emit [event-name] [data] - emit an event on the bus */ -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { // Store ctx for use in event handler diff --git a/packages/coding-agent/examples/extensions/file-trigger.ts b/packages/coding-agent/examples/extensions/file-trigger.ts index a8abc0c4b..fd3b17262 100644 --- a/packages/coding-agent/examples/extensions/file-trigger.ts +++ b/packages/coding-agent/examples/extensions/file-trigger.ts @@ -9,7 +9,7 @@ */ import * as fs from "node:fs"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("session_start", async (_event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/git-checkpoint.ts b/packages/coding-agent/examples/extensions/git-checkpoint.ts index f8ff760f3..eb4ac450a 100644 --- a/packages/coding-agent/examples/extensions/git-checkpoint.ts +++ b/packages/coding-agent/examples/extensions/git-checkpoint.ts @@ -5,7 +5,7 @@ * When forking, offers to restore code to that point in history. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { const checkpoints = new Map(); diff --git a/packages/coding-agent/examples/extensions/git-merge-and-resolve.ts b/packages/coding-agent/examples/extensions/git-merge-and-resolve.ts index e513940fd..9ec36cbfe 100644 --- a/packages/coding-agent/examples/extensions/git-merge-and-resolve.ts +++ b/packages/coding-agent/examples/extensions/git-merge-and-resolve.ts @@ -14,7 +14,7 @@ import { createReadStream } from "node:fs"; import { join } from "node:path"; import { createInterface } from "node:readline"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; interface ConflictBlock { file: string; diff --git a/packages/coding-agent/examples/extensions/github-issue-autocomplete.ts b/packages/coding-agent/examples/extensions/github-issue-autocomplete.ts index 7d51e26a9..1c8b6493d 100644 --- a/packages/coding-agent/examples/extensions/github-issue-autocomplete.ts +++ b/packages/coding-agent/examples/extensions/github-issue-autocomplete.ts @@ -1,13 +1,13 @@ // Requires GitHub CLI (`gh`) and a GitHub repository checkout. // Preloads the latest open issues once per session, then filters them locally for fast `#...` completion. -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { type AutocompleteItem, type AutocompleteProvider, type AutocompleteSuggestions, fuzzyFilter, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; type GitHubIssue = { number: number; diff --git a/packages/coding-agent/examples/extensions/gondolin/index.ts b/packages/coding-agent/examples/extensions/gondolin/index.ts index 98dfe9783..268a320f9 100644 --- a/packages/coding-agent/examples/extensions/gondolin/index.ts +++ b/packages/coding-agent/examples/extensions/gondolin/index.ts @@ -20,7 +20,7 @@ */ import path from "node:path"; -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; import { type BashOperations, createBashTool, @@ -41,7 +41,7 @@ import { truncateHead, truncateLine, type WriteOperations, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; import { RealFSProvider, VM } from "@earendil-works/gondolin"; const GUEST_WORKSPACE = "/workspace"; diff --git a/packages/coding-agent/examples/extensions/handoff.ts b/packages/coding-agent/examples/extensions/handoff.ts index e6c0f9b98..385c9ecdb 100644 --- a/packages/coding-agent/examples/extensions/handoff.ts +++ b/packages/coding-agent/examples/extensions/handoff.ts @@ -12,10 +12,10 @@ * The generated prompt appears as a draft in the editor for review/editing. */ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import { type Message, uuidv7 } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI, SessionEntry } from "@earendil-works/diffex-coding-agent"; -import { BorderedLoader, convertToLlm, serializeConversation } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, SessionEntry } from "@diffexai/diffex"; +import { BorderedLoader, convertToLlm, serializeConversation } from "@diffexai/diffex"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import { type Message, uuidv7 } from "@diffexai/diffex-ai"; const SYSTEM_PROMPT = `You are a context transfer assistant. Given a conversation history and the user's goal for a new thread, generate a focused prompt that: diff --git a/packages/coding-agent/examples/extensions/hello.ts b/packages/coding-agent/examples/extensions/hello.ts index a09f31771..9c19c7355 100644 --- a/packages/coding-agent/examples/extensions/hello.ts +++ b/packages/coding-agent/examples/extensions/hello.ts @@ -2,8 +2,8 @@ * Hello Tool - Minimal custom tool example */ -import { Type } from "@earendil-works/diffex-ai"; -import { defineTool, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import { defineTool, type ExtensionAPI } from "@diffexai/diffex"; +import { Type } from "@diffexai/diffex-ai"; const helloTool = defineTool({ name: "hello", diff --git a/packages/coding-agent/examples/extensions/hidden-thinking-label.ts b/packages/coding-agent/examples/extensions/hidden-thinking-label.ts index 101a57c4c..7c507e022 100644 --- a/packages/coding-agent/examples/extensions/hidden-thinking-label.ts +++ b/packages/coding-agent/examples/extensions/hidden-thinking-label.ts @@ -18,7 +18,7 @@ * /thinking-label Reset to the default label */ -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; const DEFAULT_LABEL = "Pondering..."; diff --git a/packages/coding-agent/examples/extensions/inline-bash.ts b/packages/coding-agent/examples/extensions/inline-bash.ts index 62450e780..794b28efc 100644 --- a/packages/coding-agent/examples/extensions/inline-bash.ts +++ b/packages/coding-agent/examples/extensions/inline-bash.ts @@ -14,7 +14,7 @@ * * Note: Regular !command syntax (whole-line bash) is preserved and works as before. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { const PATTERN = /!\{([^}]+)\}/g; diff --git a/packages/coding-agent/examples/extensions/input-transform-streaming.ts b/packages/coding-agent/examples/extensions/input-transform-streaming.ts index 05178a8fc..2853cb574 100644 --- a/packages/coding-agent/examples/extensions/input-transform-streaming.ts +++ b/packages/coding-agent/examples/extensions/input-transform-streaming.ts @@ -11,7 +11,7 @@ * Start Diffex with this extension: * diffex -e ./examples/extensions/input-transform-streaming.ts */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; const TRIGGER = /\b(changes?|diff|modified)\b/i; diff --git a/packages/coding-agent/examples/extensions/input-transform.ts b/packages/coding-agent/examples/extensions/input-transform.ts index ec103fcdf..126d9dcf9 100644 --- a/packages/coding-agent/examples/extensions/input-transform.ts +++ b/packages/coding-agent/examples/extensions/input-transform.ts @@ -9,7 +9,7 @@ * ping → "pong" (instant, no LLM) * time → current time (instant, no LLM) */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("input", async (event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/interactive-shell.ts b/packages/coding-agent/examples/extensions/interactive-shell.ts index 23a95f232..0077813a9 100644 --- a/packages/coding-agent/examples/extensions/interactive-shell.ts +++ b/packages/coding-agent/examples/extensions/interactive-shell.ts @@ -21,7 +21,7 @@ */ import { spawnSync } from "node:child_process"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; // Default interactive commands - editors, pagers, git ops, TUIs const DEFAULT_INTERACTIVE_COMMANDS = [ diff --git a/packages/coding-agent/examples/extensions/kimi-deferred-tools.ts b/packages/coding-agent/examples/extensions/kimi-deferred-tools.ts index d11cb57da..a8b712861 100644 --- a/packages/coding-agent/examples/extensions/kimi-deferred-tools.ts +++ b/packages/coding-agent/examples/extensions/kimi-deferred-tools.ts @@ -5,7 +5,7 @@ * example prompt: Use the available tools to calculate 100 + 500. Do not calculate it yourself. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; function calculate(_expr: string): string { diff --git a/packages/coding-agent/examples/extensions/mac-system-theme.ts b/packages/coding-agent/examples/extensions/mac-system-theme.ts index dd3221ac4..aed7c2a87 100644 --- a/packages/coding-agent/examples/extensions/mac-system-theme.ts +++ b/packages/coding-agent/examples/extensions/mac-system-theme.ts @@ -7,7 +7,7 @@ import { exec } from "node:child_process"; import { promisify } from "node:util"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; const execAsync = promisify(exec); diff --git a/packages/coding-agent/examples/extensions/message-renderer.ts b/packages/coding-agent/examples/extensions/message-renderer.ts index 30fcadfc1..3139a5d40 100644 --- a/packages/coding-agent/examples/extensions/message-renderer.ts +++ b/packages/coding-agent/examples/extensions/message-renderer.ts @@ -7,8 +7,8 @@ * Usage: /status [message] - sends a status message with custom rendering */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { Box, Text } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { Box, Text } from "@diffexai/diffex-tui"; export default function (diffex: ExtensionAPI) { // Register custom renderer for "status-update" messages diff --git a/packages/coding-agent/examples/extensions/minimal-mode.ts b/packages/coding-agent/examples/extensions/minimal-mode.ts index 99fbfb613..4928d2788 100644 --- a/packages/coding-agent/examples/extensions/minimal-mode.ts +++ b/packages/coding-agent/examples/extensions/minimal-mode.ts @@ -16,7 +16,7 @@ * Then use ctrl+o to toggle between minimal (collapsed) and full (expanded) views. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { createBashTool, createEditTool, @@ -25,8 +25,8 @@ import { createLsTool, createReadTool, createWriteTool, -} from "@earendil-works/diffex-coding-agent"; -import { Text } from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex"; +import { Text } from "@diffexai/diffex-tui"; import { homedir } from "os"; /** diff --git a/packages/coding-agent/examples/extensions/modal-editor.ts b/packages/coding-agent/examples/extensions/modal-editor.ts index 77c4336e0..319cce813 100644 --- a/packages/coding-agent/examples/extensions/modal-editor.ts +++ b/packages/coding-agent/examples/extensions/modal-editor.ts @@ -9,8 +9,8 @@ * - ctrl+c, ctrl+d, etc. work in both modes */ -import { CustomEditor, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { matchesKey, truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import { CustomEditor, type ExtensionAPI } from "@diffexai/diffex"; +import { matchesKey, truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; // Normal mode key mappings: key -> escape sequence (or null for mode switch) const NORMAL_KEYS: Record = { diff --git a/packages/coding-agent/examples/extensions/model-status.ts b/packages/coding-agent/examples/extensions/model-status.ts index f74ac4eb4..b6516e295 100644 --- a/packages/coding-agent/examples/extensions/model-status.ts +++ b/packages/coding-agent/examples/extensions/model-status.ts @@ -7,7 +7,7 @@ * Usage: diffex -e ./model-status.ts */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("model_select", async (event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/notify.ts b/packages/coding-agent/examples/extensions/notify.ts index 8af321a86..4a445f844 100644 --- a/packages/coding-agent/examples/extensions/notify.ts +++ b/packages/coding-agent/examples/extensions/notify.ts @@ -8,7 +8,7 @@ * - Windows toast: Windows Terminal (WSL) */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; function windowsToastScript(title: string, body: string): string { const type = "Windows.UI.Notifications"; diff --git a/packages/coding-agent/examples/extensions/overlay-qa-tests.ts b/packages/coding-agent/examples/extensions/overlay-qa-tests.ts index 537cf68bd..dcb9b338c 100644 --- a/packages/coding-agent/examples/extensions/overlay-qa-tests.ts +++ b/packages/coding-agent/examples/extensions/overlay-qa-tests.ts @@ -19,9 +19,9 @@ * /overlay-streaming - Multiple input panels with simulated streaming (Tab to cycle focus) */ -import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@earendil-works/diffex-coding-agent"; -import type { Component, OverlayAnchor, OverlayHandle, OverlayOptions, TUI } from "@earendil-works/diffex-tui"; -import { Input, matchesKey, truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@diffexai/diffex"; +import type { Component, OverlayAnchor, OverlayHandle, OverlayOptions, TUI } from "@diffexai/diffex-tui"; +import { Input, matchesKey, truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; import { spawn } from "child_process"; // Global handle for toggle demo (in real code, use a more elegant pattern) diff --git a/packages/coding-agent/examples/extensions/overlay-test.ts b/packages/coding-agent/examples/extensions/overlay-test.ts index 255e491b0..7e26c698a 100644 --- a/packages/coding-agent/examples/extensions/overlay-test.ts +++ b/packages/coding-agent/examples/extensions/overlay-test.ts @@ -8,8 +8,8 @@ * - Edge case tests (wide chars, styled text, emoji) */ -import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@earendil-works/diffex-coding-agent"; -import { CURSOR_MARKER, type Focusable, matchesKey, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionCommandContext, Theme } from "@diffexai/diffex"; +import { CURSOR_MARKER, type Focusable, matchesKey, visibleWidth } from "@diffexai/diffex-tui"; export default function (diffex: ExtensionAPI) { diffex.registerCommand("overlay-test", { diff --git a/packages/coding-agent/examples/extensions/permission-gate.ts b/packages/coding-agent/examples/extensions/permission-gate.ts index 96c479ae1..e9de1511a 100644 --- a/packages/coding-agent/examples/extensions/permission-gate.ts +++ b/packages/coding-agent/examples/extensions/permission-gate.ts @@ -5,7 +5,7 @@ * Patterns checked: rm -rf, sudo, chmod/chown 777 */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { const dangerousPatterns = [/\brm\s+(-rf?|--recursive)/i, /\bsudo\b/i, /\b(chmod|chown)\b.*777/i]; diff --git a/packages/coding-agent/examples/extensions/pirate.ts b/packages/coding-agent/examples/extensions/pirate.ts index ca8e8c728..54d935752 100644 --- a/packages/coding-agent/examples/extensions/pirate.ts +++ b/packages/coding-agent/examples/extensions/pirate.ts @@ -10,7 +10,7 @@ * 3. When enabled, the agent will respond like a pirate */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function pirateExtension(diffex: ExtensionAPI) { let pirateMode = false; diff --git a/packages/coding-agent/examples/extensions/preset.ts b/packages/coding-agent/examples/extensions/preset.ts index 628b64aa2..5d1b6ff47 100644 --- a/packages/coding-agent/examples/extensions/preset.ts +++ b/packages/coding-agent/examples/extensions/preset.ts @@ -40,10 +40,10 @@ import { existsSync, readFileSync } from "node:fs"; import { join } from "node:path"; -import type { Api, Model } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; -import { CONFIG_DIR_NAME, DynamicBorder, getAgentDir } from "@earendil-works/diffex-coding-agent"; -import { Container, Key, type SelectItem, SelectList, Text } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; +import { CONFIG_DIR_NAME, DynamicBorder, getAgentDir } from "@diffexai/diffex"; +import type { Api, Model } from "@diffexai/diffex-ai"; +import { Container, Key, type SelectItem, SelectList, Text } from "@diffexai/diffex-tui"; // Preset configuration interface Preset { diff --git a/packages/coding-agent/examples/extensions/project-trust.ts b/packages/coding-agent/examples/extensions/project-trust.ts index 657db70ae..22e565d2b 100644 --- a/packages/coding-agent/examples/extensions/project-trust.ts +++ b/packages/coding-agent/examples/extensions/project-trust.ts @@ -13,7 +13,7 @@ * Try it in a project containing .diffex, AGENTS.md/CLAUDE.md, or .agents/skills. */ -import type { ExtensionAPI, ProjectTrustEventResult } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ProjectTrustEventResult } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { let loadCount = 0; diff --git a/packages/coding-agent/examples/extensions/prompt-customizer.ts b/packages/coding-agent/examples/extensions/prompt-customizer.ts index 72aef2c66..514693174 100644 --- a/packages/coding-agent/examples/extensions/prompt-customizer.ts +++ b/packages/coding-agent/examples/extensions/prompt-customizer.ts @@ -12,7 +12,7 @@ * 2. Use the extension — it automatically adapts to your active tools and skills */ -import type { BuildSystemPromptOptions, ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { BuildSystemPromptOptions, ExtensionAPI } from "@diffexai/diffex"; /** * Adds tool-specific guidance that adapts to the active tool set. diff --git a/packages/coding-agent/examples/extensions/protected-paths.ts b/packages/coding-agent/examples/extensions/protected-paths.ts index de224bcd4..240aba982 100644 --- a/packages/coding-agent/examples/extensions/protected-paths.ts +++ b/packages/coding-agent/examples/extensions/protected-paths.ts @@ -5,7 +5,7 @@ * Useful for preventing accidental modifications to sensitive files. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { const protectedPaths = [".env", ".git/", "node_modules/"]; diff --git a/packages/coding-agent/examples/extensions/provider-payload.ts b/packages/coding-agent/examples/extensions/provider-payload.ts index 2b852a22f..60e72b4b4 100644 --- a/packages/coding-agent/examples/extensions/provider-payload.ts +++ b/packages/coding-agent/examples/extensions/provider-payload.ts @@ -1,6 +1,6 @@ import { appendFileSync } from "node:fs"; import { join } from "node:path"; -import { CONFIG_DIR_NAME, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import { CONFIG_DIR_NAME, type ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("before_provider_request", (event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/qna.ts b/packages/coding-agent/examples/extensions/qna.ts index 9c7eaf21c..308d2a5cd 100644 --- a/packages/coding-agent/examples/extensions/qna.ts +++ b/packages/coding-agent/examples/extensions/qna.ts @@ -7,9 +7,9 @@ * 3. Loads the result into the editor for user to fill in answers */ -import type { UserMessage } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { BorderedLoader } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { BorderedLoader } from "@diffexai/diffex"; +import type { UserMessage } from "@diffexai/diffex-ai"; const SYSTEM_PROMPT = `You are a question extractor. Given text from a conversation, extract any questions that need answering and format them for the user to fill in. diff --git a/packages/coding-agent/examples/extensions/question.ts b/packages/coding-agent/examples/extensions/question.ts index 82f9075a1..f173a514e 100644 --- a/packages/coding-agent/examples/extensions/question.ts +++ b/packages/coding-agent/examples/extensions/question.ts @@ -4,16 +4,8 @@ * Escape in editor returns to options, Escape in options cancels */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { - Editor, - type EditorTheme, - Key, - matchesKey, - Text, - visibleWidth, - wrapTextWithAnsi, -} from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { Editor, type EditorTheme, Key, matchesKey, Text, visibleWidth, wrapTextWithAnsi } from "@diffexai/diffex-tui"; import { Type } from "typebox"; interface OptionWithDesc { diff --git a/packages/coding-agent/examples/extensions/questionnaire.ts b/packages/coding-agent/examples/extensions/questionnaire.ts index 8e9616908..ed361040f 100644 --- a/packages/coding-agent/examples/extensions/questionnaire.ts +++ b/packages/coding-agent/examples/extensions/questionnaire.ts @@ -5,16 +5,8 @@ * Multiple questions: tab bar navigation between questions */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { - Editor, - type EditorTheme, - Key, - matchesKey, - Text, - visibleWidth, - wrapTextWithAnsi, -} from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { Editor, type EditorTheme, Key, matchesKey, Text, visibleWidth, wrapTextWithAnsi } from "@diffexai/diffex-tui"; import { Type } from "typebox"; // Types diff --git a/packages/coding-agent/examples/extensions/rainbow-editor.ts b/packages/coding-agent/examples/extensions/rainbow-editor.ts index 7014ecbf3..ee1736eb5 100644 --- a/packages/coding-agent/examples/extensions/rainbow-editor.ts +++ b/packages/coding-agent/examples/extensions/rainbow-editor.ts @@ -4,7 +4,7 @@ * Usage: diffex --extension ./examples/extensions/rainbow-editor.ts */ -import { CustomEditor, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import { CustomEditor, type ExtensionAPI } from "@diffexai/diffex"; // Base colors (coral → yellow → green → teal → blue → purple → pink) const COLORS: [number, number, number][] = [ diff --git a/packages/coding-agent/examples/extensions/reload-runtime.ts b/packages/coding-agent/examples/extensions/reload-runtime.ts index 0e054684f..baca95faf 100644 --- a/packages/coding-agent/examples/extensions/reload-runtime.ts +++ b/packages/coding-agent/examples/extensions/reload-runtime.ts @@ -5,7 +5,7 @@ * tool that queues a follow-up command to trigger reload. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function (diffex: ExtensionAPI) { diff --git a/packages/coding-agent/examples/extensions/rpc-demo.ts b/packages/coding-agent/examples/extensions/rpc-demo.ts index 271aaccb2..c6f435712 100644 --- a/packages/coding-agent/examples/extensions/rpc-demo.ts +++ b/packages/coding-agent/examples/extensions/rpc-demo.ts @@ -17,7 +17,7 @@ * - setEditorText() - via /rpc-prefill command */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { let turnCount = 0; diff --git a/packages/coding-agent/examples/extensions/sandbox/index.ts b/packages/coding-agent/examples/extensions/sandbox/index.ts index 79e3b3e3f..3f0b8c937 100644 --- a/packages/coding-agent/examples/extensions/sandbox/index.ts +++ b/packages/coding-agent/examples/extensions/sandbox/index.ts @@ -45,8 +45,8 @@ import { spawn } from "node:child_process"; import { existsSync, readFileSync } from "node:fs"; import { join } from "node:path"; import { SandboxManager, type SandboxRuntimeConfig } from "@anthropic-ai/sandbox-runtime"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { type BashOperations, CONFIG_DIR_NAME, createBashTool, getAgentDir } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { type BashOperations, CONFIG_DIR_NAME, createBashTool, getAgentDir } from "@diffexai/diffex"; interface SandboxConfig extends SandboxRuntimeConfig { enabled?: boolean; diff --git a/packages/coding-agent/examples/extensions/send-user-message.ts b/packages/coding-agent/examples/extensions/send-user-message.ts index e135e854b..ca33a8111 100644 --- a/packages/coding-agent/examples/extensions/send-user-message.ts +++ b/packages/coding-agent/examples/extensions/send-user-message.ts @@ -11,7 +11,7 @@ * /followup And then? - Sends while streaming with followUp delivery */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { // Simple command that sends a user message diff --git a/packages/coding-agent/examples/extensions/session-name.ts b/packages/coding-agent/examples/extensions/session-name.ts index f84debe84..eaf436ab1 100644 --- a/packages/coding-agent/examples/extensions/session-name.ts +++ b/packages/coding-agent/examples/extensions/session-name.ts @@ -7,7 +7,7 @@ * Usage: /session-name [name] - set or show session name */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.registerCommand("session-name", { diff --git a/packages/coding-agent/examples/extensions/shutdown-command.ts b/packages/coding-agent/examples/extensions/shutdown-command.ts index 543bcbd57..0dd7a97a9 100644 --- a/packages/coding-agent/examples/extensions/shutdown-command.ts +++ b/packages/coding-agent/examples/extensions/shutdown-command.ts @@ -5,7 +5,7 @@ * Demonstrates how extensions can use ctx.shutdown() to exit Diffex cleanly. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function (diffex: ExtensionAPI) { diff --git a/packages/coding-agent/examples/extensions/snake.ts b/packages/coding-agent/examples/extensions/snake.ts index 616dd8dde..c8405fdaa 100644 --- a/packages/coding-agent/examples/extensions/snake.ts +++ b/packages/coding-agent/examples/extensions/snake.ts @@ -2,8 +2,8 @@ * Snake game extension - play snake with /snake command */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { matchesKey, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { matchesKey, visibleWidth } from "@diffexai/diffex-tui"; const GAME_WIDTH = 40; const GAME_HEIGHT = 15; diff --git a/packages/coding-agent/examples/extensions/space-invaders.ts b/packages/coding-agent/examples/extensions/space-invaders.ts index 7230e50a2..dad02ded8 100644 --- a/packages/coding-agent/examples/extensions/space-invaders.ts +++ b/packages/coding-agent/examples/extensions/space-invaders.ts @@ -3,8 +3,8 @@ * Uses Kitty keyboard protocol for smooth movement (press/release detection) */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { isKeyRelease, Key, matchesKey, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import { isKeyRelease, Key, matchesKey, visibleWidth } from "@diffexai/diffex-tui"; const GAME_WIDTH = 60; const GAME_HEIGHT = 24; diff --git a/packages/coding-agent/examples/extensions/ssh.ts b/packages/coding-agent/examples/extensions/ssh.ts index 5cbce5251..16abab5d7 100644 --- a/packages/coding-agent/examples/extensions/ssh.ts +++ b/packages/coding-agent/examples/extensions/ssh.ts @@ -14,7 +14,7 @@ */ import { spawn } from "node:child_process"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { type BashOperations, createBashTool, @@ -24,7 +24,7 @@ import { type EditOperations, type ReadOperations, type WriteOperations, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; function sshExec(remote: string, command: string): Promise { return new Promise((resolve, reject) => { diff --git a/packages/coding-agent/examples/extensions/status-line.ts b/packages/coding-agent/examples/extensions/status-line.ts index 58809b5e3..5d1c2d3ea 100644 --- a/packages/coding-agent/examples/extensions/status-line.ts +++ b/packages/coding-agent/examples/extensions/status-line.ts @@ -5,7 +5,7 @@ * Shows turn progress with themed colors. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { let turnCount = 0; diff --git a/packages/coding-agent/examples/extensions/structured-output.ts b/packages/coding-agent/examples/extensions/structured-output.ts index 9bbce24fe..2cacd2d34 100644 --- a/packages/coding-agent/examples/extensions/structured-output.ts +++ b/packages/coding-agent/examples/extensions/structured-output.ts @@ -5,8 +5,8 @@ * without paying for an extra follow-up LLM turn. */ -import { defineTool, type ExtensionAPI } from "@earendil-works/diffex-coding-agent"; -import { Text } from "@earendil-works/diffex-tui"; +import { defineTool, type ExtensionAPI } from "@diffexai/diffex"; +import { Text } from "@diffexai/diffex-tui"; import { Type } from "typebox"; interface StructuredOutputDetails { diff --git a/packages/coding-agent/examples/extensions/subagent/agents.ts b/packages/coding-agent/examples/extensions/subagent/agents.ts index 02cf728c0..27c74a605 100644 --- a/packages/coding-agent/examples/extensions/subagent/agents.ts +++ b/packages/coding-agent/examples/extensions/subagent/agents.ts @@ -4,7 +4,7 @@ import * as fs from "node:fs"; import * as path from "node:path"; -import { CONFIG_DIR_NAME, getAgentDir, parseFrontmatter } from "@earendil-works/diffex-coding-agent"; +import { CONFIG_DIR_NAME, getAgentDir, parseFrontmatter } from "@diffexai/diffex"; export type AgentScope = "user" | "project" | "both"; diff --git a/packages/coding-agent/examples/extensions/subagent/index.ts b/packages/coding-agent/examples/extensions/subagent/index.ts index 65011293d..e86a1332a 100644 --- a/packages/coding-agent/examples/extensions/subagent/index.ts +++ b/packages/coding-agent/examples/extensions/subagent/index.ts @@ -16,17 +16,17 @@ import { spawn } from "node:child_process"; import * as fs from "node:fs"; import * as os from "node:os"; import * as path from "node:path"; -import type { AgentToolResult } from "@earendil-works/diffex-agent-core"; -import type { Message } from "@earendil-works/diffex-ai"; -import { StringEnum } from "@earendil-works/diffex-ai"; import { CONFIG_DIR_NAME, type ExtensionAPI, getAgentDir, getMarkdownTheme, withFileMutationQueue, -} from "@earendil-works/diffex-coding-agent"; -import { Container, Markdown, Spacer, Text } from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex"; +import type { AgentToolResult } from "@diffexai/diffex-agent-core"; +import type { Message } from "@diffexai/diffex-ai"; +import { StringEnum } from "@diffexai/diffex-ai"; +import { Container, Markdown, Spacer, Text } from "@diffexai/diffex-tui"; import { Type } from "typebox"; import { type AgentConfig, type AgentScope, discoverAgents } from "./agents.ts"; diff --git a/packages/coding-agent/examples/extensions/summarize.ts b/packages/coding-agent/examples/extensions/summarize.ts index f26d03ab8..d0f3dca20 100644 --- a/packages/coding-agent/examples/extensions/summarize.ts +++ b/packages/coding-agent/examples/extensions/summarize.ts @@ -1,7 +1,7 @@ -import { uuidv7 } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI, ExtensionCommandContext } from "@earendil-works/diffex-coding-agent"; -import { DynamicBorder, getMarkdownTheme } from "@earendil-works/diffex-coding-agent"; -import { Container, Markdown, matchesKey, Text } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionCommandContext } from "@diffexai/diffex"; +import { DynamicBorder, getMarkdownTheme } from "@diffexai/diffex"; +import { uuidv7 } from "@diffexai/diffex-ai"; +import { Container, Markdown, matchesKey, Text } from "@diffexai/diffex-tui"; type ContentBlock = { type?: string; diff --git a/packages/coding-agent/examples/extensions/system-prompt-header.ts b/packages/coding-agent/examples/extensions/system-prompt-header.ts index 0735cc09b..2f6c47c54 100644 --- a/packages/coding-agent/examples/extensions/system-prompt-header.ts +++ b/packages/coding-agent/examples/extensions/system-prompt-header.ts @@ -3,7 +3,7 @@ * * Demonstrates ctx.getSystemPrompt() for accessing the effective system prompt. */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("agent_start", (_event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/tic-tac-toe.ts b/packages/coding-agent/examples/extensions/tic-tac-toe.ts index 7d79cb692..85da6564c 100644 --- a/packages/coding-agent/examples/extensions/tic-tac-toe.ts +++ b/packages/coding-agent/examples/extensions/tic-tac-toe.ts @@ -17,9 +17,9 @@ * separate variables. Only the agent cursor is ever exposed to the agent. */ -import { StringEnum } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI, ExtensionContext, Theme, ToolExecutionMode } from "@earendil-works/diffex-coding-agent"; -import { type Component, matchesKey, Text, truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionContext, Theme, ToolExecutionMode } from "@diffexai/diffex"; +import { StringEnum } from "@diffexai/diffex-ai"; +import { type Component, matchesKey, Text, truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; import { Type } from "typebox"; // Thrown from the tool on illegal actions. The agent runtime surfaces thrown diff --git a/packages/coding-agent/examples/extensions/timed-confirm.ts b/packages/coding-agent/examples/extensions/timed-confirm.ts index 152a64f29..30893173c 100644 --- a/packages/coding-agent/examples/extensions/timed-confirm.ts +++ b/packages/coding-agent/examples/extensions/timed-confirm.ts @@ -7,7 +7,7 @@ * - /timed-signal - Shows confirm using AbortSignal (manual approach) */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { // Simple approach: use timeout option (recommended) diff --git a/packages/coding-agent/examples/extensions/titlebar-spinner.ts b/packages/coding-agent/examples/extensions/titlebar-spinner.ts index 86b7823d1..09eab7cb5 100644 --- a/packages/coding-agent/examples/extensions/titlebar-spinner.ts +++ b/packages/coding-agent/examples/extensions/titlebar-spinner.ts @@ -9,7 +9,7 @@ */ import path from "node:path"; -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; const BRAILLE_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]; diff --git a/packages/coding-agent/examples/extensions/todo.ts b/packages/coding-agent/examples/extensions/todo.ts index 853128e8d..4024166d0 100644 --- a/packages/coding-agent/examples/extensions/todo.ts +++ b/packages/coding-agent/examples/extensions/todo.ts @@ -10,9 +10,9 @@ * correct for that point in history. */ -import { StringEnum } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI, ExtensionContext, Theme } from "@earendil-works/diffex-coding-agent"; -import { matchesKey, Text, truncateToWidth } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionContext, Theme } from "@diffexai/diffex"; +import { StringEnum } from "@diffexai/diffex-ai"; +import { matchesKey, Text, truncateToWidth } from "@diffexai/diffex-tui"; import { Type } from "typebox"; interface Todo { diff --git a/packages/coding-agent/examples/extensions/tool-override.ts b/packages/coding-agent/examples/extensions/tool-override.ts index cb119e32a..4add72e56 100644 --- a/packages/coding-agent/examples/extensions/tool-override.ts +++ b/packages/coding-agent/examples/extensions/tool-override.ts @@ -20,8 +20,8 @@ * diffex -e ./tool-override.ts */ -import type { TextContent } from "@earendil-works/diffex-ai"; -import { type ExtensionAPI, getAgentDir, withFileMutationQueue } from "@earendil-works/diffex-coding-agent"; +import { type ExtensionAPI, getAgentDir, withFileMutationQueue } from "@diffexai/diffex"; +import type { TextContent } from "@diffexai/diffex-ai"; import { constants, readFileSync } from "fs"; import { access, appendFile, readFile } from "fs/promises"; import { join, resolve } from "path"; diff --git a/packages/coding-agent/examples/extensions/tools.ts b/packages/coding-agent/examples/extensions/tools.ts index 79f8b562a..7535bd329 100644 --- a/packages/coding-agent/examples/extensions/tools.ts +++ b/packages/coding-agent/examples/extensions/tools.ts @@ -9,9 +9,9 @@ * 2. Use /tools to open the tool selector */ -import type { ExtensionAPI, ExtensionContext, ToolInfo } from "@earendil-works/diffex-coding-agent"; -import { getSettingsListTheme } from "@earendil-works/diffex-coding-agent"; -import { Container, type SettingItem, SettingsList } from "@earendil-works/diffex-tui"; +import type { ExtensionAPI, ExtensionContext, ToolInfo } from "@diffexai/diffex"; +import { getSettingsListTheme } from "@diffexai/diffex"; +import { Container, type SettingItem, SettingsList } from "@diffexai/diffex-tui"; // State persisted to session interface ToolsState { diff --git a/packages/coding-agent/examples/extensions/trigger-compact.ts b/packages/coding-agent/examples/extensions/trigger-compact.ts index 5378aa45e..072c38361 100644 --- a/packages/coding-agent/examples/extensions/trigger-compact.ts +++ b/packages/coding-agent/examples/extensions/trigger-compact.ts @@ -1,4 +1,4 @@ -import type { ExtensionAPI, ExtensionContext } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext } from "@diffexai/diffex"; const COMPACT_THRESHOLD_TOKENS = 100_000; diff --git a/packages/coding-agent/examples/extensions/truncated-tool.ts b/packages/coding-agent/examples/extensions/truncated-tool.ts index e2ac18676..ac2a150d0 100644 --- a/packages/coding-agent/examples/extensions/truncated-tool.ts +++ b/packages/coding-agent/examples/extensions/truncated-tool.ts @@ -15,7 +15,7 @@ */ import { mkdtemp, writeFile } from "node:fs/promises"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, @@ -23,8 +23,8 @@ import { type TruncationResult, truncateHead, withFileMutationQueue, -} from "@earendil-works/diffex-coding-agent"; -import { Text } from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex"; +import { Text } from "@diffexai/diffex-tui"; import { execSync } from "child_process"; import { tmpdir } from "os"; import { join } from "path"; diff --git a/packages/coding-agent/examples/extensions/widget-placement.ts b/packages/coding-agent/examples/extensions/widget-placement.ts index 44dc77b1a..ee5a46f1c 100644 --- a/packages/coding-agent/examples/extensions/widget-placement.ts +++ b/packages/coding-agent/examples/extensions/widget-placement.ts @@ -1,4 +1,4 @@ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function widgetPlacementExtension(diffex: ExtensionAPI) { diffex.on("session_start", (_event, ctx) => { diff --git a/packages/coding-agent/examples/extensions/with-deps/index.ts b/packages/coding-agent/examples/extensions/with-deps/index.ts index b99109221..0433d5d57 100644 --- a/packages/coding-agent/examples/extensions/with-deps/index.ts +++ b/packages/coding-agent/examples/extensions/with-deps/index.ts @@ -5,7 +5,7 @@ * Requires: npm install in this directory */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import ms from "ms"; import { Type } from "typebox"; diff --git a/packages/coding-agent/examples/extensions/working-indicator.ts b/packages/coding-agent/examples/extensions/working-indicator.ts index bd6324110..944c49c56 100644 --- a/packages/coding-agent/examples/extensions/working-indicator.ts +++ b/packages/coding-agent/examples/extensions/working-indicator.ts @@ -16,7 +16,7 @@ * /working-indicator reset Restore Diffex's default spinner */ -import type { ExtensionAPI, ExtensionContext, WorkingIndicatorOptions } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ExtensionContext, WorkingIndicatorOptions } from "@diffexai/diffex"; type WorkingIndicatorMode = "dot" | "none" | "pulse" | "spinner" | "default"; diff --git a/packages/coding-agent/examples/extensions/working-message-test.ts b/packages/coding-agent/examples/extensions/working-message-test.ts index 9473d3d3d..4fecaf3fa 100644 --- a/packages/coding-agent/examples/extensions/working-message-test.ts +++ b/packages/coding-agent/examples/extensions/working-message-test.ts @@ -12,7 +12,7 @@ * loader appears, not revert to the default gray "Working...". */ -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; const CUSTOM_MESSAGE = "\x1b[38;2;155;86;63mWorking... (custom)\x1b[39m"; const CUSTOM_INDICATOR = { frames: ["\x1b[38;2;155;86;63m●\x1b[39m"] }; diff --git a/packages/coding-agent/examples/rpc-extension-ui.ts b/packages/coding-agent/examples/rpc-extension-ui.ts index e2b241255..b85f36825 100644 --- a/packages/coding-agent/examples/rpc-extension-ui.ts +++ b/packages/coding-agent/examples/rpc-extension-ui.ts @@ -27,7 +27,7 @@ import { SelectList, type TUI, TuiMainScreen, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; const __dirname = dirname(fileURLToPath(import.meta.url)); diff --git a/packages/coding-agent/examples/sdk/01-minimal.ts b/packages/coding-agent/examples/sdk/01-minimal.ts index c0add7343..423cf925a 100644 --- a/packages/coding-agent/examples/sdk/01-minimal.ts +++ b/packages/coding-agent/examples/sdk/01-minimal.ts @@ -5,7 +5,7 @@ * from cwd and ~/.diffex/agent. Model chosen from settings or first available. */ -import { createAgentSession } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession } from "@diffexai/diffex"; const { session } = await createAgentSession(); diff --git a/packages/coding-agent/examples/sdk/02-custom-model.ts b/packages/coding-agent/examples/sdk/02-custom-model.ts index 8fd628471..11af21f89 100644 --- a/packages/coding-agent/examples/sdk/02-custom-model.ts +++ b/packages/coding-agent/examples/sdk/02-custom-model.ts @@ -4,7 +4,7 @@ * Shows how to select a specific model and thinking level. */ -import { createAgentSession, ModelRuntime } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, ModelRuntime } from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create(); diff --git a/packages/coding-agent/examples/sdk/03-custom-prompt.ts b/packages/coding-agent/examples/sdk/03-custom-prompt.ts index 606685ee2..46d27a752 100644 --- a/packages/coding-agent/examples/sdk/03-custom-prompt.ts +++ b/packages/coding-agent/examples/sdk/03-custom-prompt.ts @@ -4,12 +4,7 @@ * Shows how to replace or modify the default system prompt. */ -import { - createAgentSession, - DefaultResourceLoader, - getAgentDir, - SessionManager, -} from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, DefaultResourceLoader, getAgentDir, SessionManager } from "@diffexai/diffex"; const cwd = process.cwd(); const agentDir = getAgentDir(); diff --git a/packages/coding-agent/examples/sdk/04-skills.ts b/packages/coding-agent/examples/sdk/04-skills.ts index fc5ec89f1..4e0286b22 100644 --- a/packages/coding-agent/examples/sdk/04-skills.ts +++ b/packages/coding-agent/examples/sdk/04-skills.ts @@ -12,7 +12,7 @@ import { DefaultResourceLoader, getAgentDir, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; // Or define custom skills inline const customSkill = createSkill({ diff --git a/packages/coding-agent/examples/sdk/05-tools.ts b/packages/coding-agent/examples/sdk/05-tools.ts index 50e87bd6d..d7dac8234 100644 --- a/packages/coding-agent/examples/sdk/05-tools.ts +++ b/packages/coding-agent/examples/sdk/05-tools.ts @@ -10,7 +10,7 @@ * extensions system using diffex.registerTool(). */ -import { createAgentSession, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, SessionManager } from "@diffexai/diffex"; // Read-only mode (no edit/write) const { session: readOnlySession } = await createAgentSession({ diff --git a/packages/coding-agent/examples/sdk/06-extensions.ts b/packages/coding-agent/examples/sdk/06-extensions.ts index f84c37ee2..c5e6a9484 100644 --- a/packages/coding-agent/examples/sdk/06-extensions.ts +++ b/packages/coding-agent/examples/sdk/06-extensions.ts @@ -13,12 +13,7 @@ * export default function (diffex: ExtensionAPI) { ... } */ -import { - createAgentSession, - DefaultResourceLoader, - getAgentDir, - SessionManager, -} from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, DefaultResourceLoader, getAgentDir, SessionManager } from "@diffexai/diffex"; // Extensions are discovered automatically from standard locations. // You can also add paths via settings.json or DefaultResourceLoader options. @@ -57,7 +52,7 @@ try { // Example extension file (./my-logging-extension.ts): /* -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; export default function (diffex: ExtensionAPI) { diffex.on("agent_start", async () => { diff --git a/packages/coding-agent/examples/sdk/07-context-files.ts b/packages/coding-agent/examples/sdk/07-context-files.ts index 6b9bb3bbe..ddfed7405 100644 --- a/packages/coding-agent/examples/sdk/07-context-files.ts +++ b/packages/coding-agent/examples/sdk/07-context-files.ts @@ -4,12 +4,7 @@ * Context files provide project-specific instructions loaded into the system prompt. */ -import { - createAgentSession, - DefaultResourceLoader, - getAgentDir, - SessionManager, -} from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, DefaultResourceLoader, getAgentDir, SessionManager } from "@diffexai/diffex"; // Disable context files entirely by returning an empty list in agentsFilesOverride. const loader = new DefaultResourceLoader({ diff --git a/packages/coding-agent/examples/sdk/08-prompt-templates.ts b/packages/coding-agent/examples/sdk/08-prompt-templates.ts index 4d9f8129f..d58a9e589 100644 --- a/packages/coding-agent/examples/sdk/08-prompt-templates.ts +++ b/packages/coding-agent/examples/sdk/08-prompt-templates.ts @@ -11,7 +11,7 @@ import { getAgentDir, type PromptTemplate, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; // Define custom templates const deployTemplate: PromptTemplate = { diff --git a/packages/coding-agent/examples/sdk/09-api-keys-and-oauth.ts b/packages/coding-agent/examples/sdk/09-api-keys-and-oauth.ts index 2ee72e572..969124910 100644 --- a/packages/coding-agent/examples/sdk/09-api-keys-and-oauth.ts +++ b/packages/coding-agent/examples/sdk/09-api-keys-and-oauth.ts @@ -4,7 +4,7 @@ * Configure provider auth through ModelRuntime. */ -import { createAgentSession, ModelRuntime, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, ModelRuntime, SessionManager } from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create(); const { session: defaultAuthSession } = await createAgentSession({ diff --git a/packages/coding-agent/examples/sdk/10-settings.ts b/packages/coding-agent/examples/sdk/10-settings.ts index cdfa687c8..fefdbc686 100644 --- a/packages/coding-agent/examples/sdk/10-settings.ts +++ b/packages/coding-agent/examples/sdk/10-settings.ts @@ -4,7 +4,7 @@ * Override settings using SettingsManager. */ -import { createAgentSession, SessionManager, SettingsManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, SessionManager, SettingsManager } from "@diffexai/diffex"; const cwd = process.cwd(); diff --git a/packages/coding-agent/examples/sdk/11-sessions.ts b/packages/coding-agent/examples/sdk/11-sessions.ts index 537c7d228..76e0680eb 100644 --- a/packages/coding-agent/examples/sdk/11-sessions.ts +++ b/packages/coding-agent/examples/sdk/11-sessions.ts @@ -4,7 +4,7 @@ * Control session persistence: in-memory, new file, continue, or open specific. */ -import { createAgentSession, SessionManager } from "@earendil-works/diffex-coding-agent"; +import { createAgentSession, SessionManager } from "@diffexai/diffex"; // In-memory (no persistence) const { session: inMemory } = await createAgentSession({ diff --git a/packages/coding-agent/examples/sdk/12-full-control.ts b/packages/coding-agent/examples/sdk/12-full-control.ts index 5b1d4875f..e9716d050 100644 --- a/packages/coding-agent/examples/sdk/12-full-control.ts +++ b/packages/coding-agent/examples/sdk/12-full-control.ts @@ -4,7 +4,6 @@ * Replace everything - no discovery, explicit configuration. */ -import { getModel } from "@earendil-works/diffex-ai/compat"; import { createAgentSession, createExtensionRuntime, @@ -12,7 +11,8 @@ import { type ResourceLoader, SessionManager, SettingsManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; +import { getModel } from "@diffexai/diffex-ai/compat"; const modelRuntime = await ModelRuntime.create({ authPath: "/tmp/my-agent/auth.json", diff --git a/packages/coding-agent/examples/sdk/13-session-runtime.ts b/packages/coding-agent/examples/sdk/13-session-runtime.ts index 53e0dc98a..99c9fea1c 100644 --- a/packages/coding-agent/examples/sdk/13-session-runtime.ts +++ b/packages/coding-agent/examples/sdk/13-session-runtime.ts @@ -15,7 +15,7 @@ import { createAgentSessionServices, getAgentDir, SessionManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => { const services = await createAgentSessionServices({ cwd }); diff --git a/packages/coding-agent/examples/sdk/README.md b/packages/coding-agent/examples/sdk/README.md index 7a1b36bec..e1ecee47e 100644 --- a/packages/coding-agent/examples/sdk/README.md +++ b/packages/coding-agent/examples/sdk/README.md @@ -32,14 +32,14 @@ npx tsx examples/sdk/01-minimal.ts ## Quick Reference ```typescript -import { getModel } from "@earendil-works/diffex-ai"; +import { getModel } from "@diffexai/diffex-ai"; import { createAgentSession, DefaultResourceLoader, ModelRuntime, SessionManager, SettingsManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; const modelRuntime = await ModelRuntime.create(); diff --git a/packages/coding-agent/install-lock/package-lock.json b/packages/coding-agent/install-lock/package-lock.json index e8d64790c..8196d5334 100644 --- a/packages/coding-agent/install-lock/package-lock.json +++ b/packages/coding-agent/install-lock/package-lock.json @@ -1,14 +1,14 @@ { - "name": "@earendil-works/diffex-coding-agent-install", + "name": "@diffexai/diffex-coding-agent-install", "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@earendil-works/diffex-coding-agent-install", + "name": "@diffexai/diffex-coding-agent-install", "version": "0.2.0", "dependencies": { - "@earendil-works/diffex-coding-agent": "0.2.0" + "@diffexai/diffex": "0.2.0" }, "engines": { "node": ">=22.19.0" @@ -449,13 +449,52 @@ "node": ">=6.9.0" } }, - "node_modules/@earendil-works/diffex-agent-core": { + "node_modules/@diffexai/diffex": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-agent-core/-/diffex-agent-core-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex/-/diffex-0.2.0.tgz", "license": "MIT", "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-agent-core": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-client": "^0.2.0", + "@diffexai/diffex-harness-state": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", + "@diffexai/diffex-tui": "^0.2.0", + "@napi-rs/keyring": "1.3.0", + "@silvia-odwyer/photon-node": "0.3.4", + "chalk": "5.6.2", + "cross-spawn": "7.0.6", + "diff": "8.0.4", + "glob": "13.0.6", + "grok-mermaid": "0.2.2", + "highlight.js": "10.7.3", + "hosted-git-info": "9.0.3", + "ignore": "7.0.5", + "jiti": "2.7.0", + "minimatch": "10.2.5", + "proper-lockfile": "4.1.2", + "semver": "7.8.0", + "typebox": "1.3.7", + "undici": "8.9.0", + "yaml": "2.9.0" + }, + "optionalDependencies": { + "@mariozechner/clipboard": "0.3.9" + }, + "bin": { + "diffex": "dist/cli.js" + }, + "engines": { + "node": ">=22.19.0" + } + }, + "node_modules/@diffexai/diffex-agent-core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-agent-core/-/diffex-agent-core-0.2.0.tgz", + "license": "MIT", + "dependencies": { + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "diff": "8.0.4", "ignore": "7.0.5", "typebox": "1.3.7", @@ -465,14 +504,14 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-ai": { + "node_modules/@diffexai/diffex-ai": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-ai/-/diffex-ai-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-ai/-/diffex-ai-0.2.0.tgz", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "0.91.1", "@aws-sdk/client-bedrock-runtime": "3.1048.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "@google/genai": "1.52.0", "@mistralai/mistralai": "2.2.6", "@opentelemetry/api": "1.9.0", @@ -490,59 +529,20 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-client": { + "node_modules/@diffexai/diffex-client": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-client/-/diffex-client-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-client/-/diffex-client-0.2.0.tgz", "license": "MIT", "dependencies": { - "@earendil-works/diffex-protocol": "^0.2.0" - }, - "engines": { - "node": ">=22.19.0" - } - }, - "node_modules/@earendil-works/diffex-coding-agent": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-coding-agent/-/diffex-coding-agent-0.2.0.tgz", - "license": "MIT", - "dependencies": { - "@earendil-works/diffex-agent-core": "^0.2.0", - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-client": "^0.2.0", - "@earendil-works/diffex-harness-state": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", - "@earendil-works/diffex-tui": "^0.2.0", - "@napi-rs/keyring": "1.3.0", - "@silvia-odwyer/photon-node": "0.3.4", - "chalk": "5.6.2", - "cross-spawn": "7.0.6", - "diff": "8.0.4", - "glob": "13.0.6", - "grok-mermaid": "0.2.2", - "highlight.js": "10.7.3", - "hosted-git-info": "9.0.3", - "ignore": "7.0.5", - "jiti": "2.7.0", - "minimatch": "10.2.5", - "proper-lockfile": "4.1.2", - "semver": "7.8.0", - "typebox": "1.3.7", - "undici": "8.9.0", - "yaml": "2.9.0" - }, - "optionalDependencies": { - "@mariozechner/clipboard": "0.3.9" - }, - "bin": { - "diffex": "dist/cli.js" + "@diffexai/diffex-protocol": "^0.2.0" }, "engines": { "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-harness-state": { + "node_modules/@diffexai/diffex-harness-state": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-harness-state/-/diffex-harness-state-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-harness-state/-/diffex-harness-state-0.2.0.tgz", "license": "MIT", "dependencies": { "proper-lockfile": "4.1.2", @@ -553,9 +553,9 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-protocol": { + "node_modules/@diffexai/diffex-protocol": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-protocol/-/diffex-protocol-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-protocol/-/diffex-protocol-0.2.0.tgz", "license": "MIT", "dependencies": { "typebox": "1.3.7" @@ -564,17 +564,17 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-telemetry": { + "node_modules/@diffexai/diffex-telemetry": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-telemetry/-/diffex-telemetry-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-telemetry/-/diffex-telemetry-0.2.0.tgz", "license": "MIT", "engines": { "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-tui": { + "node_modules/@diffexai/diffex-tui": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-tui/-/diffex-tui-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-tui/-/diffex-tui-0.2.0.tgz", "license": "MIT", "dependencies": { "get-east-asian-width": "1.6.0", diff --git a/packages/coding-agent/install-lock/package.json b/packages/coding-agent/install-lock/package.json index 63676d573..e06072378 100644 --- a/packages/coding-agent/install-lock/package.json +++ b/packages/coding-agent/install-lock/package.json @@ -1,10 +1,10 @@ { - "name": "@earendil-works/diffex-coding-agent-install", + "name": "@diffexai/diffex-coding-agent-install", "version": "0.2.0", "private": true, "description": "Lockfile root used by the Diffex installer and updater.", "dependencies": { - "@earendil-works/diffex-coding-agent": "0.2.0" + "@diffexai/diffex": "0.2.0" }, "overrides": { "protobufjs": "7.6.5", diff --git a/packages/coding-agent/npm-shrinkwrap.json b/packages/coding-agent/npm-shrinkwrap.json index dd187506e..a74acc369 100644 --- a/packages/coding-agent/npm-shrinkwrap.json +++ b/packages/coding-agent/npm-shrinkwrap.json @@ -1,20 +1,20 @@ { - "name": "@earendil-works/diffex-coding-agent", + "name": "@diffexai/diffex", "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@earendil-works/diffex-coding-agent", + "name": "@diffexai/diffex", "version": "0.2.0", "license": "MIT", "dependencies": { - "@earendil-works/diffex-agent-core": "^0.2.0", - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-client": "^0.2.0", - "@earendil-works/diffex-harness-state": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", - "@earendil-works/diffex-tui": "^0.2.0", + "@diffexai/diffex-agent-core": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-client": "^0.2.0", + "@diffexai/diffex-harness-state": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", + "@diffexai/diffex-tui": "^0.2.0", "@napi-rs/keyring": "1.3.0", "@silvia-odwyer/photon-node": "0.3.4", "chalk": "5.6.2", @@ -478,13 +478,13 @@ "node": ">=6.9.0" } }, - "node_modules/@earendil-works/diffex-agent-core": { + "node_modules/@diffexai/diffex-agent-core": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-agent-core/-/diffex-agent-core-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-agent-core/-/diffex-agent-core-0.2.0.tgz", "license": "MIT", "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "diff": "8.0.4", "ignore": "7.0.5", "typebox": "1.3.7", @@ -494,14 +494,14 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-ai": { + "node_modules/@diffexai/diffex-ai": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-ai/-/diffex-ai-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-ai/-/diffex-ai-0.2.0.tgz", "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "0.91.1", "@aws-sdk/client-bedrock-runtime": "3.1048.0", - "@earendil-works/diffex-telemetry": "^0.2.0", + "@diffexai/diffex-telemetry": "^0.2.0", "@google/genai": "1.52.0", "@mistralai/mistralai": "2.2.6", "@opentelemetry/api": "1.9.0", @@ -519,20 +519,20 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-client": { + "node_modules/@diffexai/diffex-client": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-client/-/diffex-client-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-client/-/diffex-client-0.2.0.tgz", "license": "MIT", "dependencies": { - "@earendil-works/diffex-protocol": "^0.2.0" + "@diffexai/diffex-protocol": "^0.2.0" }, "engines": { "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-harness-state": { + "node_modules/@diffexai/diffex-harness-state": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-harness-state/-/diffex-harness-state-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-harness-state/-/diffex-harness-state-0.2.0.tgz", "license": "MIT", "dependencies": { "proper-lockfile": "4.1.2", @@ -543,9 +543,9 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-protocol": { + "node_modules/@diffexai/diffex-protocol": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-protocol/-/diffex-protocol-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-protocol/-/diffex-protocol-0.2.0.tgz", "license": "MIT", "dependencies": { "typebox": "1.3.7" @@ -554,17 +554,17 @@ "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-telemetry": { + "node_modules/@diffexai/diffex-telemetry": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-telemetry/-/diffex-telemetry-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-telemetry/-/diffex-telemetry-0.2.0.tgz", "license": "MIT", "engines": { "node": ">=22.19.0" } }, - "node_modules/@earendil-works/diffex-tui": { + "node_modules/@diffexai/diffex-tui": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@earendil-works/diffex-tui/-/diffex-tui-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/@diffexai/diffex-tui/-/diffex-tui-0.2.0.tgz", "license": "MIT", "dependencies": { "get-east-asian-width": "1.6.0", diff --git a/packages/coding-agent/package.json b/packages/coding-agent/package.json index a0983b40a..ed8c41395 100644 --- a/packages/coding-agent/package.json +++ b/packages/coding-agent/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-coding-agent", + "name": "@diffexai/diffex", "version": "0.2.0", "description": "Coding agent CLI with read, bash, edit, write, update_plan tools and session management", "type": "module", @@ -40,19 +40,19 @@ "clean": "shx rm -rf dist", "build": "tsgo -p tsconfig.build.json && shx chmod +x dist/cli.js dist/rpc-entry.js && npm run copy-assets", "build:binary": "npm --prefix ../harness-state run build && npm --prefix ../tui run build && npm --prefix ../telemetry run build && npm --prefix ../harness-trace run build && npm --prefix ../evolution run build && npm --prefix ../ai run build && npm --prefix ../agent run build && npm --prefix ../protocol run build && npm --prefix ../client run build && npm run build && bun build --compile --no-compile-autoload-bunfig ./dist/bun/cli.js ./src/utils/image-resize-worker.ts --outfile dist/pi && npm run copy-binary-assets", - "copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/modes/interactive/assets && shx cp src/modes/interactive/assets/*.png dist/modes/interactive/assets/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/ && shx mkdir -p dist/vendor && shx cp -r ../harness-trace/dist dist/vendor/harness-trace && shx cp -r ../evolution/dist dist/vendor/evolution", - "copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/assets && shx cp src/modes/interactive/assets/*.png dist/assets/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/", + "copy-assets": "shx mkdir -p dist/modes/interactive/theme && shx cp src/modes/interactive/theme/*.json dist/modes/interactive/theme/ && shx mkdir -p dist/core/export-html/vendor && shx cp src/core/export-html/template.html src/core/export-html/template.css src/core/export-html/template.js dist/core/export-html/ && shx cp src/core/export-html/vendor/*.js dist/core/export-html/vendor/ && shx mkdir -p dist/vendor && shx cp -r ../harness-trace/dist dist/vendor/harness-trace && shx cp -r ../evolution/dist dist/vendor/evolution", + "copy-binary-assets": "shx cp package.json dist/ && shx cp README.md dist/ && shx cp CHANGELOG.md dist/ && shx mkdir -p dist/theme && shx cp src/modes/interactive/theme/*.json dist/theme/ && shx mkdir -p dist/export-html/vendor && shx cp src/core/export-html/template.html dist/export-html/ && shx cp src/core/export-html/vendor/*.js dist/export-html/vendor/ && shx cp -r docs dist/ && shx cp -r examples dist/ && shx cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm dist/", "test": "vitest --run", "shrinkwrap": "node ../../scripts/generate-coding-agent-shrinkwrap.mjs", "prepublishOnly": "npm run clean && npm run build && npm run shrinkwrap" }, "dependencies": { - "@earendil-works/diffex-agent-core": "^0.2.0", - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-client": "^0.2.0", - "@earendil-works/diffex-harness-state": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", - "@earendil-works/diffex-tui": "^0.2.0", + "@diffexai/diffex-agent-core": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-client": "^0.2.0", + "@diffexai/diffex-harness-state": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", + "@diffexai/diffex-tui": "^0.2.0", "@napi-rs/keyring": "1.3.0", "@silvia-odwyer/photon-node": "0.3.4", "chalk": "5.6.2", diff --git a/packages/coding-agent/src/bun/cli.ts b/packages/coding-agent/src/bun/cli.ts index d35473d4f..c0b20990e 100644 --- a/packages/coding-agent/src/bun/cli.ts +++ b/packages/coding-agent/src/bun/cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -import { registerBunOAuthFlows } from "@earendil-works/diffex-ai/bun-oauth"; +import { registerBunOAuthFlows } from "@diffexai/diffex-ai/bun-oauth"; import { APP_NAME } from "../config.ts"; process.title = APP_NAME; diff --git a/packages/coding-agent/src/bun/register-bedrock.ts b/packages/coding-agent/src/bun/register-bedrock.ts index c451b5e30..bb0e617b7 100644 --- a/packages/coding-agent/src/bun/register-bedrock.ts +++ b/packages/coding-agent/src/bun/register-bedrock.ts @@ -1,4 +1,4 @@ -import { bedrockProviderModule } from "@earendil-works/diffex-ai/bedrock-provider"; -import { setBedrockProviderModule } from "@earendil-works/diffex-ai/compat"; +import { bedrockProviderModule } from "@diffexai/diffex-ai/bedrock-provider"; +import { setBedrockProviderModule } from "@diffexai/diffex-ai/compat"; setBedrockProviderModule(bedrockProviderModule); diff --git a/packages/coding-agent/src/cli/args.ts b/packages/coding-agent/src/cli/args.ts index 987c69bed..5fc315522 100644 --- a/packages/coding-agent/src/cli/args.ts +++ b/packages/coding-agent/src/cli/args.ts @@ -2,7 +2,7 @@ * CLI argument parsing and help display */ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; import chalk from "chalk"; import { APP_NAME, APP_TITLE, CONFIG_DIR_NAME, ENV_AGENT_DIR, ENV_SESSION_DIR } from "../config.ts"; import type { ExtensionFlag } from "../core/extensions/types.ts"; diff --git a/packages/coding-agent/src/cli/auth-check.ts b/packages/coding-agent/src/cli/auth-check.ts index 0c0dbb194..1807f486e 100644 --- a/packages/coding-agent/src/cli/auth-check.ts +++ b/packages/coding-agent/src/cli/auth-check.ts @@ -1,4 +1,4 @@ -import type { CredentialStore } from "@earendil-works/diffex-ai"; +import type { CredentialStore } from "@diffexai/diffex-ai"; import { resolveCliModel } from "../core/model-resolver.ts"; import { ModelRuntime } from "../core/model-runtime.ts"; import { InMemoryCodingAgentModelsStore } from "../core/models-store.ts"; diff --git a/packages/coding-agent/src/cli/auth-command.ts b/packages/coding-agent/src/cli/auth-command.ts index c1dec0207..7612dd362 100644 --- a/packages/coding-agent/src/cli/auth-command.ts +++ b/packages/coding-agent/src/cli/auth-command.ts @@ -1,4 +1,4 @@ -import type { AuthResult } from "@earendil-works/diffex-ai"; +import type { AuthResult } from "@diffexai/diffex-ai"; import { APP_NAME } from "../config.ts"; import type { Args } from "./args.ts"; diff --git a/packages/coding-agent/src/cli/config-selector.ts b/packages/coding-agent/src/cli/config-selector.ts index 2605e42b5..014a95fe6 100644 --- a/packages/coding-agent/src/cli/config-selector.ts +++ b/packages/coding-agent/src/cli/config-selector.ts @@ -2,7 +2,7 @@ * TUI config selector for `diffex config` command */ -import { ProcessTerminal, type TUI, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { ProcessTerminal, type TUI, TuiMainScreen } from "@diffexai/diffex-tui"; import type { SettingsManager } from "../core/settings-manager.ts"; import { ConfigSelectorComponent, type ScopedResolvedPaths } from "../modes/interactive/components/config-selector.ts"; import { initTheme, stopThemeWatcher } from "../modes/interactive/theme/theme.ts"; diff --git a/packages/coding-agent/src/cli/credential-print.ts b/packages/coding-agent/src/cli/credential-print.ts index 74dee7184..e195e157e 100644 --- a/packages/coding-agent/src/cli/credential-print.ts +++ b/packages/coding-agent/src/cli/credential-print.ts @@ -1,4 +1,4 @@ -import type { Api, CredentialInfo, Model } from "@earendil-works/diffex-ai"; +import type { Api, CredentialInfo, Model } from "@diffexai/diffex-ai"; import { resolveCliModel } from "../core/model-resolver.ts"; import type { ModelRuntime } from "../core/model-runtime.ts"; import type { Args } from "./args.ts"; diff --git a/packages/coding-agent/src/cli/file-processor.ts b/packages/coding-agent/src/cli/file-processor.ts index 7e0348970..3b5597f6a 100644 --- a/packages/coding-agent/src/cli/file-processor.ts +++ b/packages/coding-agent/src/cli/file-processor.ts @@ -3,7 +3,7 @@ */ import { access, readFile, stat } from "node:fs/promises"; -import type { ImageContent } from "@earendil-works/diffex-ai"; +import type { ImageContent } from "@diffexai/diffex-ai"; import chalk from "chalk"; import { resolve } from "path"; import { resolveReadPath } from "../core/tools/path-utils.ts"; diff --git a/packages/coding-agent/src/cli/initial-message.ts b/packages/coding-agent/src/cli/initial-message.ts index c344f0658..355b48ff4 100644 --- a/packages/coding-agent/src/cli/initial-message.ts +++ b/packages/coding-agent/src/cli/initial-message.ts @@ -1,4 +1,4 @@ -import type { ImageContent } from "@earendil-works/diffex-ai"; +import type { ImageContent } from "@diffexai/diffex-ai"; import type { Args } from "./args.ts"; export interface InitialMessageInput { diff --git a/packages/coding-agent/src/cli/list-models.ts b/packages/coding-agent/src/cli/list-models.ts index 4f3656216..dcdde7798 100644 --- a/packages/coding-agent/src/cli/list-models.ts +++ b/packages/coding-agent/src/cli/list-models.ts @@ -2,8 +2,8 @@ * List available models with optional fuzzy search */ -import type { Api, Model } from "@earendil-works/diffex-ai"; -import { fuzzyFilter } from "@earendil-works/diffex-tui"; +import type { Api, Model } from "@diffexai/diffex-ai"; +import { fuzzyFilter } from "@diffexai/diffex-tui"; import chalk from "chalk"; import { formatNoModelsAvailableMessage } from "../core/auth-guidance.ts"; import type { ModelRuntime } from "../core/model-runtime.ts"; diff --git a/packages/coding-agent/src/cli/session-picker.ts b/packages/coding-agent/src/cli/session-picker.ts index 8e7446a45..4e517f8ee 100644 --- a/packages/coding-agent/src/cli/session-picker.ts +++ b/packages/coding-agent/src/cli/session-picker.ts @@ -2,7 +2,7 @@ * TUI session selector for --resume flag */ -import { setKeybindings } from "@earendil-works/diffex-tui"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { KeybindingsManager } from "../core/keybindings.ts"; import type { SessionInfo, SessionListProgress } from "../core/session-manager.ts"; import type { SettingsManager } from "../core/settings-manager.ts"; diff --git a/packages/coding-agent/src/cli/startup-ui.ts b/packages/coding-agent/src/cli/startup-ui.ts index 727e16c56..a420795d2 100644 --- a/packages/coding-agent/src/cli/startup-ui.ts +++ b/packages/coding-agent/src/cli/startup-ui.ts @@ -1,4 +1,4 @@ -import { ProcessTerminal, setKeybindings, type TUI, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { ProcessTerminal, setKeybindings, type TUI, TuiMainScreen } from "@diffexai/diffex-tui"; import { existsSync } from "fs"; import { APP_NAME, CONFIG_DIR_NAME, ENV_AGENT_DIR, getAgentDir, getSettingsPath, PACKAGE_NAME } from "../config.ts"; import { areExperimentalFeaturesEnabled } from "../core/experimental.ts"; @@ -23,7 +23,7 @@ import { type Theme, } from "../modes/interactive/theme/theme.ts"; -const OFFICIAL_PACKAGE_NAME = "@earendil-works/diffex-coding-agent"; +const OFFICIAL_PACKAGE_NAME = "@diffexai/diffex"; const OFFICIAL_APP_NAME = "diffex"; const OFFICIAL_CONFIG_DIR_NAME = ".diffex"; diff --git a/packages/coding-agent/src/client/remote-session.ts b/packages/coding-agent/src/client/remote-session.ts index 83fb134a1..1a5c832d7 100644 --- a/packages/coding-agent/src/client/remote-session.ts +++ b/packages/coding-agent/src/client/remote-session.ts @@ -4,7 +4,7 @@ import type { DiffexClient, SessionLease, Unsubscribe, -} from "@earendil-works/diffex-client"; +} from "@diffexai/diffex-client"; import type { ModelMetadata, ModelRef, @@ -14,7 +14,7 @@ import type { SessionSnapshot, ThinkingLevel, TranscriptItem, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { applyTranscriptProgress, applyTranscriptSnapshot, diff --git a/packages/coding-agent/src/client/transcript.ts b/packages/coding-agent/src/client/transcript.ts index 5f2dec9f7..999be73ed 100644 --- a/packages/coding-agent/src/client/transcript.ts +++ b/packages/coding-agent/src/client/transcript.ts @@ -1,4 +1,4 @@ -import type { JsonValue, SessionSnapshot, TranscriptItem, TranscriptProgress } from "@earendil-works/diffex-protocol"; +import type { JsonValue, SessionSnapshot, TranscriptItem, TranscriptProgress } from "@diffexai/diffex-protocol"; export interface TranscriptState { readonly snapshot: SessionSnapshot; diff --git a/packages/coding-agent/src/config.ts b/packages/coding-agent/src/config.ts index 5afec152a..b7c58dfe6 100644 --- a/packages/coding-agent/src/config.ts +++ b/packages/coding-agent/src/config.ts @@ -485,7 +485,7 @@ try { } const diffexConfigName: string | undefined = pkg.diffexConfig?.name; -export const PACKAGE_NAME: string = pkg.name || "@earendil-works/diffex-coding-agent"; +export const PACKAGE_NAME: string = pkg.name || "@diffexai/diffex"; export const APP_NAME: string = diffexConfigName || "diffex"; export const APP_TITLE: string = diffexConfigName ? APP_NAME : "Diffex"; export const CONFIG_DIR_NAME: string = pkg.diffexConfig?.configDir || ".diffex"; diff --git a/packages/coding-agent/src/core/agent-session-lifecycle.ts b/packages/coding-agent/src/core/agent-session-lifecycle.ts index e2ab89cae..c6a8c4a42 100644 --- a/packages/coding-agent/src/core/agent-session-lifecycle.ts +++ b/packages/coding-agent/src/core/agent-session-lifecycle.ts @@ -1,4 +1,4 @@ -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; import type { SessionManager } from "./session-manager.ts"; export type InvocationSessionAttachmentReason = "startup" | "resume" | "new" | "import" | "fork" | "switch"; diff --git a/packages/coding-agent/src/core/agent-session-runtime.ts b/packages/coding-agent/src/core/agent-session-runtime.ts index 3a1ba562a..3a866afed 100644 --- a/packages/coding-agent/src/core/agent-session-runtime.ts +++ b/packages/coding-agent/src/core/agent-session-runtime.ts @@ -1,6 +1,6 @@ import { copyFileSync, existsSync, mkdirSync } from "node:fs"; import { basename, join, resolve } from "node:path"; -import type { TelemetryContext } from "@earendil-works/diffex-agent-core"; +import type { TelemetryContext } from "@diffexai/diffex-agent-core"; import { resolvePath } from "../utils/paths.ts"; import type { AgentSession } from "./agent-session.ts"; import type { InvocationSessionAttachmentReason } from "./agent-session-lifecycle.ts"; diff --git a/packages/coding-agent/src/core/agent-session-services.ts b/packages/coding-agent/src/core/agent-session-services.ts index edc967b1b..51c3c1878 100644 --- a/packages/coding-agent/src/core/agent-session-services.ts +++ b/packages/coding-agent/src/core/agent-session-services.ts @@ -1,7 +1,7 @@ import { join } from "node:path"; -import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext, type ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import type { Model } from "@earendil-works/diffex-ai"; -import type { HarnessStateStore, HarnessVersionBundle } from "@earendil-works/diffex-harness-state"; +import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext, type ThinkingLevel } from "@diffexai/diffex-agent-core"; +import type { Model } from "@diffexai/diffex-ai"; +import type { HarnessStateStore, HarnessVersionBundle } from "@diffexai/diffex-harness-state"; import { getAgentDir } from "../config.ts"; import { resolvePath } from "../utils/paths.ts"; import type { AgentSessionLifecycleObserver } from "./agent-session-lifecycle.ts"; diff --git a/packages/coding-agent/src/core/agent-session.ts b/packages/coding-agent/src/core/agent-session.ts index ec93d409f..7fb9cdc68 100644 --- a/packages/coding-agent/src/core/agent-session.ts +++ b/packages/coding-agent/src/core/agent-session.ts @@ -26,8 +26,8 @@ import { type TelemetryContext, type ThinkingLevel, uuidv7, -} from "@earendil-works/diffex-agent-core"; -import { contentText } from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-agent-core"; +import { contentText } from "@diffexai/diffex-ai"; import type { AssistantMessage, AuthResult, @@ -36,7 +36,7 @@ import type { ProviderHeaders, TextContent, Usage, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import { clampThinkingLevel, cleanupSessionResources, @@ -48,14 +48,14 @@ import { type RetryCallbacks, resetApiProviders, streamSimple, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import type { HarnessStateStore, HarnessVersion, HarnessVersionBundle, HarnessVersionList, HarnessWorkspaceIdentity, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import { getThemeByName, theme } from "../modes/interactive/theme/theme.ts"; import { canonicalizePath, resolvePath } from "../utils/paths.ts"; import { sleep } from "../utils/sleep.ts"; diff --git a/packages/coding-agent/src/core/auth-storage.ts b/packages/coding-agent/src/core/auth-storage.ts index 52b223c5e..8c0d362e4 100644 --- a/packages/coding-agent/src/core/auth-storage.ts +++ b/packages/coding-agent/src/core/auth-storage.ts @@ -3,7 +3,7 @@ * Provider auth orchestration belongs to ModelRuntime and Diffex AI Models. */ -import type { AuthOperationOptions, Credential, CredentialInfo, CredentialStore } from "@earendil-works/diffex-ai"; +import type { AuthOperationOptions, Credential, CredentialInfo, CredentialStore } from "@diffexai/diffex-ai"; import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs"; import { dirname, join } from "path"; import lockfile from "proper-lockfile"; diff --git a/packages/coding-agent/src/core/cache-stats.ts b/packages/coding-agent/src/core/cache-stats.ts index 21112f383..2b8797f68 100644 --- a/packages/coding-agent/src/core/cache-stats.ts +++ b/packages/coding-agent/src/core/cache-stats.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@earendil-works/diffex-ai"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; import type { SessionEntry } from "./session-manager.ts"; /** diff --git a/packages/coding-agent/src/core/compaction/branch-summarization.ts b/packages/coding-agent/src/core/compaction/branch-summarization.ts index cef01afa0..67b1e4e7b 100644 --- a/packages/coding-agent/src/core/compaction/branch-summarization.ts +++ b/packages/coding-agent/src/core/compaction/branch-summarization.ts @@ -5,10 +5,10 @@ * a summary of the branch being left so context isn't lost. */ -import type { AgentMessage, StreamFn, TelemetryContext } from "@earendil-works/diffex-agent-core"; -import type { RetryCallbacks, RetryPolicy } from "@earendil-works/diffex-ai"; -import { contentText } from "@earendil-works/diffex-ai"; -import type { Model, SimpleStreamOptions, Usage } from "@earendil-works/diffex-ai/compat"; +import type { AgentMessage, StreamFn, TelemetryContext } from "@diffexai/diffex-agent-core"; +import type { RetryCallbacks, RetryPolicy } from "@diffexai/diffex-ai"; +import { contentText } from "@diffexai/diffex-ai"; +import type { Model, SimpleStreamOptions, Usage } from "@diffexai/diffex-ai/compat"; import { convertToLlm, createBranchSummaryMessage, diff --git a/packages/coding-agent/src/core/compaction/compaction.ts b/packages/coding-agent/src/core/compaction/compaction.ts index ee30daee3..dce3fc5b5 100644 --- a/packages/coding-agent/src/core/compaction/compaction.ts +++ b/packages/coding-agent/src/core/compaction/compaction.ts @@ -13,16 +13,10 @@ import { startAiSpan, type TelemetryContext, type ThinkingLevel, -} from "@earendil-works/diffex-agent-core"; -import { - contentText, - type RetryCallbacks, - type RetryPolicy, - retryAssistantCall, - uuidv7, -} from "@earendil-works/diffex-ai"; -import type { AssistantMessage, Context, Model, SimpleStreamOptions, Usage } from "@earendil-works/diffex-ai/compat"; -import { completeSimple } from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-agent-core"; +import { contentText, type RetryCallbacks, type RetryPolicy, retryAssistantCall, uuidv7 } from "@diffexai/diffex-ai"; +import type { AssistantMessage, Context, Model, SimpleStreamOptions, Usage } from "@diffexai/diffex-ai/compat"; +import { completeSimple } from "@diffexai/diffex-ai/compat"; import { convertToLlm } from "../messages.ts"; import { buildSessionContext, diff --git a/packages/coding-agent/src/core/compaction/utils.ts b/packages/coding-agent/src/core/compaction/utils.ts index 7f56f71db..bde21cb81 100644 --- a/packages/coding-agent/src/core/compaction/utils.ts +++ b/packages/coding-agent/src/core/compaction/utils.ts @@ -2,8 +2,8 @@ * Shared utilities for compaction and branch summarization. */ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import { contentText, type Message } from "@earendil-works/diffex-ai"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import { contentText, type Message } from "@diffexai/diffex-ai"; // ============================================================================ // File Operation Tracking diff --git a/packages/coding-agent/src/core/defaults.ts b/packages/coding-agent/src/core/defaults.ts index 026408508..c0dc07b55 100644 --- a/packages/coding-agent/src/core/defaults.ts +++ b/packages/coding-agent/src/core/defaults.ts @@ -1,3 +1,3 @@ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; export const DEFAULT_THINKING_LEVEL: ThinkingLevel = "medium"; diff --git a/packages/coding-agent/src/core/evolution-runtime.ts b/packages/coding-agent/src/core/evolution-runtime.ts index 8cdc3b2c0..9f02f6713 100644 --- a/packages/coding-agent/src/core/evolution-runtime.ts +++ b/packages/coding-agent/src/core/evolution-runtime.ts @@ -11,8 +11,8 @@ import { type Message, type Model, type Tool, -} from "@earendil-works/diffex-ai"; -import type { HarnessStateStore, HarnessVersion } from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-ai"; +import type { HarnessStateStore, HarnessVersion } from "@diffexai/diffex-harness-state"; import lockfile from "proper-lockfile"; import type { TSchema } from "typebox"; import { Check, Errors } from "typebox/value"; diff --git a/packages/coding-agent/src/core/export-html/index.ts b/packages/coding-agent/src/core/export-html/index.ts index f73b2b1f1..47e593335 100644 --- a/packages/coding-agent/src/core/export-html/index.ts +++ b/packages/coding-agent/src/core/export-html/index.ts @@ -1,4 +1,4 @@ -import type { AgentState } from "@earendil-works/diffex-agent-core"; +import type { AgentState } from "@diffexai/diffex-agent-core"; import { existsSync, readFileSync, writeFileSync } from "fs"; import { basename, join } from "path"; import { APP_NAME, getExportTemplateDir } from "../../config.ts"; diff --git a/packages/coding-agent/src/core/export-html/tool-renderer.ts b/packages/coding-agent/src/core/export-html/tool-renderer.ts index 03cb3a836..6cdea0084 100644 --- a/packages/coding-agent/src/core/export-html/tool-renderer.ts +++ b/packages/coding-agent/src/core/export-html/tool-renderer.ts @@ -5,8 +5,8 @@ * and converting the ANSI output to HTML. */ -import type { ImageContent, TextContent } from "@earendil-works/diffex-ai"; -import type { Component } from "@earendil-works/diffex-tui"; +import type { ImageContent, TextContent } from "@diffexai/diffex-ai"; +import type { Component } from "@diffexai/diffex-tui"; import type { Theme } from "../../modes/interactive/theme/theme.ts"; import type { ToolDefinition, ToolRenderContext } from "../extensions/types.ts"; import { ansiLinesToHtml } from "./ansi-to-html.ts"; diff --git a/packages/coding-agent/src/core/extensions/loader.ts b/packages/coding-agent/src/core/extensions/loader.ts index d4fcbe0fb..7c0efba58 100644 --- a/packages/coding-agent/src/core/extensions/loader.ts +++ b/packages/coding-agent/src/core/extensions/loader.ts @@ -7,13 +7,13 @@ import * as fs from "node:fs"; import { createRequire } from "node:module"; import * as path from "node:path"; import { fileURLToPath } from "node:url"; -import * as _bundledDiffexAgentCore from "@earendil-works/diffex-agent-core"; -import type { Provider } from "@earendil-works/diffex-ai"; -import * as _bundledDiffexAiCompat from "@earendil-works/diffex-ai/compat"; -import * as _bundledDiffexAiOauth from "@earendil-works/diffex-ai/oauth"; -import * as _bundledDiffexAiProviders from "@earendil-works/diffex-ai/providers/all"; -import type { KeyId } from "@earendil-works/diffex-tui"; -import * as _bundledDiffexTui from "@earendil-works/diffex-tui"; +import * as _bundledDiffexAgentCore from "@diffexai/diffex-agent-core"; +import type { Provider } from "@diffexai/diffex-ai"; +import * as _bundledDiffexAiCompat from "@diffexai/diffex-ai/compat"; +import * as _bundledDiffexAiOauth from "@diffexai/diffex-ai/oauth"; +import * as _bundledDiffexAiProviders from "@diffexai/diffex-ai/providers/all"; +import type { KeyId } from "@diffexai/diffex-tui"; +import * as _bundledDiffexTui from "@diffexai/diffex-tui"; import { createJiti } from "jiti/static"; // Static imports of packages that extensions may use. // These MUST be static so Bun bundles them into the compiled binary. @@ -23,7 +23,7 @@ import * as _bundledTypeboxCompile from "typebox/compile"; import * as _bundledTypeboxValue from "typebox/value"; import { CONFIG_DIR_NAME, getAgentDir, isBunBinary } from "../../config.ts"; // NOTE: This import works because loader.ts exports are NOT re-exported from index.ts, -// avoiding a circular dependency. Extensions can import from @earendil-works/diffex-coding-agent. +// avoiding a circular dependency. Extensions can import from @diffexai/diffex. import * as _bundledDiffexCodingAgent from "../../index.ts"; import { resolvePath } from "../../utils/paths.ts"; import { readDiffexManifest } from "../diffex-manifest.ts"; @@ -54,16 +54,16 @@ const VIRTUAL_MODULES: Record = { "@sinclair/typebox": _bundledTypebox, "@sinclair/typebox/compile": _bundledTypeboxCompile, "@sinclair/typebox/value": _bundledTypeboxValue, - "@earendil-works/diffex-agent-core": _bundledDiffexAgentCore, - "@earendil-works/diffex-tui": _bundledDiffexTui, + "@diffexai/diffex-agent-core": _bundledDiffexAgentCore, + "@diffexai/diffex-tui": _bundledDiffexTui, // Extensions resolve the Diffex AI root to the compat entrypoint (a strict // superset of the core entrypoint): existing extensions using the old // global API keep working at runtime until compat is removed. - "@earendil-works/diffex-ai": _bundledDiffexAiCompat, - "@earendil-works/diffex-ai/compat": _bundledDiffexAiCompat, - "@earendil-works/diffex-ai/oauth": _bundledDiffexAiOauth, - "@earendil-works/diffex-ai/providers/all": _bundledDiffexAiProviders, - "@earendil-works/diffex-coding-agent": _bundledDiffexCodingAgent, + "@diffexai/diffex-ai": _bundledDiffexAiCompat, + "@diffexai/diffex-ai/compat": _bundledDiffexAiCompat, + "@diffexai/diffex-ai/oauth": _bundledDiffexAiOauth, + "@diffexai/diffex-ai/providers/all": _bundledDiffexAiProviders, + "@diffexai/diffex": _bundledDiffexCodingAgent, "@mariozechner/pi-agent-core": _bundledDiffexAgentCore, "@mariozechner/pi-tui": _bundledDiffexTui, "@mariozechner/pi-ai": _bundledDiffexAiCompat, @@ -103,26 +103,26 @@ function getAliases(): Record { }; const diffexCodingAgentEntry = packageIndex; - const diffexAgentCoreEntry = resolveWorkspaceOrImport("agent/dist/index.js", "@earendil-works/diffex-agent-core"); - const diffexTuiEntry = resolveWorkspaceOrImport("tui/dist/index.js", "@earendil-works/diffex-tui"); + const diffexAgentCoreEntry = resolveWorkspaceOrImport("agent/dist/index.js", "@diffexai/diffex-agent-core"); + const diffexTuiEntry = resolveWorkspaceOrImport("tui/dist/index.js", "@diffexai/diffex-tui"); // Extensions resolve the Diffex AI root to the compat entrypoint (a strict // superset of the core entrypoint): existing extensions using the old // global API keep working at runtime until compat is removed. - const diffexAiCompatEntry = resolveWorkspaceOrImport("ai/dist/compat.js", "@earendil-works/diffex-ai/compat"); - const diffexAiOauthEntry = resolveWorkspaceOrImport("ai/dist/oauth.js", "@earendil-works/diffex-ai/oauth"); + const diffexAiCompatEntry = resolveWorkspaceOrImport("ai/dist/compat.js", "@diffexai/diffex-ai/compat"); + const diffexAiOauthEntry = resolveWorkspaceOrImport("ai/dist/oauth.js", "@diffexai/diffex-ai/oauth"); const diffexAiProvidersEntry = resolveWorkspaceOrImport( "ai/dist/providers/all.js", - "@earendil-works/diffex-ai/providers/all", + "@diffexai/diffex-ai/providers/all", ); _aliases = { - "@earendil-works/diffex-coding-agent": diffexCodingAgentEntry, - "@earendil-works/diffex-agent-core": diffexAgentCoreEntry, - "@earendil-works/diffex-tui": diffexTuiEntry, - "@earendil-works/diffex-ai/providers/all": diffexAiProvidersEntry, - "@earendil-works/diffex-ai/compat": diffexAiCompatEntry, - "@earendil-works/diffex-ai/oauth": diffexAiOauthEntry, - "@earendil-works/diffex-ai": diffexAiCompatEntry, + "@diffexai/diffex": diffexCodingAgentEntry, + "@diffexai/diffex-agent-core": diffexAgentCoreEntry, + "@diffexai/diffex-tui": diffexTuiEntry, + "@diffexai/diffex-ai/providers/all": diffexAiProvidersEntry, + "@diffexai/diffex-ai/compat": diffexAiCompatEntry, + "@diffexai/diffex-ai/oauth": diffexAiOauthEntry, + "@diffexai/diffex-ai": diffexAiCompatEntry, "@mariozechner/pi-coding-agent": diffexCodingAgentEntry, "@mariozechner/pi-agent-core": diffexAgentCoreEntry, "@mariozechner/pi-tui": diffexTuiEntry, diff --git a/packages/coding-agent/src/core/extensions/runner.ts b/packages/coding-agent/src/core/extensions/runner.ts index 12fa67de3..7ca90b223 100644 --- a/packages/coding-agent/src/core/extensions/runner.ts +++ b/packages/coding-agent/src/core/extensions/runner.ts @@ -2,9 +2,9 @@ * Extension runner - executes extensions and manages their lifecycle. */ -import { type AgentMessage, NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@earendil-works/diffex-agent-core"; -import type { ImageContent, Model, Provider, ProviderHeaders } from "@earendil-works/diffex-ai"; -import type { KeyId } from "@earendil-works/diffex-tui"; +import { type AgentMessage, NOOP_TELEMETRY_CONTEXT, type TelemetryContext } from "@diffexai/diffex-agent-core"; +import type { ImageContent, Model, Provider, ProviderHeaders } from "@diffexai/diffex-ai"; +import type { KeyId } from "@diffexai/diffex-tui"; import { type Theme, theme } from "../../modes/interactive/theme/theme.ts"; import type { ResourceDiagnostic } from "../diagnostics.ts"; import type { KeybindingsConfig } from "../keybindings.ts"; diff --git a/packages/coding-agent/src/core/extensions/types.ts b/packages/coding-agent/src/core/extensions/types.ts index 9ea4c36ad..bd49f4677 100644 --- a/packages/coding-agent/src/core/extensions/types.ts +++ b/packages/coding-agent/src/core/extensions/types.ts @@ -14,7 +14,7 @@ import type { AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode, -} from "@earendil-works/diffex-agent-core"; +} from "@diffexai/diffex-agent-core"; import type { Api, AssistantMessageEvent, @@ -32,7 +32,7 @@ import type { TextContent, ToolResultMessage, Usage, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import type { AutocompleteItem, AutocompleteProvider, @@ -43,7 +43,7 @@ import type { OverlayHandle, OverlayOptions, TUI, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { Static, TSchema } from "typebox"; import type { Theme } from "../../modes/interactive/theme/theme.ts"; import type { BashResult } from "../bash-executor.ts"; @@ -235,12 +235,12 @@ export interface ExtensionUIContext { * - `keybindings`: KeybindingsManager for app-level keybindings * * For full app keybinding support (escape, ctrl+d, model switching, etc.), - * extend `CustomEditor` from `@earendil-works/diffex-coding-agent` and call + * extend `CustomEditor` from `@diffexai/diffex` and call * `super.handleInput(data)` for keys you don't handle. * * @example * ```ts - * import { CustomEditor } from "@earendil-works/diffex-coding-agent"; + * import { CustomEditor } from "@diffexai/diffex"; * * class VimEditor extends CustomEditor { * private mode: "normal" | "insert" = "insert"; diff --git a/packages/coding-agent/src/core/extensions/wrapper.ts b/packages/coding-agent/src/core/extensions/wrapper.ts index 10c1b8e9d..0957f7fa0 100644 --- a/packages/coding-agent/src/core/extensions/wrapper.ts +++ b/packages/coding-agent/src/core/extensions/wrapper.ts @@ -5,7 +5,7 @@ * Tool call and tool result interception is handled by AgentSession via agent-core hooks. */ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; import { wrapToolDefinition } from "../tools/tool-definition-wrapper.ts"; import type { ExtensionRunner } from "./runner.ts"; import type { RegisteredTool } from "./types.ts"; diff --git a/packages/coding-agent/src/core/finalized-plan.ts b/packages/coding-agent/src/core/finalized-plan.ts index db93dff93..68cbeab8b 100644 --- a/packages/coding-agent/src/core/finalized-plan.ts +++ b/packages/coding-agent/src/core/finalized-plan.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@earendil-works/diffex-ai/compat"; +import type { AssistantMessage } from "@diffexai/diffex-ai/compat"; const OPEN_TAG = ""; const CLOSE_TAG = ""; diff --git a/packages/coding-agent/src/core/harness-state-runtime.ts b/packages/coding-agent/src/core/harness-state-runtime.ts index 613f0d71b..311ef6d26 100644 --- a/packages/coding-agent/src/core/harness-state-runtime.ts +++ b/packages/coding-agent/src/core/harness-state-runtime.ts @@ -6,7 +6,7 @@ import { type HarnessVersionBundle, type HarnessWorkspaceIdentity, harnessWorkspaceSelectionFileName, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; export interface ResolvedHarnessWorkspace { readonly workspace: HarnessWorkspaceIdentity; diff --git a/packages/coding-agent/src/core/invocation-trace.ts b/packages/coding-agent/src/core/invocation-trace.ts index b574e1082..13ba38671 100644 --- a/packages/coding-agent/src/core/invocation-trace.ts +++ b/packages/coding-agent/src/core/invocation-trace.ts @@ -7,8 +7,8 @@ import { type SpanOptions, type TelemetryContext, type TelemetrySpan, -} from "@earendil-works/diffex-agent-core"; -import { uuidv7 } from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-agent-core"; +import { uuidv7 } from "@diffexai/diffex-ai"; import lockfile from "proper-lockfile"; import { classifyEvolutionEvidence } from "#evolution"; import { diff --git a/packages/coding-agent/src/core/keybindings.ts b/packages/coding-agent/src/core/keybindings.ts index d0c32ac88..d29d9a5cd 100644 --- a/packages/coding-agent/src/core/keybindings.ts +++ b/packages/coding-agent/src/core/keybindings.ts @@ -5,7 +5,7 @@ import { type KeyId, TUI_KEYBINDINGS, KeybindingsManager as TuiKeybindingsManager, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { existsSync, readFileSync } from "fs"; import { join } from "path"; import { getAgentDir } from "../config.ts"; @@ -59,7 +59,7 @@ export interface AppKeybindings { export type AppKeybinding = keyof AppKeybindings; -declare module "@earendil-works/diffex-tui" { +declare module "@diffexai/diffex-tui" { interface Keybindings extends AppKeybindings {} } diff --git a/packages/coding-agent/src/core/lesson-reports.ts b/packages/coding-agent/src/core/lesson-reports.ts index 858d1696e..81b7434b9 100644 --- a/packages/coding-agent/src/core/lesson-reports.ts +++ b/packages/coding-agent/src/core/lesson-reports.ts @@ -1,6 +1,6 @@ -import type { AgentLoopConfig, StreamFn } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, Tool } from "@earendil-works/diffex-ai"; -import type { HarnessVersion, HarnessVersionBundle } from "@earendil-works/diffex-harness-state"; +import type { AgentLoopConfig, StreamFn } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, Tool } from "@diffexai/diffex-ai"; +import type { HarnessVersion, HarnessVersionBundle } from "@diffexai/diffex-harness-state"; import { Type } from "typebox"; import { Check } from "typebox/value"; import { type EvolutionMemoryItem, type EvolutionMemoryWriter, parseEvolutionMemoryBlocks } from "#evolution"; diff --git a/packages/coding-agent/src/core/messages.ts b/packages/coding-agent/src/core/messages.ts index 9453fba3b..83e50d56b 100644 --- a/packages/coding-agent/src/core/messages.ts +++ b/packages/coding-agent/src/core/messages.ts @@ -5,8 +5,8 @@ * and provides a transformer to convert them to LLM-compatible messages. */ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { ImageContent, Message, TextContent } from "@earendil-works/diffex-ai"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { ImageContent, Message, TextContent } from "@diffexai/diffex-ai"; export const COMPACTION_SUMMARY_PREFIX = `The conversation history before this point was compacted into the following summary: @@ -67,7 +67,7 @@ export interface CompactionSummaryMessage { } // Extend CustomAgentMessages via declaration merging -declare module "@earendil-works/diffex-agent-core" { +declare module "@diffexai/diffex-agent-core" { interface CustomAgentMessages { bashExecution: BashExecutionMessage; custom: CustomMessage; diff --git a/packages/coding-agent/src/core/model-registry.ts b/packages/coding-agent/src/core/model-registry.ts index 4cb6d650f..8cc9de567 100644 --- a/packages/coding-agent/src/core/model-registry.ts +++ b/packages/coding-agent/src/core/model-registry.ts @@ -9,7 +9,7 @@ import type { ModelsRefreshResult, Provider, ProviderHeaders, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import type { ModelRuntime } from "./model-runtime.ts"; import type { AuthStatus, ProviderConfigInput } from "./provider-composer.ts"; diff --git a/packages/coding-agent/src/core/model-resolver.ts b/packages/coding-agent/src/core/model-resolver.ts index 0123e2c93..2b5246f16 100644 --- a/packages/coding-agent/src/core/model-resolver.ts +++ b/packages/coding-agent/src/core/model-resolver.ts @@ -2,14 +2,14 @@ * Model resolution, scoping, and initial selection */ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; import { type Api, type AuthOperationOptions, type KnownProvider, type Model, modelsAreEqual, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import chalk from "chalk"; import { minimatch } from "minimatch"; import { isValidThinkingLevel } from "../cli/args.ts"; diff --git a/packages/coding-agent/src/core/model-runtime.ts b/packages/coding-agent/src/core/model-runtime.ts index a70569468..d896bce33 100644 --- a/packages/coding-agent/src/core/model-runtime.ts +++ b/packages/coding-agent/src/core/model-runtime.ts @@ -35,8 +35,8 @@ import { type ProviderRequestOptions, type SimpleStreamOptions, type StreamOptions, -} from "@earendil-works/diffex-ai"; -import * as builtinProviderCatalog from "@earendil-works/diffex-ai/providers/all"; +} from "@diffexai/diffex-ai"; +import * as builtinProviderCatalog from "@diffexai/diffex-ai/providers/all"; import { getAgentDir } from "../config.ts"; import { operationSignal, raceWithAbortSignal } from "../utils/abort.ts"; import { AuthStorage as DefaultAuthStorage } from "./auth-storage.ts"; diff --git a/packages/coding-agent/src/core/models-store.ts b/packages/coding-agent/src/core/models-store.ts index 5776dcdbc..d0421eb76 100644 --- a/packages/coding-agent/src/core/models-store.ts +++ b/packages/coding-agent/src/core/models-store.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import type { ModelsStore, ModelsStoreEntry, ModelsStoreOperationOptions } from "@earendil-works/diffex-ai"; +import type { ModelsStore, ModelsStoreEntry, ModelsStoreOperationOptions } from "@diffexai/diffex-ai"; import { getAgentDir } from "../config.ts"; import { raceWithAbortSignal } from "../utils/abort.ts"; import { getFileRevision, normalizePath } from "../utils/paths.ts"; diff --git a/packages/coding-agent/src/core/private-report.ts b/packages/coding-agent/src/core/private-report.ts index 9e7f3a0a0..13178f800 100644 --- a/packages/coding-agent/src/core/private-report.ts +++ b/packages/coding-agent/src/core/private-report.ts @@ -1,6 +1,6 @@ -import type { PrivateContinuation, StreamFn } from "@earendil-works/diffex-agent-core"; -import type { Api, AssistantMessage, Context, Model, Tool } from "@earendil-works/diffex-ai"; -import { NOOP_TELEMETRY_CONTEXT } from "@earendil-works/diffex-telemetry"; +import type { PrivateContinuation, StreamFn } from "@diffexai/diffex-agent-core"; +import type { Api, AssistantMessage, Context, Model, Tool } from "@diffexai/diffex-ai"; +import { NOOP_TELEMETRY_CONTEXT } from "@diffexai/diffex-telemetry"; /** One private continuation, never routed through agent events or extension-instrumented transport. */ export function createPrivateReportContinuation(options: { diff --git a/packages/coding-agent/src/core/project-trust.ts b/packages/coding-agent/src/core/project-trust.ts index a6fa9532f..3c06bb0a9 100644 --- a/packages/coding-agent/src/core/project-trust.ts +++ b/packages/coding-agent/src/core/project-trust.ts @@ -1,4 +1,4 @@ -import type { TelemetryContext } from "@earendil-works/diffex-agent-core"; +import type { TelemetryContext } from "@diffexai/diffex-agent-core"; import { CONFIG_DIR_NAME } from "../config.ts"; import { emitProjectTrustEvent } from "./extensions/runner.ts"; import type { LoadExtensionsResult, ProjectTrustContext } from "./extensions/types.ts"; diff --git a/packages/coding-agent/src/core/provider-attribution.ts b/packages/coding-agent/src/core/provider-attribution.ts index 81731272f..ea2b380a8 100644 --- a/packages/coding-agent/src/core/provider-attribution.ts +++ b/packages/coding-agent/src/core/provider-attribution.ts @@ -1,4 +1,4 @@ -import type { Api, Model, ProviderHeaders } from "@earendil-works/diffex-ai"; +import type { Api, Model, ProviderHeaders } from "@diffexai/diffex-ai"; import type { SettingsManager } from "./settings-manager.ts"; import { isInstallTelemetryEnabled } from "./telemetry.ts"; diff --git a/packages/coding-agent/src/core/provider-composer.ts b/packages/coding-agent/src/core/provider-composer.ts index 2dd530f05..a28c3d7a8 100644 --- a/packages/coding-agent/src/core/provider-composer.ts +++ b/packages/coding-agent/src/core/provider-composer.ts @@ -18,8 +18,8 @@ import { type RefreshModelsContext, type SimpleStreamOptions, type StreamOptions, -} from "@earendil-works/diffex-ai"; -import { getApiProvider } from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai"; +import { getApiProvider } from "@diffexai/diffex-ai/compat"; import type { ModelConfig, ModelsJsonModel, ModelsJsonModelOverride, ModelsJsonProvider } from "./model-config.ts"; import { clearConfigValueCache, diff --git a/packages/coding-agent/src/core/remote-catalog-provider.ts b/packages/coding-agent/src/core/remote-catalog-provider.ts index 2d76c2186..7bc33d71c 100644 --- a/packages/coding-agent/src/core/remote-catalog-provider.ts +++ b/packages/coding-agent/src/core/remote-catalog-provider.ts @@ -1,4 +1,4 @@ -import type { Api, Model, ModelsStoreEntry, Provider } from "@earendil-works/diffex-ai"; +import type { Api, Model, ModelsStoreEntry, Provider } from "@diffexai/diffex-ai"; import { VERSION } from "../config.ts"; import { getDiffexUserAgent } from "../utils/diffex-user-agent.ts"; import { fetchWithRetry } from "../utils/management-http.ts"; diff --git a/packages/coding-agent/src/core/runtime-credentials.ts b/packages/coding-agent/src/core/runtime-credentials.ts index 1fe8d41ea..5c2a4ddc0 100644 --- a/packages/coding-agent/src/core/runtime-credentials.ts +++ b/packages/coding-agent/src/core/runtime-credentials.ts @@ -1,4 +1,4 @@ -import type { AuthOperationOptions, Credential, CredentialInfo, CredentialStore } from "@earendil-works/diffex-ai"; +import type { AuthOperationOptions, Credential, CredentialInfo, CredentialStore } from "@diffexai/diffex-ai"; /** Async credential store overlay for non-persistent runtime API keys. */ export class RuntimeCredentials implements CredentialStore { diff --git a/packages/coding-agent/src/core/sdk.ts b/packages/coding-agent/src/core/sdk.ts index f47283e06..ab01aad0c 100644 --- a/packages/coding-agent/src/core/sdk.ts +++ b/packages/coding-agent/src/core/sdk.ts @@ -7,9 +7,9 @@ import { setDefaultStreamFn, type TelemetryContext, type ThinkingLevel, -} from "@earendil-works/diffex-agent-core"; -import { clampThinkingLevel, type Message, type Model, streamSimple } from "@earendil-works/diffex-ai/compat"; -import type { HarnessStateStore, HarnessVersionBundle } from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-agent-core"; +import { clampThinkingLevel, type Message, type Model, streamSimple } from "@diffexai/diffex-ai/compat"; +import type { HarnessStateStore, HarnessVersionBundle } from "@diffexai/diffex-harness-state"; import { EvolutionMemoryWriter, FileEvolutionPersistence } from "#evolution"; import { getAgentDir, VERSION } from "../config.ts"; import { resolvePath } from "../utils/paths.ts"; @@ -384,7 +384,7 @@ function restoreRootSubagents( * const { session } = await createAgentSession(); * * // With explicit model - * import { getModel } from '@earendil-works/diffex-ai'; + * import { getModel } from '@diffexai/diffex-ai'; * const { session } = await createAgentSession({ * model: getModel('anthropic', 'claude-opus-4-5'), * thinkingLevel: 'high', diff --git a/packages/coding-agent/src/core/session-manager.ts b/packages/coding-agent/src/core/session-manager.ts index d0df46945..ea3ed7278 100644 --- a/packages/coding-agent/src/core/session-manager.ts +++ b/packages/coding-agent/src/core/session-manager.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import { type ImageContent, type Message, type TextContent, type Usage, uuidv7 } from "@earendil-works/diffex-ai"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import { type ImageContent, type Message, type TextContent, type Usage, uuidv7 } from "@diffexai/diffex-ai"; import { createHash, randomUUID } from "crypto"; import { appendFileSync, diff --git a/packages/coding-agent/src/core/settings-manager.ts b/packages/coding-agent/src/core/settings-manager.ts index 8a7f818b2..bf4f02087 100644 --- a/packages/coding-agent/src/core/settings-manager.ts +++ b/packages/coding-agent/src/core/settings-manager.ts @@ -1,6 +1,6 @@ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import type { Transport } from "@earendil-works/diffex-ai"; -import type { TuiMode as RendererTuiMode, ScrollViewScrollbar } from "@earendil-works/diffex-tui"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; +import type { Transport } from "@diffexai/diffex-ai"; +import type { TuiMode as RendererTuiMode, ScrollViewScrollbar } from "@diffexai/diffex-tui"; import { randomUUID } from "crypto"; import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs"; import { dirname, join } from "path"; diff --git a/packages/coding-agent/src/core/skill-reports.ts b/packages/coding-agent/src/core/skill-reports.ts index fb0d5c486..b3b219f08 100644 --- a/packages/coding-agent/src/core/skill-reports.ts +++ b/packages/coding-agent/src/core/skill-reports.ts @@ -1,11 +1,11 @@ -import type { AgentLoopConfig, StreamFn } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, Tool } from "@earendil-works/diffex-ai"; +import type { AgentLoopConfig, StreamFn } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, Tool } from "@diffexai/diffex-ai"; import { computeHarnessSkillId, type HarnessVersion, type HarnessVersionBundle, type HarnessWorkspaceIdentity, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import { Type } from "typebox"; import { Check } from "typebox/value"; import type { EvolutionScope, SkillScoreIdentity } from "#evolution"; diff --git a/packages/coding-agent/src/core/skills.ts b/packages/coding-agent/src/core/skills.ts index 51e0c7f41..eb7a266f3 100644 --- a/packages/coding-agent/src/core/skills.ts +++ b/packages/coding-agent/src/core/skills.ts @@ -3,7 +3,7 @@ import { computeHarnessSkillId, type HarnessVersionBundle, type HarnessWorkspaceIdentity, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import { existsSync, readdirSync, readFileSync, statSync } from "fs"; import ignore from "ignore"; import { basename, dirname, join, relative, resolve, sep } from "path"; diff --git a/packages/coding-agent/src/core/subagents/controller.ts b/packages/coding-agent/src/core/subagents/controller.ts index 6864f713c..9320dd7e9 100644 --- a/packages/coding-agent/src/core/subagents/controller.ts +++ b/packages/coding-agent/src/core/subagents/controller.ts @@ -1,5 +1,5 @@ -import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext, uuidv7 } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage } from "@earendil-works/diffex-ai"; +import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext, uuidv7 } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; import type { AgentSession } from "../agent-session.ts"; import type { ToolDefinition } from "../extensions/types.ts"; import { startCodingAgentSpan } from "../telemetry.ts"; diff --git a/packages/coding-agent/src/core/subagents/persistence.ts b/packages/coding-agent/src/core/subagents/persistence.ts index 5c661e02b..a5da699ba 100644 --- a/packages/coding-agent/src/core/subagents/persistence.ts +++ b/packages/coding-agent/src/core/subagents/persistence.ts @@ -1,7 +1,7 @@ import { existsSync, lstatSync, mkdirSync, readdirSync } from "node:fs"; import { dirname, isAbsolute, relative, resolve, sep } from "node:path"; -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import { uuidv7 } from "@earendil-works/diffex-ai"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; +import { uuidv7 } from "@diffexai/diffex-ai"; import { assertValidSessionId, type CustomEntry, diff --git a/packages/coding-agent/src/core/subagents/services.ts b/packages/coding-agent/src/core/subagents/services.ts index 54a836422..3f39ff7a4 100644 --- a/packages/coding-agent/src/core/subagents/services.ts +++ b/packages/coding-agent/src/core/subagents/services.ts @@ -1,7 +1,7 @@ -import type { TelemetryContext, ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import type { Model } from "@earendil-works/diffex-ai"; -import { clampThinkingLevel } from "@earendil-works/diffex-ai/compat"; -import type { HarnessStateStore, HarnessVersionBundle } from "@earendil-works/diffex-harness-state"; +import type { TelemetryContext, ThinkingLevel } from "@diffexai/diffex-agent-core"; +import type { Model } from "@diffexai/diffex-ai"; +import { clampThinkingLevel } from "@diffexai/diffex-ai/compat"; +import type { HarnessStateStore, HarnessVersionBundle } from "@diffexai/diffex-harness-state"; import type { AgentSession } from "../agent-session.ts"; import { type AgentSessionServices, diff --git a/packages/coding-agent/src/core/subagents/types.ts b/packages/coding-agent/src/core/subagents/types.ts index 129735469..f1bd5f473 100644 --- a/packages/coding-agent/src/core/subagents/types.ts +++ b/packages/coding-agent/src/core/subagents/types.ts @@ -1,4 +1,4 @@ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; import type { AgentSession } from "../agent-session.ts"; import type { SessionManager } from "../session-manager.ts"; import type { ToolName } from "../tools/index.ts"; diff --git a/packages/coding-agent/src/core/telemetry.ts b/packages/coding-agent/src/core/telemetry.ts index 44c34cf9a..14e156959 100644 --- a/packages/coding-agent/src/core/telemetry.ts +++ b/packages/coding-agent/src/core/telemetry.ts @@ -7,7 +7,7 @@ import type { TelemetrySchemaSpanName, TelemetrySchemaSpanStartAttributes, TelemetrySchemaSpanUnion, -} from "@earendil-works/diffex-agent-core"; +} from "@diffexai/diffex-agent-core"; import type { SettingsManager } from "./settings-manager.ts"; function isTruthyEnvFlag(value: string | undefined): boolean { diff --git a/packages/coding-agent/src/core/tools/bash.ts b/packages/coding-agent/src/core/tools/bash.ts index fe56547bc..00d008f1c 100644 --- a/packages/coding-agent/src/core/tools/bash.ts +++ b/packages/coding-agent/src/core/tools/bash.ts @@ -1,7 +1,7 @@ import { constants } from "node:fs"; import { access as fsAccess } from "node:fs/promises"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Container, Text, truncateToWidth } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Container, Text, truncateToWidth } from "@diffexai/diffex-tui"; import { spawn } from "child_process"; import { type Static, Type } from "typebox"; import { keyHint } from "../../modes/interactive/components/keybinding-hints.ts"; diff --git a/packages/coding-agent/src/core/tools/edit.ts b/packages/coding-agent/src/core/tools/edit.ts index 2970ae8a1..cca7b62a8 100644 --- a/packages/coding-agent/src/core/tools/edit.ts +++ b/packages/coding-agent/src/core/tools/edit.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Box, Container, Spacer, Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Box, Container, Spacer, Text } from "@diffexai/diffex-tui"; import { constants } from "fs"; import { access as fsAccess, readFile as fsReadFile, writeFile as fsWriteFile } from "fs/promises"; import { type Static, Type } from "typebox"; diff --git a/packages/coding-agent/src/core/tools/find.ts b/packages/coding-agent/src/core/tools/find.ts index b13477b48..60899fd87 100644 --- a/packages/coding-agent/src/core/tools/find.ts +++ b/packages/coding-agent/src/core/tools/find.ts @@ -1,6 +1,6 @@ import { createInterface } from "node:readline"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Text } from "@diffexai/diffex-tui"; import { spawn } from "child_process"; import path from "path"; import { type Static, Type } from "typebox"; diff --git a/packages/coding-agent/src/core/tools/grep.ts b/packages/coding-agent/src/core/tools/grep.ts index 646b5a0fa..5d7b3c19f 100644 --- a/packages/coding-agent/src/core/tools/grep.ts +++ b/packages/coding-agent/src/core/tools/grep.ts @@ -1,7 +1,7 @@ import { readFile as fsReadFile, stat as fsStat } from "node:fs/promises"; import { createInterface } from "node:readline"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Text } from "@diffexai/diffex-tui"; import { spawn } from "child_process"; import path from "path"; import { type Static, Type } from "typebox"; diff --git a/packages/coding-agent/src/core/tools/index.ts b/packages/coding-agent/src/core/tools/index.ts index 3a735192a..0f39e387e 100644 --- a/packages/coding-agent/src/core/tools/index.ts +++ b/packages/coding-agent/src/core/tools/index.ts @@ -76,7 +76,7 @@ export { type WriteToolOptions, } from "./write.ts"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; import type { ToolDefinition } from "../extensions/types.ts"; import { type BashToolOptions, createBashTool, createBashToolDefinition } from "./bash.ts"; import { createEditTool, createEditToolDefinition, type EditToolOptions } from "./edit.ts"; diff --git a/packages/coding-agent/src/core/tools/ls.ts b/packages/coding-agent/src/core/tools/ls.ts index 4a08c0665..65b050f0e 100644 --- a/packages/coding-agent/src/core/tools/ls.ts +++ b/packages/coding-agent/src/core/tools/ls.ts @@ -1,6 +1,6 @@ import { readdir as fsReaddir, stat as fsStat } from "node:fs/promises"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Text } from "@diffexai/diffex-tui"; import nodePath from "path"; import { type Static, Type } from "typebox"; import { keyHint } from "../../modes/interactive/components/keybinding-hints.ts"; diff --git a/packages/coding-agent/src/core/tools/read.ts b/packages/coding-agent/src/core/tools/read.ts index 90adcafff..97f6910d6 100644 --- a/packages/coding-agent/src/core/tools/read.ts +++ b/packages/coding-agent/src/core/tools/read.ts @@ -1,8 +1,8 @@ import { createHash } from "node:crypto"; import { basename, dirname, isAbsolute, relative, resolve as resolvePath, sep } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import type { Api, ImageContent, Model, TextContent } from "@earendil-works/diffex-ai"; -import { Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import type { Api, ImageContent, Model, TextContent } from "@diffexai/diffex-ai"; +import { Text } from "@diffexai/diffex-tui"; import { constants } from "fs"; import { access as fsAccess, readFile as fsReadFile } from "fs/promises"; import { type Static, Type } from "typebox"; diff --git a/packages/coding-agent/src/core/tools/render-utils.ts b/packages/coding-agent/src/core/tools/render-utils.ts index 324970a57..8463a7d1e 100644 --- a/packages/coding-agent/src/core/tools/render-utils.ts +++ b/packages/coding-agent/src/core/tools/render-utils.ts @@ -1,7 +1,7 @@ import * as os from "node:os"; import { pathToFileURL } from "node:url"; -import type { ImageContent, TextContent } from "@earendil-works/diffex-ai"; -import { getCapabilities, getImageDimensions, hyperlink, imageFallback } from "@earendil-works/diffex-tui"; +import type { ImageContent, TextContent } from "@diffexai/diffex-ai"; +import { getCapabilities, getImageDimensions, hyperlink, imageFallback } from "@diffexai/diffex-tui"; import type { Theme } from "../../modes/interactive/theme/theme.ts"; import { stripAnsi } from "../../utils/ansi.ts"; import { resolvePath } from "../../utils/paths.ts"; diff --git a/packages/coding-agent/src/core/tools/request-user-input.ts b/packages/coding-agent/src/core/tools/request-user-input.ts index 3182b889a..a15dcd755 100644 --- a/packages/coding-agent/src/core/tools/request-user-input.ts +++ b/packages/coding-agent/src/core/tools/request-user-input.ts @@ -1,4 +1,4 @@ -import { Container, Text } from "@earendil-works/diffex-tui"; +import { Container, Text } from "@diffexai/diffex-tui"; import { Type } from "typebox"; import { RequestUserInputComponent } from "../../modes/interactive/components/request-user-input.ts"; import type { ToolDefinition } from "../extensions/types.ts"; diff --git a/packages/coding-agent/src/core/tools/tool-definition-wrapper.ts b/packages/coding-agent/src/core/tools/tool-definition-wrapper.ts index 25852a013..5fefeeb72 100644 --- a/packages/coding-agent/src/core/tools/tool-definition-wrapper.ts +++ b/packages/coding-agent/src/core/tools/tool-definition-wrapper.ts @@ -1,4 +1,4 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; import type { ExtensionContext, ToolDefinition } from "../extensions/types.ts"; /** Wrap a ToolDefinition into an AgentTool for the core runtime. */ diff --git a/packages/coding-agent/src/core/tools/update-plan.ts b/packages/coding-agent/src/core/tools/update-plan.ts index d23d6be15..a14f55fd5 100644 --- a/packages/coding-agent/src/core/tools/update-plan.ts +++ b/packages/coding-agent/src/core/tools/update-plan.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Container, Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Container, Text } from "@diffexai/diffex-tui"; import { Type } from "typebox"; import type { Theme } from "../../modes/interactive/theme/theme.ts"; import type { ToolDefinition } from "../extensions/types.ts"; diff --git a/packages/coding-agent/src/core/tools/write.ts b/packages/coding-agent/src/core/tools/write.ts index fbd1550ee..338677667 100644 --- a/packages/coding-agent/src/core/tools/write.ts +++ b/packages/coding-agent/src/core/tools/write.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Container, Text } from "@earendil-works/diffex-tui"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Container, Text } from "@diffexai/diffex-tui"; import { mkdir as fsMkdir, writeFile as fsWriteFile } from "fs/promises"; import { dirname } from "path"; import { type Static, Type } from "typebox"; diff --git a/packages/coding-agent/src/core/usage-totals.ts b/packages/coding-agent/src/core/usage-totals.ts index 475db11a9..d9a2c5d5e 100644 --- a/packages/coding-agent/src/core/usage-totals.ts +++ b/packages/coding-agent/src/core/usage-totals.ts @@ -1,4 +1,4 @@ -import type { Usage } from "@earendil-works/diffex-ai/compat"; +import type { Usage } from "@diffexai/diffex-ai/compat"; import type { SessionEntry } from "./session-manager.ts"; export interface UsageTotals { diff --git a/packages/coding-agent/src/extensions/llama/provider.ts b/packages/coding-agent/src/extensions/llama/provider.ts index 80819d296..8682edb80 100644 --- a/packages/coding-agent/src/extensions/llama/provider.ts +++ b/packages/coding-agent/src/extensions/llama/provider.ts @@ -6,8 +6,8 @@ import type { Provider, ProviderStreamOptions, RefreshModelsContext, -} from "@earendil-works/diffex-ai"; -import { stream, streamSimple } from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai"; +import { stream, streamSimple } from "@diffexai/diffex-ai/compat"; import { LlamaClient, type LlamaModelInfo, llamaInferenceUrl, normalizeLlamaServerUrl } from "./client.ts"; export const LLAMA_PROVIDER_ID = "llama.cpp"; diff --git a/packages/coding-agent/src/extensions/llama/ui.ts b/packages/coding-agent/src/extensions/llama/ui.ts index 9e1b47ee0..5fc81aed7 100644 --- a/packages/coding-agent/src/extensions/llama/ui.ts +++ b/packages/coding-agent/src/extensions/llama/ui.ts @@ -11,7 +11,7 @@ import { type TUI, truncateToWidth, visibleWidth, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { ExtensionCommandContext } from "../../core/extensions/types.ts"; import type { KeybindingsManager } from "../../core/keybindings.ts"; import { DynamicBorder } from "../../modes/interactive/components/dynamic-border.ts"; diff --git a/packages/coding-agent/src/main.ts b/packages/coding-agent/src/main.ts index d05d0a9f5..a7bbf5799 100644 --- a/packages/coding-agent/src/main.ts +++ b/packages/coding-agent/src/main.ts @@ -6,7 +6,7 @@ */ import { createInterface } from "node:readline"; -import { type ImageContent, modelsAreEqual } from "@earendil-works/diffex-ai"; +import { type ImageContent, modelsAreEqual } from "@diffexai/diffex-ai"; import chalk from "chalk"; import { type Args, type Mode, parseArgs, printHelp } from "./cli/args.ts"; import { diff --git a/packages/coding-agent/src/modes/interactive/assets/clankolas.png b/packages/coding-agent/src/modes/interactive/assets/clankolas.png deleted file mode 100644 index d3dc65da9..000000000 Binary files a/packages/coding-agent/src/modes/interactive/assets/clankolas.png and /dev/null differ diff --git a/packages/coding-agent/src/modes/interactive/components/armin.ts b/packages/coding-agent/src/modes/interactive/components/armin.ts index 092a69252..39a214285 100644 --- a/packages/coding-agent/src/modes/interactive/components/armin.ts +++ b/packages/coding-agent/src/modes/interactive/components/armin.ts @@ -2,7 +2,7 @@ * Armin says hi! A fun easter egg with animated XBM art. */ -import type { Component, TUI } from "@earendil-works/diffex-tui"; +import type { Component, TUI } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; // XBM image: 31x36 pixels, LSB first, 1=background, 0=foreground diff --git a/packages/coding-agent/src/modes/interactive/components/assistant-message.ts b/packages/coding-agent/src/modes/interactive/components/assistant-message.ts index 412785dc3..0d04d6e74 100644 --- a/packages/coding-agent/src/modes/interactive/components/assistant-message.ts +++ b/packages/coding-agent/src/modes/interactive/components/assistant-message.ts @@ -1,5 +1,5 @@ -import type { AssistantMessage } from "@earendil-works/diffex-ai"; -import { Container, getGlyphs, Markdown, type MarkdownTheme, Spacer, Text } from "@earendil-works/diffex-tui"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; +import { Container, getGlyphs, Markdown, type MarkdownTheme, Spacer, Text } from "@diffexai/diffex-tui"; import type { MarkdownTransformer } from "../../../core/extensions/types.ts"; import { getMarkdownTheme, theme } from "../theme/theme.ts"; import { diff --git a/packages/coding-agent/src/modes/interactive/components/bash-execution.ts b/packages/coding-agent/src/modes/interactive/components/bash-execution.ts index 49aa09f4e..0ad1a0663 100644 --- a/packages/coding-agent/src/modes/interactive/components/bash-execution.ts +++ b/packages/coding-agent/src/modes/interactive/components/bash-execution.ts @@ -2,7 +2,7 @@ * Component for displaying bash command execution with streaming output. */ -import { Container, getGlyphs, Loader, Spacer, Text, type TUI } from "@earendil-works/diffex-tui"; +import { Container, getGlyphs, Loader, Spacer, Text, type TUI } from "@diffexai/diffex-tui"; import { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, diff --git a/packages/coding-agent/src/modes/interactive/components/bordered-loader.ts b/packages/coding-agent/src/modes/interactive/components/bordered-loader.ts index 65d7020ac..1b90670cc 100644 --- a/packages/coding-agent/src/modes/interactive/components/bordered-loader.ts +++ b/packages/coding-agent/src/modes/interactive/components/bordered-loader.ts @@ -1,4 +1,4 @@ -import { CancellableLoader, Container, getGlyphs, Loader, type TUI } from "@earendil-works/diffex-tui"; +import { CancellableLoader, Container, getGlyphs, Loader, type TUI } from "@diffexai/diffex-tui"; import type { Theme } from "../theme/theme.ts"; import { keyText } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/branch-summary-message.ts b/packages/coding-agent/src/modes/interactive/components/branch-summary-message.ts index 1b113be99..7de1a6242 100644 --- a/packages/coding-agent/src/modes/interactive/components/branch-summary-message.ts +++ b/packages/coding-agent/src/modes/interactive/components/branch-summary-message.ts @@ -1,4 +1,4 @@ -import { Container, getGlyphs, Markdown, type MarkdownTheme, Text } from "@earendil-works/diffex-tui"; +import { Container, getGlyphs, Markdown, type MarkdownTheme, Text } from "@diffexai/diffex-tui"; import type { BranchSummaryMessage } from "../../../core/messages.ts"; import { getMarkdownTheme, theme } from "../theme/theme.ts"; import { keyText } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/compaction-summary-message.ts b/packages/coding-agent/src/modes/interactive/components/compaction-summary-message.ts index ac765c2d0..da937759e 100644 --- a/packages/coding-agent/src/modes/interactive/components/compaction-summary-message.ts +++ b/packages/coding-agent/src/modes/interactive/components/compaction-summary-message.ts @@ -1,4 +1,4 @@ -import { Container, getGlyphs, Markdown, type MarkdownTheme, Text } from "@earendil-works/diffex-tui"; +import { Container, getGlyphs, Markdown, type MarkdownTheme, Text } from "@diffexai/diffex-tui"; import type { CompactionSummaryMessage } from "../../../core/messages.ts"; import { getMarkdownTheme, theme } from "../theme/theme.ts"; import { keyText } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/config-selector.ts b/packages/coding-agent/src/modes/interactive/components/config-selector.ts index a3b8e0058..99b1f6172 100644 --- a/packages/coding-agent/src/modes/interactive/components/config-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/config-selector.ts @@ -17,7 +17,7 @@ import { truncateToWidth, UNSELECTED_LIST_PREFIX, visibleWidth, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { CONFIG_DIR_NAME } from "../../../config.ts"; import type { PathMetadata, ResolvedPaths, ResolvedResource } from "../../../core/package-manager.ts"; import type { PackageSource, SettingsManager } from "../../../core/settings-manager.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/countdown-timer.ts b/packages/coding-agent/src/modes/interactive/components/countdown-timer.ts index 2615e4683..5409caa3b 100644 --- a/packages/coding-agent/src/modes/interactive/components/countdown-timer.ts +++ b/packages/coding-agent/src/modes/interactive/components/countdown-timer.ts @@ -2,7 +2,7 @@ * Reusable countdown timer for dialog components. */ -import type { TUI } from "@earendil-works/diffex-tui"; +import type { TUI } from "@diffexai/diffex-tui"; export class CountdownTimer { private intervalId: ReturnType | undefined; diff --git a/packages/coding-agent/src/modes/interactive/components/custom-editor.ts b/packages/coding-agent/src/modes/interactive/components/custom-editor.ts index 0591f0476..895f40529 100644 --- a/packages/coding-agent/src/modes/interactive/components/custom-editor.ts +++ b/packages/coding-agent/src/modes/interactive/components/custom-editor.ts @@ -1,4 +1,4 @@ -import { Editor, type EditorOptions, type EditorTheme, type TUI } from "@earendil-works/diffex-tui"; +import { Editor, type EditorOptions, type EditorTheme, type TUI } from "@diffexai/diffex-tui"; import type { AppKeybinding, KeybindingsManager } from "../../../core/keybindings.ts"; /** diff --git a/packages/coding-agent/src/modes/interactive/components/custom-entry.ts b/packages/coding-agent/src/modes/interactive/components/custom-entry.ts index 85a8d97e1..4a80f2bf4 100644 --- a/packages/coding-agent/src/modes/interactive/components/custom-entry.ts +++ b/packages/coding-agent/src/modes/interactive/components/custom-entry.ts @@ -1,5 +1,5 @@ -import type { Component } from "@earendil-works/diffex-tui"; -import { Container, getGlyphs, Spacer, Text } from "@earendil-works/diffex-tui"; +import type { Component } from "@diffexai/diffex-tui"; +import { Container, getGlyphs, Spacer, Text } from "@diffexai/diffex-tui"; import type { EntryRenderer } from "../../../core/extensions/types.ts"; import type { CustomEntry } from "../../../core/session-manager.ts"; import { theme } from "../theme/theme.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/custom-message.ts b/packages/coding-agent/src/modes/interactive/components/custom-message.ts index ea8e45722..fc5ac72f7 100644 --- a/packages/coding-agent/src/modes/interactive/components/custom-message.ts +++ b/packages/coding-agent/src/modes/interactive/components/custom-message.ts @@ -1,6 +1,6 @@ -import type { TextContent } from "@earendil-works/diffex-ai"; -import type { Component } from "@earendil-works/diffex-tui"; -import { Container, getGlyphs, Markdown, type MarkdownTheme, Spacer, Text } from "@earendil-works/diffex-tui"; +import type { TextContent } from "@diffexai/diffex-ai"; +import type { Component } from "@diffexai/diffex-tui"; +import { Container, getGlyphs, Markdown, type MarkdownTheme, Spacer, Text } from "@diffexai/diffex-tui"; import type { MessageRenderer } from "../../../core/extensions/types.ts"; import type { CustomMessage } from "../../../core/messages.ts"; import { getMarkdownTheme, theme } from "../theme/theme.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/daxnuts.ts b/packages/coding-agent/src/modes/interactive/components/daxnuts.ts index 1892f1068..1d56d7a41 100644 --- a/packages/coding-agent/src/modes/interactive/components/daxnuts.ts +++ b/packages/coding-agent/src/modes/interactive/components/daxnuts.ts @@ -4,7 +4,7 @@ * A heartfelt tribute to dax (@thdxr) for providing free Kimi K2.5 access via OpenCode. */ -import type { Component, TUI } from "@earendil-works/diffex-tui"; +import type { Component, TUI } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; // 32x32 RGB image of dax, hex encoded (3 bytes per pixel) diff --git a/packages/coding-agent/src/modes/interactive/components/diffex-path.ts b/packages/coding-agent/src/modes/interactive/components/diffex-path.ts index 6f5f11b4d..0d0af03cc 100644 --- a/packages/coding-agent/src/modes/interactive/components/diffex-path.ts +++ b/packages/coding-agent/src/modes/interactive/components/diffex-path.ts @@ -1,4 +1,4 @@ -import { type Component, getGlyphs, Spacer, truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import { type Component, getGlyphs, Spacer, truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; const EXTENDED_HINGE_MIN_COLUMNS = 80; diff --git a/packages/coding-agent/src/modes/interactive/components/diffex-welcome.ts b/packages/coding-agent/src/modes/interactive/components/diffex-welcome.ts index b5350ba35..468fa127f 100644 --- a/packages/coding-agent/src/modes/interactive/components/diffex-welcome.ts +++ b/packages/coding-agent/src/modes/interactive/components/diffex-welcome.ts @@ -1,4 +1,4 @@ -import { type Component, getGlyphs, sliceByColumn, Text, type TUI, visibleWidth } from "@earendil-works/diffex-tui"; +import { type Component, getGlyphs, sliceByColumn, Text, type TUI, visibleWidth } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; export const DIFFEX_LOGO_ART = [ diff --git a/packages/coding-agent/src/modes/interactive/components/dynamic-border.ts b/packages/coding-agent/src/modes/interactive/components/dynamic-border.ts index 36eef5dff..0f1f8c3b6 100644 --- a/packages/coding-agent/src/modes/interactive/components/dynamic-border.ts +++ b/packages/coding-agent/src/modes/interactive/components/dynamic-border.ts @@ -1,4 +1,4 @@ -import { type Component, getGlyphs } from "@earendil-works/diffex-tui"; +import { type Component, getGlyphs } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; /** diff --git a/packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts b/packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts deleted file mode 100644 index 1735186b3..000000000 --- a/packages/coding-agent/src/modes/interactive/components/earendil-announcement.ts +++ /dev/null @@ -1,48 +0,0 @@ -import * as fs from "node:fs"; -import { Container, Image, Spacer, Text } from "@earendil-works/diffex-tui"; -import { getBundledInteractiveAssetPath } from "../../../config.ts"; -import { theme } from "../theme/theme.ts"; - -const BLOG_URL = "https://mariozechner.at/posts/2026-04-08-ive-sold-out/"; -const IMAGE_FILENAME = "clankolas.png"; - -let cachedImageBase64: string | undefined; -let attemptedImageLoad = false; - -function loadImageBase64(): string | undefined { - if (attemptedImageLoad) { - return cachedImageBase64; - } - - attemptedImageLoad = true; - try { - cachedImageBase64 = fs.readFileSync(getBundledInteractiveAssetPath(IMAGE_FILENAME)).toString("base64"); - } catch { - cachedImageBase64 = undefined; - } - return cachedImageBase64; -} - -export class EarendilAnnouncementComponent extends Container { - constructor() { - super(); - - this.addChild(new Text(theme.bold(theme.fg("accent", "Diffex has joined Earendil")), 1, 0)); - this.addChild(new Spacer(1)); - this.addChild(new Text(theme.fg("muted", "Read the blog post:"), 1, 0)); - this.addChild(new Text(theme.fg("mdLink", BLOG_URL), 1, 0)); - this.addChild(new Spacer(1)); - - const imageBase64 = loadImageBase64(); - if (imageBase64) { - this.addChild( - new Image( - imageBase64, - "image/png", - { fallbackColor: (text) => theme.fg("muted", text) }, - { maxWidthCells: 56, filename: IMAGE_FILENAME }, - ), - ); - } - } -} diff --git a/packages/coding-agent/src/modes/interactive/components/evolution-menu.ts b/packages/coding-agent/src/modes/interactive/components/evolution-menu.ts index 30bcc0804..2fa0dde03 100644 --- a/packages/coding-agent/src/modes/interactive/components/evolution-menu.ts +++ b/packages/coding-agent/src/modes/interactive/components/evolution-menu.ts @@ -8,7 +8,7 @@ import { Text, TruncatedText, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { diffLines } from "diff"; import type { EvolutionHarnessVersionInfo, diff --git a/packages/coding-agent/src/modes/interactive/components/extension-editor.ts b/packages/coding-agent/src/modes/interactive/components/extension-editor.ts index b3fd18639..d336f8af2 100644 --- a/packages/coding-agent/src/modes/interactive/components/extension-editor.ts +++ b/packages/coding-agent/src/modes/interactive/components/extension-editor.ts @@ -12,7 +12,7 @@ import { Spacer, Text, type TUI, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { KeybindingsManager } from "../../../core/keybindings.ts"; import { editInExternalEditor } from "../external-editor.ts"; import { getEditorTheme, theme } from "../theme/theme.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/extension-input.ts b/packages/coding-agent/src/modes/interactive/components/extension-input.ts index b9e0994ca..cde089311 100644 --- a/packages/coding-agent/src/modes/interactive/components/extension-input.ts +++ b/packages/coding-agent/src/modes/interactive/components/extension-input.ts @@ -2,7 +2,7 @@ * Simple text input component for extensions. */ -import { Container, type Focusable, getKeybindings, Input, Spacer, Text, type TUI } from "@earendil-works/diffex-tui"; +import { Container, type Focusable, getKeybindings, Input, Spacer, Text, type TUI } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; import { CountdownTimer } from "./countdown-timer.ts"; import { keyHint } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/extension-selector.ts b/packages/coding-agent/src/modes/interactive/components/extension-selector.ts index 12163766c..40bb3b473 100644 --- a/packages/coding-agent/src/modes/interactive/components/extension-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/extension-selector.ts @@ -13,7 +13,7 @@ import { type TUI, truncateToWidth, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; import { CountdownTimer } from "./countdown-timer.ts"; import { keyHint, rawKeyHint } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/first-time-setup.ts b/packages/coding-agent/src/modes/interactive/components/first-time-setup.ts index 3585de201..c2099f594 100644 --- a/packages/coding-agent/src/modes/interactive/components/first-time-setup.ts +++ b/packages/coding-agent/src/modes/interactive/components/first-time-setup.ts @@ -6,7 +6,7 @@ import { Spacer, Text, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { type TerminalTheme, theme } from "../theme/theme.ts"; import { DIFFEX_LOGO_ART } from "./diffex-welcome.ts"; import { keyHint, rawKeyHint } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/footer.ts b/packages/coding-agent/src/modes/interactive/components/footer.ts index e5a31a480..ec12b1c90 100644 --- a/packages/coding-agent/src/modes/interactive/components/footer.ts +++ b/packages/coding-agent/src/modes/interactive/components/footer.ts @@ -1,5 +1,5 @@ import { isAbsolute, relative, resolve, sep } from "node:path"; -import { type Component, getGlyphs, truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import { type Component, getGlyphs, truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; import type { AgentSession } from "../../../core/agent-session.ts"; import { getCollaborationMode } from "../../../core/collaboration-mode.ts"; import type { ReadonlyFooterDataProvider } from "../../../core/footer-data-provider.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/harness-version-selector.ts b/packages/coding-agent/src/modes/interactive/components/harness-version-selector.ts index edef51ba2..3918a19e2 100644 --- a/packages/coding-agent/src/modes/interactive/components/harness-version-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/harness-version-selector.ts @@ -1,4 +1,4 @@ -import { computeHarnessSkillId, type HarnessSkill } from "@earendil-works/diffex-harness-state"; +import { computeHarnessSkillId, type HarnessSkill } from "@diffexai/diffex-harness-state"; import { Container, type Focusable, @@ -11,7 +11,7 @@ import { Text, TruncatedText, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { EvolutionHarnessVersionInfo } from "#evolution"; import { theme } from "../theme/theme.ts"; import { diff --git a/packages/coding-agent/src/modes/interactive/components/keybinding-hints.ts b/packages/coding-agent/src/modes/interactive/components/keybinding-hints.ts index 0151ac57d..91993cba9 100644 --- a/packages/coding-agent/src/modes/interactive/components/keybinding-hints.ts +++ b/packages/coding-agent/src/modes/interactive/components/keybinding-hints.ts @@ -2,7 +2,7 @@ * Utilities for formatting keybinding hints in the UI. */ -import { getKeybindings, type Keybinding, type KeyId } from "@earendil-works/diffex-tui"; +import { getKeybindings, type Keybinding, type KeyId } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; export interface KeyTextFormatOptions { diff --git a/packages/coding-agent/src/modes/interactive/components/login-dialog.ts b/packages/coding-agent/src/modes/interactive/components/login-dialog.ts index 24582b718..5cb96d4da 100644 --- a/packages/coding-agent/src/modes/interactive/components/login-dialog.ts +++ b/packages/coding-agent/src/modes/interactive/components/login-dialog.ts @@ -1,5 +1,5 @@ -import type { AuthInfoLink, OAuthDeviceCodeInfo } from "@earendil-works/diffex-ai"; -import { Container, type Focusable, getKeybindings, Input, Spacer, Text, type TUI } from "@earendil-works/diffex-tui"; +import type { AuthInfoLink, OAuthDeviceCodeInfo } from "@diffexai/diffex-ai"; +import { Container, type Focusable, getKeybindings, Input, Spacer, Text, type TUI } from "@diffexai/diffex-tui"; import { openBrowser } from "../../../utils/open-browser.ts"; import { theme } from "../theme/theme.ts"; import { keyHint } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/mermaid.ts b/packages/coding-agent/src/modes/interactive/components/mermaid.ts index 421ed7718..dc8d7901b 100644 --- a/packages/coding-agent/src/modes/interactive/components/mermaid.ts +++ b/packages/coding-agent/src/modes/interactive/components/mermaid.ts @@ -1,4 +1,4 @@ -import { Marked, type Token } from "@earendil-works/diffex-tui"; +import { Marked, type Token } from "@diffexai/diffex-tui"; import { type MermaidArt, render, type Span } from "grok-mermaid"; import type { MarkdownTransformer } from "../../../core/extensions/types.ts"; import type { MermaidRenderingMode } from "../../../core/settings-manager.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/model-selector.ts b/packages/coding-agent/src/modes/interactive/components/model-selector.ts index d77447932..45b9f831a 100644 --- a/packages/coding-agent/src/modes/interactive/components/model-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/model-selector.ts @@ -1,4 +1,4 @@ -import { type Model, modelsAreEqual } from "@earendil-works/diffex-ai"; +import { type Model, modelsAreEqual } from "@diffexai/diffex-ai"; import { Container, type Focusable, @@ -11,7 +11,7 @@ import { Text, type TUI, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { ModelRuntime } from "../../../core/model-runtime.ts"; import type { SettingsManager } from "../../../core/settings-manager.ts"; import { getModelSelectorSearchText } from "../model-search.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/oauth-selector.ts b/packages/coding-agent/src/modes/interactive/components/oauth-selector.ts index 782a59e0d..538df98c5 100644 --- a/packages/coding-agent/src/modes/interactive/components/oauth-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/oauth-selector.ts @@ -1,4 +1,4 @@ -import type { ApiKeyAuth, AuthCheck, OAuthAuth } from "@earendil-works/diffex-ai"; +import type { ApiKeyAuth, AuthCheck, OAuthAuth } from "@diffexai/diffex-ai"; import { Container, type Focusable, @@ -10,7 +10,7 @@ import { Spacer, TruncatedText, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; export type AuthSelectorProvider = { diff --git a/packages/coding-agent/src/modes/interactive/components/request-user-input.ts b/packages/coding-agent/src/modes/interactive/components/request-user-input.ts index f679293d1..ec6386c39 100644 --- a/packages/coding-agent/src/modes/interactive/components/request-user-input.ts +++ b/packages/coding-agent/src/modes/interactive/components/request-user-input.ts @@ -9,7 +9,7 @@ import { UNSELECTED_LIST_PREFIX, visibleWidth, wrapTextWithAnsi, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { RequestUserInputAnswer, RequestUserInputQuestion, diff --git a/packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts b/packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts index 59ab2ceb7..518485fe8 100644 --- a/packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/scoped-models-selector.ts @@ -1,4 +1,4 @@ -import type { Model } from "@earendil-works/diffex-ai"; +import type { Model } from "@diffexai/diffex-ai"; import { Container, type Focusable, @@ -12,7 +12,7 @@ import { Spacer, Text, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { getModelSearchText } from "../model-search.ts"; import { theme } from "../theme/theme.ts"; import { keyText } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/session-selector-search.ts b/packages/coding-agent/src/modes/interactive/components/session-selector-search.ts index 8a82325ea..30d38a24c 100644 --- a/packages/coding-agent/src/modes/interactive/components/session-selector-search.ts +++ b/packages/coding-agent/src/modes/interactive/components/session-selector-search.ts @@ -1,4 +1,4 @@ -import { fuzzyMatch } from "@earendil-works/diffex-tui"; +import { fuzzyMatch } from "@diffexai/diffex-tui"; import type { SessionInfo } from "../../../core/session-manager.ts"; export type SortMode = "threaded" | "recent" | "relevance"; diff --git a/packages/coding-agent/src/modes/interactive/components/session-selector.ts b/packages/coding-agent/src/modes/interactive/components/session-selector.ts index 28d4c1bac..4577197e2 100644 --- a/packages/coding-agent/src/modes/interactive/components/session-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/session-selector.ts @@ -15,7 +15,7 @@ import { truncateToWidth, UNSELECTED_LIST_PREFIX, visibleWidth, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { KeybindingsManager } from "../../../core/keybindings.ts"; import type { SessionInfo, SessionListProgress } from "../../../core/session-manager.ts"; import { deleteParentSessionWithOwnedSubagents } from "../../../core/subagents/persistence.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/settings-selector.ts b/packages/coding-agent/src/modes/interactive/components/settings-selector.ts index 571dd887b..1d5f1cf30 100644 --- a/packages/coding-agent/src/modes/interactive/components/settings-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/settings-selector.ts @@ -1,4 +1,4 @@ -import type { Transport } from "@earendil-works/diffex-ai"; +import type { Transport } from "@diffexai/diffex-ai"; import { type Component, Container, @@ -12,7 +12,7 @@ import { SettingsList, Spacer, Text, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { formatHttpIdleTimeoutMs, HTTP_IDLE_TIMEOUT_CHOICES } from "../../../core/http-dispatcher.ts"; import type { DefaultProjectTrust, diff --git a/packages/coding-agent/src/modes/interactive/components/show-images-selector.ts b/packages/coding-agent/src/modes/interactive/components/show-images-selector.ts index df9913043..bf09b67f6 100644 --- a/packages/coding-agent/src/modes/interactive/components/show-images-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/show-images-selector.ts @@ -5,7 +5,7 @@ import { type SelectListLayoutOptions, Spacer, Text, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { getSelectListTheme, theme } from "../theme/theme.ts"; const SHOW_IMAGES_SELECT_LIST_LAYOUT: SelectListLayoutOptions = { diff --git a/packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts b/packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts index 14c0f4c80..af60eb408 100644 --- a/packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts +++ b/packages/coding-agent/src/modes/interactive/components/skill-invocation-message.ts @@ -1,4 +1,4 @@ -import { Container, getGlyphs, Markdown, type MarkdownTheme, Text } from "@earendil-works/diffex-tui"; +import { Container, getGlyphs, Markdown, type MarkdownTheme, Text } from "@diffexai/diffex-tui"; import type { ParsedSkillBlock } from "../../../core/agent-session.ts"; import { getMarkdownTheme, theme } from "../theme/theme.ts"; import { keyText } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/skill-selector.ts b/packages/coding-agent/src/modes/interactive/components/skill-selector.ts index f88768794..94bd0f5ed 100644 --- a/packages/coding-agent/src/modes/interactive/components/skill-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/skill-selector.ts @@ -9,7 +9,7 @@ import { Spacer, TruncatedText, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { SkillReference, SkillReferenceGroup } from "../../../core/skills.ts"; import { theme } from "../theme/theme.ts"; import { keyHint, rawKeyHint } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/status-indicator.ts b/packages/coding-agent/src/modes/interactive/components/status-indicator.ts index 56b12019c..43e5213cb 100644 --- a/packages/coding-agent/src/modes/interactive/components/status-indicator.ts +++ b/packages/coding-agent/src/modes/interactive/components/status-indicator.ts @@ -1,4 +1,4 @@ -import { type Component, getGlyphs, Loader, type LoaderIndicatorOptions, type TUI } from "@earendil-works/diffex-tui"; +import { type Component, getGlyphs, Loader, type LoaderIndicatorOptions, type TUI } from "@diffexai/diffex-tui"; import type { WorkingIndicatorOptions } from "../../../core/extensions/index.ts"; import { theme } from "../theme/theme.ts"; import { CountdownTimer } from "./countdown-timer.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/subagents.ts b/packages/coding-agent/src/modes/interactive/components/subagents.ts index 182c26a97..44354ffaa 100644 --- a/packages/coding-agent/src/modes/interactive/components/subagents.ts +++ b/packages/coding-agent/src/modes/interactive/components/subagents.ts @@ -1,4 +1,4 @@ -import { type Component, truncateToWidth } from "@earendil-works/diffex-tui"; +import { type Component, truncateToWidth } from "@diffexai/diffex-tui"; import type { SubagentStatus, SubagentSummary } from "../../../core/subagents/types.ts"; import { type ThemeColor, theme } from "../theme/theme.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/theme-selector.ts b/packages/coding-agent/src/modes/interactive/components/theme-selector.ts index 35405acf0..d70ba2a4b 100644 --- a/packages/coding-agent/src/modes/interactive/components/theme-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/theme-selector.ts @@ -5,7 +5,7 @@ import { type SelectListLayoutOptions, Spacer, Text, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { getAvailableThemes, getSelectListTheme, theme } from "../theme/theme.ts"; const THEME_SELECT_LIST_LAYOUT: SelectListLayoutOptions = { diff --git a/packages/coding-agent/src/modes/interactive/components/thinking-selector.ts b/packages/coding-agent/src/modes/interactive/components/thinking-selector.ts index c71b78c93..392500640 100644 --- a/packages/coding-agent/src/modes/interactive/components/thinking-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/thinking-selector.ts @@ -1,4 +1,4 @@ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; import { Container, type SelectItem, @@ -6,7 +6,7 @@ import { type SelectListLayoutOptions, Spacer, Text, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { getSelectListTheme, theme } from "../theme/theme.ts"; import { keyHint } from "./keybinding-hints.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/tool-execution.ts b/packages/coding-agent/src/modes/interactive/components/tool-execution.ts index 65bc2d5ae..e9f9e1866 100644 --- a/packages/coding-agent/src/modes/interactive/components/tool-execution.ts +++ b/packages/coding-agent/src/modes/interactive/components/tool-execution.ts @@ -8,7 +8,7 @@ import { Spacer, Text, type TUI, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { ToolDefinition, ToolRenderContext } from "../../../core/extensions/types.ts"; import { createAllToolDefinitions, type ToolName } from "../../../core/tools/index.ts"; import { getTextOutput as getRenderedTextOutput } from "../../../core/tools/render-utils.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/tool-group.ts b/packages/coding-agent/src/modes/interactive/components/tool-group.ts index 2e90c70ce..abee5ca34 100644 --- a/packages/coding-agent/src/modes/interactive/components/tool-group.ts +++ b/packages/coding-agent/src/modes/interactive/components/tool-group.ts @@ -1,4 +1,4 @@ -import { type Component, truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import { type Component, truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; import { DiffexPathDockHinge, diff --git a/packages/coding-agent/src/modes/interactive/components/tree-selector.ts b/packages/coding-agent/src/modes/interactive/components/tree-selector.ts index f61aa77c5..84cd2dfdf 100644 --- a/packages/coding-agent/src/modes/interactive/components/tree-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/tree-selector.ts @@ -14,7 +14,7 @@ import { UNSELECTED_LIST_PREFIX, visibleWidth, wrapTextWithAnsi, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import type { SessionTreeNode } from "../../../core/session-manager.ts"; import { theme } from "../theme/theme.ts"; import { DynamicBorder } from "./dynamic-border.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/trust-selector.ts b/packages/coding-agent/src/modes/interactive/components/trust-selector.ts index 3e8de8edf..2004b31fa 100644 --- a/packages/coding-agent/src/modes/interactive/components/trust-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/trust-selector.ts @@ -6,7 +6,7 @@ import { Spacer, Text, UNSELECTED_LIST_PREFIX, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { getProjectTrustOptions, type ProjectTrustOption, diff --git a/packages/coding-agent/src/modes/interactive/components/user-message-selector.ts b/packages/coding-agent/src/modes/interactive/components/user-message-selector.ts index 198ea9258..4ba7e930a 100644 --- a/packages/coding-agent/src/modes/interactive/components/user-message-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/user-message-selector.ts @@ -9,7 +9,7 @@ import { truncateToWidth, UNSELECTED_LIST_PREFIX, visibleWidth, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import { theme } from "../theme/theme.ts"; interface UserMessageItem { diff --git a/packages/coding-agent/src/modes/interactive/components/user-message.ts b/packages/coding-agent/src/modes/interactive/components/user-message.ts index f29b21b77..542b775fa 100644 --- a/packages/coding-agent/src/modes/interactive/components/user-message.ts +++ b/packages/coding-agent/src/modes/interactive/components/user-message.ts @@ -1,4 +1,4 @@ -import { Box, Container, getGlyphs, Markdown, type MarkdownTheme, Spacer } from "@earendil-works/diffex-tui"; +import { Box, Container, getGlyphs, Markdown, type MarkdownTheme, Spacer } from "@diffexai/diffex-tui"; import type { MarkdownTransformer } from "../../../core/extensions/types.ts"; import { getMarkdownTheme, theme } from "../theme/theme.ts"; import { createMarkdownTransform } from "./markdown-transform.ts"; diff --git a/packages/coding-agent/src/modes/interactive/components/visual-truncate.ts b/packages/coding-agent/src/modes/interactive/components/visual-truncate.ts index 1975dab67..f956cdb11 100644 --- a/packages/coding-agent/src/modes/interactive/components/visual-truncate.ts +++ b/packages/coding-agent/src/modes/interactive/components/visual-truncate.ts @@ -3,7 +3,7 @@ * Used by both tool-execution.ts and bash-execution.ts for consistent behavior. */ -import { Text } from "@earendil-works/diffex-tui"; +import { Text } from "@diffexai/diffex-tui"; export interface VisualTruncateResult { /** The visual lines to display */ diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index 0db7e5b1f..1758fc050 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -7,10 +7,10 @@ import * as crypto from "node:crypto"; import * as fs from "node:fs"; import * as os from "node:os"; import * as path from "node:path"; -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { AuthEvent, AuthPrompt } from "@earendil-works/diffex-ai"; -import type { AssistantMessage, ImageContent, Message, Model } from "@earendil-works/diffex-ai/compat"; -import type { HarnessVersionList } from "@earendil-works/diffex-harness-state"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { AuthEvent, AuthPrompt } from "@diffexai/diffex-ai"; +import type { AssistantMessage, ImageContent, Message, Model } from "@diffexai/diffex-ai/compat"; +import type { HarnessVersionList } from "@diffexai/diffex-harness-state"; import type { AutocompleteItem, AutocompleteProvider, @@ -24,8 +24,8 @@ import type { SlashCommand, Terminal, TuiMainScreenRenderState, -} from "@earendil-works/diffex-tui"; -import * as TuiLayouts from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; +import * as TuiLayouts from "@diffexai/diffex-tui"; import { CombinedAutocompleteProvider, type Component, @@ -45,7 +45,7 @@ import { TuiAltScreen, TuiMainScreen, visibleWidth, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import chalk from "chalk"; import { spawn, spawnSync } from "child_process"; import { @@ -149,7 +149,6 @@ import { diffexIntroTextBold, } from "./components/diffex-welcome.ts"; import { DynamicBorder } from "./components/dynamic-border.ts"; -import { EarendilAnnouncementComponent } from "./components/earendil-announcement.ts"; import { type EvolutionMenuClient, EvolutionMenuComponent } from "./components/evolution-menu.ts"; import { ExtensionEditorComponent } from "./components/extension-editor.ts"; import { ExtensionInputComponent } from "./components/extension-input.ts"; @@ -3481,11 +3480,6 @@ export class InteractiveMode { this.editor.setText(""); return; } - if (text === "/dementedelves") { - this.handleDementedDelves(); - this.editor.setText(""); - return; - } if (text === "/resume") { this.showSessionSelector(); this.editor.setText(""); @@ -7375,12 +7369,6 @@ export class InteractiveMode { this.ui.requestRender(); } - private handleDementedDelves(): void { - this.chatContainer.addChild(new Spacer(1)); - this.chatContainer.addChild(new EarendilAnnouncementComponent()); - this.ui.requestRender(); - } - private handleDaxnuts(): void { this.chatContainer.addChild(new Spacer(1)); this.chatContainer.addChild(new DaxnutsComponent(this.ui)); diff --git a/packages/coding-agent/src/modes/interactive/theme/theme-controller.ts b/packages/coding-agent/src/modes/interactive/theme/theme-controller.ts index 3c395da65..93f813e2d 100644 --- a/packages/coding-agent/src/modes/interactive/theme/theme-controller.ts +++ b/packages/coding-agent/src/modes/interactive/theme/theme-controller.ts @@ -1,4 +1,4 @@ -import type { TUI } from "@earendil-works/diffex-tui"; +import type { TUI } from "@diffexai/diffex-tui"; import type { SettingsManager } from "../../../core/settings-manager.ts"; import { detectTerminalBackgroundFromEnv, diff --git a/packages/coding-agent/src/modes/interactive/theme/theme.ts b/packages/coding-agent/src/modes/interactive/theme/theme.ts index 29dee46a2..4e8a56d51 100644 --- a/packages/coding-agent/src/modes/interactive/theme/theme.ts +++ b/packages/coding-agent/src/modes/interactive/theme/theme.ts @@ -1,6 +1,6 @@ import * as fs from "node:fs"; import * as path from "node:path"; -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; import { type EditorTheme, getCapabilities, @@ -9,7 +9,7 @@ import { SELECTED_LIST_PREFIX, type SelectListTheme, type SettingsListTheme, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; import chalk from "chalk"; import { type Static, Type } from "typebox"; import { Compile } from "typebox/compile"; @@ -858,7 +858,7 @@ export function getDefaultTheme(): string { // ============================================================================ // Use globalThis to share theme across module loaders (tsx + jiti in dev mode) -const THEME_KEY = Symbol.for("@earendil-works/diffex-coding-agent:theme"); +const THEME_KEY = Symbol.for("@diffexai/diffex:theme"); const THEME_KEY_OLD = Symbol.for("@mariozechner/pi-coding-agent:theme"); // Export theme as a getter that reads from globalThis diff --git a/packages/coding-agent/src/modes/print-mode.ts b/packages/coding-agent/src/modes/print-mode.ts index f09c78d9f..e99e0833f 100644 --- a/packages/coding-agent/src/modes/print-mode.ts +++ b/packages/coding-agent/src/modes/print-mode.ts @@ -6,7 +6,7 @@ * - `diffex --mode json "prompt"` - JSON event stream */ -import type { AssistantMessage, ImageContent } from "@earendil-works/diffex-ai"; +import type { AssistantMessage, ImageContent } from "@diffexai/diffex-ai"; import type { AgentSessionRuntime } from "../core/agent-session-runtime.ts"; import { flushRawStdout, waitForRawStdoutBackpressure, writeRawStdout } from "../core/output-guard.ts"; import { killTrackedDetachedChildren } from "../utils/shell.ts"; diff --git a/packages/coding-agent/src/modes/rpc/rpc-client.ts b/packages/coding-agent/src/modes/rpc/rpc-client.ts index 30f37b164..238545ff2 100644 --- a/packages/coding-agent/src/modes/rpc/rpc-client.ts +++ b/packages/coding-agent/src/modes/rpc/rpc-client.ts @@ -5,8 +5,8 @@ */ import { type ChildProcess, spawn } from "node:child_process"; -import type { AgentMessage, ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import type { ImageContent } from "@earendil-works/diffex-ai"; +import type { AgentMessage, ThinkingLevel } from "@diffexai/diffex-agent-core"; +import type { ImageContent } from "@diffexai/diffex-ai"; import type { SessionStats } from "../../core/agent-session.ts"; import type { BashResult } from "../../core/bash-executor.ts"; import type { CompactionResult } from "../../core/compaction/index.ts"; diff --git a/packages/coding-agent/src/modes/rpc/rpc-types.ts b/packages/coding-agent/src/modes/rpc/rpc-types.ts index a20875953..b1fefe394 100644 --- a/packages/coding-agent/src/modes/rpc/rpc-types.ts +++ b/packages/coding-agent/src/modes/rpc/rpc-types.ts @@ -5,8 +5,8 @@ * Responses and events are emitted as JSON lines on stdout. */ -import type { AgentMessage, ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import type { ImageContent, Model } from "@earendil-works/diffex-ai"; +import type { AgentMessage, ThinkingLevel } from "@diffexai/diffex-agent-core"; +import type { ImageContent, Model } from "@diffexai/diffex-ai"; import type { SessionStats } from "../../core/agent-session.ts"; import type { BashResult } from "../../core/bash-executor.ts"; import type { CompactionResult } from "../../core/compaction/index.ts"; diff --git a/packages/coding-agent/src/package-manager-cli.ts b/packages/coding-agent/src/package-manager-cli.ts index f4e88685b..48fa02f29 100644 --- a/packages/coding-agent/src/package-manager-cli.ts +++ b/packages/coding-agent/src/package-manager-cli.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { Markdown, type MarkdownTheme } from "@earendil-works/diffex-tui"; +import { Markdown, type MarkdownTheme } from "@diffexai/diffex-tui"; import chalk from "chalk"; import { selectConfig } from "./cli/config-selector.ts"; import { createProjectTrustContext } from "./cli/project-trust.ts"; diff --git a/packages/coding-agent/src/server/create-harness.ts b/packages/coding-agent/src/server/create-harness.ts index 5d17b5c10..c77e63b5a 100644 --- a/packages/coding-agent/src/server/create-harness.ts +++ b/packages/coding-agent/src/server/create-harness.ts @@ -9,7 +9,7 @@ import { type ExecutionEnv, type ExecutionToolContext, type HarnessTool, -} from "@earendil-works/diffex-agent-core"; +} from "@diffexai/diffex-agent-core"; import type { Static, TSchema } from "typebox"; import { type BuildSystemPromptOptions, buildSystemPrompt } from "../core/system-prompt.ts"; import { bashToolSystemPromptContribution } from "../core/tools/bash.ts"; diff --git a/packages/coding-agent/src/utils/changelog.ts b/packages/coding-agent/src/utils/changelog.ts index 2bb87f800..bf579d016 100644 --- a/packages/coding-agent/src/utils/changelog.ts +++ b/packages/coding-agent/src/utils/changelog.ts @@ -1,5 +1,5 @@ import path from "node:path"; -import { visibleWidth } from "@earendil-works/diffex-tui"; +import { visibleWidth } from "@diffexai/diffex-tui"; import { existsSync, readFileSync } from "fs"; export interface ChangelogEntry { diff --git a/packages/coding-agent/src/utils/tool-result-images.ts b/packages/coding-agent/src/utils/tool-result-images.ts index a8d981738..2c35d289d 100644 --- a/packages/coding-agent/src/utils/tool-result-images.ts +++ b/packages/coding-agent/src/utils/tool-result-images.ts @@ -1,4 +1,4 @@ -import type { ImageContent, TextContent } from "@earendil-works/diffex-ai"; +import type { ImageContent, TextContent } from "@diffexai/diffex-ai"; import { processImage } from "./image-process.ts"; export type ToolResultContent = TextContent | ImageContent; diff --git a/packages/coding-agent/test/agent-session-auto-compaction-queue.test.ts b/packages/coding-agent/test/agent-session-auto-compaction-queue.test.ts index d376c50bf..bc346f6f3 100644 --- a/packages/coding-agent/test/agent-session-auto-compaction-queue.test.ts +++ b/packages/coding-agent/test/agent-session-auto-compaction-queue.test.ts @@ -1,13 +1,9 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; -import { - type AssistantMessage, - createAssistantMessageEventStream, - fauxAssistantMessage, -} from "@earendil-works/diffex-ai"; -import { getModel, streamSimple } from "@earendil-works/diffex-ai/compat"; +import { Agent } from "@diffexai/diffex-agent-core"; +import { type AssistantMessage, createAssistantMessageEventStream, fauxAssistantMessage } from "@diffexai/diffex-ai"; +import { getModel, streamSimple } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { AgentSession } from "../src/core/agent-session.ts"; import { AuthStorage } from "../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/agent-session-branching.test.ts b/packages/coding-agent/test/agent-session-branching.test.ts index 198dec4ec..f26ce43e6 100644 --- a/packages/coding-agent/test/agent-session-branching.test.ts +++ b/packages/coding-agent/test/agent-session-branching.test.ts @@ -10,7 +10,7 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import type { AgentSession } from "../src/core/agent-session.ts"; import { diff --git a/packages/coding-agent/test/agent-session-compaction.test.ts b/packages/coding-agent/test/agent-session-compaction.test.ts index cabdf3634..c0e2d6569 100644 --- a/packages/coding-agent/test/agent-session-compaction.test.ts +++ b/packages/coding-agent/test/agent-session-compaction.test.ts @@ -11,8 +11,8 @@ import { createModelRegistry, getModelRuntime } from "./model-runtime-test-utils import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; -import { getModel, streamSimple } from "@earendil-works/diffex-ai/compat"; +import { Agent } from "@diffexai/diffex-agent-core"; +import { getModel, streamSimple } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AgentSession, type AgentSessionEvent } from "../src/core/agent-session.ts"; import { AuthStorage } from "../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/agent-session-concurrent.test.ts b/packages/coding-agent/test/agent-session-concurrent.test.ts index f46a7a592..ad3488ddc 100644 --- a/packages/coding-agent/test/agent-session-concurrent.test.ts +++ b/packages/coding-agent/test/agent-session-concurrent.test.ts @@ -6,7 +6,7 @@ import { createModelRegistry, getModelRuntime } from "./model-runtime-test-utils import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; +import { Agent } from "@diffexai/diffex-agent-core"; import { type AssistantMessage, type AssistantMessageEvent, @@ -14,7 +14,7 @@ import { getModel, type ImageContent, type TextContent, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AgentSession } from "../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/agent-session-dynamic-provider.test.ts b/packages/coding-agent/test/agent-session-dynamic-provider.test.ts index 98956be05..c1dff8c10 100644 --- a/packages/coding-agent/test/agent-session-dynamic-provider.test.ts +++ b/packages/coding-agent/test/agent-session-dynamic-provider.test.ts @@ -1,8 +1,8 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { Provider } from "@earendil-works/diffex-ai"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import type { Provider } from "@diffexai/diffex-ai"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { ModelRuntime } from "../src/core/model-runtime.ts"; diff --git a/packages/coding-agent/test/agent-session-dynamic-tools.test.ts b/packages/coding-agent/test/agent-session-dynamic-tools.test.ts index ab711e042..ddf14c0c9 100644 --- a/packages/coding-agent/test/agent-session-dynamic-tools.test.ts +++ b/packages/coding-agent/test/agent-session-dynamic-tools.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { DefaultResourceLoader } from "../src/core/resource-loader.ts"; diff --git a/packages/coding-agent/test/agent-session-retry.test.ts b/packages/coding-agent/test/agent-session-retry.test.ts index c32a437b2..9427efd00 100644 --- a/packages/coding-agent/test/agent-session-retry.test.ts +++ b/packages/coding-agent/test/agent-session-retry.test.ts @@ -1,13 +1,8 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent, type AgentEvent, type AgentTool } from "@earendil-works/diffex-agent-core"; -import { - type AssistantMessage, - type AssistantMessageEvent, - EventStream, - getModel, -} from "@earendil-works/diffex-ai/compat"; +import { Agent, type AgentEvent, type AgentTool } from "@diffexai/diffex-agent-core"; +import { type AssistantMessage, type AssistantMessageEvent, EventStream, getModel } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AgentSession } from "../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/agent-session-runtime-events.test.ts b/packages/coding-agent/test/agent-session-runtime-events.test.ts index 409adf295..f3d15c943 100644 --- a/packages/coding-agent/test/agent-session-runtime-events.test.ts +++ b/packages/coding-agent/test/agent-session-runtime-events.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { fauxAssistantMessage, registerFauxProvider } from "@earendil-works/diffex-ai/compat"; +import { fauxAssistantMessage, registerFauxProvider } from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it } from "vitest"; import { type CreateAgentSessionRuntimeFactory, diff --git a/packages/coding-agent/test/agent-session-stats.test.ts b/packages/coding-agent/test/agent-session-stats.test.ts index cb2d38b11..26739d5a7 100644 --- a/packages/coding-agent/test/agent-session-stats.test.ts +++ b/packages/coding-agent/test/agent-session-stats.test.ts @@ -1,11 +1,11 @@ -import { Agent } from "@earendil-works/diffex-agent-core"; +import { Agent } from "@diffexai/diffex-agent-core"; import { type AssistantMessage, getModel, streamSimple, type ToolResultMessage, type Usage, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import { describe, expect, it } from "vitest"; import { AgentSession } from "../src/core/agent-session.ts"; import { AuthStorage } from "../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/assistant-message.test.ts b/packages/coding-agent/test/assistant-message.test.ts index 65f6ec891..349c82f0d 100644 --- a/packages/coding-agent/test/assistant-message.test.ts +++ b/packages/coding-agent/test/assistant-message.test.ts @@ -1,5 +1,5 @@ -import type { AssistantMessage } from "@earendil-works/diffex-ai"; -import { getGlyphs } from "@earendil-works/diffex-tui"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; +import { getGlyphs } from "@diffexai/diffex-tui"; import { describe, expect, test } from "vitest"; import { AssistantMessageComponent, diff --git a/packages/coding-agent/test/auth-check.test.ts b/packages/coding-agent/test/auth-check.test.ts index ce9e84b48..f47afaad6 100644 --- a/packages/coding-agent/test/auth-check.test.ts +++ b/packages/coding-agent/test/auth-check.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { InMemoryModelsStore } from "@earendil-works/diffex-ai"; +import { InMemoryModelsStore } from "@diffexai/diffex-ai"; import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { parseArgs } from "../src/cli/args.ts"; import { checkProviderAuth, createAuthCheckModelRuntime, getProviderCredential } from "../src/cli/auth-check.ts"; diff --git a/packages/coding-agent/test/auth-storage.test.ts b/packages/coding-agent/test/auth-storage.test.ts index 73a2d14ed..965d9176a 100644 --- a/packages/coding-agent/test/auth-storage.test.ts +++ b/packages/coding-agent/test/auth-storage.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { type CredentialStore, createModels, type Provider } from "@earendil-works/diffex-ai"; +import { type CredentialStore, createModels, type Provider } from "@diffexai/diffex-ai"; import lockfile from "proper-lockfile"; import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { AuthStorage, FileAuthStorageBackend } from "../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/bash-execution-width.test.ts b/packages/coding-agent/test/bash-execution-width.test.ts index ed6bc6876..69d9352b1 100644 --- a/packages/coding-agent/test/bash-execution-width.test.ts +++ b/packages/coding-agent/test/bash-execution-width.test.ts @@ -2,7 +2,7 @@ * Test that BashExecutionComponent's collapsed output respects the render-time width, * not a stale captured width. Regression test for #2569. */ -import { getGlyphs, visibleWidth } from "@earendil-works/diffex-tui"; +import { getGlyphs, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, it } from "vitest"; import { BashExecutionComponent } from "../src/modes/interactive/components/bash-execution.ts"; import { initTheme } from "../src/modes/interactive/theme/theme.ts"; diff --git a/packages/coding-agent/test/branch-summary-extensions.test.ts b/packages/coding-agent/test/branch-summary-extensions.test.ts index 06e11c337..acb3e6546 100644 --- a/packages/coding-agent/test/branch-summary-extensions.test.ts +++ b/packages/coding-agent/test/branch-summary-extensions.test.ts @@ -1,4 +1,4 @@ -import type { Usage } from "@earendil-works/diffex-ai/compat"; +import type { Usage } from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "./suite/harness.ts"; import { assistantMsg, userMsg } from "./utilities.ts"; diff --git a/packages/coding-agent/test/cache-stats.test.ts b/packages/coding-agent/test/cache-stats.test.ts index 0536c8a5a..d070b1c8b 100644 --- a/packages/coding-agent/test/cache-stats.test.ts +++ b/packages/coding-agent/test/cache-stats.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage } from "@earendil-works/diffex-ai"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { collectCacheMisses, diff --git a/packages/coding-agent/test/client/remote-session-lifecycle.test.ts b/packages/coding-agent/test/client/remote-session-lifecycle.test.ts index cfe98b535..2e82bac86 100644 --- a/packages/coding-agent/test/client/remote-session-lifecycle.test.ts +++ b/packages/coding-agent/test/client/remote-session-lifecycle.test.ts @@ -1,4 +1,4 @@ -import type { RequestEnvelope } from "@earendil-works/diffex-protocol"; +import type { RequestEnvelope } from "@diffexai/diffex-protocol"; import { describe, expect, test } from "vitest"; import { collectRequests, connectClient, MemoryServer, openRemoteSession, sessionSnapshot } from "./support.ts"; diff --git a/packages/coding-agent/test/client/remote-session-ownership.test.ts b/packages/coding-agent/test/client/remote-session-ownership.test.ts index 82011c804..11cf9d01b 100644 --- a/packages/coding-agent/test/client/remote-session-ownership.test.ts +++ b/packages/coding-agent/test/client/remote-session-ownership.test.ts @@ -1,4 +1,4 @@ -import { DiffexSessionOwnershipError } from "@earendil-works/diffex-client"; +import { DiffexSessionOwnershipError } from "@diffexai/diffex-client"; import { describe, expect, test } from "vitest"; import { RemoteSession } from "../../src/client/remote-session.ts"; import { collectRequests, connectClient, MemoryServer, sessionSnapshot } from "./support.ts"; diff --git a/packages/coding-agent/test/client/support.ts b/packages/coding-agent/test/client/support.ts index f17d0e1cc..fb3192dd5 100644 --- a/packages/coding-agent/test/client/support.ts +++ b/packages/coding-agent/test/client/support.ts @@ -1,4 +1,4 @@ -import { type ByteTransport, type ByteTransportHandlers, DiffexClient } from "@earendil-works/diffex-client"; +import { type ByteTransport, type ByteTransportHandlers, DiffexClient } from "@diffexai/diffex-client"; import { type ClientMessage, ClientMessageDecoder, @@ -8,7 +8,7 @@ import { type ServerMessage, type ServerSnapshot, type SessionSnapshot, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { RemoteSession, type RemoteSessionOptions } from "../../src/client/remote-session.ts"; export class MemoryServer { diff --git a/packages/coding-agent/test/client/transcript.test.ts b/packages/coding-agent/test/client/transcript.test.ts index a1e6584ea..71310fea0 100644 --- a/packages/coding-agent/test/client/transcript.test.ts +++ b/packages/coding-agent/test/client/transcript.test.ts @@ -1,4 +1,4 @@ -import type { SessionSnapshot } from "@earendil-works/diffex-protocol"; +import type { SessionSnapshot } from "@diffexai/diffex-protocol"; import { describe, expect, test } from "vitest"; import { applyTranscriptProgress, diff --git a/packages/coding-agent/test/compaction-extensions-example.test.ts b/packages/coding-agent/test/compaction-extensions-example.test.ts index 71e437856..7ee515700 100644 --- a/packages/coding-agent/test/compaction-extensions-example.test.ts +++ b/packages/coding-agent/test/compaction-extensions-example.test.ts @@ -5,7 +5,7 @@ import { describe, expect, it, vi } from "vitest"; import type { ExtensionAPI, SessionBeforeCompactEvent, SessionCompactEvent } from "../src/core/extensions/index.ts"; -vi.mock("@earendil-works/diffex-coding-agent", () => ({ +vi.mock("@diffexai/diffex", () => ({ convertToLlm: (messages: unknown) => messages, serializeConversation: () => "conversation", })); diff --git a/packages/coding-agent/test/compaction-extensions.test.ts b/packages/coding-agent/test/compaction-extensions.test.ts index bfacf8693..c4331ca53 100644 --- a/packages/coding-agent/test/compaction-extensions.test.ts +++ b/packages/coding-agent/test/compaction-extensions.test.ts @@ -6,8 +6,8 @@ import { createModelRegistry, getModelRuntime } from "./model-runtime-test-utils import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; -import { getModel, streamSimple } from "@earendil-works/diffex-ai/compat"; +import { Agent } from "@diffexai/diffex-agent-core"; +import { getModel, streamSimple } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AgentSession } from "../src/core/agent-session.ts"; import { AuthStorage } from "../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/compaction-serialization.test.ts b/packages/coding-agent/test/compaction-serialization.test.ts index 00359dfd4..a12edaa94 100644 --- a/packages/coding-agent/test/compaction-serialization.test.ts +++ b/packages/coding-agent/test/compaction-serialization.test.ts @@ -1,4 +1,4 @@ -import type { Message } from "@earendil-works/diffex-ai"; +import type { Message } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { serializeConversation } from "../src/core/compaction/utils.ts"; diff --git a/packages/coding-agent/test/compaction-summary-reasoning.test.ts b/packages/coding-agent/test/compaction-summary-reasoning.test.ts index 56889217f..96810b84e 100644 --- a/packages/coding-agent/test/compaction-summary-reasoning.test.ts +++ b/packages/coding-agent/test/compaction-summary-reasoning.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, Model } from "@earendil-works/diffex-ai"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, Model } from "@diffexai/diffex-ai"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { type CompactionPreparation, @@ -12,8 +12,8 @@ const { completeSimpleMock } = vi.hoisted(() => ({ completeSimpleMock: vi.fn(), })); -vi.mock("@earendil-works/diffex-ai/compat", async (importOriginal) => { - const actual = await importOriginal(); +vi.mock("@diffexai/diffex-ai/compat", async (importOriginal) => { + const actual = await importOriginal(); return { ...actual, completeSimple: completeSimpleMock, diff --git a/packages/coding-agent/test/compaction.test.ts b/packages/coding-agent/test/compaction.test.ts index 72c9365f0..7923f42d0 100644 --- a/packages/coding-agent/test/compaction.test.ts +++ b/packages/coding-agent/test/compaction.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, Usage } from "@earendil-works/diffex-ai/compat"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, Usage } from "@diffexai/diffex-ai/compat"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { readFileSync } from "fs"; import { join } from "path"; import { beforeEach, describe, expect, it } from "vitest"; diff --git a/packages/coding-agent/test/config.test.ts b/packages/coding-agent/test/config.test.ts index 0feafd34c..f890de75f 100644 --- a/packages/coding-agent/test/config.test.ts +++ b/packages/coding-agent/test/config.test.ts @@ -62,8 +62,8 @@ afterEach(() => { function createNpmPrefixInstall(template = "diffex-prefix-"): { prefix: string; packageDir: string } { const prefix = mkdtempSync(join(tmpdir(), template)); const root = join(prefix, "lib", "node_modules"); - const scopeDir = join(root, "@earendil-works"); - const packageDir = join(scopeDir, "diffex-coding-agent"); + const scopeDir = join(root, "@diffexai"); + const packageDir = join(scopeDir, "diffex"); mkdirSync(packageDir, { recursive: true }); tempDir = prefix; process.env.DIFFEX_PACKAGE_DIR = packageDir; @@ -119,8 +119,8 @@ function createBunGlobalInstall(): { packageDir: string } { const prefix = join(temp, ".bun"); const bunBin = join(prefix, "bin"); const root = join(prefix, "install", "global", "node_modules"); - const scopeDir = join(root, "@earendil-works"); - const packageDir = join(scopeDir, "diffex-coding-agent"); + const scopeDir = join(root, "@diffexai"); + const packageDir = join(scopeDir, "diffex"); mkdirSync(packageDir, { recursive: true }); mkdirSync(bunBin, { recursive: true }); writeFileSync(join(bunBin, process.platform === "win32" ? "bun.cmd" : "bun"), createFakeBunScript(bunBin)); @@ -194,12 +194,12 @@ describe("Diffex configuration namespace", () => { describe("detectInstallMethod", () => { test("detects pnpm from Windows .pnpm install paths", () => { setExecPath( - "C:\\Users\\Admin\\Documents\\pnpm-repository\\global\\5\\.pnpm\\@earendil-works+diffex-coding-agent@0.67.68\\node_modules\\@earendil-works\\diffex-coding-agent\\dist\\cli.js", + "C:\\Users\\Admin\\Documents\\pnpm-repository\\global\\5\\.pnpm\\@diffexai+diffex@0.67.68\\node_modules\\@diffexai\\diffex\\dist\\cli.js", ); expect(detectInstallMethod()).toBe("pnpm"); - expect(getUpdateInstruction("@earendil-works/diffex-coding-agent")).toBe( - "Run: pnpm install -g --ignore-scripts --config.minimumReleaseAge=0 @earendil-works/diffex-coding-agent", + expect(getUpdateInstruction("@diffexai/diffex")).toBe( + "Run: pnpm install -g --ignore-scripts --config.minimumReleaseAge=0 @diffexai/diffex", ); }); @@ -207,39 +207,31 @@ describe("detectInstallMethod", () => { setExecPath("/usr/local/bin/node"); expect(detectInstallMethod()).toBe("unknown"); - expect(getSelfUpdateCommand("@earendil-works/diffex-coding-agent")).toBeUndefined(); - expect(getUpdateInstruction("@earendil-works/diffex-coding-agent")).toBe( - "Update @earendil-works/diffex-coding-agent using the package manager, wrapper, or source checkout that provides this installation.", + expect(getSelfUpdateCommand("@diffexai/diffex")).toBeUndefined(); + expect(getUpdateInstruction("@diffexai/diffex")).toBe( + "Update @diffexai/diffex using the package manager, wrapper, or source checkout that provides this installation.", ); }); test("self-updates npm installs from custom prefixes", () => { const { prefix } = createNpmPrefixInstall(); - const command = getSelfUpdateCommand("@earendil-works/diffex-coding-agent"); + const command = getSelfUpdateCommand("@diffexai/diffex"); expect(detectInstallMethod()).toBe("npm"); expect(command).toEqual({ command: "npm", - args: [ - "--prefix", - prefix, - "install", - "-g", - "--ignore-scripts", - "--min-release-age=0", - "@earendil-works/diffex-coding-agent", - ], - display: `npm --prefix ${prefix} install -g --ignore-scripts --min-release-age=0 @earendil-works/diffex-coding-agent`, + args: ["--prefix", prefix, "install", "-g", "--ignore-scripts", "--min-release-age=0", "@diffexai/diffex"], + display: `npm --prefix ${prefix} install -g --ignore-scripts --min-release-age=0 @diffexai/diffex`, }); }); test("self-updates exact npm versions without uninstalling the current package", () => { const { prefix } = createNpmPrefixInstall(); - const command = getSelfUpdateCommand("@earendil-works/diffex-coding-agent", undefined, { - packageName: "@earendil-works/diffex-coding-agent", - installSpec: "@earendil-works/diffex-coding-agent@1.2.3", + const command = getSelfUpdateCommand("@diffexai/diffex", undefined, { + packageName: "@diffexai/diffex", + installSpec: "@diffexai/diffex@1.2.3", }); expect(command).toEqual({ @@ -251,9 +243,9 @@ describe("detectInstallMethod", () => { "-g", "--ignore-scripts", "--min-release-age=0", - "@earendil-works/diffex-coding-agent@1.2.3", + "@diffexai/diffex@1.2.3", ], - display: `npm --prefix ${prefix} install -g --ignore-scripts --min-release-age=0 @earendil-works/diffex-coding-agent@1.2.3`, + display: `npm --prefix ${prefix} install -g --ignore-scripts --min-release-age=0 @diffexai/diffex@1.2.3`, }); }); @@ -284,27 +276,19 @@ describe("detectInstallMethod", () => { test("self-update respects configured npmCommand", () => { const { prefix } = createNpmPrefixInstall(); - const command = getSelfUpdateCommand("@earendil-works/diffex-coding-agent", ["npm", "--prefix", prefix]); + const command = getSelfUpdateCommand("@diffexai/diffex", ["npm", "--prefix", prefix]); expect(command).toEqual({ command: "npm", - args: [ - "--prefix", - prefix, - "install", - "-g", - "--ignore-scripts", - "--min-release-age=0", - "@earendil-works/diffex-coding-agent", - ], - display: `npm --prefix ${prefix} install -g --ignore-scripts --min-release-age=0 @earendil-works/diffex-coding-agent`, + args: ["--prefix", prefix, "install", "-g", "--ignore-scripts", "--min-release-age=0", "@diffexai/diffex"], + display: `npm --prefix ${prefix} install -g --ignore-scripts --min-release-age=0 @diffexai/diffex`, }); }); test("self-update treats empty npmCommand as unset", () => { const { prefix } = createNpmPrefixInstall(); - const command = getSelfUpdateCommand("@earendil-works/diffex-coding-agent", []); + const command = getSelfUpdateCommand("@diffexai/diffex", []); expect(command?.args).toEqual([ "--prefix", @@ -313,41 +297,41 @@ describe("detectInstallMethod", () => { "-g", "--ignore-scripts", "--min-release-age=0", - "@earendil-works/diffex-coding-agent", + "@diffexai/diffex", ]); }); test("quotes npm self-update display paths", () => { const { prefix } = createNpmPrefixInstall("pi prefix "); - const command = getSelfUpdateCommand("@earendil-works/diffex-coding-agent"); + const command = getSelfUpdateCommand("@diffexai/diffex"); expect(command?.display).toBe( - `npm --prefix "${prefix}" install -g --ignore-scripts --min-release-age=0 @earendil-works/diffex-coding-agent`, + `npm --prefix "${prefix}" install -g --ignore-scripts --min-release-age=0 @diffexai/diffex`, ); }); test("does not infer Windows npm custom prefixes from package paths", () => { - const packageDir = "C:\\Users\\Admin\\npm prefix\\node_modules\\@earendil-works\\diffex-coding-agent"; + const packageDir = "C:\\Users\\Admin\\npm prefix\\node_modules\\@diffexai\\diffex"; process.env.DIFFEX_PACKAGE_DIR = packageDir; setExecPath(`${packageDir}\\dist\\cli.js`); expect(detectInstallMethod()).toBe("npm"); - expect(getUpdateInstruction("@earendil-works/diffex-coding-agent")).toBe( - "Run: npm install -g --ignore-scripts --min-release-age=0 @earendil-works/diffex-coding-agent", + expect(getUpdateInstruction("@diffexai/diffex")).toBe( + "Run: npm install -g --ignore-scripts --min-release-age=0 @diffexai/diffex", ); }); test("self-updates bun global installs from bun pm bin", () => { createBunGlobalInstall(); - const command = getSelfUpdateCommand("@earendil-works/diffex-coding-agent"); + const command = getSelfUpdateCommand("@diffexai/diffex"); expect(detectInstallMethod()).toBe("bun"); expect(command).toEqual({ command: "bun", - args: ["install", "-g", "--ignore-scripts", "--minimum-release-age=0", "@earendil-works/diffex-coding-agent"], - display: "bun install -g --ignore-scripts --minimum-release-age=0 @earendil-works/diffex-coding-agent", + args: ["install", "-g", "--ignore-scripts", "--minimum-release-age=0", "@diffexai/diffex"], + display: "bun install -g --ignore-scripts --minimum-release-age=0 @diffexai/diffex", }); }); @@ -381,8 +365,8 @@ describe("detectInstallMethod", () => { const temp = mkdtempSync(join(tmpdir(), "diffex-pnpm11-")); const binDir = join(temp, "bin"); const root = join(temp, "Library", "pnpm", "global", "v11"); - const packageName = "@earendil-works/diffex-coding-agent"; - const globalPackageDir = join(root, "11e9a", "node_modules", "@earendil-works", "diffex-coding-agent"); + const packageName = "@diffexai/diffex"; + const globalPackageDir = join(root, "11e9a", "node_modules", "@diffexai", "diffex"); const storePackageDir = join( temp, "Library", @@ -390,13 +374,13 @@ describe("detectInstallMethod", () => { "store", "v11", "links", - "@earendil-works", - "diffex-coding-agent", + "@diffexai", + "diffex", "0.75.0", "hash", "node_modules", - "@earendil-works", - "diffex-coding-agent", + "@diffexai", + "diffex", ); mkdirSync(globalPackageDir, { recursive: true }); mkdirSync(storePackageDir, { recursive: true }); @@ -475,9 +459,7 @@ describe("detectInstallMethod", () => { const { packageDir } = createNpmPrefixInstall(); chmodSync(packageDir, 0o500); - expect(getSelfUpdateCommand("@earendil-works/diffex-coding-agent")).toBeUndefined(); - expect(getSelfUpdateUnavailableInstruction("@earendil-works/diffex-coding-agent")).toContain( - "the install path is not writable", - ); + expect(getSelfUpdateCommand("@diffexai/diffex")).toBeUndefined(); + expect(getSelfUpdateUnavailableInstruction("@diffexai/diffex")).toContain("the install path is not writable"); }); }); diff --git a/packages/coding-agent/test/credential-print.test.ts b/packages/coding-agent/test/credential-print.test.ts index 3f8d68f7e..e783d6961 100644 --- a/packages/coding-agent/test/credential-print.test.ts +++ b/packages/coding-agent/test/credential-print.test.ts @@ -1,4 +1,4 @@ -import { InMemoryModelsStore } from "@earendil-works/diffex-ai"; +import { InMemoryModelsStore } from "@diffexai/diffex-ai"; import { describe, expect, test, vi } from "vitest"; import { parseArgs } from "../src/cli/args.ts"; import { AuthCommandError, isAuthCommandHelp, parseAuthCommand } from "../src/cli/auth-command.ts"; diff --git a/packages/coding-agent/test/custom-editor-history-keybindings.test.ts b/packages/coding-agent/test/custom-editor-history-keybindings.test.ts index d17c3f66b..9bb4a366f 100644 --- a/packages/coding-agent/test/custom-editor-history-keybindings.test.ts +++ b/packages/coding-agent/test/custom-editor-history-keybindings.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { setKeybindings, TuiMainScreen } from "@diffexai/diffex-tui"; import { afterEach, describe, expect, it } from "vitest"; import { defaultEditorTheme } from "../../tui/test/test-themes.ts"; import { VirtualTerminal } from "../../tui/test/virtual-terminal.ts"; diff --git a/packages/coding-agent/test/custom-message.test.ts b/packages/coding-agent/test/custom-message.test.ts index 1fda47091..ed8d14d8c 100644 --- a/packages/coding-agent/test/custom-message.test.ts +++ b/packages/coding-agent/test/custom-message.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, Text } from "@earendil-works/diffex-tui"; +import { getGlyphs, Text } from "@diffexai/diffex-tui"; import { describe, expect, test } from "vitest"; import type { MessageRenderer, MessageRenderOptions } from "../src/core/extensions/types.ts"; import type { CustomMessage } from "../src/core/messages.ts"; diff --git a/packages/coding-agent/test/diffex-path.test.ts b/packages/coding-agent/test/diffex-path.test.ts index a129a9e8a..598e139db 100644 --- a/packages/coding-agent/test/diffex-path.test.ts +++ b/packages/coding-agent/test/diffex-path.test.ts @@ -1,4 +1,4 @@ -import { visibleWidth } from "@earendil-works/diffex-tui"; +import { visibleWidth } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, test } from "vitest"; import { DiffexPathDockHinge, diff --git a/packages/coding-agent/test/diffex-welcome.test.ts b/packages/coding-agent/test/diffex-welcome.test.ts index 74afc51f8..1b3545193 100644 --- a/packages/coding-agent/test/diffex-welcome.test.ts +++ b/packages/coding-agent/test/diffex-welcome.test.ts @@ -1,6 +1,6 @@ import { stripVTControlCharacters } from "node:util"; -import type { TUI } from "@earendil-works/diffex-tui"; -import { getGlyphs, visibleWidth } from "@earendil-works/diffex-tui"; +import type { TUI } from "@diffexai/diffex-tui"; +import { getGlyphs, visibleWidth } from "@diffexai/diffex-tui"; import { afterAll, afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { DIFFEX_LOGO_ART, diff --git a/packages/coding-agent/test/dynamic-border.test.ts b/packages/coding-agent/test/dynamic-border.test.ts index 152dcad88..237000413 100644 --- a/packages/coding-agent/test/dynamic-border.test.ts +++ b/packages/coding-agent/test/dynamic-border.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs } from "@earendil-works/diffex-tui"; +import { getGlyphs } from "@diffexai/diffex-tui"; import { describe, expect, it } from "vitest"; import { DynamicBorder } from "../src/modes/interactive/components/dynamic-border.ts"; diff --git a/packages/coding-agent/test/edit-tool-no-full-redraw.test.ts b/packages/coding-agent/test/edit-tool-no-full-redraw.test.ts index 8e1b2a57b..8e538c3ba 100644 --- a/packages/coding-agent/test/edit-tool-no-full-redraw.test.ts +++ b/packages/coding-agent/test/edit-tool-no-full-redraw.test.ts @@ -1,7 +1,7 @@ import { mkdtemp, readFile, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Container, type Terminal, Text, type TUI, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { Container, type Terminal, Text, type TUI, TuiMainScreen } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, it } from "vitest"; import { createEditToolDefinition } from "../src/core/tools/edit.ts"; import { computeEditsDiff, type Edit } from "../src/core/tools/edit-diff.ts"; diff --git a/packages/coding-agent/test/edit-tool-streaming-terminal.test.ts b/packages/coding-agent/test/edit-tool-streaming-terminal.test.ts index 93349b2cd..9062f7872 100644 --- a/packages/coding-agent/test/edit-tool-streaming-terminal.test.ts +++ b/packages/coding-agent/test/edit-tool-streaming-terminal.test.ts @@ -1,7 +1,7 @@ import { mkdtemp, rm, writeFile } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Container, Editor, Spacer, Text, type TUI, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { Container, Editor, Spacer, Text, type TUI, TuiMainScreen } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, it } from "vitest"; import { VirtualTerminal } from "../../tui/test/virtual-terminal.ts"; import { createEditToolDefinition } from "../src/core/tools/edit.ts"; diff --git a/packages/coding-agent/test/evolution-footer-status.test.ts b/packages/coding-agent/test/evolution-footer-status.test.ts index 0706826f0..a7b4ea6db 100644 --- a/packages/coding-agent/test/evolution-footer-status.test.ts +++ b/packages/coding-agent/test/evolution-footer-status.test.ts @@ -1,4 +1,4 @@ -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AUTOMATIC_EVOLUTION_TOKEN_THRESHOLD, diff --git a/packages/coding-agent/test/evolution-menu.test.ts b/packages/coding-agent/test/evolution-menu.test.ts index 1a0f4ed76..4fb0a5dd3 100644 --- a/packages/coding-agent/test/evolution-menu.test.ts +++ b/packages/coding-agent/test/evolution-menu.test.ts @@ -1,5 +1,5 @@ -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; -import { setKeybindings } from "@earendil-works/diffex-tui"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { AUTOMATIC_EVOLUTION_TOKEN_THRESHOLD, diff --git a/packages/coding-agent/test/evolution-runtime.test.ts b/packages/coding-agent/test/evolution-runtime.test.ts index 7efdcb5a9..c1b3f9f72 100644 --- a/packages/coding-agent/test/evolution-runtime.test.ts +++ b/packages/coding-agent/test/evolution-runtime.test.ts @@ -1,8 +1,8 @@ import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { basename, join } from "node:path"; -import { fauxAssistantMessage, fauxToolCall, type Message } from "@earendil-works/diffex-ai"; -import { computeHarnessSkillId, HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { fauxAssistantMessage, fauxToolCall, type Message } from "@diffexai/diffex-ai"; +import { computeHarnessSkillId, HarnessStateStore } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { type EvolutionControlService, diff --git a/packages/coding-agent/test/evolved-skill-catalog.test.ts b/packages/coding-agent/test/evolved-skill-catalog.test.ts index a765353fc..babe01959 100644 --- a/packages/coding-agent/test/evolved-skill-catalog.test.ts +++ b/packages/coding-agent/test/evolved-skill-catalog.test.ts @@ -1,7 +1,7 @@ import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { dirname, join } from "node:path"; -import { HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { HarnessStateStore } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it } from "vitest"; import { resolveHarnessWorkspace } from "../src/core/harness-state-runtime.ts"; import { DefaultResourceLoader } from "../src/core/resource-loader.ts"; diff --git a/packages/coding-agent/test/export-html-whitespace.test.ts b/packages/coding-agent/test/export-html-whitespace.test.ts index fcf3e4323..78da022fc 100644 --- a/packages/coding-agent/test/export-html-whitespace.test.ts +++ b/packages/coding-agent/test/export-html-whitespace.test.ts @@ -1,4 +1,4 @@ -import type { Component } from "@earendil-works/diffex-tui"; +import type { Component } from "@diffexai/diffex-tui"; import { readFileSync } from "fs"; import { describe, expect, it } from "vitest"; import { ansiLinesToHtml } from "../src/core/export-html/ansi-to-html.ts"; diff --git a/packages/coding-agent/test/extensions-discovery.test.ts b/packages/coding-agent/test/extensions-discovery.test.ts index e8d9cc7ae..ce33172d4 100644 --- a/packages/coding-agent/test/extensions-discovery.test.ts +++ b/packages/coding-agent/test/extensions-discovery.test.ts @@ -55,7 +55,7 @@ describe("extensions discovery", () => { fs.writeFileSync( path.join(extensionsDir, "coding-agent-import.ts"), ` - import { getAgentDir } from "@earendil-works/diffex-coding-agent"; + import { getAgentDir } from "@diffexai/diffex"; void getAgentDir; export default function(pi) { pi.registerCommand("test", { handler: async () => {} }); @@ -73,7 +73,7 @@ describe("extensions discovery", () => { fs.writeFileSync( path.join(extensionsDir, "oauth-import.ts"), ` - import * as oauth from "@earendil-works/diffex-ai/oauth"; + import * as oauth from "@diffexai/diffex-ai/oauth"; void oauth; export default function(pi) { pi.registerCommand("test", { handler: async () => {} }); diff --git a/packages/coding-agent/test/first-time-setup.test.ts b/packages/coding-agent/test/first-time-setup.test.ts index 0b4badf84..03fe420fe 100644 --- a/packages/coding-agent/test/first-time-setup.test.ts +++ b/packages/coding-agent/test/first-time-setup.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs } from "@earendil-works/diffex-tui"; +import { getGlyphs } from "@diffexai/diffex-tui"; import { mkdtempSync, rmSync, writeFileSync } from "fs"; import { tmpdir } from "os"; import { join } from "path"; diff --git a/packages/coding-agent/test/footer-width.test.ts b/packages/coding-agent/test/footer-width.test.ts index 5c40213ad..ccc4af061 100644 --- a/packages/coding-agent/test/footer-width.test.ts +++ b/packages/coding-agent/test/footer-width.test.ts @@ -1,6 +1,6 @@ import { sep } from "node:path"; -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; -import { setKeybindings, visibleWidth } from "@earendil-works/diffex-tui"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; +import { setKeybindings, visibleWidth } from "@diffexai/diffex-tui"; import { afterAll, beforeEach, describe, expect, it, vi } from "vitest"; import { AUTOMATIC_EVOLUTION_TOKEN_THRESHOLD, diff --git a/packages/coding-agent/test/harness-state-runtime.test.ts b/packages/coding-agent/test/harness-state-runtime.test.ts index dbccfa933..622c32f8c 100644 --- a/packages/coding-agent/test/harness-state-runtime.test.ts +++ b/packages/coding-agent/test/harness-state-runtime.test.ts @@ -9,7 +9,7 @@ import { type HarnessWorkspaceIdentity, harnessVersionDirectoryName, harnessWorkspaceSelectionFileName, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it } from "vitest"; import { loadWorkspaceHarnessState, diff --git a/packages/coding-agent/test/harness-version-selector.test.ts b/packages/coding-agent/test/harness-version-selector.test.ts index 2c726fbbf..507964c17 100644 --- a/packages/coding-agent/test/harness-version-selector.test.ts +++ b/packages/coding-agent/test/harness-version-selector.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings, visibleWidth } from "@earendil-works/diffex-tui"; +import { setKeybindings, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import { diff --git a/packages/coding-agent/test/interactive-mode-evolution.test.ts b/packages/coding-agent/test/interactive-mode-evolution.test.ts index 7a145e936..a11d30e55 100644 --- a/packages/coding-agent/test/interactive-mode-evolution.test.ts +++ b/packages/coding-agent/test/interactive-mode-evolution.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings } from "@earendil-works/diffex-tui"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { AUTOMATIC_EVOLUTION_TOKEN_THRESHOLD, type EvolutionOverview } from "#evolution"; import { KeybindingsManager } from "../src/core/keybindings.ts"; diff --git a/packages/coding-agent/test/interactive-mode-harness-version.test.ts b/packages/coding-agent/test/interactive-mode-harness-version.test.ts index bb3437af8..bb2a0032b 100644 --- a/packages/coding-agent/test/interactive-mode-harness-version.test.ts +++ b/packages/coding-agent/test/interactive-mode-harness-version.test.ts @@ -1,5 +1,5 @@ -import type { HarnessSkill } from "@earendil-works/diffex-harness-state"; -import { setKeybindings } from "@earendil-works/diffex-tui"; +import type { HarnessSkill } from "@diffexai/diffex-harness-state"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import type { HarnessVersionSelectorComponent } from "../src/modes/interactive/components/harness-version-selector.ts"; diff --git a/packages/coding-agent/test/interactive-mode-plan-controls.test.ts b/packages/coding-agent/test/interactive-mode-plan-controls.test.ts index c2a720990..1d5869511 100644 --- a/packages/coding-agent/test/interactive-mode-plan-controls.test.ts +++ b/packages/coding-agent/test/interactive-mode-plan-controls.test.ts @@ -1,8 +1,8 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; -import { type Component, Container } from "@earendil-works/diffex-tui"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; +import { type Component, Container } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import type { AgentSession } from "../src/core/agent-session.ts"; import type { AgentSessionRuntime } from "../src/core/agent-session-runtime.ts"; diff --git a/packages/coding-agent/test/interactive-mode-plan-handoff.test.ts b/packages/coding-agent/test/interactive-mode-plan-handoff.test.ts index 3b0271ff6..1bb7af6c9 100644 --- a/packages/coding-agent/test/interactive-mode-plan-handoff.test.ts +++ b/packages/coding-agent/test/interactive-mode-plan-handoff.test.ts @@ -1,6 +1,6 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; -import type { Component, EditorComponent } from "@earendil-works/diffex-tui"; -import { type Container, Text } from "@earendil-works/diffex-tui"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; +import type { Component, EditorComponent } from "@diffexai/diffex-tui"; +import { type Container, Text } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import type { AgentSession, AgentSessionEvent } from "../src/core/agent-session.ts"; import type { AgentSessionRuntime } from "../src/core/agent-session-runtime.ts"; diff --git a/packages/coding-agent/test/interactive-mode-plan-status.test.ts b/packages/coding-agent/test/interactive-mode-plan-status.test.ts index 9396666e2..5d416f8b1 100644 --- a/packages/coding-agent/test/interactive-mode-plan-status.test.ts +++ b/packages/coding-agent/test/interactive-mode-plan-status.test.ts @@ -1,5 +1,5 @@ -import type { Component } from "@earendil-works/diffex-tui"; -import { Container, Text, visibleWidth } from "@earendil-works/diffex-tui"; +import type { Component } from "@diffexai/diffex-tui"; +import { Container, Text, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, it, vi } from "vitest"; import type { ReadonlyFooterDataProvider } from "../src/core/footer-data-provider.ts"; import type { AppKeybinding, KeybindingsConfig } from "../src/core/keybindings.ts"; diff --git a/packages/coding-agent/test/interactive-mode-skills.test.ts b/packages/coding-agent/test/interactive-mode-skills.test.ts index 1fee89f37..83a4845f3 100644 --- a/packages/coding-agent/test/interactive-mode-skills.test.ts +++ b/packages/coding-agent/test/interactive-mode-skills.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings } from "@earendil-works/diffex-tui"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import type { SkillReference } from "../src/core/skills.ts"; diff --git a/packages/coding-agent/test/interactive-mode-status.test.ts b/packages/coding-agent/test/interactive-mode-status.test.ts index e1acaea87..077a7f4e8 100644 --- a/packages/coding-agent/test/interactive-mode-status.test.ts +++ b/packages/coding-agent/test/interactive-mode-status.test.ts @@ -1,7 +1,7 @@ import { homedir } from "node:os"; import * as path from "node:path"; -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import { type AutocompleteProvider, CombinedAutocompleteProvider } from "@earendil-works/diffex-tui"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import { type AutocompleteProvider, CombinedAutocompleteProvider } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, test, vi } from "vitest"; import { type Component, Container, type Focusable, type TUI } from "../../tui/src/tui.ts"; import { TuiMainScreen } from "../../tui/src/tui-main-screen.ts"; diff --git a/packages/coding-agent/test/interactive-mode-subagent-coordination.test.ts b/packages/coding-agent/test/interactive-mode-subagent-coordination.test.ts index 6e790453c..7e2c038b4 100644 --- a/packages/coding-agent/test/interactive-mode-subagent-coordination.test.ts +++ b/packages/coding-agent/test/interactive-mode-subagent-coordination.test.ts @@ -1,4 +1,4 @@ -import { Container, Markdown, type TUI } from "@earendil-works/diffex-tui"; +import { Container, Markdown, type TUI } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, it, vi } from "vitest"; import { TuiMainScreen } from "../../tui/src/tui-main-screen.ts"; import { VirtualTerminal } from "../../tui/test/virtual-terminal.ts"; diff --git a/packages/coding-agent/test/interactive-transcript-layout.test.ts b/packages/coding-agent/test/interactive-transcript-layout.test.ts index 794bf3997..88947513d 100644 --- a/packages/coding-agent/test/interactive-transcript-layout.test.ts +++ b/packages/coding-agent/test/interactive-transcript-layout.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, ToolResultMessage, Usage } from "@earendil-works/diffex-ai"; -import { Container, getGlyphs, Spacer, Text, type TUI } from "@earendil-works/diffex-tui"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, ToolResultMessage, Usage } from "@diffexai/diffex-ai"; +import { Container, getGlyphs, Spacer, Text, type TUI } from "@diffexai/diffex-tui"; import { Type } from "typebox"; import { afterAll, beforeAll, describe, expect, test, vi } from "vitest"; import type { AgentSessionEvent } from "../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/interactive-tui.test.ts b/packages/coding-agent/test/interactive-tui.test.ts index 352cbf189..12ee16557 100644 --- a/packages/coding-agent/test/interactive-tui.test.ts +++ b/packages/coding-agent/test/interactive-tui.test.ts @@ -1,5 +1,5 @@ -import type { Component, Terminal, TUI } from "@earendil-works/diffex-tui"; -import { Container, isViewportTUI, Text } from "@earendil-works/diffex-tui"; +import type { Component, Terminal, TUI } from "@diffexai/diffex-tui"; +import { Container, isViewportTUI, Text } from "@diffexai/diffex-tui"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { VirtualTerminal } from "../../tui/test/virtual-terminal.ts"; import type { TuiMode } from "../src/core/settings-manager.ts"; diff --git a/packages/coding-agent/test/invocation-tracing.test.ts b/packages/coding-agent/test/invocation-tracing.test.ts index 0a76821c8..256244f17 100644 --- a/packages/coding-agent/test/invocation-tracing.test.ts +++ b/packages/coding-agent/test/invocation-tracing.test.ts @@ -3,14 +3,14 @@ import { mkdirSync, mkdtempSync, readdirSync, rmSync, statSync, writeFileSync } import { mkdir, open } from "node:fs/promises"; import { tmpdir } from "node:os"; import { dirname, join, resolve } from "node:path"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { readJsonlTraceFile, type TraceFooterRecord, type TraceRecord, type TraceSessionAttachRecord, type TraceSpanEventRecord, -} from "@earendil-works/diffex-harness-trace"; +} from "@diffexai/diffex-harness-trace"; import lockfile from "proper-lockfile"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { EvolutionScope } from "#evolution"; @@ -23,7 +23,7 @@ import { SessionManager } from "../src/core/session-manager.ts"; const cliPath = resolve(__dirname, "../src/cli.ts"); const tsconfigPath = resolve(__dirname, "../../../tsconfig.json"); const FAUX_EXTENSION_SOURCE = ` -import { fauxAssistantMessage, fauxToolCall, registerFauxProvider } from "@earendil-works/diffex-ai/compat"; +import { fauxAssistantMessage, fauxToolCall, registerFauxProvider } from "@diffexai/diffex-ai/compat"; const faux = registerFauxProvider(); faux.setResponses([ diff --git a/packages/coding-agent/test/llama-extension.test.ts b/packages/coding-agent/test/llama-extension.test.ts index 6d0ecc3b2..feef768d0 100644 --- a/packages/coding-agent/test/llama-extension.test.ts +++ b/packages/coding-agent/test/llama-extension.test.ts @@ -1,7 +1,7 @@ import { once } from "node:events"; import { createServer, type RequestListener, type Server, type ServerResponse } from "node:http"; import type { AddressInfo } from "node:net"; -import type { AuthContext, AuthPrompt, ModelsPublication, ModelsStoreEntry } from "@earendil-works/diffex-ai"; +import type { AuthContext, AuthPrompt, ModelsPublication, ModelsStoreEntry } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { createEventBus } from "../src/core/event-bus.ts"; import { createExtensionRuntime, loadExtensionFromFactory } from "../src/core/extensions/loader.ts"; diff --git a/packages/coding-agent/test/model-registry.test.ts b/packages/coding-agent/test/model-registry.test.ts index ea5d597d2..cec26e797 100644 --- a/packages/coding-agent/test/model-registry.test.ts +++ b/packages/coding-agent/test/model-registry.test.ts @@ -1,14 +1,8 @@ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { - AnthropicMessagesCompat, - Api, - Context, - Model, - OpenAICompletionsCompat, -} from "@earendil-works/diffex-ai/compat"; -import { getApiProvider, getModels, getSupportedThinkingLevels } from "@earendil-works/diffex-ai/compat"; +import type { AnthropicMessagesCompat, Api, Context, Model, OpenAICompletionsCompat } from "@diffexai/diffex-ai/compat"; +import { getApiProvider, getModels, getSupportedThinkingLevels } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { clearApiKeyCache, type ModelRegistry, type ProviderConfigInput } from "../src/core/model-registry.ts"; diff --git a/packages/coding-agent/test/model-resolver.test.ts b/packages/coding-agent/test/model-resolver.test.ts index 50390212b..391c6a613 100644 --- a/packages/coding-agent/test/model-resolver.test.ts +++ b/packages/coding-agent/test/model-resolver.test.ts @@ -1,4 +1,4 @@ -import type { Model } from "@earendil-works/diffex-ai"; +import type { Model } from "@diffexai/diffex-ai"; import { describe, expect, test, vi } from "vitest"; import { defaultModelPerProvider, diff --git a/packages/coding-agent/test/model-runtime-auth-options.test.ts b/packages/coding-agent/test/model-runtime-auth-options.test.ts index a52509817..3a78cbe60 100644 --- a/packages/coding-agent/test/model-runtime-auth-options.test.ts +++ b/packages/coding-agent/test/model-runtime-auth-options.test.ts @@ -1,4 +1,4 @@ -import { type AuthType, type CredentialStore, InMemoryCredentialStore } from "@earendil-works/diffex-ai"; +import { type AuthType, type CredentialStore, InMemoryCredentialStore } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { ModelRuntime } from "../src/core/model-runtime.ts"; diff --git a/packages/coding-agent/test/model-runtime-cloudflare-compat.test.ts b/packages/coding-agent/test/model-runtime-cloudflare-compat.test.ts index dedf7feee..db52194e8 100644 --- a/packages/coding-agent/test/model-runtime-cloudflare-compat.test.ts +++ b/packages/coding-agent/test/model-runtime-cloudflare-compat.test.ts @@ -1,4 +1,4 @@ -import { complete, resetApiProviders } from "@earendil-works/diffex-ai/compat"; +import { complete, resetApiProviders } from "@diffexai/diffex-ai/compat"; import { describe, expect, it, vi } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { ModelRegistry } from "../src/core/model-registry.ts"; diff --git a/packages/coding-agent/test/model-runtime-credential-sync.test.ts b/packages/coding-agent/test/model-runtime-credential-sync.test.ts index e02c2a635..c79bd3d46 100644 --- a/packages/coding-agent/test/model-runtime-credential-sync.test.ts +++ b/packages/coding-agent/test/model-runtime-credential-sync.test.ts @@ -1,4 +1,4 @@ -import type { ApiKeyCredential, Credential, CredentialStore, Model, Provider } from "@earendil-works/diffex-ai"; +import type { ApiKeyCredential, Credential, CredentialStore, Model, Provider } from "@diffexai/diffex-ai"; import { describe, expect, it, vi } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { CredentialSynchronizationError, ModelRuntime } from "../src/core/model-runtime.ts"; diff --git a/packages/coding-agent/test/model-runtime-modify-models-compat.test.ts b/packages/coding-agent/test/model-runtime-modify-models-compat.test.ts index be83838fa..2ad3c0d77 100644 --- a/packages/coding-agent/test/model-runtime-modify-models-compat.test.ts +++ b/packages/coding-agent/test/model-runtime-modify-models-compat.test.ts @@ -8,7 +8,7 @@ import { InMemoryModelsStore, type Model, type Provider, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { ModelRegistry } from "../src/core/model-registry.ts"; diff --git a/packages/coding-agent/test/model-runtime-test-utils.ts b/packages/coding-agent/test/model-runtime-test-utils.ts index f22aef3f7..a4e9f42dc 100644 --- a/packages/coding-agent/test/model-runtime-test-utils.ts +++ b/packages/coding-agent/test/model-runtime-test-utils.ts @@ -1,4 +1,4 @@ -import type { CredentialStore } from "@earendil-works/diffex-ai"; +import type { CredentialStore } from "@diffexai/diffex-ai"; import { ModelRegistry } from "../src/core/model-registry.ts"; import { ModelRuntime } from "../src/core/model-runtime.ts"; import { InMemoryCodingAgentModelsStore } from "../src/core/models-store.ts"; diff --git a/packages/coding-agent/test/model-selector.test.ts b/packages/coding-agent/test/model-selector.test.ts index e928dc0f3..1621ef0dc 100644 --- a/packages/coding-agent/test/model-selector.test.ts +++ b/packages/coding-agent/test/model-selector.test.ts @@ -1,4 +1,4 @@ -import type { TUI } from "@earendil-works/diffex-tui"; +import type { TUI } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import { ModelSelectorComponent } from "../src/modes/interactive/components/model-selector.ts"; import { initTheme } from "../src/modes/interactive/theme/theme.ts"; diff --git a/packages/coding-agent/test/model-thinking-selection.test.ts b/packages/coding-agent/test/model-thinking-selection.test.ts index baecb01e1..772b10dff 100644 --- a/packages/coding-agent/test/model-thinking-selection.test.ts +++ b/packages/coding-agent/test/model-thinking-selection.test.ts @@ -1,5 +1,5 @@ -import type { ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import { type Component, Container, setKeybindings, type TUI, visibleWidth } from "@earendil-works/diffex-tui"; +import type { ThinkingLevel } from "@diffexai/diffex-agent-core"; +import { type Component, Container, setKeybindings, type TUI, visibleWidth } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import { CustomEditor } from "../src/modes/interactive/components/custom-editor.ts"; diff --git a/packages/coding-agent/test/models-store.test.ts b/packages/coding-agent/test/models-store.test.ts index 8e68ca8b1..34d78eeb7 100644 --- a/packages/coding-agent/test/models-store.test.ts +++ b/packages/coding-agent/test/models-store.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { Model } from "@earendil-works/diffex-ai"; +import type { Model } from "@diffexai/diffex-ai"; import lockfile from "proper-lockfile"; import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import { FileModelsStore } from "../src/core/models-store.ts"; diff --git a/packages/coding-agent/test/oauth-selector.test.ts b/packages/coding-agent/test/oauth-selector.test.ts index 27b5116ef..c72993390 100644 --- a/packages/coding-agent/test/oauth-selector.test.ts +++ b/packages/coding-agent/test/oauth-selector.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, setKeybindings } from "@earendil-works/diffex-tui"; +import { getGlyphs, setKeybindings } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import { OAuthSelectorComponent } from "../src/modes/interactive/components/oauth-selector.ts"; diff --git a/packages/coding-agent/test/package-command-paths.test.ts b/packages/coding-agent/test/package-command-paths.test.ts index 3cc7da09f..2c544807c 100644 --- a/packages/coding-agent/test/package-command-paths.test.ts +++ b/packages/coding-agent/test/package-command-paths.test.ts @@ -573,7 +573,7 @@ describe("package commands", () => { it("uses the update check version for forced self updates even when current", async () => { const globalPrefix = join(tempDir, "global-prefix"); const projectPrefix = join(tempDir, "project-prefix"); - const selfPackageDir = join(globalPrefix, "lib", "node_modules", "@earendil-works", "diffex-coding-agent"); + const selfPackageDir = join(globalPrefix, "lib", "node_modules", "@diffexai", "diffex"); const fakeNpmPath = join(tempDir, "fake-npm.cjs"); const recordPath = join(tempDir, "self-update.json"); mkdirSync(selfPackageDir, { recursive: true }); @@ -722,7 +722,7 @@ else { it("prints a pnpm metadata hint when self-update fails", async () => { const globalRoot = join(tempDir, "pnpm", "global", "v11"); - const selfPackageDir = join(globalRoot, "node_modules", "@earendil-works", "diffex-coding-agent"); + const selfPackageDir = join(globalRoot, "node_modules", "@diffexai", "diffex"); const fakeBinDir = join(tempDir, "bin"); const fakePnpmPath = join(fakeBinDir, process.platform === "win32" ? "pnpm.cmd" : "pnpm"); mkdirSync(selfPackageDir, { recursive: true }); diff --git a/packages/coding-agent/test/print-mode.test.ts b/packages/coding-agent/test/print-mode.test.ts index 9725442ce..3b1b412bd 100644 --- a/packages/coding-agent/test/print-mode.test.ts +++ b/packages/coding-agent/test/print-mode.test.ts @@ -1,4 +1,4 @@ -import type { AssistantMessage, ImageContent } from "@earendil-works/diffex-ai"; +import type { AssistantMessage, ImageContent } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { SessionShutdownEvent } from "../src/index.ts"; import { runPrintMode } from "../src/modes/print-mode.ts"; diff --git a/packages/coding-agent/test/radius.test.ts b/packages/coding-agent/test/radius.test.ts index ff14eb414..bd943db4b 100644 --- a/packages/coding-agent/test/radius.test.ts +++ b/packages/coding-agent/test/radius.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { InMemoryModelsStore } from "@earendil-works/diffex-ai"; +import { InMemoryModelsStore } from "@diffexai/diffex-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { ModelRuntime } from "../src/core/model-runtime.ts"; diff --git a/packages/coding-agent/test/remote-catalog-provider.test.ts b/packages/coding-agent/test/remote-catalog-provider.test.ts index c4310b826..5ee8e91f3 100644 --- a/packages/coding-agent/test/remote-catalog-provider.test.ts +++ b/packages/coding-agent/test/remote-catalog-provider.test.ts @@ -6,7 +6,7 @@ import { type ModelsPublication, type Provider, type RefreshModelsContext, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { VERSION } from "../src/config.ts"; import { withRemoteCatalog } from "../src/core/remote-catalog-provider.ts"; diff --git a/packages/coding-agent/test/request-user-input-tool.test.ts b/packages/coding-agent/test/request-user-input-tool.test.ts index 86a8e10ae..fc483070f 100644 --- a/packages/coding-agent/test/request-user-input-tool.test.ts +++ b/packages/coding-agent/test/request-user-input-tool.test.ts @@ -1,5 +1,5 @@ -import type { Component, TUI } from "@earendil-works/diffex-tui"; -import { setKeybindings, visibleWidth } from "@earendil-works/diffex-tui"; +import type { Component, TUI } from "@diffexai/diffex-tui"; +import { setKeybindings, visibleWidth } from "@diffexai/diffex-tui"; import { beforeEach, describe, expect, it, vi } from "vitest"; import type { ExtensionContext } from "../src/core/extensions/types.ts"; import { KeybindingsManager } from "../src/core/keybindings.ts"; diff --git a/packages/coding-agent/test/resource-loader.test.ts b/packages/coding-agent/test/resource-loader.test.ts index c74d62c15..4223ca308 100644 --- a/packages/coding-agent/test/resource-loader.test.ts +++ b/packages/coding-agent/test/resource-loader.test.ts @@ -915,7 +915,7 @@ Content`, writeFileSync( join(ext1Dir, "index.ts"), ` -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function(pi: ExtensionAPI) { pi.registerTool({ @@ -930,7 +930,7 @@ export default function(pi: ExtensionAPI) { writeFileSync( join(ext2Dir, "index.ts"), ` -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function(pi: ExtensionAPI) { pi.registerTool({ @@ -957,7 +957,7 @@ export default function(pi: ExtensionAPI) { writeFileSync( join(globalExtDir, "global.ts"), ` -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function(pi: ExtensionAPI) { pi.registerTool({ @@ -976,7 +976,7 @@ export default function(pi: ExtensionAPI) { writeFileSync( explicitExtPath, ` -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; import { Type } from "typebox"; export default function(pi: ExtensionAPI) { pi.registerTool({ diff --git a/packages/coding-agent/test/rpc-prompt-response-semantics.test.ts b/packages/coding-agent/test/rpc-prompt-response-semantics.test.ts index bb6f27c8a..4506bf12e 100644 --- a/packages/coding-agent/test/rpc-prompt-response-semantics.test.ts +++ b/packages/coding-agent/test/rpc-prompt-response-semantics.test.ts @@ -1,14 +1,14 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; +import { Agent } from "@diffexai/diffex-agent-core"; import { type AssistantMessage, type AssistantMessageEvent, EventStream, getModel, type Model, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AgentSession } from "../src/core/agent-session.ts"; import type { AgentSessionRuntime } from "../src/core/agent-session-runtime.ts"; diff --git a/packages/coding-agent/test/rpc.test.ts b/packages/coding-agent/test/rpc.test.ts index cebac4c5a..9566714e7 100644 --- a/packages/coding-agent/test/rpc.test.ts +++ b/packages/coding-agent/test/rpc.test.ts @@ -2,7 +2,7 @@ import { existsSync, readdirSync, readFileSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; -import type { AgentEvent } from "@earendil-works/diffex-agent-core"; +import type { AgentEvent } from "@diffexai/diffex-agent-core"; import { afterEach, beforeEach, describe, expect, test } from "vitest"; import { RpcClient } from "../src/modes/rpc/rpc-client.ts"; diff --git a/packages/coding-agent/test/runtime-credentials.test.ts b/packages/coding-agent/test/runtime-credentials.test.ts index f029f501d..f523b34f2 100644 --- a/packages/coding-agent/test/runtime-credentials.test.ts +++ b/packages/coding-agent/test/runtime-credentials.test.ts @@ -1,4 +1,4 @@ -import type { CredentialStore } from "@earendil-works/diffex-ai"; +import type { CredentialStore } from "@diffexai/diffex-ai"; import { describe, expect, test, vi } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { RuntimeCredentials } from "../src/core/runtime-credentials.ts"; diff --git a/packages/coding-agent/test/sdk-codex-cache-probe-tool-loop.ts b/packages/coding-agent/test/sdk-codex-cache-probe-tool-loop.ts index 31f664b44..fff3ce24f 100644 --- a/packages/coding-agent/test/sdk-codex-cache-probe-tool-loop.ts +++ b/packages/coding-agent/test/sdk-codex-cache-probe-tool-loop.ts @@ -20,7 +20,7 @@ import { type Model, type SimpleStreamOptions, Type, -} from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-ai/compat"; import { getOpenAICodexWebSocketDebugStats, streamSimple as streamSimpleOpenAICodexResponses, diff --git a/packages/coding-agent/test/sdk-openrouter-attribution.test.ts b/packages/coding-agent/test/sdk-openrouter-attribution.test.ts index 4b5c2fd12..ee23376a2 100644 --- a/packages/coding-agent/test/sdk-openrouter-attribution.test.ts +++ b/packages/coding-agent/test/sdk-openrouter-attribution.test.ts @@ -8,7 +8,7 @@ import { type Model, type ProviderHeaders, type SimpleStreamOptions, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { createAgentSession } from "../src/core/sdk.ts"; diff --git a/packages/coding-agent/test/sdk-session-manager.test.ts b/packages/coding-agent/test/sdk-session-manager.test.ts index ae4d983a4..7312df3fb 100644 --- a/packages/coding-agent/test/sdk-session-manager.test.ts +++ b/packages/coding-agent/test/sdk-session-manager.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, realpathSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { createAgentSession } from "../src/core/sdk.ts"; import { SessionManager } from "../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/sdk-stream-options.test.ts b/packages/coding-agent/test/sdk-stream-options.test.ts index 97731033d..04ccbda46 100644 --- a/packages/coding-agent/test/sdk-stream-options.test.ts +++ b/packages/coding-agent/test/sdk-stream-options.test.ts @@ -7,7 +7,7 @@ import { createAssistantMessageEventStream, type Model, type SimpleStreamOptions, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { createAgentSession } from "../src/core/sdk.ts"; diff --git a/packages/coding-agent/test/secondary-dialogs.test.ts b/packages/coding-agent/test/secondary-dialogs.test.ts index 9919aa871..1722103e5 100644 --- a/packages/coding-agent/test/secondary-dialogs.test.ts +++ b/packages/coding-agent/test/secondary-dialogs.test.ts @@ -1,8 +1,7 @@ -import { getGlyphs, setKeybindings, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { getGlyphs, setKeybindings, TuiMainScreen } from "@diffexai/diffex-tui"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { VirtualTerminal } from "../../tui/test/virtual-terminal.ts"; import { KeybindingsManager } from "../src/core/keybindings.ts"; -import { EarendilAnnouncementComponent } from "../src/modes/interactive/components/earendil-announcement.ts"; import { ExtensionEditorComponent } from "../src/modes/interactive/components/extension-editor.ts"; import { ExtensionInputComponent } from "../src/modes/interactive/components/extension-input.ts"; import { ExtensionSelectorComponent } from "../src/modes/interactive/components/extension-selector.ts"; @@ -114,17 +113,4 @@ describe("secondary dialogs", () => { expect(output).toHaveLength(10); expect(output.every((line) => Array.from(line).length <= 60)).toBe(true); }); - - it("renders the Earendil announcement without a box", () => { - const component = new EarendilAnnouncementComponent(); - - const output = renderPlain(component, 80); - const text = output.join("\n"); - - expect(output[0]).toContain("Diffex has joined Earendil"); - expect(text).toContain("Read the blog post:"); - expect(text).toContain("https://mariozechner.at/posts/2026-04-08-ive-sold-out/"); - expect(output.some((line) => /^\s*─+\s*$/.test(line))).toBe(false); - expect(output.at(-1)).not.toBe(""); - }); }); diff --git a/packages/coding-agent/test/server/create-harness.test.ts b/packages/coding-agent/test/server/create-harness.test.ts index fb498de2a..10424116a 100644 --- a/packages/coding-agent/test/server/create-harness.test.ts +++ b/packages/coding-agent/test/server/create-harness.test.ts @@ -7,10 +7,10 @@ import { type Result, Session, type ShellExecOptions, -} from "@earendil-works/diffex-agent-core"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; -import { createModels } from "@earendil-works/diffex-ai"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +} from "@diffexai/diffex-agent-core"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; +import { createModels } from "@diffexai/diffex-ai"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { describe, expect, test, vi } from "vitest"; import { createSkill } from "../../src/core/skills.ts"; diff --git a/packages/coding-agent/test/session-selector-path-delete.test.ts b/packages/coding-agent/test/session-selector-path-delete.test.ts index 10f26f528..c81daba8c 100644 --- a/packages/coding-agent/test/session-selector-path-delete.test.ts +++ b/packages/coding-agent/test/session-selector-path-delete.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, mkdtempSync, renameSync, rmSync, symlinkSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { basename, join } from "node:path"; -import { setKeybindings } from "@earendil-works/diffex-tui"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import { type SessionInfo, SessionManager } from "../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/session-selector-rename.test.ts b/packages/coding-agent/test/session-selector-rename.test.ts index 8e996d4d8..2dc6b9abb 100644 --- a/packages/coding-agent/test/session-selector-rename.test.ts +++ b/packages/coding-agent/test/session-selector-rename.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings } from "@earendil-works/diffex-tui"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import type { SessionInfo } from "../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/settings-selector.test.ts b/packages/coding-agent/test/settings-selector.test.ts index 855b8ff07..0af42356e 100644 --- a/packages/coding-agent/test/settings-selector.test.ts +++ b/packages/coding-agent/test/settings-selector.test.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { CURSOR_MARKER, getCapabilities, getGlyphs, setKeybindings, Text } from "@earendil-works/diffex-tui"; +import { CURSOR_MARKER, getCapabilities, getGlyphs, setKeybindings, Text } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import { SettingsManager } from "../src/core/settings-manager.ts"; diff --git a/packages/coding-agent/test/skill-selector.test.ts b/packages/coding-agent/test/skill-selector.test.ts index c1bc1822e..c6a5146b0 100644 --- a/packages/coding-agent/test/skill-selector.test.ts +++ b/packages/coding-agent/test/skill-selector.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings, visibleWidth } from "@earendil-works/diffex-tui"; +import { setKeybindings, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import type { SkillReference } from "../src/core/skills.ts"; diff --git a/packages/coding-agent/test/status-indicator.test.ts b/packages/coding-agent/test/status-indicator.test.ts index a60878399..6387b7773 100644 --- a/packages/coding-agent/test/status-indicator.test.ts +++ b/packages/coding-agent/test/status-indicator.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, type TUI } from "@earendil-works/diffex-tui"; +import { getGlyphs, type TUI } from "@diffexai/diffex-tui"; import { afterEach, describe, expect, it, vi } from "vitest"; import { BorderedLoader } from "../src/modes/interactive/components/bordered-loader.ts"; import { diff --git a/packages/coding-agent/test/streaming-render-debug.ts b/packages/coding-agent/test/streaming-render-debug.ts index e2e1cbf9e..bc13fd1ad 100644 --- a/packages/coding-agent/test/streaming-render-debug.ts +++ b/packages/coding-agent/test/streaming-render-debug.ts @@ -4,8 +4,8 @@ * Run with: npx tsx test/streaming-render-debug.ts */ -import type { AssistantMessage } from "@earendil-works/diffex-ai"; -import { ProcessTerminal, type TUI, TuiMainScreen } from "@earendil-works/diffex-tui"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; +import { ProcessTerminal, type TUI, TuiMainScreen } from "@diffexai/diffex-tui"; import { readFileSync } from "fs"; import { dirname, join } from "path"; import { fileURLToPath } from "url"; diff --git a/packages/coding-agent/test/subagents-component.test.ts b/packages/coding-agent/test/subagents-component.test.ts index 5bf38122d..017d9d0f8 100644 --- a/packages/coding-agent/test/subagents-component.test.ts +++ b/packages/coding-agent/test/subagents-component.test.ts @@ -1,4 +1,4 @@ -import { visibleWidth } from "@earendil-works/diffex-tui"; +import { visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, it } from "vitest"; import type { SubagentSummary } from "../src/core/subagents/types.ts"; import { SubagentsComponent } from "../src/modes/interactive/components/subagents.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-bash-persistence.test.ts b/packages/coding-agent/test/suite/agent-session-bash-persistence.test.ts index 8e609317d..bf7d0d1c1 100644 --- a/packages/coding-agent/test/suite/agent-session-bash-persistence.test.ts +++ b/packages/coding-agent/test/suite/agent-session-bash-persistence.test.ts @@ -1,6 +1,6 @@ import { Buffer } from "node:buffer"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import type { BashOperations } from "../../src/core/tools/bash.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-collaboration-mode.test.ts b/packages/coding-agent/test/suite/agent-session-collaboration-mode.test.ts index 027d7a707..8f7471da4 100644 --- a/packages/coding-agent/test/suite/agent-session-collaboration-mode.test.ts +++ b/packages/coding-agent/test/suite/agent-session-collaboration-mode.test.ts @@ -1,8 +1,8 @@ import { existsSync, mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it, vi } from "vitest"; import { diff --git a/packages/coding-agent/test/suite/agent-session-compaction.test.ts b/packages/coding-agent/test/suite/agent-session-compaction.test.ts index b9e1714f3..a7c68a2d5 100644 --- a/packages/coding-agent/test/suite/agent-session-compaction.test.ts +++ b/packages/coding-agent/test/suite/agent-session-compaction.test.ts @@ -3,7 +3,7 @@ import { createAssistantMessageEventStream, fauxAssistantMessage, type Model, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { estimateTokens } from "../../src/core/compaction/index.ts"; import { createHarness, getUserTexts, type Harness } from "./harness.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-current-plan-restoration.test.ts b/packages/coding-agent/test/suite/agent-session-current-plan-restoration.test.ts index f266b23d3..668e398f0 100644 --- a/packages/coding-agent/test/suite/agent-session-current-plan-restoration.test.ts +++ b/packages/coding-agent/test/suite/agent-session-current-plan-restoration.test.ts @@ -1,5 +1,5 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, type Message, type TextContent } from "@earendil-works/diffex-ai"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, type Message, type TextContent } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { appendCurrentPlanRecord, diff --git a/packages/coding-agent/test/suite/agent-session-finalized-plan.test.ts b/packages/coding-agent/test/suite/agent-session-finalized-plan.test.ts index 63fb44724..e8a5e05f1 100644 --- a/packages/coding-agent/test/suite/agent-session-finalized-plan.test.ts +++ b/packages/coding-agent/test/suite/agent-session-finalized-plan.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage, fauxText } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage, fauxText } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { setCollaborationMode } from "../../src/core/collaboration-mode.ts"; import { parseFinalizedPlanResponse } from "../../src/core/finalized-plan.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-harness-version.test.ts b/packages/coding-agent/test/suite/agent-session-harness-version.test.ts index 71252dee5..c54952962 100644 --- a/packages/coding-agent/test/suite/agent-session-harness-version.test.ts +++ b/packages/coding-agent/test/suite/agent-session-harness-version.test.ts @@ -2,8 +2,8 @@ import { createHash } from "node:crypto"; import { mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { InMemoryTelemetryContext } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import { InMemoryTelemetryContext } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { computeHarnessSkillPackageVersion, computeHarnessVersion, @@ -14,7 +14,7 @@ import { type HarnessVersionMetadata, type HarnessWorkspaceIdentity, harnessVersionDirectoryName, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { resolveHarnessWorkspace } from "../../src/core/harness-state-runtime.ts"; import { createHarness, getMessageText, type Harness } from "./harness.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-model-extension.test.ts b/packages/coding-agent/test/suite/agent-session-model-extension.test.ts index bbcaaae5d..c589a8d41 100644 --- a/packages/coding-agent/test/suite/agent-session-model-extension.test.ts +++ b/packages/coding-agent/test/suite/agent-session-model-extension.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool, ThinkingLevel } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall, type Model, type Usage } from "@earendil-works/diffex-ai"; +import type { AgentTool, ThinkingLevel } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall, type Model, type Usage } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import type { BuildSystemPromptOptions, ExtensionAPI } from "../../src/index.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-prompt.test.ts b/packages/coding-agent/test/suite/agent-session-prompt.test.ts index d3ac3473b..09d7db1fe 100644 --- a/packages/coding-agent/test/suite/agent-session-prompt.test.ts +++ b/packages/coding-agent/test/suite/agent-session-prompt.test.ts @@ -1,9 +1,9 @@ import { mkdirSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { type AgentTool, InMemoryTelemetryContext } from "@earendil-works/diffex-agent-core"; -import { type AssistantMessage, fauxAssistantMessage, fauxToolCall, type Model } from "@earendil-works/diffex-ai"; -import { HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { type AgentTool, InMemoryTelemetryContext } from "@diffexai/diffex-agent-core"; +import { type AssistantMessage, fauxAssistantMessage, fauxToolCall, type Model } from "@diffexai/diffex-ai"; +import { HarnessStateStore } from "@diffexai/diffex-harness-state"; import { Type } from "typebox"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { InputEvent } from "../../src/core/extensions/index.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-queue.test.ts b/packages/coding-agent/test/suite/agent-session-queue.test.ts index 181ce31b2..550e9756b 100644 --- a/packages/coding-agent/test/suite/agent-session-queue.test.ts +++ b/packages/coding-agent/test/suite/agent-session-queue.test.ts @@ -1,9 +1,9 @@ import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI, ResourceLoader } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI, ResourceLoader } from "@diffexai/diffex"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createSkill } from "../../src/core/skills.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-retry-events.test.ts b/packages/coding-agent/test/suite/agent-session-retry-events.test.ts index 350c4647d..e20013ce8 100644 --- a/packages/coding-agent/test/suite/agent-session-retry-events.test.ts +++ b/packages/coding-agent/test/suite/agent-session-retry-events.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxThinking, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxThinking, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "./harness.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-runtime.test.ts b/packages/coding-agent/test/suite/agent-session-runtime.test.ts index 6c25d3d83..e4697c42f 100644 --- a/packages/coding-agent/test/suite/agent-session-runtime.test.ts +++ b/packages/coding-agent/test/suite/agent-session-runtime.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, realpathSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join, parse } from "node:path"; -import { fauxAssistantMessage, fauxToolCall, registerFauxProvider } from "@earendil-works/diffex-ai/compat"; +import { fauxAssistantMessage, fauxToolCall, registerFauxProvider } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AgentSession } from "../../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-subagent-lifecycle.test.ts b/packages/coding-agent/test/suite/agent-session-subagent-lifecycle.test.ts index 5085abfa1..5a6bc45d6 100644 --- a/packages/coding-agent/test/suite/agent-session-subagent-lifecycle.test.ts +++ b/packages/coding-agent/test/suite/agent-session-subagent-lifecycle.test.ts @@ -1,6 +1,6 @@ -import type { AgentToolResult } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import { type FauxProviderRegistration, registerFauxProvider } from "@earendil-works/diffex-ai/compat"; +import type { AgentToolResult } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; +import { type FauxProviderRegistration, registerFauxProvider } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AgentSession } from "../../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-tool-result-images.test.ts b/packages/coding-agent/test/suite/agent-session-tool-result-images.test.ts index 858ca1744..4a07da9e9 100644 --- a/packages/coding-agent/test/suite/agent-session-tool-result-images.test.ts +++ b/packages/coding-agent/test/suite/agent-session-tool-result-images.test.ts @@ -1,7 +1,7 @@ import { crc32, deflateSync } from "node:zlib"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import type { ImageContent } from "@earendil-works/diffex-ai"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import type { ImageContent } from "@diffexai/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "./harness.ts"; diff --git a/packages/coding-agent/test/suite/agent-session-update-plan.test.ts b/packages/coding-agent/test/suite/agent-session-update-plan.test.ts index abb97e5ce..05d2567d8 100644 --- a/packages/coding-agent/test/suite/agent-session-update-plan.test.ts +++ b/packages/coding-agent/test/suite/agent-session-update-plan.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { CURRENT_PLAN_CUSTOM_ENTRY_TYPE, resolveCurrentPlanState } from "../../src/core/current-plan-state.ts"; import type { CustomEntry } from "../../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/suite/harness.ts b/packages/coding-agent/test/suite/harness.ts index 9412691a8..529263fea 100644 --- a/packages/coding-agent/test/suite/harness.ts +++ b/packages/coding-agent/test/suite/harness.ts @@ -6,16 +6,16 @@ import { createInMemoryModelRegistry, createModelRegistry, getModelRuntime } fro import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { AgentMessage, AgentTool, TelemetryContext } from "@earendil-works/diffex-agent-core"; -import { Agent } from "@earendil-works/diffex-agent-core"; +import type { AgentMessage, AgentTool, TelemetryContext } from "@diffexai/diffex-agent-core"; +import { Agent } from "@diffexai/diffex-agent-core"; import type { FauxModelDefinition, FauxProviderRegistration, FauxResponseStep, Model, -} from "@earendil-works/diffex-ai/compat"; -import { registerFauxProvider, streamSimple } from "@earendil-works/diffex-ai/compat"; -import type { HarnessStateStore, HarnessVersionBundle } from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-ai/compat"; +import { registerFauxProvider, streamSimple } from "@diffexai/diffex-ai/compat"; +import type { HarnessStateStore, HarnessVersionBundle } from "@diffexai/diffex-harness-state"; import { AgentSession, type AgentSessionEvent } from "../../src/core/agent-session.ts"; import type { AgentSessionLifecycleObserver } from "../../src/core/agent-session-lifecycle.ts"; import { AuthStorage } from "../../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/suite/lax-message-content.test.ts b/packages/coding-agent/test/suite/lax-message-content.test.ts index d5dcab3e2..28e9f382e 100644 --- a/packages/coding-agent/test/suite/lax-message-content.test.ts +++ b/packages/coding-agent/test/suite/lax-message-content.test.ts @@ -7,8 +7,8 @@ * (issues #6259, #6276). */ -import type { AgentMessage, AgentToolResult } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentMessage, AgentToolResult } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import { type SessionEntry, sessionEntryToContextMessages } from "../../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/suite/regressions/1717-2113-agent-session-event-settlement.test.ts b/packages/coding-agent/test/suite/regressions/1717-2113-agent-session-event-settlement.test.ts index 4b241c7da..13bee1ae4 100644 --- a/packages/coding-agent/test/suite/regressions/1717-2113-agent-session-event-settlement.test.ts +++ b/packages/coding-agent/test/suite/regressions/1717-2113-agent-session-event-settlement.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/177-compaction-busy-state.test.ts b/packages/coding-agent/test/suite/regressions/177-compaction-busy-state.test.ts index 7ea593773..7e11311b6 100644 --- a/packages/coding-agent/test/suite/regressions/177-compaction-busy-state.test.ts +++ b/packages/coding-agent/test/suite/regressions/177-compaction-busy-state.test.ts @@ -1,8 +1,8 @@ import { mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; -import { HarnessStateStore, type HarnessVersion } from "@earendil-works/diffex-harness-state"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; +import { HarnessStateStore, type HarnessVersion } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { isCollaborationModeBusy, setCollaborationMode } from "../../../src/core/collaboration-mode.ts"; import { createHarness, getUserTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/177-skill-toggle-collaboration.test.ts b/packages/coding-agent/test/suite/regressions/177-skill-toggle-collaboration.test.ts index 13724d1ee..8b4113bb3 100644 --- a/packages/coding-agent/test/suite/regressions/177-skill-toggle-collaboration.test.ts +++ b/packages/coding-agent/test/suite/regressions/177-skill-toggle-collaboration.test.ts @@ -1,6 +1,6 @@ import { writeFileSync } from "node:fs"; import { join } from "node:path"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { PLAN_MODE_SYSTEM_PROMPT, setCollaborationMode } from "../../../src/core/collaboration-mode.ts"; import { createSkill } from "../../../src/core/skills.ts"; diff --git a/packages/coding-agent/test/suite/regressions/2-lesson-report-isolation.test.ts b/packages/coding-agent/test/suite/regressions/2-lesson-report-isolation.test.ts index 4ee10d0c1..007e1d76b 100644 --- a/packages/coding-agent/test/suite/regressions/2-lesson-report-isolation.test.ts +++ b/packages/coding-agent/test/suite/regressions/2-lesson-report-isolation.test.ts @@ -1,8 +1,8 @@ import { readdir, readFile, writeFile } from "node:fs/promises"; import { join } from "node:path"; -import { type Context, fauxAssistantMessage, fauxToolCall, type SimpleStreamOptions } from "@earendil-works/diffex-ai"; -import { HarnessStateStore } from "@earendil-works/diffex-harness-state"; -import { NOOP_TELEMETRY_CONTEXT } from "@earendil-works/diffex-telemetry"; +import { type Context, fauxAssistantMessage, fauxToolCall, type SimpleStreamOptions } from "@diffexai/diffex-ai"; +import { HarnessStateStore } from "@diffexai/diffex-harness-state"; +import { NOOP_TELEMETRY_CONTEXT } from "@diffexai/diffex-telemetry"; import { afterEach, describe, expect, it } from "vitest"; import { EvolutionMemoryWriter } from "#evolution"; import { materializeJsonlInvocation } from "#harness-trace"; diff --git a/packages/coding-agent/test/suite/regressions/2-skill-report-isolation.test.ts b/packages/coding-agent/test/suite/regressions/2-skill-report-isolation.test.ts index 4f04b6cca..798fec0fa 100644 --- a/packages/coding-agent/test/suite/regressions/2-skill-report-isolation.test.ts +++ b/packages/coding-agent/test/suite/regressions/2-skill-report-isolation.test.ts @@ -1,8 +1,8 @@ import { readdir, readFile } from "node:fs/promises"; import { join } from "node:path"; -import { type Context, fauxAssistantMessage, fauxToolCall, type SimpleStreamOptions } from "@earendil-works/diffex-ai"; -import { HarnessStateStore } from "@earendil-works/diffex-harness-state"; -import { NOOP_TELEMETRY_CONTEXT } from "@earendil-works/diffex-telemetry"; +import { type Context, fauxAssistantMessage, fauxToolCall, type SimpleStreamOptions } from "@diffexai/diffex-ai"; +import { HarnessStateStore } from "@diffexai/diffex-harness-state"; +import { NOOP_TELEMETRY_CONTEXT } from "@diffexai/diffex-telemetry"; import { afterEach, describe, expect, it } from "vitest"; import { FileEvolutionPersistence } from "#evolution"; import { materializeJsonlInvocation } from "#harness-trace"; diff --git a/packages/coding-agent/test/suite/regressions/2023-queued-slash-command-followup.test.ts b/packages/coding-agent/test/suite/regressions/2023-queued-slash-command-followup.test.ts index 191728dbd..fb1272c8f 100644 --- a/packages/coding-agent/test/suite/regressions/2023-queued-slash-command-followup.test.ts +++ b/packages/coding-agent/test/suite/regressions/2023-queued-slash-command-followup.test.ts @@ -1,6 +1,6 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import type { ExtensionAPI } from "@earendil-works/diffex-coding-agent"; +import type { ExtensionAPI } from "@diffexai/diffex"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, getAssistantTexts, getUserTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/2753-reload-stale-resource-settings.test.ts b/packages/coding-agent/test/suite/regressions/2753-reload-stale-resource-settings.test.ts index 943ee9c8b..e00325913 100644 --- a/packages/coding-agent/test/suite/regressions/2753-reload-stale-resource-settings.test.ts +++ b/packages/coding-agent/test/suite/regressions/2753-reload-stale-resource-settings.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { registerFauxProvider } from "@earendil-works/diffex-ai/compat"; +import { registerFauxProvider } from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it } from "vitest"; import { type CreateAgentSessionRuntimeFactory, diff --git a/packages/coding-agent/test/suite/regressions/2835-tools-allowlist-filters-extension-tools.test.ts b/packages/coding-agent/test/suite/regressions/2835-tools-allowlist-filters-extension-tools.test.ts index 543d6ba68..5a043b705 100644 --- a/packages/coding-agent/test/suite/regressions/2835-tools-allowlist-filters-extension-tools.test.ts +++ b/packages/coding-agent/test/suite/regressions/2835-tools-allowlist-filters-extension-tools.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { DefaultResourceLoader } from "../../../src/core/resource-loader.ts"; diff --git a/packages/coding-agent/test/suite/regressions/2860-replaced-session-context.test.ts b/packages/coding-agent/test/suite/regressions/2860-replaced-session-context.test.ts index c8022bb8e..b1e37da19 100644 --- a/packages/coding-agent/test/suite/regressions/2860-replaced-session-context.test.ts +++ b/packages/coding-agent/test/suite/regressions/2860-replaced-session-context.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { fauxAssistantMessage, registerFauxProvider } from "@earendil-works/diffex-ai/compat"; +import { fauxAssistantMessage, registerFauxProvider } from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it } from "vitest"; import type { AgentSession } from "../../../src/core/agent-session.ts"; import { diff --git a/packages/coding-agent/test/suite/regressions/3-lesson-report-scoring.test.ts b/packages/coding-agent/test/suite/regressions/3-lesson-report-scoring.test.ts index 366432a6b..7bdef852d 100644 --- a/packages/coding-agent/test/suite/regressions/3-lesson-report-scoring.test.ts +++ b/packages/coding-agent/test/suite/regressions/3-lesson-report-scoring.test.ts @@ -1,7 +1,7 @@ import { readFile } from "node:fs/promises"; import { join } from "node:path"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import { HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; +import { HarnessStateStore } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { computeEvolutionContentDigest, diff --git a/packages/coding-agent/test/suite/regressions/3-skill-report-scoring.test.ts b/packages/coding-agent/test/suite/regressions/3-skill-report-scoring.test.ts index 35ce4cbb8..7cc0b3822 100644 --- a/packages/coding-agent/test/suite/regressions/3-skill-report-scoring.test.ts +++ b/packages/coding-agent/test/suite/regressions/3-skill-report-scoring.test.ts @@ -1,7 +1,7 @@ import { readFile } from "node:fs/promises"; import { join } from "node:path"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import { computeHarnessSkillId, HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; +import { computeHarnessSkillId, HarnessStateStore } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { computeEvolutionContentDigest, FileEvolutionPersistence, type SkillScoreLedger } from "#evolution"; import { diff --git a/packages/coding-agent/test/suite/regressions/3217-scoped-model-order.test.ts b/packages/coding-agent/test/suite/regressions/3217-scoped-model-order.test.ts index 46f9f4f2d..b5f7d60ea 100644 --- a/packages/coding-agent/test/suite/regressions/3217-scoped-model-order.test.ts +++ b/packages/coding-agent/test/suite/regressions/3217-scoped-model-order.test.ts @@ -1,4 +1,4 @@ -import { SELECTED_LIST_PREFIX, setKeybindings, stripTerminalSequences, type TUI } from "@earendil-works/diffex-tui"; +import { SELECTED_LIST_PREFIX, setKeybindings, stripTerminalSequences, type TUI } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../../../src/core/keybindings.ts"; import { ModelSelectorComponent } from "../../../src/modes/interactive/components/model-selector.ts"; diff --git a/packages/coding-agent/test/suite/regressions/3317-network-connection-lost-retry.test.ts b/packages/coding-agent/test/suite/regressions/3317-network-connection-lost-retry.test.ts index 9ad34b449..1e18ffe8b 100644 --- a/packages/coding-agent/test/suite/regressions/3317-network-connection-lost-retry.test.ts +++ b/packages/coding-agent/test/suite/regressions/3317-network-connection-lost-retry.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, getAssistantTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts b/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts index 32c6e1a2e..17ec28b8f 100644 --- a/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts +++ b/packages/coding-agent/test/suite/regressions/3592-no-builtin-tools-keeps-extension-tools.test.ts @@ -1,7 +1,7 @@ import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { getModel } from "@earendil-works/diffex-ai/compat"; +import { getModel } from "@diffexai/diffex-ai/compat"; import { Type } from "typebox"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { diff --git a/packages/coding-agent/test/suite/regressions/3982-message-end-cost-override.test.ts b/packages/coding-agent/test/suite/regressions/3982-message-end-cost-override.test.ts index b44b069d4..86fca1a3e 100644 --- a/packages/coding-agent/test/suite/regressions/3982-message-end-cost-override.test.ts +++ b/packages/coding-agent/test/suite/regressions/3982-message-end-cost-override.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/4-lesson-grooming.test.ts b/packages/coding-agent/test/suite/regressions/4-lesson-grooming.test.ts index fb1a1ad3c..d91504334 100644 --- a/packages/coding-agent/test/suite/regressions/4-lesson-grooming.test.ts +++ b/packages/coding-agent/test/suite/regressions/4-lesson-grooming.test.ts @@ -1,6 +1,6 @@ import { join } from "node:path"; -import { createAssistantMessageEventStream, fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import { HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { createAssistantMessageEventStream, fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; +import { HarnessStateStore } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { computeEvolutionContentDigest, EvolutionMemoryWriter, FileEvolutionPersistence } from "#evolution"; import { CuratorToolRegistry } from "../../../../evolution/src/curator-tools.ts"; diff --git a/packages/coding-agent/test/suite/regressions/4-skill-grooming.test.ts b/packages/coding-agent/test/suite/regressions/4-skill-grooming.test.ts index 983d97fc8..eb7ea06ec 100644 --- a/packages/coding-agent/test/suite/regressions/4-skill-grooming.test.ts +++ b/packages/coding-agent/test/suite/regressions/4-skill-grooming.test.ts @@ -1,6 +1,6 @@ import { join } from "node:path"; -import { createAssistantMessageEventStream, fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import { computeHarnessSkillId, HarnessStateStore } from "@earendil-works/diffex-harness-state"; +import { createAssistantMessageEventStream, fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; +import { computeHarnessSkillId, HarnessStateStore } from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it, vi } from "vitest"; import { DeterministicSkillLifecycleObserver, FileEvolutionPersistence, StructuredSkillCurator } from "#evolution"; import { createCodingAgentEvolutionRuntime, EvolutionRuntimeCoordinator } from "../../../src/core/evolution-runtime.ts"; diff --git a/packages/coding-agent/test/suite/regressions/4167-thinking-toggle-pending-tool-render.test.ts b/packages/coding-agent/test/suite/regressions/4167-thinking-toggle-pending-tool-render.test.ts index 81fd63a99..ba0de489f 100644 --- a/packages/coding-agent/test/suite/regressions/4167-thinking-toggle-pending-tool-render.test.ts +++ b/packages/coding-agent/test/suite/regressions/4167-thinking-toggle-pending-tool-render.test.ts @@ -1,6 +1,6 @@ -import type { AgentMessage } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, ToolResultMessage, Usage } from "@earendil-works/diffex-ai"; -import { Container, Text, type TUI } from "@earendil-works/diffex-tui"; +import type { AgentMessage } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, ToolResultMessage, Usage } from "@diffexai/diffex-ai"; +import { Container, Text, type TUI } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, test, vi } from "vitest"; import type { AgentSessionEvent } from "../../../src/core/agent-session.ts"; import type { SessionEntry } from "../../../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/suite/regressions/5217-compaction-reason.test.ts b/packages/coding-agent/test/suite/regressions/5217-compaction-reason.test.ts index 1132a3c0b..1cd0535e7 100644 --- a/packages/coding-agent/test/suite/regressions/5217-compaction-reason.test.ts +++ b/packages/coding-agent/test/suite/regressions/5217-compaction-reason.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import type { ExtensionFactory } from "../../../src/index.ts"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/5433-extension-oauth-prompt-input.test.ts b/packages/coding-agent/test/suite/regressions/5433-extension-oauth-prompt-input.test.ts index 5e61f51d0..1178d731b 100644 --- a/packages/coding-agent/test/suite/regressions/5433-extension-oauth-prompt-input.test.ts +++ b/packages/coding-agent/test/suite/regressions/5433-extension-oauth-prompt-input.test.ts @@ -1,4 +1,4 @@ -import { setKeybindings, type TUI } from "@earendil-works/diffex-tui"; +import { setKeybindings, type TUI } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, test, vi } from "vitest"; import { KeybindingsManager } from "../../../src/core/keybindings.ts"; import { LoginDialogComponent } from "../../../src/modes/interactive/components/login-dialog.ts"; diff --git a/packages/coding-agent/test/suite/regressions/5596-missing-theme-export.test.ts b/packages/coding-agent/test/suite/regressions/5596-missing-theme-export.test.ts index 4cd495769..95e98e2c0 100644 --- a/packages/coding-agent/test/suite/regressions/5596-missing-theme-export.test.ts +++ b/packages/coding-agent/test/suite/regressions/5596-missing-theme-export.test.ts @@ -1,8 +1,8 @@ import { existsSync, mkdtempSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, registerFauxProvider, streamSimple } from "@earendil-works/diffex-ai/compat"; +import { Agent } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, registerFauxProvider, streamSimple } from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it } from "vitest"; import { AgentSession } from "../../../src/core/agent-session.ts"; import { AuthStorage } from "../../../src/core/auth-storage.ts"; diff --git a/packages/coding-agent/test/suite/regressions/5943-session-start-notify.test.ts b/packages/coding-agent/test/suite/regressions/5943-session-start-notify.test.ts index 60da3fea5..9ddfb86b1 100644 --- a/packages/coding-agent/test/suite/regressions/5943-session-start-notify.test.ts +++ b/packages/coding-agent/test/suite/regressions/5943-session-start-notify.test.ts @@ -1,5 +1,5 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; -import { Container, Text } from "@earendil-works/diffex-tui"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; +import { Container, Text } from "@diffexai/diffex-tui"; import { describe, expect, it, vi } from "vitest"; import type { AgentSessionEvent } from "../../../src/core/agent-session.ts"; import type { ExtensionUIContext } from "../../../src/core/extensions/index.ts"; diff --git a/packages/coding-agent/test/suite/regressions/5998-blocked-tool-terminate.test.ts b/packages/coding-agent/test/suite/regressions/5998-blocked-tool-terminate.test.ts index 0418ac6b6..5de1cc010 100644 --- a/packages/coding-agent/test/suite/regressions/5998-blocked-tool-terminate.test.ts +++ b/packages/coding-agent/test/suite/regressions/5998-blocked-tool-terminate.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, getAssistantTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6019-explicit-provider-retry-message.test.ts b/packages/coding-agent/test/suite/regressions/6019-explicit-provider-retry-message.test.ts index e76ab14d1..751e1e65a 100644 --- a/packages/coding-agent/test/suite/regressions/6019-explicit-provider-retry-message.test.ts +++ b/packages/coding-agent/test/suite/regressions/6019-explicit-provider-retry-message.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { createHarness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6162-extension-active-tools-next-turn.test.ts b/packages/coding-agent/test/suite/regressions/6162-extension-active-tools-next-turn.test.ts index f6d884002..dd06445bd 100644 --- a/packages/coding-agent/test/suite/regressions/6162-extension-active-tools-next-turn.test.ts +++ b/packages/coding-agent/test/suite/regressions/6162-extension-active-tools-next-turn.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { describe, expect, it } from "vitest"; import type { ExtensionFactory } from "../../../src/index.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6324-branch-summary-ambient-auth.test.ts b/packages/coding-agent/test/suite/regressions/6324-branch-summary-ambient-auth.test.ts index c9b6c0af0..206592741 100644 --- a/packages/coding-agent/test/suite/regressions/6324-branch-summary-ambient-auth.test.ts +++ b/packages/coding-agent/test/suite/regressions/6324-branch-summary-ambient-auth.test.ts @@ -1,4 +1,4 @@ -import { createAssistantMessageEventStream } from "@earendil-works/diffex-ai"; +import { createAssistantMessageEventStream } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { assistantMsg, userMsg } from "../../utilities.ts"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6363-agent-settled-event.test.ts b/packages/coding-agent/test/suite/regressions/6363-agent-settled-event.test.ts index c6fd5bb15..e181499d7 100644 --- a/packages/coding-agent/test/suite/regressions/6363-agent-settled-event.test.ts +++ b/packages/coding-agent/test/suite/regressions/6363-agent-settled-event.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, getUserTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6647-compaction-retries-transient-stream-drop.test.ts b/packages/coding-agent/test/suite/regressions/6647-compaction-retries-transient-stream-drop.test.ts index 3dfa614b6..f0450aef2 100644 --- a/packages/coding-agent/test/suite/regressions/6647-compaction-retries-transient-stream-drop.test.ts +++ b/packages/coding-agent/test/suite/regressions/6647-compaction-retries-transient-stream-drop.test.ts @@ -1,9 +1,5 @@ -import type { StreamFn } from "@earendil-works/diffex-agent-core"; -import { - type AssistantMessage, - createAssistantMessageEventStream, - fauxAssistantMessage, -} from "@earendil-works/diffex-ai"; +import type { StreamFn } from "@diffexai/diffex-agent-core"; +import { type AssistantMessage, createAssistantMessageEventStream, fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6768-copilot-compaction-base-url.test.ts b/packages/coding-agent/test/suite/regressions/6768-copilot-compaction-base-url.test.ts index 194690e34..416f09b00 100644 --- a/packages/coding-agent/test/suite/regressions/6768-copilot-compaction-base-url.test.ts +++ b/packages/coding-agent/test/suite/regressions/6768-copilot-compaction-base-url.test.ts @@ -4,7 +4,7 @@ import { fauxAssistantMessage, type Model, type Provider, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6904-dns-transport-retry.test.ts b/packages/coding-agent/test/suite/regressions/6904-dns-transport-retry.test.ts index 6daee69dd..95ab37060 100644 --- a/packages/coding-agent/test/suite/regressions/6904-dns-transport-retry.test.ts +++ b/packages/coding-agent/test/suite/regressions/6904-dns-transport-retry.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { createHarness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6949-unavailable-scoped-model.test.ts b/packages/coding-agent/test/suite/regressions/6949-unavailable-scoped-model.test.ts index 53649b8b9..9f9e114db 100644 --- a/packages/coding-agent/test/suite/regressions/6949-unavailable-scoped-model.test.ts +++ b/packages/coding-agent/test/suite/regressions/6949-unavailable-scoped-model.test.ts @@ -1,5 +1,5 @@ -import type { Api, Model } from "@earendil-works/diffex-ai"; -import { setKeybindings } from "@earendil-works/diffex-tui"; +import type { Api, Model } from "@diffexai/diffex-ai"; +import { setKeybindings } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../../../src/core/keybindings.ts"; import { ScopedModelsSelectorComponent } from "../../../src/modes/interactive/components/scoped-models-selector.ts"; diff --git a/packages/coding-agent/test/suite/regressions/6999-models-json-hot-reload.test.ts b/packages/coding-agent/test/suite/regressions/6999-models-json-hot-reload.test.ts index bf181f964..8ccfa1515 100644 --- a/packages/coding-agent/test/suite/regressions/6999-models-json-hot-reload.test.ts +++ b/packages/coding-agent/test/suite/regressions/6999-models-json-hot-reload.test.ts @@ -1,7 +1,7 @@ import { mkdtempSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { setKeybindings, type TUI } from "@earendil-works/diffex-tui"; +import { setKeybindings, type TUI } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest"; import { AuthStorage } from "../../../src/core/auth-storage.ts"; import { KeybindingsManager } from "../../../src/core/keybindings.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7027-credential-refresh-hang.test.ts b/packages/coding-agent/test/suite/regressions/7027-credential-refresh-hang.test.ts index e9292e8b5..f4741df95 100644 --- a/packages/coding-agent/test/suite/regressions/7027-credential-refresh-hang.test.ts +++ b/packages/coding-agent/test/suite/regressions/7027-credential-refresh-hang.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model, Provider } from "@earendil-works/diffex-ai"; +import type { Api, Model, Provider } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AuthStorage } from "../../../src/core/auth-storage.ts"; import { ModelRuntime } from "../../../src/core/model-runtime.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7150-rpc-prompt-during-compaction.test.ts b/packages/coding-agent/test/suite/regressions/7150-rpc-prompt-during-compaction.test.ts index 12e769b1a..f305f5bac 100644 --- a/packages/coding-agent/test/suite/regressions/7150-rpc-prompt-during-compaction.test.ts +++ b/packages/coding-agent/test/suite/regressions/7150-rpc-prompt-during-compaction.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, getMessageText, getUserTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7153-scoped-models-refresh.test.ts b/packages/coding-agent/test/suite/regressions/7153-scoped-models-refresh.test.ts index 9aa3656e7..53f2711c6 100644 --- a/packages/coding-agent/test/suite/regressions/7153-scoped-models-refresh.test.ts +++ b/packages/coding-agent/test/suite/regressions/7153-scoped-models-refresh.test.ts @@ -1,5 +1,5 @@ -import type { Api, Model, ModelsRefreshResult } from "@earendil-works/diffex-ai"; -import { setKeybindings, type TUI } from "@earendil-works/diffex-tui"; +import type { Api, Model, ModelsRefreshResult } from "@diffexai/diffex-ai"; +import { setKeybindings, type TUI } from "@diffexai/diffex-tui"; import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../../../src/core/keybindings.ts"; import type { ScopedModelsSelectorComponent } from "../../../src/modes/interactive/components/scoped-models-selector.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7209-model-selector-filter-resets-selection.test.ts b/packages/coding-agent/test/suite/regressions/7209-model-selector-filter-resets-selection.test.ts index 67c61d6ff..7ee7c92cf 100644 --- a/packages/coding-agent/test/suite/regressions/7209-model-selector-filter-resets-selection.test.ts +++ b/packages/coding-agent/test/suite/regressions/7209-model-selector-filter-resets-selection.test.ts @@ -1,4 +1,4 @@ -import { SELECTED_LIST_PREFIX, setKeybindings, stripTerminalSequences, type TUI } from "@earendil-works/diffex-tui"; +import { SELECTED_LIST_PREFIX, setKeybindings, stripTerminalSequences, type TUI } from "@diffexai/diffex-tui"; import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../../../src/core/keybindings.ts"; import { ModelSelectorComponent } from "../../../src/modes/interactive/components/model-selector.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7253-manual-compact-during-response.test.ts b/packages/coding-agent/test/suite/regressions/7253-manual-compact-during-response.test.ts index fbc025288..fc8b25e7a 100644 --- a/packages/coding-agent/test/suite/regressions/7253-manual-compact-during-response.test.ts +++ b/packages/coding-agent/test/suite/regressions/7253-manual-compact-during-response.test.ts @@ -1,5 +1,5 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7290-json-stream-linear.test.ts b/packages/coding-agent/test/suite/regressions/7290-json-stream-linear.test.ts index f80b7c184..43198f346 100644 --- a/packages/coding-agent/test/suite/regressions/7290-json-stream-linear.test.ts +++ b/packages/coding-agent/test/suite/regressions/7290-json-stream-linear.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import { toJsonEvent } from "../../../src/modes/json-event.ts"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7301-stalled-availability-refresh.test.ts b/packages/coding-agent/test/suite/regressions/7301-stalled-availability-refresh.test.ts index e5b7fc652..ed148c642 100644 --- a/packages/coding-agent/test/suite/regressions/7301-stalled-availability-refresh.test.ts +++ b/packages/coding-agent/test/suite/regressions/7301-stalled-availability-refresh.test.ts @@ -1,4 +1,4 @@ -import type { Models } from "@earendil-works/diffex-ai"; +import type { Models } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7443-model-command-cached-match.test.ts b/packages/coding-agent/test/suite/regressions/7443-model-command-cached-match.test.ts index 8f9227bb9..74a74faa6 100644 --- a/packages/coding-agent/test/suite/regressions/7443-model-command-cached-match.test.ts +++ b/packages/coding-agent/test/suite/regressions/7443-model-command-cached-match.test.ts @@ -1,4 +1,4 @@ -import type { Api, Model } from "@earendil-works/diffex-ai"; +import type { Api, Model } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { InteractiveMode } from "../../../src/modes/interactive/interactive-mode.ts"; import { createHarness, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/7731-tui-method-wrapping.test.ts b/packages/coding-agent/test/suite/regressions/7731-tui-method-wrapping.test.ts index a7fdb868d..c08bc6b4d 100644 --- a/packages/coding-agent/test/suite/regressions/7731-tui-method-wrapping.test.ts +++ b/packages/coding-agent/test/suite/regressions/7731-tui-method-wrapping.test.ts @@ -1,4 +1,4 @@ -import type { TUI } from "@earendil-works/diffex-tui"; +import type { TUI } from "@diffexai/diffex-tui"; import { describe, expect, it, vi } from "vitest"; import { createInteractiveTuiReference } from "../../../src/modes/interactive/interactive-mode.ts"; diff --git a/packages/coding-agent/test/suite/regressions/pre-prompt-compaction-no-continue.test.ts b/packages/coding-agent/test/suite/regressions/pre-prompt-compaction-no-continue.test.ts index 6a0cf4c3c..c52d9fa45 100644 --- a/packages/coding-agent/test/suite/regressions/pre-prompt-compaction-no-continue.test.ts +++ b/packages/coding-agent/test/suite/regressions/pre-prompt-compaction-no-continue.test.ts @@ -1,4 +1,4 @@ -import { type AssistantMessage, fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { type AssistantMessage, fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import { createHarness, getUserTexts, type Harness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/regressions/tree-during-streaming.test.ts b/packages/coding-agent/test/suite/regressions/tree-during-streaming.test.ts index d67355d49..b2e025a20 100644 --- a/packages/coding-agent/test/suite/regressions/tree-during-streaming.test.ts +++ b/packages/coding-agent/test/suite/regressions/tree-during-streaming.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { describe, expect, it } from "vitest"; import { userMsg } from "../../utilities.ts"; import { createHarness } from "../harness.ts"; diff --git a/packages/coding-agent/test/suite/runtime-telemetry.test.ts b/packages/coding-agent/test/suite/runtime-telemetry.test.ts index b5279fe35..270fb2baf 100644 --- a/packages/coding-agent/test/suite/runtime-telemetry.test.ts +++ b/packages/coding-agent/test/suite/runtime-telemetry.test.ts @@ -1,11 +1,11 @@ -import { InMemoryTelemetryContext } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { InMemoryTelemetryContext } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { HARNESS_VERSION_SCHEMA_VERSION, HarnessStateStore, type HarnessVersionBundle, INITIAL_HARNESS_VERSION_METADATA, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import { afterEach, describe, expect, it } from "vitest"; import { SubagentController } from "../../src/core/subagents/controller.ts"; import { captureSubagentSessionConfig } from "../../src/core/subagents/services.ts"; diff --git a/packages/coding-agent/test/suite/subagent-actions.test.ts b/packages/coding-agent/test/suite/subagent-actions.test.ts index 2288290b3..f2ed532d7 100644 --- a/packages/coding-agent/test/suite/subagent-actions.test.ts +++ b/packages/coding-agent/test/suite/subagent-actions.test.ts @@ -1,6 +1,6 @@ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, Context } from "@earendil-works/diffex-ai"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, Context } from "@diffexai/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { Check } from "typebox/value"; import { afterEach, describe, expect, it, vi } from "vitest"; diff --git a/packages/coding-agent/test/suite/subagent-agents.test.ts b/packages/coding-agent/test/suite/subagent-agents.test.ts index baa9f2096..e017af8b9 100644 --- a/packages/coding-agent/test/suite/subagent-agents.test.ts +++ b/packages/coding-agent/test/suite/subagent-agents.test.ts @@ -1,4 +1,4 @@ -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { Check } from "typebox/value"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { ExtensionContext } from "../../src/core/extensions/types.ts"; diff --git a/packages/coding-agent/test/suite/subagent-coordination.test.ts b/packages/coding-agent/test/suite/subagent-coordination.test.ts index 4b7c62997..2ca81b1bd 100644 --- a/packages/coding-agent/test/suite/subagent-coordination.test.ts +++ b/packages/coding-agent/test/suite/subagent-coordination.test.ts @@ -1,5 +1,5 @@ -import type { Context, SimpleStreamOptions } from "@earendil-works/diffex-ai"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { Context, SimpleStreamOptions } from "@diffexai/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it } from "vitest"; import type { AgentSession } from "../../src/core/agent-session.ts"; import type { ExtensionContext } from "../../src/core/extensions/types.ts"; diff --git a/packages/coding-agent/test/suite/subagent-harness.ts b/packages/coding-agent/test/suite/subagent-harness.ts index 1d94bd8b9..9592c078b 100644 --- a/packages/coding-agent/test/suite/subagent-harness.ts +++ b/packages/coding-agent/test/suite/subagent-harness.ts @@ -1,4 +1,4 @@ -import type { Context } from "@earendil-works/diffex-ai"; +import type { Context } from "@diffexai/diffex-ai"; import type { AgentSession } from "../../src/core/agent-session.ts"; import { SubagentController } from "../../src/core/subagents/controller.ts"; import { diff --git a/packages/coding-agent/test/suite/subagent-parent-messaging.test.ts b/packages/coding-agent/test/suite/subagent-parent-messaging.test.ts index ecf4c9b3e..24cc7970b 100644 --- a/packages/coding-agent/test/suite/subagent-parent-messaging.test.ts +++ b/packages/coding-agent/test/suite/subagent-parent-messaging.test.ts @@ -1,8 +1,8 @@ import { mkdirSync, writeFileSync } from "node:fs"; import { join } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { type Context, fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; -import { HarnessStateStore, type HarnessVersionBundle } from "@earendil-works/diffex-harness-state"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { type Context, fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; +import { HarnessStateStore, type HarnessVersionBundle } from "@diffexai/diffex-harness-state"; import { Type } from "typebox"; import { Check } from "typebox/value"; import { afterEach, describe, expect, it, vi } from "vitest"; diff --git a/packages/coding-agent/test/suite/subagent-persistence.test.ts b/packages/coding-agent/test/suite/subagent-persistence.test.ts index 336f3b84d..87dd81f22 100644 --- a/packages/coding-agent/test/suite/subagent-persistence.test.ts +++ b/packages/coding-agent/test/suite/subagent-persistence.test.ts @@ -11,9 +11,9 @@ import { } from "node:fs"; import { tmpdir } from "node:os"; import { dirname, join, resolve } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; -import type { FauxModelDefinition } from "@earendil-works/diffex-ai/compat"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; +import type { FauxModelDefinition } from "@diffexai/diffex-ai/compat"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AgentSession } from "../../src/core/agent-session.ts"; import { createAgentSessionFromServices, createAgentSessionServices } from "../../src/core/agent-session-services.ts"; diff --git a/packages/coding-agent/test/suite/subagent-registration.test.ts b/packages/coding-agent/test/suite/subagent-registration.test.ts index 9ab6ca8f4..d20fb0b1a 100644 --- a/packages/coding-agent/test/suite/subagent-registration.test.ts +++ b/packages/coding-agent/test/suite/subagent-registration.test.ts @@ -1,8 +1,8 @@ import { mkdirSync } from "node:fs"; import { join } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import type { Context, Model, SimpleStreamOptions } from "@earendil-works/diffex-ai"; -import { fauxAssistantMessage, fauxToolCall } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import type { Context, Model, SimpleStreamOptions } from "@diffexai/diffex-ai"; +import { fauxAssistantMessage, fauxToolCall } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { AgentSession } from "../../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/suite/subagent-services.test.ts b/packages/coding-agent/test/suite/subagent-services.test.ts index a9c5abc24..fb269a938 100644 --- a/packages/coding-agent/test/suite/subagent-services.test.ts +++ b/packages/coding-agent/test/suite/subagent-services.test.ts @@ -1,6 +1,6 @@ import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; import { join, resolve } from "node:path"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it, vi } from "vitest"; import { AgentSession } from "../../src/core/agent-session.ts"; diff --git a/packages/coding-agent/test/suite/subagent-startup.test.ts b/packages/coding-agent/test/suite/subagent-startup.test.ts index cc29f4673..029c6ccd0 100644 --- a/packages/coding-agent/test/suite/subagent-startup.test.ts +++ b/packages/coding-agent/test/suite/subagent-startup.test.ts @@ -1,6 +1,6 @@ -import type { AgentEvent } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage, Context } from "@earendil-works/diffex-ai"; -import { fauxAssistantMessage } from "@earendil-works/diffex-ai"; +import type { AgentEvent } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage, Context } from "@diffexai/diffex-ai"; +import { fauxAssistantMessage } from "@diffexai/diffex-ai"; import { afterEach, describe, expect, it, vi } from "vitest"; import type { AgentSession } from "../../src/core/agent-session.ts"; import type { ExtensionContext } from "../../src/core/extensions/types.ts"; diff --git a/packages/coding-agent/test/syntax-highlight.test.ts b/packages/coding-agent/test/syntax-highlight.test.ts index 90d98ecf5..5733b5b0b 100644 --- a/packages/coding-agent/test/syntax-highlight.test.ts +++ b/packages/coding-agent/test/syntax-highlight.test.ts @@ -1,4 +1,4 @@ -import { resetCapabilitiesCache, setCapabilities } from "@earendil-works/diffex-tui"; +import { resetCapabilitiesCache, setCapabilities } from "@diffexai/diffex-tui"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { highlightCode, initTheme } from "../src/modes/interactive/theme/theme.ts"; import { highlight, renderHighlightedHtml, supportsLanguage } from "../src/utils/syntax-highlight.ts"; diff --git a/packages/coding-agent/test/test-harness.test.ts b/packages/coding-agent/test/test-harness.test.ts index d6261a770..364c065f4 100644 --- a/packages/coding-agent/test/test-harness.test.ts +++ b/packages/coding-agent/test/test-harness.test.ts @@ -3,8 +3,8 @@ * Validates that the faux provider and session factory work correctly. */ -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import type { AssistantMessage } from "@earendil-works/diffex-ai"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import type { AssistantMessage } from "@diffexai/diffex-ai"; import { Type } from "typebox"; import { afterEach, describe, expect, it } from "vitest"; import { createHarness, createHarnessWithExtensions, type Harness } from "./test-harness.ts"; diff --git a/packages/coding-agent/test/test-harness.ts b/packages/coding-agent/test/test-harness.ts index f285d0047..1310f6394 100644 --- a/packages/coding-agent/test/test-harness.ts +++ b/packages/coding-agent/test/test-harness.ts @@ -11,8 +11,8 @@ import { createInMemoryModelRegistry, getModelRuntime } from "./model-runtime-te import { existsSync, mkdirSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { AgentTool } from "@earendil-works/diffex-agent-core"; -import { Agent } from "@earendil-works/diffex-agent-core"; +import type { AgentTool } from "@diffexai/diffex-agent-core"; +import { Agent } from "@diffexai/diffex-agent-core"; import type { AssistantMessage, AssistantMessageEvent, @@ -25,8 +25,8 @@ import type { ThinkingContent, ToolCall, Usage, -} from "@earendil-works/diffex-ai"; -import { createAssistantMessageEventStream } from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; +import { createAssistantMessageEventStream } from "@diffexai/diffex-ai"; import { AgentSession, type AgentSessionEvent } from "../src/core/agent-session.ts"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { SessionManager } from "../src/core/session-manager.ts"; diff --git a/packages/coding-agent/test/theme-detection.test.ts b/packages/coding-agent/test/theme-detection.test.ts index 7d80ec0f2..58b98c553 100644 --- a/packages/coding-agent/test/theme-detection.test.ts +++ b/packages/coding-agent/test/theme-detection.test.ts @@ -1,12 +1,7 @@ import { mkdtempSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { - type RgbColor, - resetCapabilitiesCache, - SELECTED_LIST_PREFIX, - setCapabilities, -} from "@earendil-works/diffex-tui"; +import { type RgbColor, resetCapabilitiesCache, SELECTED_LIST_PREFIX, setCapabilities } from "@diffexai/diffex-tui"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; import { detectTerminalBackgroundFromEnv, diff --git a/packages/coding-agent/test/theme-no-color.test.ts b/packages/coding-agent/test/theme-no-color.test.ts index bcb260c1e..10976816e 100644 --- a/packages/coding-agent/test/theme-no-color.test.ts +++ b/packages/coding-agent/test/theme-no-color.test.ts @@ -1,4 +1,4 @@ -import { type GlyphMode, getGlyphs } from "@earendil-works/diffex-tui"; +import { type GlyphMode, getGlyphs } from "@diffexai/diffex-tui"; import { afterEach, describe, expect, test } from "vitest"; import { InteractiveMode } from "../src/modes/interactive/interactive-mode.ts"; import { initTheme, theme } from "../src/modes/interactive/theme/theme.ts"; diff --git a/packages/coding-agent/test/tool-execution-component.test.ts b/packages/coding-agent/test/tool-execution-component.test.ts index 6840c6701..f9dd54a16 100644 --- a/packages/coding-agent/test/tool-execution-component.test.ts +++ b/packages/coding-agent/test/tool-execution-component.test.ts @@ -1,5 +1,5 @@ import { join, resolve } from "node:path"; -import { getGlyphs, Text, type TUI } from "@earendil-works/diffex-tui"; +import { getGlyphs, Text, type TUI } from "@diffexai/diffex-tui"; import { Type } from "typebox"; import { beforeAll, describe, expect, test } from "vitest"; import { getReadmePath } from "../src/config.ts"; diff --git a/packages/coding-agent/test/tool-group-component.test.ts b/packages/coding-agent/test/tool-group-component.test.ts index 9919c6cd7..0552b8aa6 100644 --- a/packages/coding-agent/test/tool-group-component.test.ts +++ b/packages/coding-agent/test/tool-group-component.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, Text, type TUI, visibleWidth } from "@earendil-works/diffex-tui"; +import { getGlyphs, Text, type TUI, visibleWidth } from "@diffexai/diffex-tui"; import { Type } from "typebox"; import { beforeAll, describe, expect, test, vi } from "vitest"; import type { ToolDefinition } from "../src/core/extensions/types.ts"; diff --git a/packages/coding-agent/test/tree-selector.test.ts b/packages/coding-agent/test/tree-selector.test.ts index 3907e8315..bf6ce85ee 100644 --- a/packages/coding-agent/test/tree-selector.test.ts +++ b/packages/coding-agent/test/tree-selector.test.ts @@ -1,5 +1,5 @@ import { stripVTControlCharacters } from "node:util"; -import { SELECTED_LIST_PREFIX, setKeybindings, visibleWidth } from "@earendil-works/diffex-tui"; +import { SELECTED_LIST_PREFIX, setKeybindings, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, test } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import type { diff --git a/packages/coding-agent/test/truncate-to-width.test.ts b/packages/coding-agent/test/truncate-to-width.test.ts index 1e4e4fd74..53dc021a7 100644 --- a/packages/coding-agent/test/truncate-to-width.test.ts +++ b/packages/coding-agent/test/truncate-to-width.test.ts @@ -1,4 +1,4 @@ -import { truncateToWidth, visibleWidth } from "@earendil-works/diffex-tui"; +import { truncateToWidth, visibleWidth } from "@diffexai/diffex-tui"; import { describe, expect, it } from "vitest"; /** diff --git a/packages/coding-agent/test/trust-selector.test.ts b/packages/coding-agent/test/trust-selector.test.ts index 5cbc2fc98..44e835b00 100644 --- a/packages/coding-agent/test/trust-selector.test.ts +++ b/packages/coding-agent/test/trust-selector.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, setKeybindings, visibleWidth } from "@earendil-works/diffex-tui"; +import { getGlyphs, setKeybindings, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; import { KeybindingsManager } from "../src/core/keybindings.ts"; import { TrustSelectorComponent } from "../src/modes/interactive/components/trust-selector.ts"; diff --git a/packages/coding-agent/test/update-plan-tool.test.ts b/packages/coding-agent/test/update-plan-tool.test.ts index b70e12f84..918f66bb4 100644 --- a/packages/coding-agent/test/update-plan-tool.test.ts +++ b/packages/coding-agent/test/update-plan-tool.test.ts @@ -1,6 +1,6 @@ -import type { AgentToolResult } from "@earendil-works/diffex-agent-core"; -import { getModel, streamSimple } from "@earendil-works/diffex-ai/compat"; -import type { TUI } from "@earendil-works/diffex-tui"; +import type { AgentToolResult } from "@diffexai/diffex-agent-core"; +import { getModel, streamSimple } from "@diffexai/diffex-ai/compat"; +import type { TUI } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, test } from "vitest"; import type { ToolDefinition } from "../src/core/extensions/types.ts"; import { diff --git a/packages/coding-agent/test/user-message-selector.test.ts b/packages/coding-agent/test/user-message-selector.test.ts index d353445bd..6b5518cd8 100644 --- a/packages/coding-agent/test/user-message-selector.test.ts +++ b/packages/coding-agent/test/user-message-selector.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, visibleWidth } from "@earendil-works/diffex-tui"; +import { getGlyphs, visibleWidth } from "@diffexai/diffex-tui"; import { beforeAll, describe, expect, it } from "vitest"; import { UserMessageSelectorComponent } from "../src/modes/interactive/components/user-message-selector.ts"; import { initTheme } from "../src/modes/interactive/theme/theme.ts"; diff --git a/packages/coding-agent/test/user-message.test.ts b/packages/coding-agent/test/user-message.test.ts index 132e23302..9e0ee2d50 100644 --- a/packages/coding-agent/test/user-message.test.ts +++ b/packages/coding-agent/test/user-message.test.ts @@ -1,4 +1,4 @@ -import { getGlyphs, visibleWidth } from "@earendil-works/diffex-tui"; +import { getGlyphs, visibleWidth } from "@diffexai/diffex-tui"; import { describe, expect, test } from "vitest"; import { UserMessageComponent } from "../src/modes/interactive/components/user-message.ts"; import { initTheme, theme } from "../src/modes/interactive/theme/theme.ts"; diff --git a/packages/coding-agent/test/utilities.ts b/packages/coding-agent/test/utilities.ts index 1213d28a1..d157f429b 100644 --- a/packages/coding-agent/test/utilities.ts +++ b/packages/coding-agent/test/utilities.ts @@ -6,10 +6,10 @@ import { createModelRegistry, getModelRuntime } from "./model-runtime-test-utils import { chmodSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; import { homedir, tmpdir } from "node:os"; import { dirname, join } from "node:path"; -import { Agent } from "@earendil-works/diffex-agent-core"; -import type { OAuthCredentials } from "@earendil-works/diffex-ai"; -import { getModel, streamSimple } from "@earendil-works/diffex-ai/compat"; -import { builtinProviders } from "@earendil-works/diffex-ai/providers/all"; +import { Agent } from "@diffexai/diffex-agent-core"; +import type { OAuthCredentials } from "@diffexai/diffex-ai"; +import { getModel, streamSimple } from "@diffexai/diffex-ai/compat"; +import { builtinProviders } from "@diffexai/diffex-ai/providers/all"; import { AgentSession } from "../src/core/agent-session.ts"; import { AuthStorage } from "../src/core/auth-storage.ts"; import { createEventBus } from "../src/core/event-bus.ts"; diff --git a/packages/coding-agent/tsconfig.build.json b/packages/coding-agent/tsconfig.build.json index eb517a81f..43b2d0bf5 100644 --- a/packages/coding-agent/tsconfig.build.json +++ b/packages/coding-agent/tsconfig.build.json @@ -5,14 +5,14 @@ "paths": { "#evolution": ["../evolution/dist/index.d.ts"], "#harness-trace": ["../harness-trace/dist/index.d.ts"], - "@earendil-works/diffex-agent-core": ["../agent/dist/index.d.ts"], - "@earendil-works/diffex-agent-core/*": ["../agent/dist/*.d.ts"], - "@earendil-works/diffex-ai": ["../ai/dist/index.d.ts"], - "@earendil-works/diffex-ai/*": ["../ai/dist/*.d.ts", "../ai/dist/providers/*.d.ts"], - "@earendil-works/diffex-client": ["../client/dist/index.d.ts"], - "@earendil-works/diffex-protocol": ["../protocol/dist/index.d.ts"], - "@earendil-works/diffex-tui": ["../tui/dist/index.d.ts"], - "@earendil-works/diffex-tui/*": ["../tui/dist/*.d.ts", "../tui/dist/components/*.d.ts"] + "@diffexai/diffex-agent-core": ["../agent/dist/index.d.ts"], + "@diffexai/diffex-agent-core/*": ["../agent/dist/*.d.ts"], + "@diffexai/diffex-ai": ["../ai/dist/index.d.ts"], + "@diffexai/diffex-ai/*": ["../ai/dist/*.d.ts", "../ai/dist/providers/*.d.ts"], + "@diffexai/diffex-client": ["../client/dist/index.d.ts"], + "@diffexai/diffex-protocol": ["../protocol/dist/index.d.ts"], + "@diffexai/diffex-tui": ["../tui/dist/index.d.ts"], + "@diffexai/diffex-tui/*": ["../tui/dist/*.d.ts", "../tui/dist/components/*.d.ts"] }, "rootDir": "./src" }, diff --git a/packages/coding-agent/tsconfig.examples.json b/packages/coding-agent/tsconfig.examples.json index cb0e20418..7ff5ed66f 100644 --- a/packages/coding-agent/tsconfig.examples.json +++ b/packages/coding-agent/tsconfig.examples.json @@ -3,10 +3,10 @@ "compilerOptions": { "noEmit": true, "paths": { - "@earendil-works/diffex-coding-agent": ["./src/index.ts"], - "@earendil-works/diffex-coding-agent/hooks": ["./src/core/hooks/index.ts"], - "@earendil-works/diffex-tui": ["../tui/src/index.ts"], - "@earendil-works/diffex-ai": ["../ai/src/index.ts"], + "@diffexai/diffex": ["./src/index.ts"], + "@diffexai/diffex/hooks": ["./src/core/hooks/index.ts"], + "@diffexai/diffex-tui": ["../tui/src/index.ts"], + "@diffexai/diffex-ai": ["../ai/src/index.ts"], "typebox": ["../../node_modules/typebox"] }, "skipLibCheck": true diff --git a/packages/coding-agent/vitest.config.ts b/packages/coding-agent/vitest.config.ts index 3eafc0e8e..7a0ddd5f6 100644 --- a/packages/coding-agent/vitest.config.ts +++ b/packages/coding-agent/vitest.config.ts @@ -23,11 +23,11 @@ export default mergeConfig( resolve: { alias: [ { - find: /^@earendil-works\/diffex-client$/, + find: /^@diffexai\/diffex-client$/, replacement: fileURLToPath(new URL("../client/src/index.ts", import.meta.url)), }, { - find: /^@earendil-works\/diffex-protocol$/, + find: /^@diffexai\/diffex-protocol$/, replacement: fileURLToPath(new URL("../protocol/src/index.ts", import.meta.url)), }, { find: /^@mariozechner\/pi-ai$/, replacement: workspaceSourcePaths.aiIndex }, diff --git a/packages/evals/package.json b/packages/evals/package.json index 554f53e9d..9a228a462 100644 --- a/packages/evals/package.json +++ b/packages/evals/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-evals", + "name": "@diffexai/diffex-evals", "version": "0.2.0", "private": true, "type": "module", @@ -9,8 +9,8 @@ "test": "vitest run --config vitest.test.config.ts" }, "devDependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-coding-agent": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex": "^0.2.0", "@types/node": "24.12.4", "shx": "0.4.0", "typescript": "5.9.3", diff --git a/packages/evals/src/diffex-harness.ts b/packages/evals/src/diffex-harness.ts index 65ae18297..3a2b85bbe 100644 --- a/packages/evals/src/diffex-harness.ts +++ b/packages/evals/src/diffex-harness.ts @@ -3,7 +3,6 @@ import { mkdir, mkdtemp, readFile, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { performance } from "node:perf_hooks"; -import { contentText } from "@earendil-works/diffex-ai"; import { type AgentSession, type CreateAgentSessionOptions, @@ -12,7 +11,8 @@ import { ModelRuntime, SessionManager, SettingsManager, -} from "@earendil-works/diffex-coding-agent"; +} from "@diffexai/diffex"; +import { contentText } from "@diffexai/diffex-ai"; import { createHarness, type Harness, diff --git a/packages/evals/src/extensions.eval.ts b/packages/evals/src/extensions.eval.ts index bbd23bb21..9d6d6d26f 100644 --- a/packages/evals/src/extensions.eval.ts +++ b/packages/evals/src/extensions.eval.ts @@ -61,8 +61,8 @@ const ExtensionAuthoringJudge = createJudge match[1], ); - if (!imports.includes("@earendil-works/diffex-coding-agent")) { - failures.push("extension does not import the canonical @earendil-works/diffex-coding-agent package"); + if (!imports.includes("@diffexai/diffex")) { + failures.push("extension does not import the canonical @diffexai/diffex package"); } if (imports.some((specifier) => specifier.startsWith("@mariozechner/"))) { failures.push("extension imports a legacy @mariozechner package"); diff --git a/packages/evals/src/vitest-evals/artifacts.ts b/packages/evals/src/vitest-evals/artifacts.ts index 0fd746354..9eed1ef8b 100644 --- a/packages/evals/src/vitest-evals/artifacts.ts +++ b/packages/evals/src/vitest-evals/artifacts.ts @@ -30,13 +30,13 @@ export interface SourceAttachment extends TestAttachment { } interface DiffexSessionArtifact extends TestArtifactBase { - type: "@earendil-works/diffex-evals:session"; + type: "@diffexai/diffex-evals:session"; runId: string; attachments: [DiffexSessionAttachment] | []; } interface SourceArtifact extends TestArtifactBase { - type: "@earendil-works/diffex-evals:source"; + type: "@diffexai/diffex-evals:source"; runId: string; attachments: [SourceAttachment] | []; } @@ -59,7 +59,7 @@ export async function recordEvalSessionArtifact( throw new TypeError("Diffex eval session artifact metadata is invalid."); } await recordArtifact(task, { - type: "@earendil-works/diffex-evals:session", + type: "@diffexai/diffex-evals:session", runId, attachments: [ { @@ -78,7 +78,7 @@ export async function recordEvalSourceArtifact( attachment: SourceAttachment, ): Promise { await recordArtifact(task, { - type: "@earendil-works/diffex-evals:source", + type: "@diffexai/diffex-evals:source", runId, attachments: [attachment], }); @@ -92,13 +92,12 @@ export async function persistEvalArtifactReferences( const references: Array<{ name: string; path: string }> = []; for (const artifact of artifacts) { if ( - (artifact.type !== "@earendil-works/diffex-evals:session" && - artifact.type !== "@earendil-works/diffex-evals:source") || + (artifact.type !== "@diffexai/diffex-evals:session" && artifact.type !== "@diffexai/diffex-evals:source") || artifact.runId !== runId ) { continue; } - const category = artifact.type === "@earendil-works/diffex-evals:session" ? "sessions" : "sources"; + const category = artifact.type === "@diffexai/diffex-evals:session" ? "sessions" : "sources"; for (const attachment of artifact.attachments) { const name = basename(attachment.name); if (name !== attachment.name) throw new TypeError(`Invalid eval artifact name: ${attachment.name}`); diff --git a/packages/evals/test/vitest-evals/artifacts.test.ts b/packages/evals/test/vitest-evals/artifacts.test.ts index b0f16fb95..f3f372a39 100644 --- a/packages/evals/test/vitest-evals/artifacts.test.ts +++ b/packages/evals/test/vitest-evals/artifacts.test.ts @@ -22,7 +22,7 @@ it("records session and source artifacts against the explicit test task", async expect(task.artifacts).toContainEqual( expect.objectContaining({ - type: "@earendil-works/diffex-evals:session", + type: "@diffexai/diffex-evals:session", runId, attachments: [ expect.objectContaining({ @@ -36,7 +36,7 @@ it("records session and source artifacts against the explicit test task", async ); expect(task.artifacts).toContainEqual( expect.objectContaining({ - type: "@earendil-works/diffex-evals:source", + type: "@diffexai/diffex-evals:source", runId, attachments: [ expect.objectContaining({ @@ -56,7 +56,7 @@ it("persists and selects attachments belonging to the reported run", async () => const references = await persistEvalArtifactReferences( [ { - type: "@earendil-works/diffex-evals:session", + type: "@diffexai/diffex-evals:session", runId: "run-1", attachments: [ { @@ -68,12 +68,12 @@ it("persists and selects attachments belonging to the reported run", async () => ], }, { - type: "@earendil-works/diffex-evals:session", + type: "@diffexai/diffex-evals:session", runId: "run-2", attachments: [], }, { - type: "@earendil-works/diffex-evals:source", + type: "@diffexai/diffex-evals:source", runId: "run-1", attachments: [ { diff --git a/packages/evals/vitest.config.ts b/packages/evals/vitest.config.ts index b0f7b30df..c3856d101 100644 --- a/packages/evals/vitest.config.ts +++ b/packages/evals/vitest.config.ts @@ -14,7 +14,7 @@ export default mergeConfig( reporters: ["vitest-evals/reporter", "./src/vitest-evals/reporter.ts"], }, resolve: { - alias: [{ find: /^@earendil-works\/diffex-coding-agent$/, replacement: workspaceSourcePaths.codingAgentIndex }], + alias: [{ find: /^@diffexai\/diffex$/, replacement: workspaceSourcePaths.codingAgentIndex }], }, }), ); diff --git a/packages/evals/vitest.test.config.ts b/packages/evals/vitest.test.config.ts index 63d2756ea..0e0278eee 100644 --- a/packages/evals/vitest.test.config.ts +++ b/packages/evals/vitest.test.config.ts @@ -8,7 +8,7 @@ export default mergeConfig( include: ["test/**/*.test.ts"], }, resolve: { - alias: [{ find: /^@earendil-works\/diffex-coding-agent$/, replacement: workspaceSourcePaths.codingAgentIndex }], + alias: [{ find: /^@diffexai\/diffex$/, replacement: workspaceSourcePaths.codingAgentIndex }], }, }), ); diff --git a/packages/evolution/package.json b/packages/evolution/package.json index 80c724460..6a095151d 100644 --- a/packages/evolution/package.json +++ b/packages/evolution/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-evolution", + "name": "@diffexai/diffex-evolution", "version": "0.2.0", "description": "Private evolution pipeline contracts and orchestration for Diffex", "private": true, @@ -21,7 +21,7 @@ "test": "vitest --run", "prepublishOnly": "npm run clean && npm run build" }, - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", @@ -32,8 +32,8 @@ "node": ">=22.19.0" }, "dependencies": { - "@earendil-works/diffex-harness-state": "0.2.0", - "@earendil-works/diffex-harness-trace": "0.2.0", + "@diffexai/diffex-harness-state": "0.2.0", + "@diffexai/diffex-harness-trace": "0.2.0", "proper-lockfile": "4.1.2" }, "devDependencies": { diff --git a/packages/evolution/src/contracts.ts b/packages/evolution/src/contracts.ts index 8b5504858..f518cb421 100644 --- a/packages/evolution/src/contracts.ts +++ b/packages/evolution/src/contracts.ts @@ -1,9 +1,9 @@ -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; import type { MaterializationIntegrity, MaterializedInvocation, MaterializedTerminationStatus, -} from "@earendil-works/diffex-harness-trace"; +} from "@diffexai/diffex-harness-trace"; export const EVOLUTION_SCHEMA_VERSION = 1 as const; export const EVOLUTION_MEMORY_ITEM_SCHEMA_VERSION = 1 as const; diff --git a/packages/evolution/src/control-service.ts b/packages/evolution/src/control-service.ts index 703af98d4..79b4f35ee 100644 --- a/packages/evolution/src/control-service.ts +++ b/packages/evolution/src/control-service.ts @@ -4,8 +4,8 @@ import { type HarnessVersion, type HarnessVersionBundle, type HarnessVersionList, -} from "@earendil-works/diffex-harness-state"; -import type { MaterializedEvidence } from "@earendil-works/diffex-harness-trace"; +} from "@diffexai/diffex-harness-state"; +import type { MaterializedEvidence } from "@diffexai/diffex-harness-trace"; import type { EvolutionFailureReasonCode, EvolutionInputSnapshot, diff --git a/packages/evolution/src/curator.ts b/packages/evolution/src/curator.ts index a10faac76..d32a73c6d 100644 --- a/packages/evolution/src/curator.ts +++ b/packages/evolution/src/curator.ts @@ -1,5 +1,5 @@ -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import type { ApplicableInstructionReference, CuratorToolCallLedgerEvent, diff --git a/packages/evolution/src/evidence-corpus.ts b/packages/evolution/src/evidence-corpus.ts index 834391110..3019cb5b2 100644 --- a/packages/evolution/src/evidence-corpus.ts +++ b/packages/evolution/src/evidence-corpus.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence } from "@diffexai/diffex-harness-trace"; import type { EvidenceCorpusDocument, EvidenceSemanticUnit, diff --git a/packages/evolution/src/evidence-eligibility.ts b/packages/evolution/src/evidence-eligibility.ts index d3057a283..10edc0683 100644 --- a/packages/evolution/src/evidence-eligibility.ts +++ b/packages/evolution/src/evidence-eligibility.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; export const NON_SUBSTANTIVE_RUNTIME_TRACE_REASON = "non-substantive-runtime-trace" as const; diff --git a/packages/evolution/src/evolution-memory-writer.ts b/packages/evolution/src/evolution-memory-writer.ts index 2d869798b..658c9972a 100644 --- a/packages/evolution/src/evolution-memory-writer.ts +++ b/packages/evolution/src/evolution-memory-writer.ts @@ -9,7 +9,7 @@ import { type HarnessVersion, type HarnessVersionBundle, type HarnessVersionMetadata, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import type { EvolutionMemoryAddDelta, EvolutionMemoryExactDiff, diff --git a/packages/evolution/src/filesystem-store.ts b/packages/evolution/src/filesystem-store.ts index 1e296fdeb..f5de67a1d 100644 --- a/packages/evolution/src/filesystem-store.ts +++ b/packages/evolution/src/filesystem-store.ts @@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto"; import type { Dirent } from "node:fs"; import { lstat, mkdir, mkdtemp, readdir, readFile, rename, rm, unlink, writeFile } from "node:fs/promises"; import { basename, dirname, join, resolve } from "node:path"; -import { computeHarnessSkillId, type HarnessWorkspaceIdentity } from "@earendil-works/diffex-harness-state"; +import { computeHarnessSkillId, type HarnessWorkspaceIdentity } from "@diffexai/diffex-harness-state"; import lockfile from "proper-lockfile"; import type { EvolutionArtifactReference, diff --git a/packages/evolution/src/lesson-score-store.ts b/packages/evolution/src/lesson-score-store.ts index 76ad8a91a..f82506550 100644 --- a/packages/evolution/src/lesson-score-store.ts +++ b/packages/evolution/src/lesson-score-store.ts @@ -1,4 +1,4 @@ -import type { HarnessVersion } from "@earendil-works/diffex-harness-state"; +import type { HarnessVersion } from "@diffexai/diffex-harness-state"; import type { EvolutionMemoryItem, EvolutionScope, ImmutableHarnessSnapshot } from "./contracts.ts"; export const LESSON_SCORE_SCHEMA_VERSION = 2 as const; diff --git a/packages/evolution/src/ports.ts b/packages/evolution/src/ports.ts index bf53fa660..ccc02407f 100644 --- a/packages/evolution/src/ports.ts +++ b/packages/evolution/src/ports.ts @@ -1,4 +1,4 @@ -import type { MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import type { CounterReport, DeferredSkillCandidateFinding, diff --git a/packages/evolution/src/proposal-ranking.ts b/packages/evolution/src/proposal-ranking.ts index 920ce9d89..56b99c278 100644 --- a/packages/evolution/src/proposal-ranking.ts +++ b/packages/evolution/src/proposal-ranking.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import type { EvidenceRankingScoreComponents, EvolutionArtifactProducer, diff --git a/packages/evolution/src/reflector-tools.ts b/packages/evolution/src/reflector-tools.ts index 971b7e061..72b3cf835 100644 --- a/packages/evolution/src/reflector-tools.ts +++ b/packages/evolution/src/reflector-tools.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence } from "@diffexai/diffex-harness-trace"; import type { EvidenceCorpusDocument, EvidenceCorpusManifest, diff --git a/packages/evolution/src/skill-curator-tools.ts b/packages/evolution/src/skill-curator-tools.ts index 4fe480732..70861a0b5 100644 --- a/packages/evolution/src/skill-curator-tools.ts +++ b/packages/evolution/src/skill-curator-tools.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import type { EvolutionInputSnapshot, EvolutionSkillCatalogEntry, diff --git a/packages/evolution/src/skill-curator.ts b/packages/evolution/src/skill-curator.ts index 9f8b88a96..d40c2d3a2 100644 --- a/packages/evolution/src/skill-curator.ts +++ b/packages/evolution/src/skill-curator.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence } from "@diffexai/diffex-harness-trace"; import type { EvolutionArtifactProducer, EvolutionArtifactReference, diff --git a/packages/evolution/src/skill-draft-validator.ts b/packages/evolution/src/skill-draft-validator.ts index 7a080f6bd..309e60b3c 100644 --- a/packages/evolution/src/skill-draft-validator.ts +++ b/packages/evolution/src/skill-draft-validator.ts @@ -1,5 +1,5 @@ import { posix } from "node:path"; -import { validateHarnessSkillContent, validateHarnessSkillFilePath } from "@earendil-works/diffex-harness-state"; +import { validateHarnessSkillContent, validateHarnessSkillFilePath } from "@diffexai/diffex-harness-state"; import type { EvolutionArtifactProducer, EvolutionArtifactReference, diff --git a/packages/evolution/src/skill-evaluator.ts b/packages/evolution/src/skill-evaluator.ts index b849cc69c..01563eef0 100644 --- a/packages/evolution/src/skill-evaluator.ts +++ b/packages/evolution/src/skill-evaluator.ts @@ -1,4 +1,4 @@ -import { computeHarnessSkillPackageVersion, validateHarnessSkillContent } from "@earendil-works/diffex-harness-state"; +import { computeHarnessSkillPackageVersion, validateHarnessSkillContent } from "@diffexai/diffex-harness-state"; import type { EvolutionArtifactProducer, EvolutionArtifactReference, diff --git a/packages/evolution/src/skill-score-store.ts b/packages/evolution/src/skill-score-store.ts index 7583b68df..8efeed00e 100644 --- a/packages/evolution/src/skill-score-store.ts +++ b/packages/evolution/src/skill-score-store.ts @@ -1,8 +1,4 @@ -import type { - HarnessVersion, - HarnessVersionBundle, - HarnessWorkspaceIdentity, -} from "@earendil-works/diffex-harness-state"; +import type { HarnessVersion, HarnessVersionBundle, HarnessWorkspaceIdentity } from "@diffexai/diffex-harness-state"; import type { EvolutionScope } from "./contracts.ts"; export const SKILL_SCORE_SCHEMA_VERSION = 2 as const; diff --git a/packages/evolution/src/skill-writer.ts b/packages/evolution/src/skill-writer.ts index ec7c40ac8..3ce412592 100644 --- a/packages/evolution/src/skill-writer.ts +++ b/packages/evolution/src/skill-writer.ts @@ -12,7 +12,7 @@ import { type HarnessWorkspaceIdentity, validateHarnessSkillContent, validateHarnessSkillFilePath, -} from "@earendil-works/diffex-harness-state"; +} from "@diffexai/diffex-harness-state"; import type { EvolutionArtifactProducer, EvolutionArtifactReference, diff --git a/packages/evolution/src/token-estimator.ts b/packages/evolution/src/token-estimator.ts index 39655f6de..c01a7dce2 100644 --- a/packages/evolution/src/token-estimator.ts +++ b/packages/evolution/src/token-estimator.ts @@ -1,4 +1,4 @@ -import type { MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { serializeEvolutionValue } from "./provenance.ts"; export const EVOLUTION_TOKEN_ESTIMATOR_VERSION = "canonical-json-utf8-v1" as const; diff --git a/packages/evolution/test/control-plane.test.ts b/packages/evolution/test/control-plane.test.ts index aa0c1c4fb..2a19daf90 100644 --- a/packages/evolution/test/control-plane.test.ts +++ b/packages/evolution/test/control-plane.test.ts @@ -1,7 +1,7 @@ import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { afterEach, describe, expect, it } from "vitest"; import { AUTOMATIC_EVOLUTION_COOLDOWN_MS, diff --git a/packages/evolution/test/control-service.test.ts b/packages/evolution/test/control-service.test.ts index e617cf5ee..a1a3d87f3 100644 --- a/packages/evolution/test/control-service.test.ts +++ b/packages/evolution/test/control-service.test.ts @@ -6,8 +6,8 @@ import { type HarnessVersion, type HarnessVersionList, harnessVersionDirectoryName, -} from "@earendil-works/diffex-harness-state"; -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +} from "@diffexai/diffex-harness-state"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { afterEach, describe, expect, it, vi } from "vitest"; import { computeEvolutionContentDigest, diff --git a/packages/evolution/test/curator.test.ts b/packages/evolution/test/curator.test.ts index d8d676c22..12a4fc81c 100644 --- a/packages/evolution/test/curator.test.ts +++ b/packages/evolution/test/curator.test.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import type { TSchema } from "typebox"; import { Check } from "typebox/value"; import { describe, expect, it } from "vitest"; diff --git a/packages/evolution/test/evidence-eligibility.test.ts b/packages/evolution/test/evidence-eligibility.test.ts index 1e78203e2..87359fe7a 100644 --- a/packages/evolution/test/evidence-eligibility.test.ts +++ b/packages/evolution/test/evidence-eligibility.test.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { describe, expect, it } from "vitest"; import { classifyEvolutionEvidence, selectEvolutionEvidence } from "../src/evidence-eligibility.ts"; diff --git a/packages/evolution/test/proposal-ranking.test.ts b/packages/evolution/test/proposal-ranking.test.ts index 7ad72dc73..68887816d 100644 --- a/packages/evolution/test/proposal-ranking.test.ts +++ b/packages/evolution/test/proposal-ranking.test.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { describe, expect, it } from "vitest"; import { computeEvolutionContentDigest, diff --git a/packages/evolution/test/reflector.test.ts b/packages/evolution/test/reflector.test.ts index 348a2e5d3..98d98c91e 100644 --- a/packages/evolution/test/reflector.test.ts +++ b/packages/evolution/test/reflector.test.ts @@ -1,7 +1,7 @@ import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { afterEach, describe, expect, it } from "vitest"; import { buildEvidenceCorpusDocument } from "../src/evidence-corpus.ts"; import { diff --git a/packages/evolution/test/skill-candidate-registry.test.ts b/packages/evolution/test/skill-candidate-registry.test.ts index f7c26816f..5b33449b3 100644 --- a/packages/evolution/test/skill-candidate-registry.test.ts +++ b/packages/evolution/test/skill-candidate-registry.test.ts @@ -1,5 +1,5 @@ -import { computeHarnessSkillPackageVersion } from "@earendil-works/diffex-harness-state"; -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import { computeHarnessSkillPackageVersion } from "@diffexai/diffex-harness-state"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { describe, expect, it } from "vitest"; import { computeEvolutionContentDigest, diff --git a/packages/evolution/test/skill-curator.test.ts b/packages/evolution/test/skill-curator.test.ts index 8f12545e0..bc2830cd0 100644 --- a/packages/evolution/test/skill-curator.test.ts +++ b/packages/evolution/test/skill-curator.test.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import type { TSchema } from "typebox"; import { Check } from "typebox/value"; import { describe, expect, it } from "vitest"; diff --git a/packages/evolution/test/skill-draft-validator.test.ts b/packages/evolution/test/skill-draft-validator.test.ts index ea51b0051..cbc50379e 100644 --- a/packages/evolution/test/skill-draft-validator.test.ts +++ b/packages/evolution/test/skill-draft-validator.test.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { describe, expect, it } from "vitest"; import { computeEvolutionContentDigest, diff --git a/packages/evolution/test/skill-synthesizer.test.ts b/packages/evolution/test/skill-synthesizer.test.ts index f488bcc9b..adb118e58 100644 --- a/packages/evolution/test/skill-synthesizer.test.ts +++ b/packages/evolution/test/skill-synthesizer.test.ts @@ -1,4 +1,4 @@ -import type { MaterializedEvidence, MaterializedInvocation } from "@earendil-works/diffex-harness-trace"; +import type { MaterializedEvidence, MaterializedInvocation } from "@diffexai/diffex-harness-trace"; import { describe, expect, it } from "vitest"; import { computeEvolutionContentDigest, diff --git a/packages/evolution/vitest.config.ts b/packages/evolution/vitest.config.ts index 46038c0e4..375b2b84f 100644 --- a/packages/evolution/vitest.config.ts +++ b/packages/evolution/vitest.config.ts @@ -10,6 +10,6 @@ export default defineConfig({ reporters: process.env.GITHUB_ACTIONS ? ["dot", "github-actions"] : ["dot"], }, resolve: { - alias: [{ find: /^@earendil-works\/diffex-harness-state$/, replacement: harnessStateSource }], + alias: [{ find: /^@diffexai\/diffex-harness-state$/, replacement: harnessStateSource }], }, }); diff --git a/packages/harness-state/README.md b/packages/harness-state/README.md index f30d12e50..a4f1ef663 100644 --- a/packages/harness-state/README.md +++ b/packages/harness-state/README.md @@ -1,4 +1,4 @@ -# `@earendil-works/diffex-harness-state` +# `@diffexai/diffex-harness-state` Persistent, content-addressed harness revisions for Diffex. diff --git a/packages/harness-state/package.json b/packages/harness-state/package.json index a9086fc44..a8db31aea 100644 --- a/packages/harness-state/package.json +++ b/packages/harness-state/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-harness-state", + "name": "@diffexai/diffex-harness-state", "version": "0.2.0", "description": "Persistent harness state schema and bundle storage for Diffex", "type": "module", @@ -26,7 +26,7 @@ "harness", "versioning" ], - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", diff --git a/packages/harness-trace/package.json b/packages/harness-trace/package.json index a683f3a02..0b333e6c5 100644 --- a/packages/harness-trace/package.json +++ b/packages/harness-trace/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-harness-trace", + "name": "@diffexai/diffex-harness-trace", "version": "0.2.0", "description": "Private durable harness trace recording for Diffex", "private": true, @@ -21,7 +21,7 @@ "test": "vitest --run", "prepublishOnly": "npm run clean && npm run build" }, - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", @@ -32,7 +32,7 @@ "node": ">=22.19.0" }, "dependencies": { - "@earendil-works/diffex-telemetry": "0.2.0" + "@diffexai/diffex-telemetry": "0.2.0" }, "devDependencies": { "@types/node": "24.12.4", diff --git a/packages/harness-trace/src/codec.ts b/packages/harness-trace/src/codec.ts index 82e45c60a..e4ef6cc04 100644 --- a/packages/harness-trace/src/codec.ts +++ b/packages/harness-trace/src/codec.ts @@ -1,4 +1,4 @@ -import type { AttributeValue, SpanAttributes, SpanStatus } from "@earendil-works/diffex-telemetry"; +import type { AttributeValue, SpanAttributes, SpanStatus } from "@diffexai/diffex-telemetry"; import { type AgentHarnessSessionSegmentCursor, type CodingAgentV3EntryCursor, diff --git a/packages/harness-trace/src/materialized-types.ts b/packages/harness-trace/src/materialized-types.ts index a9e6f327b..60667b330 100644 --- a/packages/harness-trace/src/materialized-types.ts +++ b/packages/harness-trace/src/materialized-types.ts @@ -1,4 +1,4 @@ -import type { SpanAttributes, SpanStatus } from "@earendil-works/diffex-telemetry"; +import type { SpanAttributes, SpanStatus } from "@diffexai/diffex-telemetry"; import type { TraceHealth, TraceProducer, diff --git a/packages/harness-trace/src/recorder.ts b/packages/harness-trace/src/recorder.ts index f5c828e65..49661eadf 100644 --- a/packages/harness-trace/src/recorder.ts +++ b/packages/harness-trace/src/recorder.ts @@ -7,7 +7,7 @@ import { type SpanOptions, type SpanStatus, type TelemetrySpan, -} from "@earendil-works/diffex-telemetry"; +} from "@diffexai/diffex-telemetry"; import { encodeTraceRecord } from "./codec.ts"; import { type AgentHarnessSessionSegmentCursor, diff --git a/packages/harness-trace/src/types.ts b/packages/harness-trace/src/types.ts index d070303ec..355ecbcde 100644 --- a/packages/harness-trace/src/types.ts +++ b/packages/harness-trace/src/types.ts @@ -1,4 +1,4 @@ -import type { SpanAttributes, SpanStatus, TelemetryContext } from "@earendil-works/diffex-telemetry"; +import type { SpanAttributes, SpanStatus, TelemetryContext } from "@diffexai/diffex-telemetry"; export const TRACE_SCHEMA_VERSION = 1 as const; diff --git a/packages/harness-trace/test/harness-trace.test.ts b/packages/harness-trace/test/harness-trace.test.ts index 57ab721de..dd4011bcb 100644 --- a/packages/harness-trace/test/harness-trace.test.ts +++ b/packages/harness-trace/test/harness-trace.test.ts @@ -2,11 +2,8 @@ import { type FileHandle, mkdir, mkdtemp, open, readFile, rm, writeFile } from " import { tmpdir } from "node:os"; import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; -import type { RecordedTelemetrySpan, SpanAttributes } from "@earendil-works/diffex-telemetry"; -import { - createTelemetryAdapterConformance, - type TelemetryAdapterFixture, -} from "@earendil-works/diffex-telemetry/testing"; +import type { RecordedTelemetrySpan, SpanAttributes } from "@diffexai/diffex-telemetry"; +import { createTelemetryAdapterConformance, type TelemetryAdapterFixture } from "@diffexai/diffex-telemetry/testing"; import { afterEach, describe, expect, it, vi } from "vitest"; import { createJsonlTraceContext, diff --git a/packages/protocol/README.md b/packages/protocol/README.md index ebb1e32ea..692de0ff9 100644 --- a/packages/protocol/README.md +++ b/packages/protocol/README.md @@ -1,4 +1,4 @@ -# @earendil-works/diffex-protocol +# @diffexai/diffex-protocol Runtime-neutral schemas, types, CBOR encoding, and byte-stream framing for the experimental Diffex protocol. @@ -21,7 +21,7 @@ import { createServerMessageDecoder, encodeClientMessage, type ClientHello, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; const hello: ClientHello = { type: "hello", diff --git a/packages/protocol/package.json b/packages/protocol/package.json index e11df4f0f..69ce1fe05 100644 --- a/packages/protocol/package.json +++ b/packages/protocol/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-protocol", + "name": "@diffexai/diffex-protocol", "version": "0.2.0", "description": "Transport-neutral CBOR protocol for remote Diffex sessions", "type": "module", @@ -28,7 +28,7 @@ "binary", "framing" ], - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", diff --git a/packages/server/README.md b/packages/server/README.md index 921a5e620..0aea1a8f9 100644 --- a/packages/server/README.md +++ b/packages/server/README.md @@ -1,4 +1,4 @@ -# @earendil-works/diffex-server +# @diffexai/diffex-server Experimental. This package is under active development and may change or be removed without notice. Its APIs and behavior are not yet stable. @@ -9,8 +9,8 @@ Server package for Diffex. The package exports the `DiffexServer` session server. ```ts -import type { DiffexServerService } from "@earendil-works/diffex-server"; -import { createUnixServer } from "@earendil-works/diffex-server/unix"; +import type { DiffexServerService } from "@diffexai/diffex-server"; +import { createUnixServer } from "@diffexai/diffex-server/unix"; const service: DiffexServerService = { async listSessions() { @@ -33,7 +33,7 @@ const server = createUnixServer(service, { await server.start(); ``` -`DiffexServer` composes transport listeners through the `DiffexServerListener` interface. Each listener must complete any transport-specific authentication and authorization before passing a connection to `DiffexServer`. For example, a WebSocket listener can validate credentials during the HTTP upgrade, while the Unix listener relies on socket filesystem permissions. The Unix submodule exports the `createUnixListener()` building block and `createUnixServer()` preset, keeping the common case concise without coupling the primary server to Unix sockets. The listener uses length-prefixed CBOR messages from `@earendil-works/diffex-protocol`. +`DiffexServer` composes transport listeners through the `DiffexServerListener` interface. Each listener must complete any transport-specific authentication and authorization before passing a connection to `DiffexServer`. For example, a WebSocket listener can validate credentials during the HTTP upgrade, while the Unix listener relies on socket filesystem permissions. The Unix submodule exports the `createUnixListener()` building block and `createUnixServer()` preset, keeping the common case concise without coupling the primary server to Unix sockets. The listener uses length-prefixed CBOR messages from `@diffexai/diffex-protocol`. This package does not provide a standalone CLI or coding-agent service. Applications supply the `DiffexServerService` implementation. @@ -41,16 +41,16 @@ This package does not provide a standalone CLI or coding-agent service. Applicat ## Transport testing -Custom transports can use `@earendil-works/diffex-server/testing` for deterministic protocol conformance tests. It exports `createTestServer()`, `TestServerService`, `ProtocolTestClient`, and the transport-neutral `WireChannel` contract. `connectUnixTestClient()` is provided for Unix transport tests. +Custom transports can use `@diffexai/diffex-server/testing` for deterministic protocol conformance tests. It exports `createTestServer()`, `TestServerService`, `ProtocolTestClient`, and the transport-neutral `WireChannel` contract. `connectUnixTestClient()` is provided for Unix transport tests. ## `diffex-ai` protocol bridge -`@earendil-works/diffex-ai` domain objects and `@earendil-works/diffex-protocol` wire DTOs remain independent. This package owns their boundary and exports `toProtocolModelMetadata()`, `toProtocolAssistantMessage()`, `toProtocolUserMessage()`, and `toProtocolToolResultMessage()`. +`@diffexai/diffex-ai` domain objects and `@diffexai/diffex-protocol` wire DTOs remain independent. This package owns their boundary and exports `toProtocolModelMetadata()`, `toProtocolAssistantMessage()`, `toProtocolUserMessage()`, and `toProtocolToolResultMessage()`. The adapters reject invalid tool inputs, identifiers, timestamps, and mismatched tool results; `toProtocolToolResultMessage()` requires the original `ToolCall` so it can verify the association and convert its arguments itself. Diagnostic details are explicitly sanitized. Closed `diffex-ai` unions are mapped exhaustively, and compile-time field manifests enumerate current `diffex-ai` properties so additions require an explicit review. The protocol mirrors `diffex-ai` vocabulary such as `toolCall` and `toolUse` where the semantics are identical. Protocol schemas enforce consistent lifecycle states, and tests encode adapter output through the runtime schemas so incompatible changes fail in the bridging package. ## WebSocket listener -Hosted runtimes can compose an authenticated WebSocket listener from the explicit `@earendil-works/diffex-server/websocket` subpath. +Hosted runtimes can compose an authenticated WebSocket listener from the explicit `@diffexai/diffex-server/websocket` subpath. The authorization callback runs before the protocol connection is accepted and must validate the cloud-issued, session-scoped credential. Text messages are rejected, compression is disabled, and inbound and outbound byte limits are enforced independently from protocol frame validation. diff --git a/packages/server/package.json b/packages/server/package.json index 921988448..871056f3a 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-server", + "name": "@diffexai/diffex-server", "version": "0.2.0", "description": "Experimental server package for Diffex", "type": "module", @@ -40,7 +40,7 @@ "diffex", "server" ], - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", @@ -51,8 +51,8 @@ "node": ">=22.19.0" }, "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-protocol": "^0.2.0", + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-protocol": "^0.2.0", "ws": "8.21.0" }, "devDependencies": { diff --git a/packages/server/src/connection.ts b/packages/server/src/connection.ts index 0ccbf86e0..c51cabd92 100644 --- a/packages/server/src/connection.ts +++ b/packages/server/src/connection.ts @@ -1,4 +1,4 @@ -import type { ClientMessageDecoder } from "@earendil-works/diffex-protocol"; +import type { ClientMessageDecoder } from "@diffexai/diffex-protocol"; import type { MaybePromise } from "./types.ts"; diff --git a/packages/server/src/errors.ts b/packages/server/src/errors.ts index 71492790b..6cfd2f53a 100644 --- a/packages/server/src/errors.ts +++ b/packages/server/src/errors.ts @@ -1,4 +1,4 @@ -import type { JsonValue, ProtocolErrorCode } from "@earendil-works/diffex-protocol"; +import type { JsonValue, ProtocolErrorCode } from "@diffexai/diffex-protocol"; export type DiffexServerOperationErrorCode = Extract< ProtocolErrorCode, diff --git a/packages/server/src/protocol.ts b/packages/server/src/protocol.ts index 990d8e2c5..7a0a4a024 100644 --- a/packages/server/src/protocol.ts +++ b/packages/server/src/protocol.ts @@ -10,7 +10,7 @@ import { type ToolCall, type ToolResultMessage, type UserMessage, -} from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-ai"; import type { AssistantTranscriptItem, JsonValue, @@ -19,7 +19,7 @@ import type { ToolTranscriptItem, Usage, UserTranscriptItem, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; type Assert = T; type ExactKeys = keyof T extends Keys ? true : false; diff --git a/packages/server/src/server.ts b/packages/server/src/server.ts index 837dc92c1..7a7ce264f 100644 --- a/packages/server/src/server.ts +++ b/packages/server/src/server.ts @@ -14,7 +14,7 @@ import { type ServerHello, type ServerHelloError, type ServerMessage, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { type ByteConnection, type ByteConnectionHandler, diff --git a/packages/server/src/sessions.ts b/packages/server/src/sessions.ts index 9eb5ed5d5..1ba7abd15 100644 --- a/packages/server/src/sessions.ts +++ b/packages/server/src/sessions.ts @@ -1,5 +1,5 @@ import { randomUUID } from "node:crypto"; -import type { Command, EventEnvelope, SessionMetadata, SessionSnapshot } from "@earendil-works/diffex-protocol"; +import type { Command, EventEnvelope, SessionMetadata, SessionSnapshot } from "@diffexai/diffex-protocol"; import type { ByteConnection, ConnectionState } from "./connection.ts"; import { DiffexServerError } from "./errors.ts"; import type { diff --git a/packages/server/src/snapshots.ts b/packages/server/src/snapshots.ts index b299c3fe0..38e3ed704 100644 --- a/packages/server/src/snapshots.ts +++ b/packages/server/src/snapshots.ts @@ -4,7 +4,7 @@ import { PROTOCOL_VERSION, type ServerSnapshot, type SessionMetadata, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import type { ConnectionState } from "./connection.ts"; import type { DiffexServerService } from "./types.ts"; diff --git a/packages/server/src/testing/client.ts b/packages/server/src/testing/client.ts index 154973096..3fd6ae468 100644 --- a/packages/server/src/testing/client.ts +++ b/packages/server/src/testing/client.ts @@ -8,7 +8,7 @@ import { type ResponseEnvelope, type ServerMessage, ServerMessageDecoder, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { Deferred } from "./service.ts"; interface MessageWaiter { diff --git a/packages/server/src/testing/service.ts b/packages/server/src/testing/service.ts index 64af7eda3..23084be1e 100644 --- a/packages/server/src/testing/service.ts +++ b/packages/server/src/testing/service.ts @@ -6,7 +6,7 @@ import type { SessionSnapshot, ThinkingLevel, TranscriptProgress, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import { DiffexServerError } from "../errors.ts"; import type { CreateSessionOptions, diff --git a/packages/server/src/transports/unix/listener.ts b/packages/server/src/transports/unix/listener.ts index 313278e69..b97ee8ee2 100644 --- a/packages/server/src/transports/unix/listener.ts +++ b/packages/server/src/transports/unix/listener.ts @@ -3,7 +3,7 @@ import type { Stats } from "node:fs"; import { chmod, link, lstat, mkdir, rename, unlink } from "node:fs/promises"; import { createConnection, createServer, type Server, type Socket } from "node:net"; import { dirname, join } from "node:path"; -import { DEFAULT_MAX_FRAME_LENGTH } from "@earendil-works/diffex-protocol"; +import { DEFAULT_MAX_FRAME_LENGTH } from "@diffexai/diffex-protocol"; import type { ByteConnection, ByteConnectionAcceptor } from "../../connection.ts"; import type { DiffexServerListener } from "../../listener.ts"; import type { UnixListenerOptions } from "./types.ts"; diff --git a/packages/server/src/transports/websocket/listener.ts b/packages/server/src/transports/websocket/listener.ts index b5a52c611..7439e37f0 100644 --- a/packages/server/src/transports/websocket/listener.ts +++ b/packages/server/src/transports/websocket/listener.ts @@ -1,6 +1,6 @@ import { createServer, type IncomingMessage, type Server } from "node:http"; import type { Duplex } from "node:stream"; -import { DEFAULT_MAX_FRAME_LENGTH } from "@earendil-works/diffex-protocol"; +import { DEFAULT_MAX_FRAME_LENGTH } from "@diffexai/diffex-protocol"; import { type RawData, WebSocket, WebSocketServer } from "ws"; import type { ByteConnection, ByteConnectionAcceptor } from "../../connection.ts"; import type { DiffexServerListener } from "../../listener.ts"; diff --git a/packages/server/src/types.ts b/packages/server/src/types.ts index ddb6ce2b1..5e6fbbbbb 100644 --- a/packages/server/src/types.ts +++ b/packages/server/src/types.ts @@ -7,7 +7,7 @@ import type { SessionSnapshot, ThinkingLevel, TranscriptProgress, -} from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-protocol"; import type { DiffexServerError } from "./errors.ts"; import type { DiffexServerListener } from "./listener.ts"; diff --git a/packages/server/test/conformance.test.ts b/packages/server/test/conformance.test.ts index 783bd0fb5..7b2d595f5 100644 --- a/packages/server/test/conformance.test.ts +++ b/packages/server/test/conformance.test.ts @@ -1,7 +1,7 @@ import { lstat, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { encodeClientMessage, encodeFrame, PROTOCOL_VERSION } from "@earendil-works/diffex-protocol"; +import { encodeClientMessage, encodeFrame, PROTOCOL_VERSION } from "@diffexai/diffex-protocol"; import { afterEach, describe, expect, test } from "vitest"; import { type DiffexServer, DiffexServerError, InternalServerError, NotImplementedError } from "../src/index.ts"; import { connectUnixTestClient, Deferred, type ProtocolTestClient, TestServerService } from "../src/testing/index.ts"; diff --git a/packages/server/test/protocol.test.ts b/packages/server/test/protocol.test.ts index dc6b3dbed..96e4bd3f5 100644 --- a/packages/server/test/protocol.test.ts +++ b/packages/server/test/protocol.test.ts @@ -1,5 +1,5 @@ -import type { Api, AssistantMessage, Model, ToolCall, ToolResultMessage, UserMessage } from "@earendil-works/diffex-ai"; -import { encodeServerMessage, PROTOCOL_VERSION } from "@earendil-works/diffex-protocol"; +import type { Api, AssistantMessage, Model, ToolCall, ToolResultMessage, UserMessage } from "@diffexai/diffex-ai"; +import { encodeServerMessage, PROTOCOL_VERSION } from "@diffexai/diffex-protocol"; import { describe, expect, test } from "vitest"; import { sanitizeProtocolDetails, diff --git a/packages/server/test/server.test.ts b/packages/server/test/server.test.ts index dadf416f8..a73dbe16c 100644 --- a/packages/server/test/server.test.ts +++ b/packages/server/test/server.test.ts @@ -1,7 +1,7 @@ import { lstat, mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import { ServerMessageDecoder } from "@earendil-works/diffex-protocol"; +import { ServerMessageDecoder } from "@diffexai/diffex-protocol"; import { afterEach, expect, test, vi } from "vitest"; import type { ByteConnection } from "../src/connection.ts"; import { DiffexServer } from "../src/index.ts"; diff --git a/packages/server/test/sessions.test.ts b/packages/server/test/sessions.test.ts index e66129701..d8c4234b1 100644 --- a/packages/server/test/sessions.test.ts +++ b/packages/server/test/sessions.test.ts @@ -1,7 +1,7 @@ import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import { join } from "node:path"; -import type { ModelMetadata, SessionSnapshot, TranscriptProgress } from "@earendil-works/diffex-protocol"; +import type { ModelMetadata, SessionSnapshot, TranscriptProgress } from "@diffexai/diffex-protocol"; import { afterEach, describe, expect, test } from "vitest"; import type { CreateSessionOptions, DiffexServer, DiffexSessionRuntime } from "../src/index.ts"; import { diff --git a/packages/server/test/unix-connection.test.ts b/packages/server/test/unix-connection.test.ts index c06ad3756..6e65f3475 100644 --- a/packages/server/test/unix-connection.test.ts +++ b/packages/server/test/unix-connection.test.ts @@ -1,6 +1,6 @@ import { EventEmitter } from "node:events"; import type { Socket } from "node:net"; -import { encodeServerMessage, type ServerHelloError, ServerMessageDecoder } from "@earendil-works/diffex-protocol"; +import { encodeServerMessage, type ServerHelloError, ServerMessageDecoder } from "@diffexai/diffex-protocol"; import { expect, test, vi } from "vitest"; import { UnixByteConnection } from "../src/transports/unix/listener.ts"; diff --git a/packages/server/tsconfig.test.json b/packages/server/tsconfig.test.json index 64249ed6e..21a5f3551 100644 --- a/packages/server/tsconfig.test.json +++ b/packages/server/tsconfig.test.json @@ -6,7 +6,7 @@ "moduleResolution": "NodeNext", "types": ["node", "vitest"], "paths": { - "@earendil-works/diffex-protocol": ["../protocol/src/index.ts"] + "@diffexai/diffex-protocol": ["../protocol/src/index.ts"] } }, "include": ["src/**/*.ts", "test/**/*.ts"] diff --git a/packages/server/vitest.config.ts b/packages/server/vitest.config.ts index 8120c1135..7050f560c 100644 --- a/packages/server/vitest.config.ts +++ b/packages/server/vitest.config.ts @@ -9,8 +9,8 @@ export default defineConfig({ }, resolve: { alias: { - "@earendil-works/diffex-ai": fileURLToPath(new URL("../ai/src/index.ts", import.meta.url)), - "@earendil-works/diffex-protocol": fileURLToPath(new URL("../protocol/src/index.ts", import.meta.url)), + "@diffexai/diffex-ai": fileURLToPath(new URL("../ai/src/index.ts", import.meta.url)), + "@diffexai/diffex-protocol": fileURLToPath(new URL("../protocol/src/index.ts", import.meta.url)), }, }, }); diff --git a/packages/session-backends/sqlite-node/README.md b/packages/session-backends/sqlite-node/README.md index 58e0bb0a4..c33007889 100644 --- a/packages/session-backends/sqlite-node/README.md +++ b/packages/session-backends/sqlite-node/README.md @@ -1,6 +1,6 @@ -# @earendil-works/diffex-session-backend-sqlite-node +# @diffexai/diffex-session-backend-sqlite-node -Node sqlite session backend for `@earendil-works/diffex-agent-core` sessions. Provides the +Node sqlite session backend for `@diffexai/diffex-agent-core` sessions. Provides the `node:sqlite` adapter (`SqliteDatabase` implementation), SQLite session repository, migrations, materialized views, and optional FTS search. diff --git a/packages/session-backends/sqlite-node/package.json b/packages/session-backends/sqlite-node/package.json index 23f12f4b6..81cf306f2 100644 --- a/packages/session-backends/sqlite-node/package.json +++ b/packages/session-backends/sqlite-node/package.json @@ -1,7 +1,7 @@ { - "name": "@earendil-works/diffex-session-backend-sqlite-node", + "name": "@diffexai/diffex-session-backend-sqlite-node", "version": "0.2.0", - "description": "Node sqlite session backend for @earendil-works/diffex-agent-core sessions", + "description": "Node sqlite session backend for @diffexai/diffex-agent-core sessions", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -23,7 +23,7 @@ "coverage": "vitest --run --coverage", "prepublishOnly": "npm run clean && npm run build" }, - "author": "Earendil Works", + "author": "DiffexAI", "license": "MIT", "repository": { "type": "git", @@ -34,8 +34,8 @@ "node": ">=22.19.0" }, "dependencies": { - "@earendil-works/diffex-ai": "^0.2.0", - "@earendil-works/diffex-agent-core": "^0.2.0" + "@diffexai/diffex-ai": "^0.2.0", + "@diffexai/diffex-agent-core": "^0.2.0" }, "devDependencies": { "@vitest/coverage-v8": "4.1.9", diff --git a/packages/session-backends/sqlite-node/src/sqlite/branch-cache.ts b/packages/session-backends/sqlite-node/src/sqlite/branch-cache.ts index e69c8277d..962a8eead 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/branch-cache.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/branch-cache.ts @@ -1,5 +1,5 @@ -import { SessionError } from "@earendil-works/diffex-agent-core"; -import { uuidv7 } from "@earendil-works/diffex-ai"; +import { SessionError } from "@diffexai/diffex-agent-core"; +import { uuidv7 } from "@diffexai/diffex-ai"; import { sql } from "./sql.ts"; import { copyBranchEntriesThroughSeq, diff --git a/packages/session-backends/sqlite-node/src/sqlite/repo.ts b/packages/session-backends/sqlite-node/src/sqlite/repo.ts index fe28cec11..08310b570 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/repo.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/repo.ts @@ -1,4 +1,4 @@ -import type { FileError, Result } from "@earendil-works/diffex-agent-core"; +import type { FileError, Result } from "@diffexai/diffex-agent-core"; import { type BranchBounds, type Entry, @@ -16,8 +16,8 @@ import { type SessionRepo as SessionRepository, type SessionStats, type SessionStorage, -} from "@earendil-works/diffex-agent-core"; -import { uuidv7 } from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-agent-core"; +import { uuidv7 } from "@diffexai/diffex-ai"; import { appendEntryToBranchCache, buildCachedBranch, deleteBranchCache, rebuildBranchCache } from "./branch-cache.ts"; import { applyMigrations } from "./migrations.ts"; import { sql } from "./sql.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/search-backend.ts b/packages/session-backends/sqlite-node/src/sqlite/search-backend.ts index b0ffe3fc3..05cceab51 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/search-backend.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/search-backend.ts @@ -1,5 +1,5 @@ -import type { SessionSearch, SessionSearchHit, SessionSearchOptions } from "@earendil-works/diffex-agent-core"; -import { getFileSystemResultOrThrow } from "@earendil-works/diffex-agent-core"; +import type { SessionSearch, SessionSearchHit, SessionSearchOptions } from "@diffexai/diffex-agent-core"; +import { getFileSystemResultOrThrow } from "@diffexai/diffex-agent-core"; import { applyMigrations } from "./migrations.ts"; import { sql } from "./sql.ts"; import { decodeSessionMetadata, type SessionRow } from "./storage/sessions.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/branch-entries.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/branch-entries.ts index 5c174d12b..8b7cb43ba 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/branch-entries.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/branch-entries.ts @@ -1,4 +1,4 @@ -import type { Entry } from "@earendil-works/diffex-agent-core"; +import type { Entry } from "@diffexai/diffex-agent-core"; import { joinSqlFragments, sql } from "../sql.ts"; import type { SqliteDatabase } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/entries.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/entries.ts index 23e9a4ecc..26c36f312 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/entries.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/entries.ts @@ -1,4 +1,4 @@ -import type { Entry, EntryOrder } from "@earendil-works/diffex-agent-core"; +import type { Entry, EntryOrder } from "@diffexai/diffex-agent-core"; import { sql } from "../sql.ts"; import type { SqliteDatabase } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/lanes.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/lanes.ts index ba44e3b8c..a7d9a23d4 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/lanes.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/lanes.ts @@ -1,4 +1,4 @@ -import { SessionError } from "@earendil-works/diffex-agent-core"; +import { SessionError } from "@diffexai/diffex-agent-core"; import { sql } from "../sql.ts"; import type { SqliteDatabase } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/records.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/records.ts index 60dfe1d7f..c2716cc7a 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/records.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/records.ts @@ -1,4 +1,4 @@ -import { SessionError } from "@earendil-works/diffex-agent-core"; +import { SessionError } from "@diffexai/diffex-agent-core"; import { joinSqlFragments, sql } from "../sql.ts"; import type { SqliteDatabase } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/session-sequences.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/session-sequences.ts index 97d130a7b..593645b1a 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/session-sequences.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/session-sequences.ts @@ -1,4 +1,4 @@ -import { SessionError } from "@earendil-works/diffex-agent-core"; +import { SessionError } from "@diffexai/diffex-agent-core"; import { sql } from "../sql.ts"; import type { SqliteDatabase } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/session-stats.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/session-stats.ts index 99ee32656..81d7be433 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/session-stats.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/session-stats.ts @@ -1,5 +1,5 @@ -import { SessionError, type SessionStats } from "@earendil-works/diffex-agent-core"; -import type { Usage } from "@earendil-works/diffex-ai"; +import { SessionError, type SessionStats } from "@diffexai/diffex-agent-core"; +import type { Usage } from "@diffexai/diffex-ai"; import { sql } from "../sql.ts"; import type { SqliteDatabase } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/storage/sessions.ts b/packages/session-backends/sqlite-node/src/sqlite/storage/sessions.ts index 04d2b228f..51da62889 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/storage/sessions.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/storage/sessions.ts @@ -1,4 +1,4 @@ -import { assertJsonSerializable, SessionError } from "@earendil-works/diffex-agent-core"; +import { assertJsonSerializable, SessionError } from "@diffexai/diffex-agent-core"; import { sql } from "../sql.ts"; import type { SqliteDatabase, SqliteSessionMetadata } from "../types.ts"; diff --git a/packages/session-backends/sqlite-node/src/sqlite/types.ts b/packages/session-backends/sqlite-node/src/sqlite/types.ts index e66c9e00c..084339eec 100644 --- a/packages/session-backends/sqlite-node/src/sqlite/types.ts +++ b/packages/session-backends/sqlite-node/src/sqlite/types.ts @@ -1,4 +1,4 @@ -import type { FileSystem, SessionCreateOptions, SessionMetadata } from "@earendil-works/diffex-agent-core"; +import type { FileSystem, SessionCreateOptions, SessionMetadata } from "@diffexai/diffex-agent-core"; /** Result of a prepared SQLite statement execution. */ export interface SqliteRunResult { diff --git a/packages/session-backends/sqlite-node/test/branch-cache.test.ts b/packages/session-backends/sqlite-node/test/branch-cache.test.ts index 4b44a52b4..29762b3b3 100644 --- a/packages/session-backends/sqlite-node/test/branch-cache.test.ts +++ b/packages/session-backends/sqlite-node/test/branch-cache.test.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; import { describe, expect, it } from "vitest"; import { createNodeSqliteFactory, SqliteSessionRepository } from "../src/index.ts"; import { diff --git a/packages/session-backends/sqlite-node/test/branch-query.test.ts b/packages/session-backends/sqlite-node/test/branch-query.test.ts index cd0d4b19f..15689cf50 100644 --- a/packages/session-backends/sqlite-node/test/branch-query.test.ts +++ b/packages/session-backends/sqlite-node/test/branch-query.test.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; import { describe, expect, it } from "vitest"; import { createNodeSqliteFactory, SqliteSessionRepository } from "../src/index.ts"; import { createAssistantMessage, createTempDir, createUserMessage } from "./test-utils.ts"; diff --git a/packages/session-backends/sqlite-node/test/conformance.test.ts b/packages/session-backends/sqlite-node/test/conformance.test.ts index bdab063f8..0839a5c24 100644 --- a/packages/session-backends/sqlite-node/test/conformance.test.ts +++ b/packages/session-backends/sqlite-node/test/conformance.test.ts @@ -1,10 +1,10 @@ import { join } from "node:path"; -import type { SessionMetadata, SessionRepo } from "@earendil-works/diffex-agent-core"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; +import type { SessionMetadata, SessionRepo } from "@diffexai/diffex-agent-core"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; import { createSessionBackendConformance, type SessionBackendFixture, -} from "@earendil-works/diffex-agent-core/session/testing"; +} from "@diffexai/diffex-agent-core/session/testing"; import { describe, it } from "vitest"; import { createNodeSqliteFactory, type SqliteSessionMetadata, SqliteSessionRepository } from "../src/index.ts"; import { createTempDir } from "./test-utils.ts"; diff --git a/packages/session-backends/sqlite-node/test/repository.test.ts b/packages/session-backends/sqlite-node/test/repository.test.ts index 731dfa0a9..2e6f026e5 100644 --- a/packages/session-backends/sqlite-node/test/repository.test.ts +++ b/packages/session-backends/sqlite-node/test/repository.test.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; import { describe, expect, it } from "vitest"; import { createNodeSqliteFactory, diff --git a/packages/session-backends/sqlite-node/test/search.test.ts b/packages/session-backends/sqlite-node/test/search.test.ts index 019dd3d6d..45988cf26 100644 --- a/packages/session-backends/sqlite-node/test/search.test.ts +++ b/packages/session-backends/sqlite-node/test/search.test.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; import { describe, expect, it } from "vitest"; import { createNodeSqliteFactory, createSqliteSessionSearch, SqliteSessionRepository } from "../src/index.ts"; import { createSetupFailureSqlite, createTempDir, createUserMessage, getSqliteEntries } from "./test-utils.ts"; diff --git a/packages/session-backends/sqlite-node/test/test-utils.ts b/packages/session-backends/sqlite-node/test/test-utils.ts index e9d2c2d8d..c676a42c7 100644 --- a/packages/session-backends/sqlite-node/test/test-utils.ts +++ b/packages/session-backends/sqlite-node/test/test-utils.ts @@ -8,8 +8,8 @@ import type { Session as CoreSession, Entry, MessageEntry, -} from "@earendil-works/diffex-agent-core"; -import type { Usage } from "@earendil-works/diffex-ai"; +} from "@diffexai/diffex-agent-core"; +import type { Usage } from "@diffexai/diffex-ai"; import { afterEach, vi } from "vitest"; import type { SqliteDatabaseFactory, SqliteSessionMetadata } from "../src/index.ts"; diff --git a/packages/session-backends/sqlite-node/test/writer-leases.test.ts b/packages/session-backends/sqlite-node/test/writer-leases.test.ts index d5abe456a..35a4e5db0 100644 --- a/packages/session-backends/sqlite-node/test/writer-leases.test.ts +++ b/packages/session-backends/sqlite-node/test/writer-leases.test.ts @@ -1,5 +1,5 @@ import { join } from "node:path"; -import { NodeExecutionEnv } from "@earendil-works/diffex-agent-core/node"; +import { NodeExecutionEnv } from "@diffexai/diffex-agent-core/node"; import { describe, expect, it, vi } from "vitest"; import { createNodeSqliteFactory, type SqliteSessionMetadata, SqliteSessionRepository } from "../src/index.ts"; import { createTempDir, createUserMessage } from "./test-utils.ts"; diff --git a/packages/session-backends/sqlite-node/vitest.config.ts b/packages/session-backends/sqlite-node/vitest.config.ts index 3477a158e..83e28d304 100644 --- a/packages/session-backends/sqlite-node/vitest.config.ts +++ b/packages/session-backends/sqlite-node/vitest.config.ts @@ -23,11 +23,11 @@ export default defineConfig({ }, resolve: { alias: [ - { find: /^@earendil-works\/diffex-telemetry$/, replacement: telemetryIndex }, - { find: /^@earendil-works\/diffex-agent-core\/session\/testing$/, replacement: agentSessionTesting }, - { find: /^@earendil-works\/diffex-agent-core\/node$/, replacement: agentNode }, - { find: /^@earendil-works\/diffex-agent-core$/, replacement: agentIndex }, - { find: /^@earendil-works\/diffex-ai$/, replacement: aiIndex }, + { find: /^@diffexai\/diffex-telemetry$/, replacement: telemetryIndex }, + { find: /^@diffexai\/diffex-agent-core\/session\/testing$/, replacement: agentSessionTesting }, + { find: /^@diffexai\/diffex-agent-core\/node$/, replacement: agentNode }, + { find: /^@diffexai\/diffex-agent-core$/, replacement: agentIndex }, + { find: /^@diffexai\/diffex-ai$/, replacement: aiIndex }, ], }, }); diff --git a/packages/telemetry/README.md b/packages/telemetry/README.md index 28fa7f5ba..89a7806eb 100644 --- a/packages/telemetry/README.md +++ b/packages/telemetry/README.md @@ -1,4 +1,4 @@ -# @earendil-works/diffex-telemetry +# @diffexai/diffex-telemetry Vendor-neutral telemetry contracts and typed schema utilities for Diffex packages. @@ -33,7 +33,7 @@ Applications can use the in-memory reference or provide an adapter for OpenTelem ## Installation ```bash -npm install @earendil-works/diffex-telemetry +npm install @diffexai/diffex-telemetry ``` ## Telemetry Concepts @@ -69,7 +69,7 @@ A `TelemetryContext` starts a span around a callback. The callback receives a `T import { NOOP_TELEMETRY_CONTEXT, type TelemetryContext, -} from '@earendil-works/diffex-telemetry'; +} from '@diffexai/diffex-telemetry'; async function loadAccount( accountId: string, @@ -136,7 +136,7 @@ Adapters may activate backend-native ambient context internally for automatic in Use `NOOP_TELEMETRY_CONTEXT` when telemetry is optional: ```typescript -import { NOOP_TELEMETRY_CONTEXT } from '@earendil-works/diffex-telemetry'; +import { NOOP_TELEMETRY_CONTEXT } from '@diffexai/diffex-telemetry'; const result = await NOOP_TELEMETRY_CONTEXT.startSpan( { name: 'example.operation' }, @@ -156,7 +156,7 @@ The no-op context: `InMemoryTelemetryContext` is the backend-neutral reference implementation. It is useful for tests, local diagnostics, and applications that intentionally want process-local capture without an exporter: ```typescript -import { InMemoryTelemetryContext } from '@earendil-works/diffex-telemetry'; +import { InMemoryTelemetryContext } from '@diffexai/diffex-telemetry'; const telemetry = new InMemoryTelemetryContext(); @@ -177,13 +177,13 @@ The adapter is safe to use as an ordinary `TelemetryContext`, but storage is unb ## Adapter Conformance -`@earendil-works/diffex-telemetry/testing` exports a runner-independent conformance suite modeled as grouped cases. A fixture supplies a fresh context and converts its backend's finished spans into normalized `RecordedTelemetrySpan` snapshots: +`@diffexai/diffex-telemetry/testing` exports a runner-independent conformance suite modeled as grouped cases. A fixture supplies a fresh context and converts its backend's finished spans into normalized `RecordedTelemetrySpan` snapshots: ```typescript import { createTelemetryAdapterConformance, type TelemetryAdapterFixture, -} from '@earendil-works/diffex-telemetry/testing'; +} from '@diffexai/diffex-telemetry/testing'; import { describe, it } from 'vitest'; const conformance = createTelemetryAdapterConformance(async () => { @@ -216,7 +216,7 @@ The low-level span API intentionally accepts open names and attribute bags so ad import { createTypedSpanStarter, defineTelemetrySchema, -} from '@earendil-works/diffex-telemetry'; +} from '@diffexai/diffex-telemetry'; export const EXAMPLE_TELEMETRY_SCHEMA = defineTelemetrySchema({ version: 1, @@ -323,7 +323,7 @@ Attributes do not end the span. Returning, resolving, throwing, or rejecting fro A starter can compose multiple independently versioned schemas: ```typescript -import { AGENT_TELEMETRY_SCHEMAS } from '@earendil-works/diffex-agent-core'; +import { AGENT_TELEMETRY_SCHEMAS } from '@diffexai/diffex-agent-core'; const startAgentSpan = createTypedSpanStarter( telemetryContext, @@ -366,9 +366,9 @@ Adapters do not need to understand schema objects. Instrumentation helpers and t Package ownership is intentionally split: -- `@earendil-works/diffex-telemetry` owns the vendor-neutral contract, no-op and in-memory reference contexts, schema utilities, and adapter conformance suite; -- `@earendil-works/diffex-ai` accepts and propagates `telemetryContext` in provider request options but owns no telemetry schema; -- `@earendil-works/diffex-agent-core` owns and exports the Diffex AI-request and harness schemas, their combined readonly schema tuple, and typed span helpers. +- `@diffexai/diffex-telemetry` owns the vendor-neutral contract, no-op and in-memory reference contexts, schema utilities, and adapter conformance suite; +- `@diffexai/diffex-ai` accepts and propagates `telemetryContext` in provider request options but owns no telemetry schema; +- `@diffexai/diffex-agent-core` owns and exports the Diffex AI-request and harness schemas, their combined readonly schema tuple, and typed span helpers. ```typescript import { @@ -377,7 +377,7 @@ import { HARNESS_TELEMETRY_SCHEMA, startAiSpan, startHarnessSpan, -} from '@earendil-works/diffex-agent-core'; +} from '@diffexai/diffex-agent-core'; ``` The compatibility schemas use the established `diffex.ai.*`, `diffex.harness.*`, and `diffex.session.*` names. Adapters may translate them to backend conventions without changing the emitted vocabulary. diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index 4071d8a80..7c16bd6c1 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-telemetry", + "name": "@diffexai/diffex-telemetry", "version": "0.2.0", "description": "Vendor-neutral telemetry contracts and typed schema utilities for Diffex", "type": "module", diff --git a/packages/tui/README.md b/packages/tui/README.md index 2e5c7874b..ae9ff636b 100644 --- a/packages/tui/README.md +++ b/packages/tui/README.md @@ -1,4 +1,4 @@ -# @earendil-works/diffex-tui +# @diffexai/diffex-tui Minimal terminal UI framework with differential rendering and synchronized output for flicker-free interactive CLI applications. @@ -18,7 +18,7 @@ Minimal terminal UI framework with differential rendering and synchronized outpu ## Quick Start ```typescript -import { type TUI, Text, Editor, ProcessTerminal, TuiMainScreen, matchesKey } from "@earendil-works/diffex-tui"; +import { type TUI, Text, Editor, ProcessTerminal, TuiMainScreen, matchesKey } from "@diffexai/diffex-tui"; // Create terminal const terminal = new ProcessTerminal(); @@ -62,7 +62,7 @@ tui.start(); - `TuiAltScreen` renders a fixed-height viewport in the alternate terminal buffer with application-owned scrolling. When stopped, it restores the main buffer and prints the complete final document. ```typescript -import { type TUI, TuiAltScreen, TuiMainScreen } from "@earendil-works/diffex-tui"; +import { type TUI, TuiAltScreen, TuiMainScreen } from "@diffexai/diffex-tui"; const tui: TUI = new TuiMainScreen(terminal); // To use an application-owned viewport in the alternate terminal buffer instead: @@ -89,7 +89,7 @@ import { ScrollView, Text, VStack, -} from "@earendil-works/diffex-tui"; +} from "@diffexai/diffex-tui"; const transcript = new Container(); transcript.addChild(new Text("History")); @@ -228,7 +228,7 @@ The TUI appends a full SGR reset and OSC 8 reset at the end of each rendered lin Components that display a text cursor and need IME (Input Method Editor) support should implement the `Focusable` interface: ```typescript -import { CURSOR_MARKER, type Component, type Focusable } from "@earendil-works/diffex-tui"; +import { CURSOR_MARKER, type Component, type Focusable } from "@diffexai/diffex-tui"; class MyInput implements Component, Focusable { focused: boolean = false; // Set by TUI when focus changes @@ -252,7 +252,7 @@ The cursor remains hidden by default. This keeps the fake cursor rendering, whil **Container components with embedded inputs:** When a container component (dialog, selector, etc.) contains an `Input` or `Editor` child, the container must implement `Focusable` and propagate the focus state to the child: ```typescript -import { Container, type Focusable, Input } from "@earendil-works/diffex-tui"; +import { Container, type Focusable, Input } from "@diffexai/diffex-tui"; class SearchDialog extends Container implements Focusable { private searchInput: Input; @@ -603,7 +603,7 @@ Supported formats: PNG, JPEG, GIF, WebP. Dimensions are parsed from the image he Supports both slash commands and file paths. ```typescript -import { CombinedAutocompleteProvider } from "@earendil-works/diffex-tui"; +import { CombinedAutocompleteProvider } from "@diffexai/diffex-tui"; const provider = new CombinedAutocompleteProvider( [ @@ -628,7 +628,7 @@ editor.setAutocompleteProvider(provider); Use `matchesKey()` with the `Key` helper for detecting keyboard input (supports Kitty keyboard protocol): ```typescript -import { matchesKey, Key } from "@earendil-works/diffex-tui"; +import { matchesKey, Key } from "@diffexai/diffex-tui"; if (matchesKey(data, Key.ctrl("c"))) { process.exit(0); @@ -688,7 +688,7 @@ interface Terminal { ## Utilities ```typescript -import { visibleWidth, truncateToWidth, wrapTextWithAnsi } from "@earendil-works/diffex-tui"; +import { visibleWidth, truncateToWidth, wrapTextWithAnsi } from "@diffexai/diffex-tui"; // Get visible width of string (ignoring ANSI codes) const width = visibleWidth("\x1b[31mHello\x1b[0m"); // 5 @@ -713,8 +713,8 @@ When creating custom components, **each line returned by `render()` must not exc Use `matchesKey()` with the `Key` helper for keyboard input: ```typescript -import { matchesKey, Key, truncateToWidth } from "@earendil-works/diffex-tui"; -import type { Component } from "@earendil-works/diffex-tui"; +import { matchesKey, Key, truncateToWidth } from "@diffexai/diffex-tui"; +import type { Component } from "@diffexai/diffex-tui"; class MyInteractiveComponent implements Component { private selectedIndex = 0; @@ -749,8 +749,8 @@ class MyInteractiveComponent implements Component { Use the provided utilities to ensure lines fit: ```typescript -import { visibleWidth, truncateToWidth } from "@earendil-works/diffex-tui"; -import type { Component } from "@earendil-works/diffex-tui"; +import { visibleWidth, truncateToWidth } from "@diffexai/diffex-tui"; +import type { Component } from "@diffexai/diffex-tui"; class MyComponent implements Component { private text: string; diff --git a/packages/tui/package.json b/packages/tui/package.json index 7efd186e6..36f12ca29 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -1,5 +1,5 @@ { - "name": "@earendil-works/diffex-tui", + "name": "@diffexai/diffex-tui", "version": "0.2.0", "description": "Terminal User Interface library with differential rendering for efficient text-based applications", "type": "module", diff --git a/packages/tui/src/layout-node.ts b/packages/tui/src/layout-node.ts index 90dd86bd5..ac4e14b9d 100644 --- a/packages/tui/src/layout-node.ts +++ b/packages/tui/src/layout-node.ts @@ -1,6 +1,6 @@ import type { Component } from "./tui.ts"; -export const LAYOUT_NODE = Symbol.for("@earendil-works/diffex-tui/layout-node"); +export const LAYOUT_NODE = Symbol.for("@diffexai/diffex-tui/layout-node"); export interface LayoutViewport { width: number; diff --git a/packages/tui/src/tui.ts b/packages/tui/src/tui.ts index 8b621fad9..cb83adcd8 100644 --- a/packages/tui/src/tui.ts +++ b/packages/tui/src/tui.ts @@ -334,7 +334,7 @@ export interface TUI extends Component { queryTerminalColorScheme(options: { timeoutMs: number }): Promise; } -export const VIEWPORT_TUI = Symbol.for("@earendil-works/diffex-tui/viewport"); +export const VIEWPORT_TUI = Symbol.for("@diffexai/diffex-tui/viewport"); export interface ViewportTUI extends TUI { readonly [VIEWPORT_TUI]: true; diff --git a/scripts/agent-treeshake-smoke-entry.ts b/scripts/agent-treeshake-smoke-entry.ts index 2514166be..02122522a 100644 --- a/scripts/agent-treeshake-smoke-entry.ts +++ b/scripts/agent-treeshake-smoke-entry.ts @@ -1,6 +1,6 @@ -import { Agent } from "@earendil-works/diffex-agent-core"; -import { createModels } from "@earendil-works/diffex-ai"; -import { anthropicProvider } from "@earendil-works/diffex-ai/providers/anthropic"; +import { Agent } from "@diffexai/diffex-agent-core"; +import { createModels } from "@diffexai/diffex-ai"; +import { anthropicProvider } from "@diffexai/diffex-ai/providers/anthropic"; const models = createModels(); models.setProvider(anthropicProvider()); diff --git a/scripts/browser-smoke-entry.ts b/scripts/browser-smoke-entry.ts index 094651188..7ef6cc48a 100644 --- a/scripts/browser-smoke-entry.ts +++ b/scripts/browser-smoke-entry.ts @@ -1,6 +1,6 @@ -import { DiffexClient } from "@earendil-works/diffex-client"; -import { createAssistantMessageEventStream, Type } from "@earendil-works/diffex-ai"; -import { complete, getModel, getProviders, streamSimple } from "@earendil-works/diffex-ai/compat"; +import { DiffexClient } from "@diffexai/diffex-client"; +import { createAssistantMessageEventStream, Type } from "@diffexai/diffex-ai"; +import { complete, getModel, getProviders, streamSimple } from "@diffexai/diffex-ai/compat"; import { Agent, bashExecutionToText, @@ -17,8 +17,8 @@ import { streamProxy, toError, truncateHead, -} from "@earendil-works/diffex-agent-core"; -import { decodeCbor, encodeCbor, PROTOCOL_VERSION } from "@earendil-works/diffex-protocol"; +} from "@diffexai/diffex-agent-core"; +import { decodeCbor, encodeCbor, PROTOCOL_VERSION } from "@diffexai/diffex-protocol"; // Keep this entry browser-safe. It is bundled by scripts/check-browser-smoke.mjs // to catch accidental Node-only runtime imports in browser-facing package exports. diff --git a/scripts/build-binaries.sh b/scripts/build-binaries.sh index a849a31b0..ff2a8b76b 100755 --- a/scripts/build-binaries.sh +++ b/scripts/build-binaries.sh @@ -189,8 +189,6 @@ for platform in "${PLATFORMS[@]}"; do cp ../../node_modules/@silvia-odwyer/photon-node/photon_rs_bg.wasm "$OUTPUT_DIR/$platform/" mkdir -p "$OUTPUT_DIR/$platform/theme" cp dist/modes/interactive/theme/*.json "$OUTPUT_DIR/$platform/theme/" - mkdir -p "$OUTPUT_DIR/$platform/assets" - cp dist/modes/interactive/assets/* "$OUTPUT_DIR/$platform/assets/" cp -r dist/core/export-html "$OUTPUT_DIR/$platform/" cp -r docs "$OUTPUT_DIR/$platform/" cp -r examples "$OUTPUT_DIR/$platform/" diff --git a/scripts/check-pinned-deps.mjs b/scripts/check-pinned-deps.mjs index f9e9f41fd..b8b06e8ab 100644 --- a/scripts/check-pinned-deps.mjs +++ b/scripts/check-pinned-deps.mjs @@ -21,10 +21,6 @@ function collectPackageJsonFiles(directory) { } } -function isInternalWorkspaceDependency(name) { - return name.startsWith("@earendil-works/diffex-"); -} - function isNonRegistrySpecifier(specifier) { return /^(?:workspace:|file:|link:|portal:|git\+|github:|git:|https?:|ssh:|git:\/\/)/.test(specifier); } @@ -49,7 +45,7 @@ for (const file of packageJsonFiles.sort()) { if (!dependencies) continue; for (const [name, specifier] of Object.entries(dependencies)) { - if (isInternalWorkspaceDependency(name) || isNonRegistrySpecifier(specifier)) continue; + if (name === "@diffexai/diffex" || name.startsWith("@diffexai/diffex-") || isNonRegistrySpecifier(specifier)) continue; if (exactVersionPattern.test(getVersionSpecifier(specifier))) continue; failures.push(`${file}: ${section}.${name} must be pinned, found ${specifier}`); } diff --git a/scripts/generate-coding-agent-install-lock.mjs b/scripts/generate-coding-agent-install-lock.mjs index b0d63410b..9f09ec85e 100644 --- a/scripts/generate-coding-agent-install-lock.mjs +++ b/scripts/generate-coding-agent-install-lock.mjs @@ -11,8 +11,8 @@ const outputDir = join(codingAgentDir, "install-lock"); const rootLockfilePath = join(repoRoot, "package-lock.json"); const outputPackageJsonPath = join(outputDir, "package.json"); const outputLockfilePath = join(outputDir, "package-lock.json"); -const internalPackagePrefix = "@earendil-works/diffex-"; -const installPackageName = "@earendil-works/diffex-coding-agent-install"; +const internalPackagePrefix = "@diffexai/diffex-"; +const installPackageName = "@diffexai/diffex-coding-agent-install"; const allowedInstallScriptPackages = new Map([ ["@google/genai@1.52.0", "preinstall is a no-op in the published package"], ["protobufjs@7.6.5", "postinstall only warns about protobufjs version scheme mismatches"], @@ -143,7 +143,7 @@ function getInternalWorkspaces(lockPackages) { if (!lockPath.startsWith("packages/") || lockPath.includes("/node_modules/") || !entry.name || !entry.version) { continue; } - if (!entry.name.startsWith(internalPackagePrefix)) { + if (entry.name !== "@diffexai/diffex" && !entry.name.startsWith(internalPackagePrefix)) { continue; } @@ -294,7 +294,10 @@ function validateGeneratedFiles(installerPackageJson, installLock, internalNames if (entry.dev || entry.devOptional || entry.extraneous) { errors.push(`${lockPath || "root"} contains dev/extraneous metadata`); } - if (packageName?.startsWith(internalPackagePrefix) && entry.version !== installerPackageJson.version) { + if ( + (packageName === "@diffexai/diffex" || packageName?.startsWith(internalPackagePrefix)) && + entry.version !== installerPackageJson.version + ) { errors.push(`${lockPath} internal package version ${entry.version} does not match ${installerPackageJson.version}`); } if (entry.hasInstallScript) { diff --git a/scripts/generate-coding-agent-shrinkwrap.mjs b/scripts/generate-coding-agent-shrinkwrap.mjs index 0507051d5..90739d049 100644 --- a/scripts/generate-coding-agent-shrinkwrap.mjs +++ b/scripts/generate-coding-agent-shrinkwrap.mjs @@ -9,7 +9,7 @@ const repoRoot = resolve(scriptDir, ".."); const codingAgentDir = join(repoRoot, "packages/coding-agent"); const rootLockfilePath = join(repoRoot, "package-lock.json"); const shrinkwrapPath = join(codingAgentDir, "npm-shrinkwrap.json"); -const internalPackagePrefix = "@earendil-works/diffex-"; +const internalPackagePrefix = "@diffexai/diffex-"; const allowedInstallScriptPackages = new Map([ ["@google/genai@1.52.0", "preinstall is a no-op in the published package"], ["protobufjs@7.6.5", "postinstall only warns about protobufjs version scheme mismatches"], @@ -136,7 +136,7 @@ function getInternalWorkspaces(lockPackages) { if (!lockPath.startsWith("packages/") || lockPath.includes("/node_modules/") || !entry.name || !entry.version) { continue; } - if (!entry.name.startsWith(internalPackagePrefix)) { + if (entry.name !== "@diffexai/diffex" && !entry.name.startsWith(internalPackagePrefix)) { continue; } diff --git a/scripts/local-release.mjs b/scripts/local-release.mjs index 56e9cbbc0..4646b081f 100644 --- a/scripts/local-release.mjs +++ b/scripts/local-release.mjs @@ -6,16 +6,16 @@ import { isAbsolute, join, relative, resolve } from "node:path"; import { spawnSync } from "node:child_process"; const packages = [ - { directory: "packages/harness-state", name: "@earendil-works/diffex-harness-state" }, - { directory: "packages/telemetry", name: "@earendil-works/diffex-telemetry" }, - { directory: "packages/ai", name: "@earendil-works/diffex-ai" }, - { directory: "packages/tui", name: "@earendil-works/diffex-tui" }, - { directory: "packages/agent", name: "@earendil-works/diffex-agent-core" }, - { directory: "packages/protocol", name: "@earendil-works/diffex-protocol" }, - { directory: "packages/client", name: "@earendil-works/diffex-client" }, - { directory: "packages/session-backends/sqlite-node", name: "@earendil-works/diffex-session-backend-sqlite-node" }, - { directory: "packages/server", name: "@earendil-works/diffex-server" }, - { directory: "packages/coding-agent", name: "@earendil-works/diffex-coding-agent" }, + { directory: "packages/harness-state", name: "@diffexai/diffex-harness-state" }, + { directory: "packages/telemetry", name: "@diffexai/diffex-telemetry" }, + { directory: "packages/ai", name: "@diffexai/diffex-ai" }, + { directory: "packages/tui", name: "@diffexai/diffex-tui" }, + { directory: "packages/agent", name: "@diffexai/diffex-agent-core" }, + { directory: "packages/protocol", name: "@diffexai/diffex-protocol" }, + { directory: "packages/client", name: "@diffexai/diffex-client" }, + { directory: "packages/session-backends/sqlite-node", name: "@diffexai/diffex-session-backend-sqlite-node" }, + { directory: "packages/server", name: "@diffexai/diffex-server" }, + { directory: "packages/coding-agent", name: "@diffexai/diffex" }, ]; const privateBuildPackages = [{ directory: "packages/harness-trace" }]; diff --git a/scripts/sync-versions.js b/scripts/sync-versions.js index 996607f75..19bc0eb79 100644 --- a/scripts/sync-versions.js +++ b/scripts/sync-versions.js @@ -48,7 +48,7 @@ for (const pkg of workspacePackages) { } for (const [dependencyName, currentSpecifier] of Object.entries(dependencies)) { - // Registry aliases such as `npm:@earendil-works/diffex-ai@0.1.2` are never workspace-linked, + // Registry aliases such as `npm:@diffexai/diffex-ai@0.1.2` are never workspace-linked, // so lockstep bumping them would point at a version that is not published yet. const version = versionMap.get(dependencyName); const newSpecifier = version ? `^${version}` : null; diff --git a/scripts/sync-versions.test.mjs b/scripts/sync-versions.test.mjs index 339c216e3..c5f7bbc7e 100644 --- a/scripts/sync-versions.test.mjs +++ b/scripts/sync-versions.test.mjs @@ -29,20 +29,20 @@ test("synchronizes private dependencies without touching registry aliases, gener const root = await mkdtemp(join(tmpdir(), "diffex-sync-versions-")); try { await writeManifest(root, "packages/ai", { - name: "@earendil-works/diffex-ai", + name: "@diffexai/diffex-ai", version: "2.0.0", }); await writeManifest(root, "packages/coding-agent", { - name: "@earendil-works/diffex-coding-agent", + name: "@diffexai/diffex", version: "2.0.0", }); await writeManifest(root, "packages/evals", { - name: "@earendil-works/diffex-evals", + name: "@diffexai/diffex-evals", version: "9.9.9", private: true, dependencies: { - "@earendil-works/diffex-coding-agent": "^1.0.0", - "@mariozechner/pi-ai": "npm:@earendil-works/diffex-ai@1.0.0", + "@diffexai/diffex": "^1.0.0", + "@mariozechner/pi-ai": "npm:@diffexai/diffex-ai@1.0.0", }, }); await writeManifest(root, "packages/coding-agent/install-lock", { @@ -50,7 +50,7 @@ test("synchronizes private dependencies without touching registry aliases, gener version: "0.0.0", private: true, dependencies: { - "@earendil-works/diffex-coding-agent": "^1.0.0", + "@diffexai/diffex": "^1.0.0", }, }); @@ -58,13 +58,13 @@ test("synchronizes private dependencies without touching registry aliases, gener assert.equal(result.status, 0, result.stderr); const evalsManifest = await readManifest(root, "packages/evals"); - assert.equal(evalsManifest.dependencies["@earendil-works/diffex-coding-agent"], "^2.0.0"); - assert.equal(evalsManifest.dependencies["@mariozechner/pi-ai"], "npm:@earendil-works/diffex-ai@1.0.0"); + assert.equal(evalsManifest.dependencies["@diffexai/diffex"], "^2.0.0"); + assert.equal(evalsManifest.dependencies["@mariozechner/pi-ai"], "npm:@diffexai/diffex-ai@1.0.0"); const generatedManifest = await readManifest(root, "packages/coding-agent/install-lock"); - assert.equal(generatedManifest.dependencies["@earendil-works/diffex-coding-agent"], "^1.0.0"); + assert.equal(generatedManifest.dependencies["@diffexai/diffex"], "^1.0.0"); await writeManifest(root, "packages/ai", { - name: "@earendil-works/diffex-ai", + name: "@diffexai/diffex-ai", version: "3.0.0", }); const lockstepFailure = runSyncVersions(root); diff --git a/tsconfig.json b/tsconfig.json index e1b7fdeba..8194778cd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,41 +8,41 @@ "*": ["./*"], "#evolution": ["./packages/evolution/src/index.ts"], "#harness-trace": ["./packages/harness-trace/src/index.ts"], - "@earendil-works/diffex-evolution": ["./packages/evolution/src/index.ts"], - "@earendil-works/diffex-harness-state": ["./packages/harness-state/src/index.ts"], - "@earendil-works/diffex-harness-trace": ["./packages/harness-trace/src/index.ts"], - "@earendil-works/diffex-telemetry": ["./packages/telemetry/src/index.ts"], - "@earendil-works/diffex-telemetry/testing": ["./packages/telemetry/src/testing/index.ts"], - "@earendil-works/diffex-ai": ["./packages/ai/src/index.ts"], - "@earendil-works/diffex-ai/oauth": ["./packages/ai/src/oauth.ts"], - "@earendil-works/diffex-ai/*": ["./packages/ai/src/*.ts", "./packages/ai/src/providers/*.ts"], - "@earendil-works/diffex-ai/dist/*": ["./packages/ai/src/*"], - "@earendil-works/diffex-agent-core": ["./packages/agent/src/index.ts"], - "@earendil-works/diffex-agent-core/node": ["./packages/agent/src/node.ts"], - "@earendil-works/diffex-agent-core/session/testing": [ + "@diffexai/diffex-evolution": ["./packages/evolution/src/index.ts"], + "@diffexai/diffex-harness-state": ["./packages/harness-state/src/index.ts"], + "@diffexai/diffex-harness-trace": ["./packages/harness-trace/src/index.ts"], + "@diffexai/diffex-telemetry": ["./packages/telemetry/src/index.ts"], + "@diffexai/diffex-telemetry/testing": ["./packages/telemetry/src/testing/index.ts"], + "@diffexai/diffex-ai": ["./packages/ai/src/index.ts"], + "@diffexai/diffex-ai/oauth": ["./packages/ai/src/oauth.ts"], + "@diffexai/diffex-ai/*": ["./packages/ai/src/*.ts", "./packages/ai/src/providers/*.ts"], + "@diffexai/diffex-ai/dist/*": ["./packages/ai/src/*"], + "@diffexai/diffex-agent-core": ["./packages/agent/src/index.ts"], + "@diffexai/diffex-agent-core/node": ["./packages/agent/src/node.ts"], + "@diffexai/diffex-agent-core/session/testing": [ "./packages/agent/src/harness/session/testing/index.ts" ], - "@earendil-works/diffex-agent-core/*": ["./packages/agent/src/*"], - "@earendil-works/diffex-session-backend-sqlite-node": ["./packages/session-backends/sqlite-node/src/index.ts"], - "@earendil-works/diffex-coding-agent": ["./packages/coding-agent/src/index.ts"], - "@earendil-works/diffex-coding-agent/hooks": ["./packages/coding-agent/src/core/hooks/index.ts"], - "@earendil-works/diffex-coding-agent/*": ["./packages/coding-agent/src/*"], - "@earendil-works/diffex-protocol": ["./packages/protocol/src/index.ts"], - "@earendil-works/diffex-protocol/*": ["./packages/protocol/src/*"], - "@earendil-works/diffex-client": ["./packages/client/src/index.ts"], - "@earendil-works/diffex-client/websocket": ["./packages/client/src/websocket.ts"], - "@earendil-works/diffex-client/*": ["./packages/client/src/*"], - "@earendil-works/diffex-server": ["./packages/server/src/index.ts"], - "@earendil-works/diffex-server/testing": ["./packages/server/src/testing/index.ts"], - "@earendil-works/diffex-server/websocket": [ + "@diffexai/diffex-agent-core/*": ["./packages/agent/src/*"], + "@diffexai/diffex-session-backend-sqlite-node": ["./packages/session-backends/sqlite-node/src/index.ts"], + "@diffexai/diffex": ["./packages/coding-agent/src/index.ts"], + "@diffexai/diffex/hooks": ["./packages/coding-agent/src/core/hooks/index.ts"], + "@diffexai/diffex/*": ["./packages/coding-agent/src/*"], + "@diffexai/diffex-protocol": ["./packages/protocol/src/index.ts"], + "@diffexai/diffex-protocol/*": ["./packages/protocol/src/*"], + "@diffexai/diffex-client": ["./packages/client/src/index.ts"], + "@diffexai/diffex-client/websocket": ["./packages/client/src/websocket.ts"], + "@diffexai/diffex-client/*": ["./packages/client/src/*"], + "@diffexai/diffex-server": ["./packages/server/src/index.ts"], + "@diffexai/diffex-server/testing": ["./packages/server/src/testing/index.ts"], + "@diffexai/diffex-server/websocket": [ "./packages/server/src/transports/websocket/index.ts" ], - "@earendil-works/diffex-server/*": ["./packages/server/src/*"], + "@diffexai/diffex-server/*": ["./packages/server/src/*"], "typebox": ["./node_modules/typebox"], - "@earendil-works/diffex-tui": ["./packages/tui/src/index.ts"], - "@earendil-works/diffex-tui/*": ["./packages/tui/src/*"], - "@earendil-works/diffex-agent-old": ["./packages/agent-old/src/index.ts"], - "@earendil-works/diffex-agent-old/*": ["./packages/agent-old/src/*"] + "@diffexai/diffex-tui": ["./packages/tui/src/index.ts"], + "@diffexai/diffex-tui/*": ["./packages/tui/src/*"], + "@diffexai/diffex-agent-old": ["./packages/agent-old/src/index.ts"], + "@diffexai/diffex-agent-old/*": ["./packages/agent-old/src/*"] } }, "include": ["packages/*/src/**/*", "packages/*/test/**/*", "packages/session-backends/*/src/**/*", "packages/session-backends/*/test/**/*", "packages/coding-agent/examples/**/*"], diff --git a/vitest.base.ts b/vitest.base.ts index 8e38e83c4..cc141f464 100644 --- a/vitest.base.ts +++ b/vitest.base.ts @@ -21,19 +21,19 @@ export default defineConfig({ alias: [ { find: /^#evolution$/, replacement: workspaceSourcePaths.evolutionIndex }, { find: /^#harness-trace$/, replacement: workspaceSourcePaths.harnessTraceIndex }, - { find: /^@earendil-works\/diffex-telemetry$/, replacement: workspaceSourcePaths.telemetryIndex }, - { find: /^@earendil-works\/diffex-telemetry\/testing$/, replacement: workspaceSourcePaths.telemetryTesting }, - { find: /^@earendil-works\/diffex-ai$/, replacement: workspaceSourcePaths.aiIndex }, - { find: /^@earendil-works\/diffex-ai\/compat$/, replacement: workspaceSourcePaths.aiCompat }, - { find: /^@earendil-works\/diffex-ai\/oauth$/, replacement: workspaceSourcePaths.aiOAuth }, + { find: /^@diffexai\/diffex-telemetry$/, replacement: workspaceSourcePaths.telemetryIndex }, + { find: /^@diffexai\/diffex-telemetry\/testing$/, replacement: workspaceSourcePaths.telemetryTesting }, + { find: /^@diffexai\/diffex-ai$/, replacement: workspaceSourcePaths.aiIndex }, + { find: /^@diffexai\/diffex-ai\/compat$/, replacement: workspaceSourcePaths.aiCompat }, + { find: /^@diffexai\/diffex-ai\/oauth$/, replacement: workspaceSourcePaths.aiOAuth }, { - find: /^@earendil-works\/diffex-ai\/providers\/(.+)$/, + find: /^@diffexai\/diffex-ai\/providers\/(.+)$/, replacement: `${workspaceSourcePaths.aiProviders}/$1.ts`, }, - { find: /^@earendil-works\/diffex-agent-core$/, replacement: workspaceSourcePaths.agentIndex }, - { find: /^@earendil-works\/diffex-harness-state$/, replacement: workspaceSourcePaths.harnessStateIndex }, - { find: /^@earendil-works\/diffex-harness-trace$/, replacement: workspaceSourcePaths.harnessTraceIndex }, - { find: /^@earendil-works\/diffex-tui$/, replacement: workspaceSourcePaths.tuiIndex }, + { find: /^@diffexai\/diffex-agent-core$/, replacement: workspaceSourcePaths.agentIndex }, + { find: /^@diffexai\/diffex-harness-state$/, replacement: workspaceSourcePaths.harnessStateIndex }, + { find: /^@diffexai\/diffex-harness-trace$/, replacement: workspaceSourcePaths.harnessTraceIndex }, + { find: /^@diffexai\/diffex-tui$/, replacement: workspaceSourcePaths.tuiIndex }, ], }, });