diff --git a/docs-internal/registry-parity-worklist.md b/docs-internal/registry-parity-worklist.md index 4e82d73d07..c8aa6bc532 100644 --- a/docs-internal/registry-parity-worklist.md +++ b/docs-internal/registry-parity-worklist.md @@ -686,12 +686,20 @@ real e2e tests that prove Linux-parity behavior — not smoke tests. ## Cross-cutting / misc -### 13. `everything` meta-package has no `agentos-package.json` -- **Broken:** parse-failed in the audit — the bundle has no manifest. -- **Objective:** valid manifest (or confirm the bundle mechanism is intentional and - fix discovery accordingly) so `everything` resolves like the other bundles. -- **Proof:** manifest present/valid; package resolves and installs its members. -- **rev:** `fix(everything): add valid agentos-package.json` +### 13. `everything` meta-package has no `agentos-package.json` — DONE +- **Fixed:** added the missing meta-package manifest, aligned the bundle with all + current command packages (`duckdb`, `envsubst`, `git`, `sqlite3`, and `vim` + were missing), and refreshed the workspace lockfile edges. +- **Proof:** `software/everything/test/everything.test.ts` proves the manifest is + present and the default export resolves every command package descriptor once. + Package build/check-types pass in + `2026-07-08T14-21-00-0700-item13-everything-build-after-install.log` and + `2026-07-08T14-21-00-0700-item13-everything-check-types-after-install.log`; + the package test passes 2/2 in + `2026-07-08T14-21-00-0700-item13-everything-test-after-install.log`; + layout validation passes in + `2026-07-08T14-22-00-0700-item13-check-layout.log`. +- **rev:** `fix(everything): add valid package manifest` --- diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86a6acee1d..b7c1814c38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3257,6 +3257,12 @@ importers: '@agentos-software/diffutils': specifier: workspace:* version: link:../diffutils + '@agentos-software/duckdb': + specifier: workspace:* + version: link:../duckdb + '@agentos-software/envsubst': + specifier: workspace:* + version: link:../envsubst '@agentos-software/fd': specifier: workspace:* version: link:../fd @@ -3269,6 +3275,9 @@ importers: '@agentos-software/gawk': specifier: workspace:* version: link:../gawk + '@agentos-software/git': + specifier: workspace:* + version: link:../git '@agentos-software/grep': specifier: workspace:* version: link:../grep @@ -3284,6 +3293,9 @@ importers: '@agentos-software/sed': specifier: workspace:* version: link:../sed + '@agentos-software/sqlite3': + specifier: workspace:* + version: link:../sqlite3 '@agentos-software/tar': specifier: workspace:* version: link:../tar @@ -3293,6 +3305,9 @@ importers: '@agentos-software/unzip': specifier: workspace:* version: link:../unzip + '@agentos-software/vim': + specifier: workspace:* + version: link:../vim '@agentos-software/wget': specifier: workspace:* version: link:../wget diff --git a/software/everything/agentos-package.json b/software/everything/agentos-package.json new file mode 100644 index 0000000000..6dc26907f3 --- /dev/null +++ b/software/everything/agentos-package.json @@ -0,0 +1,8 @@ +{ + "registry": { + "title": "Everything", + "description": "Meta-package: all available WASM command packages.", + "priority": 110, + "category": "meta" + } +} diff --git a/software/everything/package.json b/software/everything/package.json index bc2725d7a8..95ec6ff1ea 100644 --- a/software/everything/package.json +++ b/software/everything/package.json @@ -33,6 +33,11 @@ "@agentos-software/gzip": "workspace:*", "@agentos-software/curl": "workspace:*", "@agentos-software/wget": "workspace:*", + "@agentos-software/duckdb": "workspace:*", + "@agentos-software/envsubst": "workspace:*", + "@agentos-software/git": "workspace:*", + "@agentos-software/sqlite3": "workspace:*", + "@agentos-software/vim": "workspace:*", "@agentos-software/zip": "workspace:*", "@agentos-software/unzip": "workspace:*", "@agentos-software/jq": "workspace:*", diff --git a/software/everything/src/index.ts b/software/everything/src/index.ts index e5ea924586..c45ab24679 100644 --- a/software/everything/src/index.ts +++ b/software/everything/src/index.ts @@ -8,6 +8,11 @@ import tar from "@agentos-software/tar"; import gzip from "@agentos-software/gzip"; import curl from "@agentos-software/curl"; import wget from "@agentos-software/wget"; +import duckdb from "@agentos-software/duckdb"; +import envsubst from "@agentos-software/envsubst"; +import git from "@agentos-software/git"; +import sqlite3 from "@agentos-software/sqlite3"; +import vim from "@agentos-software/vim"; import zip from "@agentos-software/zip"; import unzip from "@agentos-software/unzip"; import jq from "@agentos-software/jq"; @@ -29,6 +34,11 @@ const everything = [ gzip, curl, wget, + duckdb, + envsubst, + git, + sqlite3, + vim, zip, unzip, jq, @@ -52,6 +62,11 @@ export { gzip, curl, wget, + duckdb, + envsubst, + git, + sqlite3, + vim, zip, unzip, jq, diff --git a/software/everything/test/everything.test.ts b/software/everything/test/everything.test.ts new file mode 100644 index 0000000000..f9d1ea24af --- /dev/null +++ b/software/everything/test/everything.test.ts @@ -0,0 +1,81 @@ +import { readFileSync } from "node:fs"; +import { join } from "node:path"; +import { describe, expect, it } from "vitest"; +import everything, { + codex, + coreutils, + curl, + diffutils, + duckdb, + envsubst, + fd, + file, + findutils, + gawk, + git, + grep, + gzip, + jq, + ripgrep, + sed, + sqlite3, + tar, + tree, + unzip, + vim, + wget, + yq, + zip, +} from "../src/index.js"; + +const packageDir = new URL("..", import.meta.url).pathname; + +const expectedMembers = [ + coreutils, + sed, + grep, + gawk, + findutils, + diffutils, + tar, + gzip, + curl, + wget, + duckdb, + envsubst, + git, + sqlite3, + vim, + zip, + unzip, + jq, + ripgrep, + fd, + tree, + file, + yq, + codex, +]; + +describe("everything meta-package", () => { + it("has a registry manifest", () => { + const manifest = JSON.parse( + readFileSync(join(packageDir, "agentos-package.json"), "utf8"), + ); + + expect(manifest.registry).toMatchObject({ + title: "Everything", + category: "meta", + }); + }); + + it("exports every command package descriptor once", () => { + expect(everything).toEqual(expectedMembers); + expect(new Set(everything).size).toBe(everything.length); + for (const descriptor of everything) { + expect(descriptor).toEqual({ + packagePath: expect.stringMatching(/\/package\.aospkg$/), + }); + } + }); +});