Extracted sandcastle core: shared Nix flake + orchestrator for autonomous agent PR loops
  • TypeScript 54.9%
  • Nix 45.1%
Find a file
Wei Wen Goh 5053272087 feat: sandcastle core walking skeleton — shared flake + planner lane
Shared Nix flake in the standard shape (flake-utils.eachDefaultSystem +
rust-overlay), exposing:

- lib.${system}.mkSandcastleImage { name, tag, extraContents, extraEnv,
  forgeUrl } — wraps dockerTools.fakeNss + streamLayeredImage over the base
  package set; bakes configure-tea (parameterized by forgeUrl), fmt, and check.
- apps.${system}.sandcastle — the orchestrator as a self-contained
  buildNpmPackage node app bundling @ai-hero/sandcastle + zod + the plan prompt.
- checks.${system}.sandcastle — builds the app and runs the loadConfig tests.

The orchestrator has a pure loadConfig(tomlString) -> ResolvedConfig step
(defaults applied; throws on missing repo/forgeHost) and runs the read-only
planner lane only: reads .sandcastle/config.toml, builds a sandbox from
imageName with the configure-tea hook, runs the planner, and validates the
<plan> JSON. No execute phase yet.

The plan prompt is genericized: --repo dropped from all tea calls (slug
auto-derived from the sandbox remote); branch format sandcastle/issue-{id}
and label lifecycle hardcoded.

Refs weiwen/sandcastle#2
2026-07-08 03:26:07 +08:00
prompts feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
src feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
.gitignore feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
AGENTS.md chore: add AGENTS.md 2026-07-08 02:56:47 +08:00
CLAUDE.md chore: add AGENTS.md 2026-07-08 02:56:47 +08:00
flake.lock feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
flake.nix feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
package-lock.json feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
package.json feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00
README.md Initial commit 2026-07-08 02:46:59 +08:00
tsconfig.json feat: sandcastle core walking skeleton — shared flake + planner lane 2026-07-08 03:26:07 +08:00

sandcastle

Extracted sandcastle core: shared Nix flake + orchestrator for autonomous agent PR loops