Skip to content

Commit 058ccc1

Browse files
authored
feat!: remove pre-GA compatibility surfaces (#100)
Replace the retired dual/provider commands and compatibility state with canonical ak run, ak host, routing, and integrations surfaces. Preserve legacy intent through one-way lossless migration and harden the package and documentation guards.
1 parent d31a1ea commit 058ccc1

95 files changed

Lines changed: 2353 additions & 1619 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎MAINTAINER.md‎

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ release this kit. User-facing docs live in [README.md](README.md); this file is
2424

2525
### CLI shape (`bin/agentic-kit.mjs`)
2626

27-
- **Porcelain** (daily): `setup`, `status`, `sync`, `dashboard`, `admin`, `dual`, `uninstall`. Bare `ak` → `status --hint`. (`dashboard` and `admin` are also reachable as `ak x dashboard` / `ak x admin`.)
28-
- **Plumbing** (power users): `ak x daemon-gc | mcp | reference | statusline | verify | improvement-eval`.
27+
- **Porcelain** (daily): `setup`, `status`, `sync`, `dashboard`, `admin`, `usage`, `run`,
28+
`host`, `uninstall`. Bare `ak` → `status --hint`. (`dashboard`, `admin`, and `host`
29+
are also reachable under `ak x`.)
30+
- **Plumbing** (power users): `ak x admin | daemon-gc | dashboard | harvest | host | mcp |
31+
reference | statusline | verify | improvement-eval`.
2932
- Each command module exports `options` (a `parseArgs` config) and `run({ flags, positionals, pkgRoot })`.
3033
- A best-effort drift nudge runs after non-`sync`, non-`--json` commands.
3134

@@ -37,9 +40,9 @@ release this kit. User-facing docs live in [README.md](README.md); this file is
3740
bin/agentic-kit.mjs # single entrypoint — arg parse + command dispatch (PORCELAIN/PLUMBING maps)
3841
src/
3942
commands/ # porcelain verbs
40-
setup.mjs status.mjs sync.mjs dual.mjs uninstall.mjs
43+
setup.mjs status.mjs sync.mjs run.mjs uninstall.mjs
4144
x/ # plumbing verbs
42-
admin.mjs daemon-gc.mjs dashboard.mjs harvest.mjs mcp.mjs provider.mjs reference.mjs statusline.mjs verify.mjs
45+
admin.mjs daemon-gc.mjs dashboard.mjs harvest.mjs host.mjs mcp.mjs reference.mjs statusline.mjs verify.mjs
4346
lib/ # the engine — each file is one concern
4447
heal.mjs # the mutations sync/setup apply (idempotent, {ok,detail})
4548
natives.mjs # better-sqlite3 / agentdb native detection
@@ -62,6 +65,7 @@ src/
6265
admin-model.mjs # PURE admin number model — imports nothing; embedded in the page AND node-tested
6366
admin-view.mjs # admin browser controller (embedded into the page; not node-imported)
6467
browser.mjs # openInBrowser — shared by dashboard + admin
68+
usage-index.mjs # canonical usage aggregation by host, provider, model, project, and category
6569
npx.mjs # stale npx-cache detection/prune
6670
mcp.mjs settings.mjs config.mjs paths.mjs statusline.mjs
6771
rvf.mjs daemons.mjs exec.mjs output.mjs
@@ -80,17 +84,19 @@ docs/
8084
```
8185

8286
**Published tarball** = the `files` whitelist in `package.json`:
83-
`bin/agentic-kit.mjs`, `src/`, `claude/`, `docs/TROUBLESHOOTING.md`. Nothing else
84-
ships — verify with `npm pack --dry-run` before a release if you touch `files`.
85-
86-
**Dual-host subsystem** (the `providers`/`routing`/`dual` cluster): one policy in
87-
`kit.json` `providers` is the source of truth — `hosts {claude,codex}` (which are
88-
enabled), `primaryHost` (which leads; default `claude`), and `dualRouting` (the
89-
per-activity host+model map). `routing.mjs` is pure (defaults, `seedDualRouting`,
90-
`swapRoute` for codex-primary mirroring, and the projections to aqe `agentOverrides`
91-
+ the dual-run config); `providers.mjs` does the I/O (host/auth detection, env
92-
wiring, both MCP-bridge directions, aqe router file). Seeded/healed by `setup` +
93-
`sync` + `x provider pick`, surfaced by `status` + `dashboard`. Design records:
87+
`bin/agentic-kit.mjs`, `src/`, `claude/`, `docs/TROUBLESHOOTING.md`,
88+
`docs/CODEX-STATUSLINE.md`, and
89+
`docs/adr/0015-managed-codex-native-statusline.md`. Generated workspace state under
90+
the shipped source trees is explicitly excluded. Nothing else ships — verify with
91+
`npm pack --dry-run` before a release if you touch `files`.
92+
93+
**Multi-host routing subsystem** (the `providers`/`routing` cluster): durable intent is
94+
split between `integrations.hosts` (which hosts are enabled) and top-level `routing`
95+
(`version`, `primaryHost`, and the per-activity `routes`). `routing.mjs` is pure
96+
(defaults, primary-host mirroring, validation, and projections to AQE
97+
`agentOverrides` and `ak run`); `providers.mjs` does the I/O (host/auth detection,
98+
environment wiring, both MCP-bridge directions, AQE router file). Seeded/healed by
99+
`setup` + `sync` + `x host pick`, surfaced by `status` + `dashboard`. Design records:
94100
ADRs [0001–0006](docs/adr/); user guide: `docs/PROVIDERS.md`.
95101

96102
**Status-line capability is host-specific.** Claude owns a project-scoped,
@@ -190,18 +196,16 @@ Edit a file under `src/`, re-run the CLI, done.
190196
## 4. Testing
191197

192198
```bash
193-
pnpm test # the full gate — exactly what CI runs
199+
pnpm test # coverage-enforced unit + renderer/server suites
200+
pnpm run check # release gate: typecheck, lint, markdown, build/package, tests
194201
```
195202

196-
That expands to:
197-
198-
```bash
199-
node --test "tests/kit/*.test.mjs" && node tests/statusline-segments.test.cjs
200-
```
201-
202-
- `tests/kit/*.test.mjs` — `node:test` unit suites (blocks, natives, settings-config, versions). **32 tests.**
203-
- `tests/statusline-segments.test.cjs` — statusline footer renderer. **20 tests.**
204-
- **52 total, 0 failures = release-ready.**
203+
- `tests/kit/*.test.mjs` — the broad `node:test` suite, run with 70% line, branch, and
204+
function coverage floors.
205+
- Eight `.cjs` suites exercise statusline rendering, Brain display, AgentDB,
206+
health history, harvest, dashboard, and admin behavior.
207+
- `pnpm run build` validates the CLI load and dry-run package manifest, including
208+
forbidden generated/private paths.
205209

206210
Run one suite while iterating: `node --test tests/kit/versions.test.mjs`.
207211

0 commit comments

Comments
 (0)