From b6e078c97a0fd18a4af67814d3d59490aade08f1 Mon Sep 17 00:00:00 2001 From: Chris Phillipson Date: Wed, 29 Jul 2026 00:09:21 -0700 Subject: [PATCH] feat: add generalized host run command --- bin/agentic-kit.mjs | 2 + src/commands/run.mjs | 103 ++++++++++++++++++++++ src/lib/execution/adapters.mjs | 4 + src/lib/execution/claude.mjs | 17 ++++ src/lib/execution/codex.mjs | 17 ++++ src/lib/execution/subprocess.mjs | 110 ++++++++++++++++++++++++ tests/kit/cli-help.test.mjs | 2 +- tests/kit/execution-runner.test.mjs | 10 +-- tests/kit/run-command.test.mjs | 19 ++++ tests/kit/subprocess-execution.test.mjs | 60 +++++++++++++ 10 files changed, 338 insertions(+), 6 deletions(-) create mode 100644 src/commands/run.mjs create mode 100644 src/lib/execution/claude.mjs create mode 100644 src/lib/execution/codex.mjs create mode 100644 src/lib/execution/subprocess.mjs create mode 100644 tests/kit/run-command.test.mjs create mode 100644 tests/kit/subprocess-execution.test.mjs diff --git a/bin/agentic-kit.mjs b/bin/agentic-kit.mjs index f2ab65bd..4ff068ff 100755 --- a/bin/agentic-kit.mjs +++ b/bin/agentic-kit.mjs @@ -21,6 +21,7 @@ const PORCELAIN = Object.assign(Object.create(null), { setup: () => import('../src/commands/setup.mjs'), dashboard: () => import('../src/commands/x/dashboard.mjs'), admin: () => import('../src/commands/x/admin.mjs'), + run: () => import('../src/commands/run.mjs'), dual: () => import('../src/commands/dual.mjs'), host: () => import('../src/commands/x/provider.mjs'), provider: () => import('../src/commands/x/provider.mjs'), @@ -49,6 +50,7 @@ Usage (ak = alias of agentic-kit): ak sync converge to good: upgrade + heal + verify [--dry-run] [--no-upgrade] ak dashboard open the local web dashboard (localhost; auto-opens browser) [--port N] [--no-open] ak admin maintainer-only telemetry admin (localhost; GitHub/npm egress) [--port N] [--no-open] + ak run execute a host-neutral activity pipeline [template "task"] [--dry-run] ak dual run a Claude+Codex collaboration swarm (dual-host) [run