Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions .changeset/docker-runner.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/runner-start-preview.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/serve-check.md

This file was deleted.

9 changes: 9 additions & 0 deletions examples/autopilot-quickstart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion examples/autopilot-quickstart/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
9 changes: 9 additions & 0 deletions examples/bootstrap-quickstart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion examples/bootstrap-quickstart/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
22 changes: 22 additions & 0 deletions packages/ai-autopilot/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion packages/ai-autopilot/package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
Loading