feat(ai-autopilot): LocalRunner — first real runner adapter#107
Merged
Conversation
…sor + runner + surfaces) A runnable, offline (AiFake) example that composes all four epic layers into one build-a-feature flow: a planner routes subtasks to stack personas, the Supervisor dispatches them, each worker writes Vike/ORM files inside a runner sandbox via runnerTools, and the surfaces render live progress + a background handle. Doubles as the integration contract a real FlueRunner must satisfy. Private workspace example (@gemstack/example-autopilot-quickstart), in turbo typecheck+test. Capstone for epic #97.
Boots each workspace as a real temp dir on the host: real files (node:fs, path-traversal guarded), real commands (child_process with cwd/env/timeout), a localhost preview, and a dispose() that cleans up. It is the reference the sandboxed adapters (WebContainer/Docker/Flue) mirror. Runs unsandboxed on the host, so documented as trusted/CI-only. Closes #106. Part of #97.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #106. Part of the ai-autopilot epic (#97).
The runner seam (#99) shipped with only
FakeRunner(in-memory sim). This adds the first real adapter.LocalRunnerboots each workspace as a real temp directory on the host:node:fs—read/write/remove/list/exists, guarded against path traversal out of the workspace rootchild_process(shell) — per-commandcwd,env(merged over session +process.env), andtimeoutMs(SIGKILL → exit 124)preview(port)dispose()removes the temp dir (idempotent)It is the reference the sandboxed adapters (WebContainer / Docker / Flue) mirror. It runs commands unsandboxed on the host, so it is documented for trusted/CI use only, not untrusted agent-authored code.
15 new tests, all green (real fs + real
nodesubprocesses, no mocks); typecheck + build clean. README + barrels + changeset (minor) updated.