From 78bb49b09b50bb8d36f6b88cee07145c96af9da5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:07:10 +0000 Subject: [PATCH] chore: version packages --- .changeset/docker-runner.md | 11 ----------- .changeset/runner-start-preview.md | 9 --------- .changeset/serve-check.md | 7 ------- examples/autopilot-quickstart/CHANGELOG.md | 9 +++++++++ examples/autopilot-quickstart/package.json | 2 +- examples/bootstrap-quickstart/CHANGELOG.md | 9 +++++++++ examples/bootstrap-quickstart/package.json | 2 +- packages/ai-autopilot/CHANGELOG.md | 22 ++++++++++++++++++++++ packages/ai-autopilot/package.json | 2 +- 9 files changed, 43 insertions(+), 30 deletions(-) delete mode 100644 .changeset/docker-runner.md delete mode 100644 .changeset/runner-start-preview.md delete mode 100644 .changeset/serve-check.md diff --git a/.changeset/docker-runner.md b/.changeset/docker-runner.md deleted file mode 100644 index 915580d..0000000 --- a/.changeset/docker-runner.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -'@gemstack/ai-autopilot': minor ---- - -Runner: `DockerRunner` — the first sandboxed adapter, running agent-authored code in a container. - -`DockerRunner` boots each workspace as a container via the `docker` CLI (no npm dependency), so untrusted, agent-authored code runs isolated from the host: its own filesystem, process space, and — with `preview` — a published port mapped to an ephemeral host port. It satisfies the same `Runner` contract as `LocalRunner` (fs / exec / start / preview / dispose), so it drops in behind the seam unchanged: `new DockerRunner({ image?, previewPort?, previewHost? })`. - -Where `LocalRunner` runs commands unsandboxed on the host (trusted dev/CI), `DockerRunner` is the one to reach for when the code is untrusted. It requires a running Docker daemon and the `docker` CLI on `PATH`; the default `node:20-alpine` base image carries `node`/`npm` and a POSIX shell. `dockerAvailable()` reports whether a daemon is reachable so callers (and the test suite) can skip cleanly when it isn't. - -WebContainer and Flue remain the still-parked sandboxed adapters (#109). diff --git a/.changeset/runner-start-preview.md b/.changeset/runner-start-preview.md deleted file mode 100644 index 74c0bf9..0000000 --- a/.changeset/runner-start-preview.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@gemstack/ai-autopilot': minor ---- - -Runner seam: long-running processes + reachable previews (boot-and-serve). - -`RunnerSession.start(command)` launches a long-running command (a dev server) in the background and returns a `RunnerProcess` handle (`{ command, exit, stop() }`) — unlike `exec`, which awaits the command to finish. `preview({ waitMs })` now waits for the port to accept connections before resolving, so the URL is live on return. A `start_server` runner tool exposes this to agents. - -`LocalRunner` implements it for real: `start` spawns in its own process group so `stop()` (and `dispose()`) kill the whole tree; `preview` polls the port. `FakeRunner` mirrors it for tests. This is the contract every sandboxed adapter (Docker / WebContainer / Flue) must satisfy, and it's what makes "produce a running app" reachable end to end. diff --git a/.changeset/serve-check.md b/.changeset/serve-check.md deleted file mode 100644 index 92045ba..0000000 --- a/.changeset/serve-check.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@gemstack/ai-autopilot': minor ---- - -Bootstrap: `serveCheck` — a production-grade check that actually boots and serves the app. - -Until now the full-fledged loop gated on a prompt verdict (`loopChecklist` asks the model whether the app is production-grade). `serveCheck(session, { serve, install?, build?, port?, healthPath? })` gives it teeth: inside the build's runner session it installs, optionally builds, `start`s the dev server, `preview`s until the port is reachable, and fetches a health path — turning any failure (install error, server exits on boot, a 5xx, unreachable) into a concrete `{ blockers }` verdict the improve loop then addresses. It satisfies the `checklist` step contract, and `mergeChecklists(...)` unions several checks so a pass must BOTH read production-grade AND actually run: `mergeChecklists(loopChecklist({ loop }), serveCheck(session, { serve: 'npm run dev' }))`. A runner that can't `start`/`preview` skips the check (passing, with a note) instead of blocking. Built on the #137 runner seam. diff --git a/examples/autopilot-quickstart/CHANGELOG.md b/examples/autopilot-quickstart/CHANGELOG.md index d005fbc..d24646c 100644 --- a/examples/autopilot-quickstart/CHANGELOG.md +++ b/examples/autopilot-quickstart/CHANGELOG.md @@ -1,5 +1,14 @@ # @gemstack/example-autopilot-quickstart +## 0.0.2 + +### Patch Changes + +- Updated dependencies [0823cfa] +- Updated dependencies [7ce5bae] +- Updated dependencies [493cc11] + - @gemstack/ai-autopilot@0.3.0 + ## 0.0.1 ### Patch Changes diff --git a/examples/autopilot-quickstart/package.json b/examples/autopilot-quickstart/package.json index d2821a9..dc9f1f4 100644 --- a/examples/autopilot-quickstart/package.json +++ b/examples/autopilot-quickstart/package.json @@ -1,6 +1,6 @@ { "name": "@gemstack/example-autopilot-quickstart", - "version": "0.0.1", + "version": "0.0.2", "private": true, "description": "Runnable end-to-end quickstart for @gemstack/ai-autopilot: personas + Supervisor + runner + surfaces composed into one build-a-feature flow, offline via AiFake.", "type": "module", diff --git a/examples/bootstrap-quickstart/CHANGELOG.md b/examples/bootstrap-quickstart/CHANGELOG.md index f2285c5..8ed0f07 100644 --- a/examples/bootstrap-quickstart/CHANGELOG.md +++ b/examples/bootstrap-quickstart/CHANGELOG.md @@ -1,5 +1,14 @@ # @gemstack/example-bootstrap-quickstart +## 0.0.2 + +### Patch Changes + +- Updated dependencies [0823cfa] +- Updated dependencies [7ce5bae] +- Updated dependencies [493cc11] + - @gemstack/ai-autopilot@0.3.0 + ## 0.0.1 ### Patch Changes diff --git a/examples/bootstrap-quickstart/package.json b/examples/bootstrap-quickstart/package.json index 83447ef..7b04074 100644 --- a/examples/bootstrap-quickstart/package.json +++ b/examples/bootstrap-quickstart/package.json @@ -1,6 +1,6 @@ { "name": "@gemstack/example-bootstrap-quickstart", - "version": "0.0.1", + "version": "0.0.2", "private": true, "description": "Runnable capstone for @gemstack/ai-autopilot: preset detection + Bootstrap (scope → architect → build → full-fledged loop → deploy) + scale mode, streamed over surfaces, offline via AiFake + FakeRunner.", "type": "module", diff --git a/packages/ai-autopilot/CHANGELOG.md b/packages/ai-autopilot/CHANGELOG.md index 6d55426..dcfbe06 100644 --- a/packages/ai-autopilot/CHANGELOG.md +++ b/packages/ai-autopilot/CHANGELOG.md @@ -1,5 +1,27 @@ # @gemstack/ai-autopilot +## 0.3.0 + +### Minor Changes + +- 0823cfa: Runner: `DockerRunner` — the first sandboxed adapter, running agent-authored code in a container. + + `DockerRunner` boots each workspace as a container via the `docker` CLI (no npm dependency), so untrusted, agent-authored code runs isolated from the host: its own filesystem, process space, and — with `preview` — a published port mapped to an ephemeral host port. It satisfies the same `Runner` contract as `LocalRunner` (fs / exec / start / preview / dispose), so it drops in behind the seam unchanged: `new DockerRunner({ image?, previewPort?, previewHost? })`. + + Where `LocalRunner` runs commands unsandboxed on the host (trusted dev/CI), `DockerRunner` is the one to reach for when the code is untrusted. It requires a running Docker daemon and the `docker` CLI on `PATH`; the default `node:20-alpine` base image carries `node`/`npm` and a POSIX shell. `dockerAvailable()` reports whether a daemon is reachable so callers (and the test suite) can skip cleanly when it isn't. + + WebContainer and Flue remain the still-parked sandboxed adapters (#109). + +- 7ce5bae: Runner seam: long-running processes + reachable previews (boot-and-serve). + + `RunnerSession.start(command)` launches a long-running command (a dev server) in the background and returns a `RunnerProcess` handle (`{ command, exit, stop() }`) — unlike `exec`, which awaits the command to finish. `preview({ waitMs })` now waits for the port to accept connections before resolving, so the URL is live on return. A `start_server` runner tool exposes this to agents. + + `LocalRunner` implements it for real: `start` spawns in its own process group so `stop()` (and `dispose()`) kill the whole tree; `preview` polls the port. `FakeRunner` mirrors it for tests. This is the contract every sandboxed adapter (Docker / WebContainer / Flue) must satisfy, and it's what makes "produce a running app" reachable end to end. + +- 493cc11: Bootstrap: `serveCheck` — a production-grade check that actually boots and serves the app. + + Until now the full-fledged loop gated on a prompt verdict (`loopChecklist` asks the model whether the app is production-grade). `serveCheck(session, { serve, install?, build?, port?, healthPath? })` gives it teeth: inside the build's runner session it installs, optionally builds, `start`s the dev server, `preview`s until the port is reachable, and fetches a health path — turning any failure (install error, server exits on boot, a 5xx, unreachable) into a concrete `{ blockers }` verdict the improve loop then addresses. It satisfies the `checklist` step contract, and `mergeChecklists(...)` unions several checks so a pass must BOTH read production-grade AND actually run: `mergeChecklists(loopChecklist({ loop }), serveCheck(session, { serve: 'npm run dev' }))`. A runner that can't `start`/`preview` skips the check (passing, with a note) instead of blocking. Built on the #137 runner seam. + ## 0.2.0 ### Minor Changes diff --git a/packages/ai-autopilot/package.json b/packages/ai-autopilot/package.json index cb3a102..4916b1a 100644 --- a/packages/ai-autopilot/package.json +++ b/packages/ai-autopilot/package.json @@ -1,6 +1,6 @@ { "name": "@gemstack/ai-autopilot", - "version": "0.2.0", + "version": "0.3.0", "description": "Orchestration for @gemstack/ai-sdk agents: a Supervisor that plans, dispatches subagents (bounded concurrency + budget guardrails), and synthesizes the result.", "keywords": [ "ai",