smol-symphony 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +41 -22
- package/DESIGN.md +494 -273
- package/README.md +109 -57
- package/SPEC.md +33 -24
- package/WORKFLOW.minimal.yaml +34 -0
- package/{WORKFLOW.template.md → WORKFLOW.template.yaml} +409 -256
- package/WORKFLOW.yaml +487 -0
- package/assets/skills/symphony-issues/SKILL.md +136 -0
- package/assets/symphony-mise.system.toml +68 -0
- package/dist/src/bin/symphony.js +30 -0
- package/dist/src/bin/symphony.js.map +1 -0
- package/dist/src/core/actions/context.js +109 -0
- package/dist/src/core/actions/context.js.map +1 -0
- package/dist/{actions/parsing.js → src/core/actions/parse.js} +33 -114
- package/dist/src/core/actions/parse.js.map +1 -0
- package/dist/src/core/actions/plan.js +197 -0
- package/dist/src/core/actions/plan.js.map +1 -0
- package/dist/src/core/actions/predicates.js +111 -0
- package/dist/src/core/actions/predicates.js.map +1 -0
- package/dist/src/core/actions/run-fold.js +248 -0
- package/dist/src/core/actions/run-fold.js.map +1 -0
- package/dist/src/core/actions/template.js +118 -0
- package/dist/src/core/actions/template.js.map +1 -0
- package/dist/src/core/cli/args.js +116 -0
- package/dist/src/core/cli/args.js.map +1 -0
- package/dist/src/core/coerce.js +75 -0
- package/dist/src/core/coerce.js.map +1 -0
- package/dist/src/core/credential/account-id.js +20 -0
- package/dist/src/core/credential/account-id.js.map +1 -0
- package/dist/src/core/credential/adapter-config.js +136 -0
- package/dist/src/core/credential/adapter-config.js.map +1 -0
- package/dist/src/core/credential/availability.js +98 -0
- package/dist/src/core/credential/availability.js.map +1 -0
- package/dist/src/core/credential/extract.js +228 -0
- package/dist/src/core/credential/extract.js.map +1 -0
- package/dist/src/core/credential/fake-creds.js +171 -0
- package/dist/src/core/credential/fake-creds.js.map +1 -0
- package/dist/src/core/credential/identity.js +125 -0
- package/dist/src/core/credential/identity.js.map +1 -0
- package/dist/src/core/credential/shape.js +230 -0
- package/dist/src/core/credential/shape.js.map +1 -0
- package/dist/src/core/credential/strings.js +15 -0
- package/dist/src/core/credential/strings.js.map +1 -0
- package/dist/src/core/doctor/checks.js +303 -0
- package/dist/src/core/doctor/checks.js.map +1 -0
- package/dist/src/core/git/result.js +107 -0
- package/dist/src/core/git/result.js.map +1 -0
- package/dist/src/core/http/decisions.js +225 -0
- package/dist/src/core/http/decisions.js.map +1 -0
- package/dist/{http.js → src/core/http/render.js} +472 -738
- package/dist/src/core/http/render.js.map +1 -0
- package/dist/{http-handlers.js → src/core/http/routes.js} +52 -87
- package/dist/src/core/http/routes.js.map +1 -0
- package/dist/src/core/http/views.js +181 -0
- package/dist/src/core/http/views.js.map +1 -0
- package/dist/src/core/image/managed-image.js +95 -0
- package/dist/src/core/image/managed-image.js.map +1 -0
- package/dist/src/core/issue/file.js +149 -0
- package/dist/src/core/issue/file.js.map +1 -0
- package/dist/src/core/issue/parse.js +210 -0
- package/dist/src/core/issue/parse.js.map +1 -0
- package/dist/src/core/mcp/dispatch.js +239 -0
- package/dist/src/core/mcp/dispatch.js.map +1 -0
- package/dist/src/core/mcp/post-move.js +92 -0
- package/dist/src/core/mcp/post-move.js.map +1 -0
- package/dist/src/core/mcp/protocol.js +293 -0
- package/dist/src/core/mcp/protocol.js.map +1 -0
- package/dist/src/core/mcp/url.js +162 -0
- package/dist/src/core/mcp/url.js.map +1 -0
- package/dist/src/core/path.js +63 -0
- package/dist/src/core/path.js.map +1 -0
- package/dist/src/core/reconcile/image-decide.js +48 -0
- package/dist/src/core/reconcile/image-decide.js.map +1 -0
- package/dist/src/core/reconcile/ledger.js +142 -0
- package/dist/src/core/reconcile/ledger.js.map +1 -0
- package/dist/src/core/reconcile/pr-classify.js +62 -0
- package/dist/src/core/reconcile/pr-classify.js.map +1 -0
- package/dist/{reconciler → src/core/reconcile}/pr-decide.js +25 -12
- package/dist/src/core/reconcile/pr-decide.js.map +1 -0
- package/dist/src/core/reconcile/pr-loop.js +161 -0
- package/dist/src/core/reconcile/pr-loop.js.map +1 -0
- package/dist/src/core/reconcile/pr-notes.js +35 -0
- package/dist/src/core/reconcile/pr-notes.js.map +1 -0
- package/dist/src/core/reconcile/vm-decide.js +70 -0
- package/dist/src/core/reconcile/vm-decide.js.map +1 -0
- package/dist/src/core/reconcile/vm-reap.js +207 -0
- package/dist/src/core/reconcile/vm-reap.js.map +1 -0
- package/dist/src/core/reconcile/workspace-decide.js +162 -0
- package/dist/src/core/reconcile/workspace-decide.js.map +1 -0
- package/dist/src/core/runlog/summary.js +231 -0
- package/dist/src/core/runlog/summary.js.map +1 -0
- package/dist/src/core/runner/dispatch-config.js +95 -0
- package/dist/src/core/runner/dispatch-config.js.map +1 -0
- package/dist/src/core/runner/injection.js +61 -0
- package/dist/src/core/runner/injection.js.map +1 -0
- package/dist/src/core/runner/mise.js +210 -0
- package/dist/src/core/runner/mise.js.map +1 -0
- package/dist/src/core/runner/prompt.js +720 -0
- package/dist/src/core/runner/prompt.js.map +1 -0
- package/dist/src/core/runner/turn.js +242 -0
- package/dist/src/core/runner/turn.js.map +1 -0
- package/dist/src/core/runner/vm-plan.js +390 -0
- package/dist/src/core/runner/vm-plan.js.map +1 -0
- package/dist/src/core/schedule/admission.js +123 -0
- package/dist/src/core/schedule/admission.js.map +1 -0
- package/dist/src/core/schedule/circuit-breaker.js +111 -0
- package/dist/src/core/schedule/circuit-breaker.js.map +1 -0
- package/dist/src/core/schedule/eligibility.js +83 -0
- package/dist/src/core/schedule/eligibility.js.map +1 -0
- package/dist/src/core/schedule/reconcile-issue.js +82 -0
- package/dist/src/core/schedule/reconcile-issue.js.map +1 -0
- package/dist/src/core/schedule/retry.js +96 -0
- package/dist/src/core/schedule/retry.js.map +1 -0
- package/dist/src/core/schedule/sleep-cycle.js +133 -0
- package/dist/src/core/schedule/sleep-cycle.js.map +1 -0
- package/dist/src/core/schedule/slots.js +124 -0
- package/dist/src/core/schedule/slots.js.map +1 -0
- package/dist/src/core/schedule/tick.js +553 -0
- package/dist/src/core/schedule/tick.js.map +1 -0
- package/dist/src/core/schedule/token-fold.js +181 -0
- package/dist/src/core/schedule/token-fold.js.map +1 -0
- package/dist/src/core/state-resolve.js +86 -0
- package/dist/src/core/state-resolve.js.map +1 -0
- package/dist/src/core/vm-guards.js +278 -0
- package/dist/src/core/vm-guards.js.map +1 -0
- package/dist/src/core/workflow/derive.js +107 -0
- package/dist/src/core/workflow/derive.js.map +1 -0
- package/dist/src/core/workflow/parse.js +687 -0
- package/dist/src/core/workflow/parse.js.map +1 -0
- package/dist/src/core/workflow/prompt-probe.js +78 -0
- package/dist/src/core/workflow/prompt-probe.js.map +1 -0
- package/dist/src/core/workflow/validate.js +189 -0
- package/dist/src/core/workflow/validate.js.map +1 -0
- package/dist/src/core/workspace-key.js +19 -0
- package/dist/src/core/workspace-key.js.map +1 -0
- package/dist/src/shell/actions-runner.js +356 -0
- package/dist/src/shell/actions-runner.js.map +1 -0
- package/dist/src/shell/adapter/adapter-registry.js +45 -0
- package/dist/src/shell/adapter/adapter-registry.js.map +1 -0
- package/dist/src/shell/adapter/clock-random.js +96 -0
- package/dist/src/shell/adapter/clock-random.js.map +1 -0
- package/dist/src/shell/adapter/gondolin-dispatch-helpers.js +158 -0
- package/dist/src/shell/adapter/gondolin-dispatch-helpers.js.map +1 -0
- package/dist/src/shell/adapter/gondolin-dispatch.js +385 -0
- package/dist/src/shell/adapter/gondolin-dispatch.js.map +1 -0
- package/dist/src/shell/adapter/gondolin-image-converter.js +233 -0
- package/dist/src/shell/adapter/gondolin-image-converter.js.map +1 -0
- package/dist/src/shell/adapter/gondolin-image-fetch.js +180 -0
- package/dist/src/shell/adapter/gondolin-image-fetch.js.map +1 -0
- package/dist/src/shell/adapter/launcher-asset.js +57 -0
- package/dist/src/shell/adapter/launcher-asset.js.map +1 -0
- package/dist/src/shell/adapter/mise-config-asset.js +65 -0
- package/dist/src/shell/adapter/mise-config-asset.js.map +1 -0
- package/dist/src/shell/adapter/workflow-loader.js +304 -0
- package/dist/src/shell/adapter/workflow-loader.js.map +1 -0
- package/dist/src/shell/cli/doctor.js +268 -0
- package/dist/src/shell/cli/doctor.js.map +1 -0
- package/dist/src/shell/effect-interpreter-families.js +314 -0
- package/dist/src/shell/effect-interpreter-families.js.map +1 -0
- package/dist/src/shell/effect-interpreter.js +29 -0
- package/dist/src/shell/effect-interpreter.js.map +1 -0
- package/dist/src/shell/interp/acp-frame.js +137 -0
- package/dist/src/shell/interp/acp-frame.js.map +1 -0
- package/dist/src/shell/interp/acp-ws-conn.js +320 -0
- package/dist/src/shell/interp/acp-ws-conn.js.map +1 -0
- package/dist/src/shell/interp/acp-ws-frames.js +159 -0
- package/dist/src/shell/interp/acp-ws-frames.js.map +1 -0
- package/dist/src/shell/interp/acp-ws.js +197 -0
- package/dist/src/shell/interp/acp-ws.js.map +1 -0
- package/dist/src/shell/interp/acp.js +319 -0
- package/dist/src/shell/interp/acp.js.map +1 -0
- package/dist/src/shell/interp/credential-defaults.js +128 -0
- package/dist/src/shell/interp/credential-defaults.js.map +1 -0
- package/dist/src/shell/interp/credential-hooks.js +149 -0
- package/dist/src/shell/interp/credential-hooks.js.map +1 -0
- package/dist/src/shell/interp/credential-registry.js +226 -0
- package/dist/src/shell/interp/credential-registry.js.map +1 -0
- package/dist/src/shell/interp/credential.js +103 -0
- package/dist/src/shell/interp/credential.js.map +1 -0
- package/dist/src/shell/interp/gh.js +163 -0
- package/dist/src/shell/interp/gh.js.map +1 -0
- package/dist/src/shell/interp/git.js +28 -0
- package/dist/src/shell/interp/git.js.map +1 -0
- package/dist/src/shell/interp/log.js +213 -0
- package/dist/src/shell/interp/log.js.map +1 -0
- package/dist/src/shell/interp/process.js +178 -0
- package/dist/src/shell/interp/process.js.map +1 -0
- package/dist/src/shell/interp/runlog.js +193 -0
- package/dist/src/shell/interp/runlog.js.map +1 -0
- package/dist/src/shell/interp/timer.js +64 -0
- package/dist/src/shell/interp/timer.js.map +1 -0
- package/dist/src/shell/interp/tracker-disk.js +99 -0
- package/dist/src/shell/interp/tracker-disk.js.map +1 -0
- package/dist/src/shell/interp/tracker-parse.js +71 -0
- package/dist/src/shell/interp/tracker-parse.js.map +1 -0
- package/dist/src/shell/interp/tracker-scan.js +238 -0
- package/dist/src/shell/interp/tracker-scan.js.map +1 -0
- package/dist/src/shell/interp/tracker-write.js +91 -0
- package/dist/src/shell/interp/tracker-write.js.map +1 -0
- package/dist/src/shell/interp/tracker.js +41 -0
- package/dist/src/shell/interp/tracker.js.map +1 -0
- package/dist/src/shell/interp/tty.js +48 -0
- package/dist/src/shell/interp/tty.js.map +1 -0
- package/dist/src/shell/interp/vm.js +199 -0
- package/dist/src/shell/interp/vm.js.map +1 -0
- package/dist/src/shell/interp/workspace.js +310 -0
- package/dist/src/shell/interp/workspace.js.map +1 -0
- package/dist/src/shell/main-acp.js +78 -0
- package/dist/src/shell/main-acp.js.map +1 -0
- package/dist/src/shell/main-adapters.js +222 -0
- package/dist/src/shell/main-adapters.js.map +1 -0
- package/dist/src/shell/main-credential.js +122 -0
- package/dist/src/shell/main-credential.js.map +1 -0
- package/dist/src/shell/main-doctor.js +22 -0
- package/dist/src/shell/main-doctor.js.map +1 -0
- package/dist/src/shell/main-entry.js +46 -0
- package/dist/src/shell/main-entry.js.map +1 -0
- package/dist/src/shell/main-http-csrf.js +45 -0
- package/dist/src/shell/main-http-csrf.js.map +1 -0
- package/dist/src/shell/main-http-handler.js +389 -0
- package/dist/src/shell/main-http-handler.js.map +1 -0
- package/dist/src/shell/main-http-mcp.js +122 -0
- package/dist/src/shell/main-http-mcp.js.map +1 -0
- package/dist/src/shell/main-http-views.js +253 -0
- package/dist/src/shell/main-http-views.js.map +1 -0
- package/dist/src/shell/main-http.js +76 -0
- package/dist/src/shell/main-http.js.map +1 -0
- package/dist/src/shell/main-loops.js +130 -0
- package/dist/src/shell/main-loops.js.map +1 -0
- package/dist/src/shell/main-mcp.js +129 -0
- package/dist/src/shell/main-mcp.js.map +1 -0
- package/dist/src/shell/main-orchestrator.js +120 -0
- package/dist/src/shell/main-orchestrator.js.map +1 -0
- package/dist/src/shell/main-preflight.js +43 -0
- package/dist/src/shell/main-preflight.js.map +1 -0
- package/dist/src/shell/main-reconcilers-helpers.js +244 -0
- package/dist/src/shell/main-reconcilers-helpers.js.map +1 -0
- package/dist/src/shell/main-reconcilers-pr.js +148 -0
- package/dist/src/shell/main-reconcilers-pr.js.map +1 -0
- package/dist/src/shell/main-reconcilers.js +225 -0
- package/dist/src/shell/main-reconcilers.js.map +1 -0
- package/dist/src/shell/main-runner.js +355 -0
- package/dist/src/shell/main-runner.js.map +1 -0
- package/dist/src/shell/main-scaffold.js +116 -0
- package/dist/src/shell/main-scaffold.js.map +1 -0
- package/dist/src/shell/main-shutdown.js +115 -0
- package/dist/src/shell/main-shutdown.js.map +1 -0
- package/dist/src/shell/main-startup.js +48 -0
- package/dist/src/shell/main-startup.js.map +1 -0
- package/dist/src/shell/main-substrates.js +43 -0
- package/dist/src/shell/main-substrates.js.map +1 -0
- package/dist/src/shell/main.js +385 -0
- package/dist/src/shell/main.js.map +1 -0
- package/dist/src/shell/orchestrator-feedback.js +69 -0
- package/dist/src/shell/orchestrator-feedback.js.map +1 -0
- package/dist/src/shell/orchestrator-image.js +167 -0
- package/dist/src/shell/orchestrator-image.js.map +1 -0
- package/dist/src/shell/orchestrator-loop.js +468 -0
- package/dist/src/shell/orchestrator-loop.js.map +1 -0
- package/dist/src/shell/orchestrator-reconcile.js +36 -0
- package/dist/src/shell/orchestrator-reconcile.js.map +1 -0
- package/dist/src/shell/reconciler-loop.js +228 -0
- package/dist/src/shell/reconciler-loop.js.map +1 -0
- package/dist/src/shell/runner-loop-turn.js +301 -0
- package/dist/src/shell/runner-loop-turn.js.map +1 -0
- package/dist/src/shell/runner-loop.js +338 -0
- package/dist/src/shell/runner-loop.js.map +1 -0
- package/dist/src/shell/server/http.js +208 -0
- package/dist/src/shell/server/http.js.map +1 -0
- package/dist/src/shell/server/mcp-runtime-effects.js +237 -0
- package/dist/src/shell/server/mcp-runtime-effects.js.map +1 -0
- package/dist/src/shell/server/mcp-runtime.js +99 -0
- package/dist/src/shell/server/mcp-runtime.js.map +1 -0
- package/dist/src/shell/workspace-key.js +14 -0
- package/dist/src/shell/workspace-key.js.map +1 -0
- package/dist/src/types/acp.js +8 -0
- package/dist/src/types/acp.js.map +1 -0
- package/dist/src/types/actions/plan.js +6 -0
- package/dist/src/types/actions/plan.js.map +1 -0
- package/dist/src/types/actions/predicates.js +6 -0
- package/dist/src/types/actions/predicates.js.map +1 -0
- package/dist/src/types/actions/run-fold.js +8 -0
- package/dist/src/types/actions/run-fold.js.map +1 -0
- package/dist/src/types/actions.js +7 -0
- package/dist/src/types/actions.js.map +1 -0
- package/dist/src/types/adapter/clock-random.js +4 -0
- package/dist/src/types/adapter/clock-random.js.map +1 -0
- package/dist/src/types/adapter/gondolin-image-converter.js +5 -0
- package/dist/src/types/adapter/gondolin-image-converter.js.map +1 -0
- package/dist/src/types/adapter/gondolin-image-fetch.js +5 -0
- package/dist/src/types/adapter/gondolin-image-fetch.js.map +1 -0
- package/dist/src/types/adapter/workflow-loader.js +4 -0
- package/dist/src/types/adapter/workflow-loader.js.map +1 -0
- package/dist/src/types/cli/args.js +8 -0
- package/dist/src/types/cli/args.js.map +1 -0
- package/dist/src/types/config.js +8 -0
- package/dist/src/types/config.js.map +1 -0
- package/dist/src/types/credential-interp.js +6 -0
- package/dist/src/types/credential-interp.js.map +1 -0
- package/dist/src/types/credentials.js +10 -0
- package/dist/src/types/credentials.js.map +1 -0
- package/dist/src/types/doctor.js +7 -0
- package/dist/src/types/doctor.js.map +1 -0
- package/dist/src/types/domain.js +7 -0
- package/dist/src/types/domain.js.map +1 -0
- package/dist/src/types/effect.js +15 -0
- package/dist/src/types/effect.js.map +1 -0
- package/dist/src/types/errors.js +39 -0
- package/dist/src/types/errors.js.map +1 -0
- package/dist/src/types/http/decisions.js +6 -0
- package/dist/src/types/http/decisions.js.map +1 -0
- package/dist/src/types/http/render.js +10 -0
- package/dist/src/types/http/render.js.map +1 -0
- package/dist/src/types/http/views.js +6 -0
- package/dist/src/types/http/views.js.map +1 -0
- package/dist/src/types/http.js +9 -0
- package/dist/src/types/http.js.map +1 -0
- package/dist/src/types/image/managed-image.js +7 -0
- package/dist/src/types/image/managed-image.js.map +1 -0
- package/dist/src/types/interp/effect-interpreter.js +8 -0
- package/dist/src/types/interp/effect-interpreter.js.map +1 -0
- package/dist/src/types/interp/tracker.js +7 -0
- package/dist/src/types/interp/tracker.js.map +1 -0
- package/dist/src/types/issue/file.js +6 -0
- package/dist/src/types/issue/file.js.map +1 -0
- package/dist/src/types/issue/parse.js +8 -0
- package/dist/src/types/issue/parse.js.map +1 -0
- package/dist/src/types/main-acp.js +13 -0
- package/dist/src/types/main-acp.js.map +1 -0
- package/dist/src/types/main-adapters.js +5 -0
- package/dist/src/types/main-adapters.js.map +1 -0
- package/dist/src/types/main-credential.js +21 -0
- package/dist/src/types/main-credential.js.map +1 -0
- package/dist/src/types/main-doctor.js +6 -0
- package/dist/src/types/main-doctor.js.map +1 -0
- package/dist/src/types/main-http-handler.js +12 -0
- package/dist/src/types/main-http-handler.js.map +1 -0
- package/dist/src/types/main-http.js +5 -0
- package/dist/src/types/main-http.js.map +1 -0
- package/dist/src/types/main-loops.js +5 -0
- package/dist/src/types/main-loops.js.map +1 -0
- package/dist/src/types/main-mcp.js +12 -0
- package/dist/src/types/main-mcp.js.map +1 -0
- package/dist/src/types/main-orchestrator.js +5 -0
- package/dist/src/types/main-orchestrator.js.map +1 -0
- package/dist/src/types/main-reconcilers.js +11 -0
- package/dist/src/types/main-reconcilers.js.map +1 -0
- package/dist/src/types/main-runner.js +13 -0
- package/dist/src/types/main-runner.js.map +1 -0
- package/dist/src/types/main-startup.js +5 -0
- package/dist/src/types/main-startup.js.map +1 -0
- package/dist/src/types/main-substrates.js +5 -0
- package/dist/src/types/main-substrates.js.map +1 -0
- package/dist/src/types/mcp/dispatch.js +4 -0
- package/dist/src/types/mcp/dispatch.js.map +1 -0
- package/dist/src/types/mcp/post-move.js +7 -0
- package/dist/src/types/mcp/post-move.js.map +1 -0
- package/dist/src/types/mcp.js +9 -0
- package/dist/src/types/mcp.js.map +1 -0
- package/dist/src/types/ports.js +12 -0
- package/dist/src/types/ports.js.map +1 -0
- package/dist/src/types/reconcile/image-decide.js +5 -0
- package/dist/src/types/reconcile/image-decide.js.map +1 -0
- package/dist/src/types/reconcile/ledger.js +7 -0
- package/dist/src/types/reconcile/ledger.js.map +1 -0
- package/dist/src/types/reconcile/pr-loop.js +8 -0
- package/dist/src/types/reconcile/pr-loop.js.map +1 -0
- package/dist/src/types/reconcile/vm-reap.js +8 -0
- package/dist/src/types/reconcile/vm-reap.js.map +1 -0
- package/dist/src/types/reconcile/workspace-decide.js +7 -0
- package/dist/src/types/reconcile/workspace-decide.js.map +1 -0
- package/dist/src/types/reconcile.js +9 -0
- package/dist/src/types/reconcile.js.map +1 -0
- package/dist/src/types/runlog.js +7 -0
- package/dist/src/types/runlog.js.map +1 -0
- package/dist/src/types/runner/actions-runner.js +12 -0
- package/dist/src/types/runner/actions-runner.js.map +1 -0
- package/dist/src/types/runner/gondolin-dispatch.js +5 -0
- package/dist/src/types/runner/gondolin-dispatch.js.map +1 -0
- package/dist/src/types/runner/injection.js +6 -0
- package/dist/src/types/runner/injection.js.map +1 -0
- package/dist/src/types/runner/runner-loop.js +5 -0
- package/dist/src/types/runner/runner-loop.js.map +1 -0
- package/dist/src/types/runner/turn.js +4 -0
- package/dist/src/types/runner/turn.js.map +1 -0
- package/dist/src/types/runner/vm-plan.js +4 -0
- package/dist/src/types/runner/vm-plan.js.map +1 -0
- package/dist/src/types/runtime.js +9 -0
- package/dist/src/types/runtime.js.map +1 -0
- package/dist/src/types/schedule/admission.js +7 -0
- package/dist/src/types/schedule/admission.js.map +1 -0
- package/dist/src/types/schedule/circuit-breaker.js +2 -0
- package/dist/src/types/schedule/circuit-breaker.js.map +1 -0
- package/dist/src/types/schedule/eligibility.js +9 -0
- package/dist/src/types/schedule/eligibility.js.map +1 -0
- package/dist/src/types/schedule/orchestrator-loop.js +10 -0
- package/dist/src/types/schedule/orchestrator-loop.js.map +1 -0
- package/dist/src/types/schedule/sleep-cycle.js +4 -0
- package/dist/src/types/schedule/sleep-cycle.js.map +1 -0
- package/dist/src/types/schedule/slots.js +8 -0
- package/dist/src/types/schedule/slots.js.map +1 -0
- package/dist/src/types/schedule/tick.js +9 -0
- package/dist/src/types/schedule/tick.js.map +1 -0
- package/dist/src/types/server/mcp-runtime.js +8 -0
- package/dist/src/types/server/mcp-runtime.js.map +1 -0
- package/dist/src/types/workflow/parse.js +4 -0
- package/dist/src/types/workflow/parse.js.map +1 -0
- package/dist/tests/core/account-id.test.js +35 -0
- package/dist/tests/core/account-id.test.js.map +1 -0
- package/dist/tests/core/actions-parse.test.js +176 -0
- package/dist/tests/core/actions-parse.test.js.map +1 -0
- package/dist/tests/core/adapter-config.test.js +133 -0
- package/dist/tests/core/adapter-config.test.js.map +1 -0
- package/dist/tests/core/admission.test.js +215 -0
- package/dist/tests/core/admission.test.js.map +1 -0
- package/dist/tests/core/args.test.js +132 -0
- package/dist/tests/core/args.test.js.map +1 -0
- package/dist/tests/core/availability.test.js +62 -0
- package/dist/tests/core/availability.test.js.map +1 -0
- package/dist/tests/core/checks.test.js +395 -0
- package/dist/tests/core/checks.test.js.map +1 -0
- package/dist/tests/core/circuit-breaker.test.js +172 -0
- package/dist/tests/core/circuit-breaker.test.js.map +1 -0
- package/dist/tests/core/coerce.test.js +87 -0
- package/dist/tests/core/coerce.test.js.map +1 -0
- package/dist/tests/core/context.test.js +228 -0
- package/dist/tests/core/context.test.js.map +1 -0
- package/dist/tests/core/decisions.test.js +310 -0
- package/dist/tests/core/decisions.test.js.map +1 -0
- package/dist/tests/core/derive.test.js +205 -0
- package/dist/tests/core/derive.test.js.map +1 -0
- package/dist/tests/core/dispatch-config.test.js +164 -0
- package/dist/tests/core/dispatch-config.test.js.map +1 -0
- package/dist/tests/core/dispatch.test.js +302 -0
- package/dist/tests/core/dispatch.test.js.map +1 -0
- package/dist/tests/core/eligibility.test.js +163 -0
- package/dist/tests/core/eligibility.test.js.map +1 -0
- package/dist/tests/core/extract.test.js +139 -0
- package/dist/tests/core/extract.test.js.map +1 -0
- package/dist/tests/core/fake-creds.test.js +134 -0
- package/dist/tests/core/fake-creds.test.js.map +1 -0
- package/dist/tests/core/file.test.js +197 -0
- package/dist/tests/core/file.test.js.map +1 -0
- package/dist/tests/core/git-result.test.js +113 -0
- package/dist/tests/core/git-result.test.js.map +1 -0
- package/dist/tests/core/identity.test.js +180 -0
- package/dist/tests/core/identity.test.js.map +1 -0
- package/dist/tests/core/image-decide.test.js +59 -0
- package/dist/tests/core/image-decide.test.js.map +1 -0
- package/dist/tests/core/injection.test.js +163 -0
- package/dist/tests/core/injection.test.js.map +1 -0
- package/dist/tests/core/ledger.test.js +218 -0
- package/dist/tests/core/ledger.test.js.map +1 -0
- package/dist/tests/core/managed-image.test.js +68 -0
- package/dist/tests/core/managed-image.test.js.map +1 -0
- package/dist/tests/core/mise.test.js +138 -0
- package/dist/tests/core/mise.test.js.map +1 -0
- package/dist/tests/core/parse.test.js +174 -0
- package/dist/tests/core/parse.test.js.map +1 -0
- package/dist/tests/core/path.test.js +50 -0
- package/dist/tests/core/path.test.js.map +1 -0
- package/dist/tests/core/plan.test.js +218 -0
- package/dist/tests/core/plan.test.js.map +1 -0
- package/dist/tests/core/post-move.test.js +162 -0
- package/dist/tests/core/post-move.test.js.map +1 -0
- package/dist/tests/core/pr-classify.test.js +117 -0
- package/dist/tests/core/pr-classify.test.js.map +1 -0
- package/dist/tests/core/pr-decide.test.js +298 -0
- package/dist/tests/core/pr-decide.test.js.map +1 -0
- package/dist/tests/core/pr-loop.test.js +301 -0
- package/dist/tests/core/pr-loop.test.js.map +1 -0
- package/dist/tests/core/pr-notes.test.js +165 -0
- package/dist/tests/core/pr-notes.test.js.map +1 -0
- package/dist/tests/core/predicates.test.js +154 -0
- package/dist/tests/core/predicates.test.js.map +1 -0
- package/dist/tests/core/prompt.test.js +189 -0
- package/dist/tests/core/prompt.test.js.map +1 -0
- package/dist/tests/core/protocol.test.js +195 -0
- package/dist/tests/core/protocol.test.js.map +1 -0
- package/dist/tests/core/reconcile-issue.test.js +116 -0
- package/dist/tests/core/reconcile-issue.test.js.map +1 -0
- package/dist/tests/core/render.test.js +549 -0
- package/dist/tests/core/render.test.js.map +1 -0
- package/dist/tests/core/retry.test.js +186 -0
- package/dist/tests/core/retry.test.js.map +1 -0
- package/dist/tests/core/routes.test.js +247 -0
- package/dist/tests/core/routes.test.js.map +1 -0
- package/dist/tests/core/run-fold.test.js +299 -0
- package/dist/tests/core/run-fold.test.js.map +1 -0
- package/dist/tests/core/shape.test.js +185 -0
- package/dist/tests/core/shape.test.js.map +1 -0
- package/dist/tests/core/sleep-cycle.test.js +150 -0
- package/dist/tests/core/sleep-cycle.test.js.map +1 -0
- package/dist/tests/core/slots.test.js +201 -0
- package/dist/tests/core/slots.test.js.map +1 -0
- package/dist/tests/core/state-resolve.test.js +80 -0
- package/dist/tests/core/state-resolve.test.js.map +1 -0
- package/dist/tests/core/summary.test.js +200 -0
- package/dist/tests/core/summary.test.js.map +1 -0
- package/dist/tests/core/template.test.js +116 -0
- package/dist/tests/core/template.test.js.map +1 -0
- package/dist/tests/core/tick.test.js +558 -0
- package/dist/tests/core/tick.test.js.map +1 -0
- package/dist/tests/core/token-fold.test.js +176 -0
- package/dist/tests/core/token-fold.test.js.map +1 -0
- package/dist/tests/core/turn.test.js +388 -0
- package/dist/tests/core/turn.test.js.map +1 -0
- package/dist/tests/core/url.test.js +118 -0
- package/dist/tests/core/url.test.js.map +1 -0
- package/dist/tests/core/validate.test.js +247 -0
- package/dist/tests/core/validate.test.js.map +1 -0
- package/dist/tests/core/views.test.js +252 -0
- package/dist/tests/core/views.test.js.map +1 -0
- package/dist/tests/core/vm-decide.test.js +110 -0
- package/dist/tests/core/vm-decide.test.js.map +1 -0
- package/dist/tests/core/vm-guards.test.js +153 -0
- package/dist/tests/core/vm-guards.test.js.map +1 -0
- package/dist/tests/core/vm-plan.test.js +332 -0
- package/dist/tests/core/vm-plan.test.js.map +1 -0
- package/dist/tests/core/vm-reap.test.js +196 -0
- package/dist/tests/core/vm-reap.test.js.map +1 -0
- package/dist/tests/core/workflow-parse.test.js +493 -0
- package/dist/tests/core/workflow-parse.test.js.map +1 -0
- package/dist/tests/core/workspace-decide.test.js +236 -0
- package/dist/tests/core/workspace-decide.test.js.map +1 -0
- package/dist/tests/helpers/fixtures.js +167 -0
- package/dist/tests/helpers/fixtures.js.map +1 -0
- package/dist/tests/shell/acp-substrate.test.js +101 -0
- package/dist/tests/shell/acp-substrate.test.js.map +1 -0
- package/dist/tests/shell/actions-runner-push.test.js +203 -0
- package/dist/tests/shell/actions-runner-push.test.js.map +1 -0
- package/dist/tests/shell/credential-hooks.test.js +36 -0
- package/dist/tests/shell/credential-hooks.test.js.map +1 -0
- package/dist/tests/shell/credential-registry.test.js +165 -0
- package/dist/tests/shell/credential-registry.test.js.map +1 -0
- package/dist/tests/shell/credential-substrate.test.js +179 -0
- package/dist/tests/shell/credential-substrate.test.js.map +1 -0
- package/dist/tests/shell/dockerfile-mise-pin.test.js +51 -0
- package/dist/tests/shell/dockerfile-mise-pin.test.js.map +1 -0
- package/dist/tests/shell/doctor.test.js +101 -0
- package/dist/tests/shell/doctor.test.js.map +1 -0
- package/dist/tests/shell/effect-vm-create.test.js +52 -0
- package/dist/tests/shell/effect-vm-create.test.js.map +1 -0
- package/dist/tests/shell/gh-port.test.js +63 -0
- package/dist/tests/shell/gh-port.test.js.map +1 -0
- package/dist/tests/shell/gondolin-dispatch-guard.test.js +144 -0
- package/dist/tests/shell/gondolin-dispatch-guard.test.js.map +1 -0
- package/dist/tests/shell/gondolin-dispatch-shquote.test.js +168 -0
- package/dist/tests/shell/gondolin-dispatch-shquote.test.js.map +1 -0
- package/dist/tests/shell/gondolin-image-converter.test.js +208 -0
- package/dist/tests/shell/gondolin-image-converter.test.js.map +1 -0
- package/dist/tests/shell/gondolin-image-fetch.test.js +93 -0
- package/dist/tests/shell/gondolin-image-fetch.test.js.map +1 -0
- package/dist/tests/shell/http-handler.test.js +608 -0
- package/dist/tests/shell/http-handler.test.js.map +1 -0
- package/dist/tests/shell/http-server.test.js +53 -0
- package/dist/tests/shell/http-server.test.js.map +1 -0
- package/dist/tests/shell/mcp-runtime.test.js +366 -0
- package/dist/tests/shell/mcp-runtime.test.js.map +1 -0
- package/dist/tests/shell/mise-config-asset.test.js +87 -0
- package/dist/tests/shell/mise-config-asset.test.js.map +1 -0
- package/dist/tests/shell/orchestrator-loop.test.js +583 -0
- package/dist/tests/shell/orchestrator-loop.test.js.map +1 -0
- package/dist/tests/shell/reconciler-passes.test.js +314 -0
- package/dist/tests/shell/reconciler-passes.test.js.map +1 -0
- package/dist/tests/shell/runner-loop-turn.test.js +97 -0
- package/dist/tests/shell/runner-loop-turn.test.js.map +1 -0
- package/dist/tests/shell/runner-slice.test.js +536 -0
- package/dist/tests/shell/runner-slice.test.js.map +1 -0
- package/dist/tests/shell/scaffold.test.js +65 -0
- package/dist/tests/shell/scaffold.test.js.map +1 -0
- package/dist/tests/shell/tick-config.test.js +83 -0
- package/dist/tests/shell/tick-config.test.js.map +1 -0
- package/dist/tests/shell/tracker-parse-dates.test.js +44 -0
- package/dist/tests/shell/tracker-parse-dates.test.js.map +1 -0
- package/dist/tests/shell/tracker-write-issue.test.js +154 -0
- package/dist/tests/shell/tracker-write-issue.test.js.map +1 -0
- package/dist/tests/shell/workflow-prompt-split.test.js +208 -0
- package/dist/tests/shell/workflow-prompt-split.test.js.map +1 -0
- package/dist/tests/shell/workspace-live-config.test.js +140 -0
- package/dist/tests/shell/workspace-live-config.test.js.map +1 -0
- package/package.json +21 -9
- package/patches/@earendil-works+gondolin+0.12.0.patch +173 -0
- package/prompts/Reflect.md +91 -0
- package/prompts/Review.md +97 -0
- package/prompts/Todo.md +96 -0
- package/prompts/_footer.md +41 -0
- package/prompts/_preamble.md +42 -0
- package/prompts-minimal/Todo.md +26 -0
- package/scripts/postinstall.mjs +63 -0
- package/scripts/vm-agent.mjs +312 -90
- package/WORKFLOW.md +0 -744
- package/dist/acp-bridge.js +0 -324
- package/dist/acp-bridge.js.map +0 -1
- package/dist/actions/cache.js +0 -191
- package/dist/actions/cache.js.map +0 -1
- package/dist/actions/effects.js +0 -41
- package/dist/actions/effects.js.map +0 -1
- package/dist/actions/executor.js +0 -570
- package/dist/actions/executor.js.map +0 -1
- package/dist/actions/index.js +0 -13
- package/dist/actions/index.js.map +0 -1
- package/dist/actions/parsing.js.map +0 -1
- package/dist/actions/predicate-env.js +0 -27
- package/dist/actions/predicate-env.js.map +0 -1
- package/dist/actions/predicates.js +0 -49
- package/dist/actions/predicates.js.map +0 -1
- package/dist/actions/templating.js +0 -66
- package/dist/actions/templating.js.map +0 -1
- package/dist/actions/types.js +0 -15
- package/dist/actions/types.js.map +0 -1
- package/dist/agent/acp.js +0 -473
- package/dist/agent/acp.js.map +0 -1
- package/dist/agent/adapter-names.js +0 -159
- package/dist/agent/adapter-names.js.map +0 -1
- package/dist/agent/adapters.js +0 -511
- package/dist/agent/adapters.js.map +0 -1
- package/dist/agent/credential-extractors.js +0 -342
- package/dist/agent/credential-extractors.js.map +0 -1
- package/dist/agent/credential-secrets.js +0 -628
- package/dist/agent/credential-secrets.js.map +0 -1
- package/dist/agent/credential-ticker.js +0 -57
- package/dist/agent/credential-ticker.js.map +0 -1
- package/dist/agent/gondolin-creds-staging.js +0 -356
- package/dist/agent/gondolin-creds-staging.js.map +0 -1
- package/dist/agent/gondolin-dispatch.js +0 -375
- package/dist/agent/gondolin-dispatch.js.map +0 -1
- package/dist/agent/gondolin.js +0 -124
- package/dist/agent/gondolin.js.map +0 -1
- package/dist/agent/runner-decisions.js +0 -134
- package/dist/agent/runner-decisions.js.map +0 -1
- package/dist/agent/runner.js +0 -1456
- package/dist/agent/runner.js.map +0 -1
- package/dist/agent/tool-call-summary.js +0 -102
- package/dist/agent/tool-call-summary.js.map +0 -1
- package/dist/agent/vm-acp-mapping.js +0 -73
- package/dist/agent/vm-acp-mapping.js.map +0 -1
- package/dist/agent/vm-guards.js +0 -262
- package/dist/agent/vm-guards.js.map +0 -1
- package/dist/agent/vm-port.js +0 -22
- package/dist/agent/vm-port.js.map +0 -1
- package/dist/agent/vm-process-registry.js +0 -79
- package/dist/agent/vm-process-registry.js.map +0 -1
- package/dist/bin/cli-args.js +0 -105
- package/dist/bin/cli-args.js.map +0 -1
- package/dist/bin/symphony.js +0 -794
- package/dist/bin/symphony.js.map +0 -1
- package/dist/errors.js +0 -15
- package/dist/errors.js.map +0 -1
- package/dist/http-disk.js +0 -135
- package/dist/http-disk.js.map +0 -1
- package/dist/http-handlers.js.map +0 -1
- package/dist/http.js.map +0 -1
- package/dist/issues.js +0 -178
- package/dist/issues.js.map +0 -1
- package/dist/logging.js +0 -203
- package/dist/logging.js.map +0 -1
- package/dist/mcp.js +0 -706
- package/dist/mcp.js.map +0 -1
- package/dist/memory.js +0 -85
- package/dist/memory.js.map +0 -1
- package/dist/orchestrator-decisions.js +0 -331
- package/dist/orchestrator-decisions.js.map +0 -1
- package/dist/orchestrator.js +0 -1569
- package/dist/orchestrator.js.map +0 -1
- package/dist/prompt.js +0 -65
- package/dist/prompt.js.map +0 -1
- package/dist/reconciler/cache.js +0 -65
- package/dist/reconciler/cache.js.map +0 -1
- package/dist/reconciler/index.js +0 -448
- package/dist/reconciler/index.js.map +0 -1
- package/dist/reconciler/ledger.js +0 -131
- package/dist/reconciler/ledger.js.map +0 -1
- package/dist/reconciler/pr-adapters.js +0 -174
- package/dist/reconciler/pr-adapters.js.map +0 -1
- package/dist/reconciler/pr-decide.js.map +0 -1
- package/dist/reconciler/pr.js +0 -422
- package/dist/reconciler/pr.js.map +0 -1
- package/dist/reconciler/types.js +0 -12
- package/dist/reconciler/types.js.map +0 -1
- package/dist/reconciler/vm.js +0 -243
- package/dist/reconciler/vm.js.map +0 -1
- package/dist/reconciler/workspace-defaults.js +0 -83
- package/dist/reconciler/workspace-defaults.js.map +0 -1
- package/dist/reconciler/workspace.js +0 -272
- package/dist/reconciler/workspace.js.map +0 -1
- package/dist/runlog.js +0 -403
- package/dist/runlog.js.map +0 -1
- package/dist/scaffold.js +0 -165
- package/dist/scaffold.js.map +0 -1
- package/dist/trackers/local.js +0 -445
- package/dist/trackers/local.js.map +0 -1
- package/dist/trackers/types.js +0 -10
- package/dist/trackers/types.js.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
- package/dist/util/clock.js +0 -12
- package/dist/util/clock.js.map +0 -1
- package/dist/util/crypto.js +0 -25
- package/dist/util/crypto.js.map +0 -1
- package/dist/util/frontmatter.js +0 -70
- package/dist/util/frontmatter.js.map +0 -1
- package/dist/util/fs-issues.js +0 -22
- package/dist/util/fs-issues.js.map +0 -1
- package/dist/util/process.js +0 -152
- package/dist/util/process.js.map +0 -1
- package/dist/util/workspace-key.js +0 -10
- package/dist/util/workspace-key.js.map +0 -1
- package/dist/workflow-loader.js +0 -147
- package/dist/workflow-loader.js.map +0 -1
- package/dist/workflow.js +0 -822
- package/dist/workflow.js.map +0 -1
- package/dist/workspace-types.js +0 -8
- package/dist/workspace-types.js.map +0 -1
- package/dist/workspace.js +0 -443
- package/dist/workspace.js.map +0 -1
package/dist/workflow.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace-types.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Shared shell-out IO/capture shapes for the run log. Lives in the foundation
|
|
2
|
-
// layer so domain modules (e.g. actions/executor) and the workspace adapter
|
|
3
|
-
// share a single shape without crossing the adapters↛inward boundary. The
|
|
4
|
-
// `Hook*` names are a holdover from the retired workflow-hook surface; today
|
|
5
|
-
// the only consumers are the typed `actions:` executor and the per-issue run
|
|
6
|
-
// log (whose `channel: "hook"` stream carries action stdout/stderr).
|
|
7
|
-
export {};
|
|
8
|
-
//# sourceMappingURL=workspace-types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-types.js","sourceRoot":"","sources":["../src/workspace-types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE"}
|
package/dist/workspace.js
DELETED
|
@@ -1,443 +0,0 @@
|
|
|
1
|
-
// Workspace manager (SPEC §5). Per-issue workspace dirs under workspace.root.
|
|
2
|
-
//
|
|
3
|
-
// Safety invariants enforced:
|
|
4
|
-
// 1. Workspace path is rooted at workspace.root (containment check).
|
|
5
|
-
// 2. Workspace key is sanitized — only [A-Za-z0-9._-] allowed.
|
|
6
|
-
// 3. Agent cwd MUST equal the workspace path (enforced by callers via runWithCwd).
|
|
7
|
-
import { mkdir, rm, lstat, stat } from 'node:fs/promises';
|
|
8
|
-
import path from 'node:path';
|
|
9
|
-
import { runProcess } from './util/process.js';
|
|
10
|
-
import { sanitizeWorkspaceKey } from './util/workspace-key.js';
|
|
11
|
-
// Re-exported so existing shell/entry importers (agent/runner.ts, tests) keep their
|
|
12
|
-
// `from '../workspace.js'` import path. The canonical definitions live in the
|
|
13
|
-
// foundation layer (util/workspace-key, workspace-types) so domain modules can
|
|
14
|
-
// import them directly without crossing the adapters↛inward boundary. The
|
|
15
|
-
// `HookCapture`/`HookResult` shapes are the shared run-log/shell-out capture
|
|
16
|
-
// types the actions executor and the per-issue run log key off of.
|
|
17
|
-
export { sanitizeWorkspaceKey };
|
|
18
|
-
export class WorkspaceError extends Error {
|
|
19
|
-
code;
|
|
20
|
-
constructor(code, message) {
|
|
21
|
-
super(message);
|
|
22
|
-
this.code = code;
|
|
23
|
-
this.name = 'WorkspaceError';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
// §5.5 Invariant 2: workspace path MUST be contained within workspace root.
|
|
27
|
-
//
|
|
28
|
-
// We deliberately check for a `..` path component rather than a `..` prefix on the
|
|
29
|
-
// relative path: an identifier like `..fix` sanitizes to a perfectly contained child
|
|
30
|
-
// directory whose relative path begins with the two-character substring `..` but does
|
|
31
|
-
// not actually escape the root.
|
|
32
|
-
export function assertContained(workspaceRoot, candidate) {
|
|
33
|
-
const rootAbs = path.resolve(workspaceRoot);
|
|
34
|
-
const candAbs = path.resolve(candidate);
|
|
35
|
-
if (candAbs === rootAbs) {
|
|
36
|
-
throw new WorkspaceError('invalid_workspace_path', `workspace path must not equal workspace root (${rootAbs})`);
|
|
37
|
-
}
|
|
38
|
-
const rel = path.relative(rootAbs, candAbs);
|
|
39
|
-
if (rel === '' || path.isAbsolute(rel)) {
|
|
40
|
-
throw new WorkspaceError('invalid_workspace_path', `workspace path ${candAbs} is not contained within ${rootAbs}`);
|
|
41
|
-
}
|
|
42
|
-
const parts = rel.split(path.sep);
|
|
43
|
-
if (parts.some((p) => p === '..')) {
|
|
44
|
-
throw new WorkspaceError('invalid_workspace_path', `workspace path ${candAbs} is not contained within ${rootAbs}`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
// `runGit` / `runGitExpect` are thin specializations over the unified
|
|
48
|
-
// `runProcess` in util/process.ts: WorkspaceError wrapping is the reason they
|
|
49
|
-
// exist as named locals (the spawn quirks live in the util).
|
|
50
|
-
async function runGit(args, cwd) {
|
|
51
|
-
return runProcess('git', args, { cwd });
|
|
52
|
-
}
|
|
53
|
-
async function runGitExpect(args, cwd) {
|
|
54
|
-
const r = await runGit(args, cwd);
|
|
55
|
-
if (r.exit_code !== 0) {
|
|
56
|
-
throw new WorkspaceError('workspace_setup_git_failed', `git ${args.join(' ')} exited ${r.exit_code}: ${r.stderr.trim() || r.stdout.trim()}`);
|
|
57
|
-
}
|
|
58
|
-
return r;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Canonical per-issue clone+branch+remote setup (issue 34). Performs the work
|
|
62
|
-
* a repo-local `after_create` shell once did, but in TypeScript so:
|
|
63
|
-
*
|
|
64
|
-
* 1. The setup is unit-testable independent of any workflow-defined glue.
|
|
65
|
-
* 2. The reconciler's `workspace` resource owns it as a typed `create_workspace`
|
|
66
|
-
* action instead of an opaque shell blob.
|
|
67
|
-
* 3. State-machine behavior (origin restoration, identity pinning) is owned by
|
|
68
|
-
* the orchestrator, not a shell script.
|
|
69
|
-
*
|
|
70
|
-
* Behavior (mirroring the shell version's invariants minus the origin-fetch
|
|
71
|
-
* reset — see "Base ref source-of-truth" below):
|
|
72
|
-
*
|
|
73
|
-
* - `git clone --local --no-tags --branch <base> <source> .` into `workspacePath`,
|
|
74
|
-
* hardlinking objects when possible (fast + disk-cheap).
|
|
75
|
-
* - Strip every remote the clone left behind so any in-VM `git push`/`git fetch`
|
|
76
|
-
* fails closed (no network targets reachable from inside the dispatched agent).
|
|
77
|
-
* - Unset any inherited `credential.helper` for the same reason.
|
|
78
|
-
* - When `originRepo` is set, restore an `origin` pointing at the canonical
|
|
79
|
-
* HTTPS URL (no token; auth comes from the host's `gh` and never enters the
|
|
80
|
-
* VM). `gh auth setup-git` runs best-effort so a later host-side `git push`
|
|
81
|
-
* from the Done-state `push_branch` action can authenticate.
|
|
82
|
-
* - Pin `user.name`/`user.email` to the symphony-agent identity.
|
|
83
|
-
* - `git checkout -b <branch>` to cut the per-issue branch.
|
|
84
|
-
*
|
|
85
|
-
* Base ref source-of-truth: the source repo's local `<base>` is the canonical
|
|
86
|
-
* reference. The previous shell version also fetched `origin/<base>` when
|
|
87
|
-
* `originRepo` was set and reset the workspace's base to that live remote tip,
|
|
88
|
-
* but that created two divergent sources of truth — `Orchestrator.currentBaseRef`
|
|
89
|
-
* resolves `<base>` in the source repo, and a fetch-and-reset workspace would
|
|
90
|
-
* be based on a ref the reconciler can't see. The drift detector caught the
|
|
91
|
-
* resulting "freshly cloned workspace is already stale" false positives, so
|
|
92
|
-
* the fetch+reset step is gone. To pick up a new base, the operator updates
|
|
93
|
-
* the source repo (`git pull` / `git fetch`) and the next workspace clones
|
|
94
|
-
* from the updated source.
|
|
95
|
-
*
|
|
96
|
-
* `workspacePath` must exist and be empty. Caller is responsible for the mkdir
|
|
97
|
-
* and for unwinding the directory on failure.
|
|
98
|
-
*/
|
|
99
|
-
export async function setupWorkspaceDir(opts) {
|
|
100
|
-
const { workspacePath, sourceRepo, baseBranch, branch, originRepo, originUrl, gitIdentity } = opts;
|
|
101
|
-
// 1. Source repo must look like a git repo. Same check the shell ran, lifted
|
|
102
|
-
// into TypeScript so the error surfaces as a typed WorkspaceError rather
|
|
103
|
-
// than a shell exit code the runner has to decode.
|
|
104
|
-
try {
|
|
105
|
-
const gitDir = path.join(sourceRepo, '.git');
|
|
106
|
-
const st = await stat(gitDir);
|
|
107
|
-
if (!st.isDirectory() && !st.isFile()) {
|
|
108
|
-
throw new WorkspaceError('workspace_setup_no_source_repo', `source repo ${sourceRepo} is not a git repository`);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
catch (err) {
|
|
112
|
-
if (err instanceof WorkspaceError)
|
|
113
|
-
throw err;
|
|
114
|
-
throw new WorkspaceError('workspace_setup_no_source_repo', `source repo ${sourceRepo} is not a git repository: ${err.message}`);
|
|
115
|
-
}
|
|
116
|
-
// 2. Clone hardlinked, narrow refspec, land on base. `.` is the cwd so the
|
|
117
|
-
// objects/refs go directly into `workspacePath`.
|
|
118
|
-
await runGitExpect(['clone', '--local', '--no-tags', '--branch', baseBranch, sourceRepo, '.'], workspacePath);
|
|
119
|
-
// 3. Strip all remotes the clone copied over (typically just `origin`
|
|
120
|
-
// pointing at SOURCE_REPO). Network targets stay zero by default.
|
|
121
|
-
const remotes = await runGitExpect(['remote'], workspacePath);
|
|
122
|
-
for (const remote of remotes.stdout.split(/\r?\n/).map((r) => r.trim()).filter((r) => r.length > 0)) {
|
|
123
|
-
await runGitExpect(['remote', 'remove', remote], workspacePath);
|
|
124
|
-
}
|
|
125
|
-
// Unset credential.helper if the clone inherited one. Best-effort: an empty
|
|
126
|
-
// local config returns exit 5 which is fine.
|
|
127
|
-
await runGit(['config', '--local', '--unset', 'credential.helper'], workspacePath);
|
|
128
|
-
// 4. Conditional origin restore. SYMPHONY_REPO is the documented "I want
|
|
129
|
-
// the Done-state push to reach a remote" opt-in; without it the workspace
|
|
130
|
-
// stays purely local and no origin is configured. The remote URL is the
|
|
131
|
-
// canonical HTTPS form (no token); auth comes from the host's `gh`,
|
|
132
|
-
// which never enters the VM. Unlike the prior shell version, we do
|
|
133
|
-
// NOT fetch `origin/<base>` and reset — see the function comment for
|
|
134
|
-
// why; the source repo's local `<base>` is the canonical base ref.
|
|
135
|
-
if (originRepo && originRepo.length > 0) {
|
|
136
|
-
await runGitExpect(['remote', 'add', 'origin', originUrl ?? `https://github.com/${originRepo}.git`], workspacePath);
|
|
137
|
-
// `gh auth setup-git` is best-effort: a host without gh installed should
|
|
138
|
-
// still get a working workspace with an origin pointing at the HTTPS URL,
|
|
139
|
-
// even if a later push fails for lack of credentials.
|
|
140
|
-
await runProcess('gh', ['auth', 'setup-git'], { cwd: workspacePath });
|
|
141
|
-
}
|
|
142
|
-
// 5. Pin commit identity. Local-only so this never leaks into ~/.gitconfig.
|
|
143
|
-
await runGitExpect(['config', '--local', 'user.name', gitIdentity.name], workspacePath);
|
|
144
|
-
await runGitExpect(['config', '--local', 'user.email', gitIdentity.email], workspacePath);
|
|
145
|
-
// 6. Land HEAD on the per-issue branch. When the branch already exists on
|
|
146
|
-
// `origin` (a re-dispatch after the PR autopilot routes a conflicting issue
|
|
147
|
-
// back to the implementing state, or any prior push), restore it so the
|
|
148
|
-
// agent's already-pushed work is carried forward and rebased onto the fresh
|
|
149
|
-
// base — rather than cutting a new branch off base and orphaning that work.
|
|
150
|
-
// Only the issue's first dispatch (no remote branch yet) takes the
|
|
151
|
-
// fresh-cut path. See `restorePushedBranch` for the loop this closes.
|
|
152
|
-
if (await restorePushedBranch(workspacePath, branch))
|
|
153
|
-
return;
|
|
154
|
-
await runGitExpect(['checkout', '-b', branch], workspacePath);
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Restore an already-pushed per-issue branch into a freshly-cloned workspace, so
|
|
158
|
-
* a re-dispatch continues from the work that was pushed instead of discarding it.
|
|
159
|
-
* Returns true when `origin/<branch>` existed and HEAD now sits on a local
|
|
160
|
-
* `<branch>` at the fetched remote tip; false when there is no `origin`
|
|
161
|
-
* (local-only mode) or no such remote branch yet (the issue's first dispatch), in
|
|
162
|
-
* which case the caller cuts a fresh branch off base.
|
|
163
|
-
*
|
|
164
|
-
* The dispatched agent rebases this restored branch onto the freshly-fetched base
|
|
165
|
-
* (`fetchBaseInWorkspace` + the Todo prompt's `git rebase origin/<base>`), so a
|
|
166
|
-
* stale-based restored branch is carried forward and any conflicts resolved as
|
|
167
|
-
* part of the normal flow. Without this restore, every re-dispatch cut a
|
|
168
|
-
* brand-new branch off base and orphaned the pushed `agent/<id>` commits: a
|
|
169
|
-
* bounced issue redid all its work from scratch and its remote branch never
|
|
170
|
-
* advanced past the first push, so the PR stayed CONFLICTING and the autopilot
|
|
171
|
-
* re-routed it forever — a non-converging Done→conflict→reroute→redo loop.
|
|
172
|
-
*
|
|
173
|
-
* Fails closed on a transport/auth error rather than cutting fresh: only an
|
|
174
|
-
* `ls-remote --exit-code` "no matching refs" (exit 2) means the branch truly
|
|
175
|
-
* doesn't exist yet. An unreachable/unauthenticated origin (exit 128, …) is
|
|
176
|
-
* indistinguishable from "branch present but unobservable", so falling back to a
|
|
177
|
-
* fresh cut there would risk the next push force-with-lease'ing over already-
|
|
178
|
-
* pushed work once the origin recovers (`runCanonicalSetup` won't re-run on the
|
|
179
|
-
* existing dir). Throwing makes `runCanonicalSetup` unwind the dir so a later
|
|
180
|
-
* tick retries the restore. Network calls run with `GIT_TERMINAL_PROMPT=0` so
|
|
181
|
-
* they fail fast instead of blocking on a credential prompt.
|
|
182
|
-
*/
|
|
183
|
-
export async function restorePushedBranch(workspacePath, branch) {
|
|
184
|
-
const noPrompt = { cwd: workspacePath, env: { GIT_TERMINAL_PROMPT: '0' } };
|
|
185
|
-
const remoteCheck = await runProcess('git', ['remote', 'get-url', 'origin'], {
|
|
186
|
-
cwd: workspacePath,
|
|
187
|
-
});
|
|
188
|
-
if (remoteCheck.exit_code !== 0)
|
|
189
|
-
return false;
|
|
190
|
-
// Probe the EXACT head ref. `ls-remote … <branch>` does suffix matching, so a
|
|
191
|
-
// colliding ref like `refs/heads/archive/<branch>` would exit 0 (false positive)
|
|
192
|
-
// for a `<branch>` that doesn't exist; the exact `fetch` below would then fail
|
|
193
|
-
// and a first dispatch would unwind forever. `refs/heads/<branch>` matches only
|
|
194
|
-
// the exact ref.
|
|
195
|
-
const exists = await runProcess('git', ['ls-remote', '--exit-code', 'origin', `refs/heads/${branch}`], noPrompt);
|
|
196
|
-
// exit 2 = reached the remote, no such ref → genuine first dispatch, cut fresh.
|
|
197
|
-
if (exists.exit_code === 2)
|
|
198
|
-
return false;
|
|
199
|
-
// Any other non-zero (128, …) is a transport/auth failure — fail closed.
|
|
200
|
-
if (exists.exit_code !== 0) {
|
|
201
|
-
throw new WorkspaceError('workspace_setup_origin_unreachable', `git ls-remote origin ${branch} failed (exit ${exists.exit_code}): ${(exists.stderr || exists.stdout).trim()}`);
|
|
202
|
-
}
|
|
203
|
-
// Fetch the exact head ref (matching the probe): an unqualified `<branch>`
|
|
204
|
-
// refspec would resolve a same-named tag (refs/tags/<branch>) into FETCH_HEAD
|
|
205
|
-
// even with --no-tags, and checkout would then restore the tag's commit.
|
|
206
|
-
const fetched = await runProcess('git', ['fetch', '--no-tags', 'origin', `refs/heads/${branch}`], noPrompt);
|
|
207
|
-
if (fetched.exit_code !== 0) {
|
|
208
|
-
throw new WorkspaceError('workspace_setup_branch_fetch_failed', `git fetch origin ${branch} failed (exit ${fetched.exit_code}): ${(fetched.stderr || fetched.stdout).trim()}`);
|
|
209
|
-
}
|
|
210
|
-
await runGitExpect(['checkout', '-b', branch, 'FETCH_HEAD'], workspacePath);
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Per-dispatch fetch of the workspace's base ref. Runs `git fetch --no-tags
|
|
215
|
-
* origin <base>` so `origin/<base>` is current in the workspace before the
|
|
216
|
-
* dispatched agent runs `git rebase origin/<base>` as the first step of its
|
|
217
|
-
* Todo flow (issue 101). The host runs this because the in-VM agent has no
|
|
218
|
-
* network credentials; `gh auth setup-git` on the host makes the fetch work
|
|
219
|
-
* with the canonical HTTPS `origin` symphony configures in PR mode.
|
|
220
|
-
*
|
|
221
|
-
* A fresh `origin/<base>` is a dispatch precondition: when an `origin` is
|
|
222
|
-
* configured and the fetch fails (auth, network, missing ref), this returns
|
|
223
|
-
* `ok: false` with a diagnostic and the caller must abort the attempt — not
|
|
224
|
-
* launch the agent against a stale ref, which would reproduce the stale-base
|
|
225
|
-
* behavior issue 101 eliminates.
|
|
226
|
-
*
|
|
227
|
-
* No-op (returns `ok: true, skipped: true`) when the workspace has no
|
|
228
|
-
* `origin` remote — that's the local-only mode where there is no network
|
|
229
|
-
* source for the base ref, and the source repo's local `<base>` is the
|
|
230
|
-
* only truth.
|
|
231
|
-
*/
|
|
232
|
-
export async function fetchBaseInWorkspace(workspacePath, baseBranch) {
|
|
233
|
-
const remoteCheck = await runProcess('git', ['remote', 'get-url', 'origin'], {
|
|
234
|
-
cwd: workspacePath,
|
|
235
|
-
});
|
|
236
|
-
if (remoteCheck.exit_code !== 0) {
|
|
237
|
-
return { ok: true, skipped: true, diagnostic: null };
|
|
238
|
-
}
|
|
239
|
-
const fetch = await runProcess('git', ['fetch', '--no-tags', 'origin', baseBranch], { cwd: workspacePath });
|
|
240
|
-
if (fetch.exit_code !== 0) {
|
|
241
|
-
return {
|
|
242
|
-
ok: false,
|
|
243
|
-
skipped: false,
|
|
244
|
-
diagnostic: (fetch.stderr || fetch.stdout).trim(),
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
return { ok: true, skipped: false, diagnostic: null };
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Resolve the effective GitHub `owner/repo` slug (PR/push target) from the
|
|
251
|
-
* `SYMPHONY_REPO` env var and the parsed `workspace.github_repo` config value.
|
|
252
|
-
* Env wins when set non-empty so an existing export keeps overriding the file;
|
|
253
|
-
* otherwise the config value is used. Both unset → null (local-only). Shared by
|
|
254
|
-
* workspace setup, the action-context `$repo`, and the PR autopilot so all three
|
|
255
|
-
* agree on the same target.
|
|
256
|
-
*/
|
|
257
|
-
export function resolveGithubRepo(configRepo) {
|
|
258
|
-
const env = process.env.SYMPHONY_REPO;
|
|
259
|
-
if (env && env.length > 0)
|
|
260
|
-
return env;
|
|
261
|
-
return configRepo;
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Resolve the effective base branch from the `SYMPHONY_BASE_BRANCH` env var and
|
|
265
|
-
* the parsed `workspace.base_branch` config value (env wins; config defaults to
|
|
266
|
-
* `main`). Idempotent: passing an already-resolved value back in returns it
|
|
267
|
-
* unchanged when the env is unset, so it is safe to feed a dispatch-time pin
|
|
268
|
-
* through this again at setup time.
|
|
269
|
-
*/
|
|
270
|
-
export function resolveBaseBranch(configBaseBranch) {
|
|
271
|
-
const env = process.env.SYMPHONY_BASE_BRANCH;
|
|
272
|
-
if (env && env.length > 0)
|
|
273
|
-
return env;
|
|
274
|
-
return configBaseBranch;
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Resolve the env-driven SetupWorkspaceDirOptions for an issue at dispatch
|
|
278
|
-
* time. Centralized so the runner/manager and tests can share the same
|
|
279
|
-
* mapping:
|
|
280
|
-
*
|
|
281
|
-
* - SYMPHONY_SOURCE_REPO override else fall back to `workflowDir`
|
|
282
|
-
* (the directory containing WORKFLOW.md, which in the canonical
|
|
283
|
-
* project layout is the repo root).
|
|
284
|
-
* - SYMPHONY_BASE_BRANCH env (if set) else `workspace.base_branch` config
|
|
285
|
-
* (default 'main').
|
|
286
|
-
* - SYMPHONY_REPO env (if set) else `workspace.github_repo` config selects PR
|
|
287
|
-
* mode (origin restored) vs local-only.
|
|
288
|
-
*/
|
|
289
|
-
export function resolveSetupOptions(args) {
|
|
290
|
-
const sourceRepo = process.env.SYMPHONY_SOURCE_REPO && process.env.SYMPHONY_SOURCE_REPO.length > 0
|
|
291
|
-
? process.env.SYMPHONY_SOURCE_REPO
|
|
292
|
-
: args.workflowDir;
|
|
293
|
-
const baseBranch = resolveBaseBranch(args.configBaseBranch ?? 'main');
|
|
294
|
-
const originRepo = resolveGithubRepo(args.configRepo ?? null);
|
|
295
|
-
return {
|
|
296
|
-
workspacePath: args.workspacePath,
|
|
297
|
-
sourceRepo,
|
|
298
|
-
baseBranch,
|
|
299
|
-
branch: `agent/${args.identifier}`,
|
|
300
|
-
originRepo,
|
|
301
|
-
gitIdentity: { name: 'symphony-agent', email: 'agent@symphony.local' },
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
// Resolve the workspace dir, creating it if missing. Returns true when this call
|
|
305
|
-
// performed the mkdir (so the caller can gate one-time setup like the canonical
|
|
306
|
-
// clone on first-mkdir). Rejects symlinks (containment risk) and non-directory
|
|
307
|
-
// entries.
|
|
308
|
-
async function ensureWorkspaceDirExists(wsPath) {
|
|
309
|
-
try {
|
|
310
|
-
// lstat (not stat) so a symlink at the workspace path is rejected: a symlink
|
|
311
|
-
// could redirect the canonical setup and the returned cwd outside the workspace
|
|
312
|
-
// root, which violates the §5.5 containment invariant.
|
|
313
|
-
const st = await lstat(wsPath);
|
|
314
|
-
if (st.isSymbolicLink()) {
|
|
315
|
-
throw new WorkspaceError('workspace_path_is_symlink', `workspace path ${wsPath} is a symlink; refusing to use`);
|
|
316
|
-
}
|
|
317
|
-
if (!st.isDirectory()) {
|
|
318
|
-
throw new WorkspaceError('workspace_path_not_directory', `expected directory at ${wsPath}, found a non-directory`);
|
|
319
|
-
}
|
|
320
|
-
return false;
|
|
321
|
-
}
|
|
322
|
-
catch (err) {
|
|
323
|
-
if (err.code === 'ENOENT') {
|
|
324
|
-
await mkdir(wsPath, { recursive: true });
|
|
325
|
-
return true;
|
|
326
|
-
}
|
|
327
|
-
throw err;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
// Best-effort removal of a partially prepared workspace dir so the next dispatch
|
|
331
|
-
// tick can retry cleanly. Errors are swallowed (cleanup is non-fatal).
|
|
332
|
-
async function unwindWorkspaceDir(wsPath) {
|
|
333
|
-
try {
|
|
334
|
-
await rm(wsPath, { recursive: true, force: true });
|
|
335
|
-
}
|
|
336
|
-
catch {
|
|
337
|
-
// Best-effort cleanup.
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
// Run the canonical TypeScript clone+branch+remote setup on a freshly created
|
|
341
|
-
// workspace dir. On failure, unwinds the dir before rethrowing.
|
|
342
|
-
async function runCanonicalSetup(identifier, wsPath, workflowDir, configRepo, configBaseBranch) {
|
|
343
|
-
try {
|
|
344
|
-
await setupWorkspaceDir(resolveSetupOptions({
|
|
345
|
-
identifier,
|
|
346
|
-
workspacePath: wsPath,
|
|
347
|
-
workflowDir,
|
|
348
|
-
configRepo,
|
|
349
|
-
configBaseBranch,
|
|
350
|
-
}));
|
|
351
|
-
}
|
|
352
|
-
catch (err) {
|
|
353
|
-
await unwindWorkspaceDir(wsPath);
|
|
354
|
-
throw err;
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
export class WorkspaceManager {
|
|
358
|
-
cfg;
|
|
359
|
-
// Per-identifier in-flight promise map. Coalesces concurrent ensureFor
|
|
360
|
-
// calls for the same identifier into a single setup pass so the dispatch
|
|
361
|
-
// path (runner.ts) and the reconciler's create_workspace pass don't race
|
|
362
|
-
// on `git clone --local` into the same dir. The promise is removed in a
|
|
363
|
-
// finally block so the next pass (e.g. a re-dispatch after the workspace
|
|
364
|
-
// was removed) re-enters cleanly. Keyed by sanitized workspace key for
|
|
365
|
-
// identity with `workspacePathFor`.
|
|
366
|
-
ensureInFlight = new Map();
|
|
367
|
-
constructor(cfg) {
|
|
368
|
-
this.cfg = cfg;
|
|
369
|
-
}
|
|
370
|
-
updateConfig(cfg) {
|
|
371
|
-
this.cfg = cfg;
|
|
372
|
-
}
|
|
373
|
-
workspacePathFor(identifier) {
|
|
374
|
-
const key = sanitizeWorkspaceKey(identifier);
|
|
375
|
-
if (key.length === 0) {
|
|
376
|
-
throw new WorkspaceError('invalid_workspace_key', `cannot sanitize identifier: ${identifier}`);
|
|
377
|
-
}
|
|
378
|
-
return path.join(this.cfg.workspace.root, key);
|
|
379
|
-
}
|
|
380
|
-
// Ensure the per-issue workspace directory exists. On first creation, runs
|
|
381
|
-
// the canonical TypeScript `create_workspace` action (clone + branch +
|
|
382
|
-
// optional origin/identity setup). The canonical clone+branch+remote work is
|
|
383
|
-
// owned by `setupWorkspaceDir` and unit-tested independently; additional
|
|
384
|
-
// per-VM tooling lives in the agent image, not in a workspace-setup shell.
|
|
385
|
-
//
|
|
386
|
-
// Concurrent callers for the same identifier (dispatch runner + reconciler
|
|
387
|
-
// eager-create) coalesce via `ensureInFlight`: the second caller awaits
|
|
388
|
-
// the first's result and observes `created_now: false` from the cached
|
|
389
|
-
// workspace shape (since the first's promise already resolved with the
|
|
390
|
-
// created-now=true outcome). Callers must NOT rely on `created_now`
|
|
391
|
-
// distinguishing "I created it" from "someone else did, just before me";
|
|
392
|
-
// the lock guarantees the canonical setup runs exactly once.
|
|
393
|
-
async ensureFor(identifier, setup) {
|
|
394
|
-
const key = sanitizeWorkspaceKey(identifier);
|
|
395
|
-
const existing = this.ensureInFlight.get(key);
|
|
396
|
-
if (existing)
|
|
397
|
-
return existing;
|
|
398
|
-
const p = this.doEnsureFor(identifier, setup);
|
|
399
|
-
this.ensureInFlight.set(key, p);
|
|
400
|
-
try {
|
|
401
|
-
return await p;
|
|
402
|
-
}
|
|
403
|
-
finally {
|
|
404
|
-
this.ensureInFlight.delete(key);
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
async doEnsureFor(identifier, setup) {
|
|
408
|
-
const workspaceRoot = this.cfg.workspace.root;
|
|
409
|
-
await mkdir(workspaceRoot, { recursive: true });
|
|
410
|
-
const wsPath = this.workspacePathFor(identifier);
|
|
411
|
-
assertContained(workspaceRoot, wsPath);
|
|
412
|
-
const createdNow = await ensureWorkspaceDirExists(wsPath);
|
|
413
|
-
if (createdNow) {
|
|
414
|
-
// Prefer the caller's dispatch-time snapshot (the runner pins it on the
|
|
415
|
-
// RunningEntry) over live config so a WORKFLOW.md reload between dispatch
|
|
416
|
-
// and this setup can't clone against a different base / restore a
|
|
417
|
-
// different origin than the Done action context will use. The eager
|
|
418
|
-
// reconciler create passes no snapshot and uses live config.
|
|
419
|
-
await runCanonicalSetup(identifier, wsPath, this.cfg.workflow_dir, setup?.githubRepo !== undefined ? setup.githubRepo : this.cfg.workspace.github_repo, setup?.baseBranch ?? this.cfg.workspace.base_branch);
|
|
420
|
-
}
|
|
421
|
-
return {
|
|
422
|
-
path: wsPath,
|
|
423
|
-
workspace_key: sanitizeWorkspaceKey(identifier),
|
|
424
|
-
created_now: createdNow,
|
|
425
|
-
};
|
|
426
|
-
}
|
|
427
|
-
// Best-effort filesystem removal of the per-issue workspace dir. A symlink or
|
|
428
|
-
// non-directory at the path is a no-op (containment safety).
|
|
429
|
-
async remove(identifier) {
|
|
430
|
-
const wsPath = this.workspacePathFor(identifier);
|
|
431
|
-
assertContained(this.cfg.workspace.root, wsPath);
|
|
432
|
-
try {
|
|
433
|
-
const st = await lstat(wsPath);
|
|
434
|
-
if (st.isSymbolicLink() || !st.isDirectory())
|
|
435
|
-
return;
|
|
436
|
-
}
|
|
437
|
-
catch {
|
|
438
|
-
return;
|
|
439
|
-
}
|
|
440
|
-
await rm(wsPath, { recursive: true, force: true });
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
//# sourceMappingURL=workspace.js.map
|
package/dist/workspace.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|