smol-symphony 0.2.0 → 0.3.1
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/bin/symphony.js +22 -786
- package/dist/bin/symphony.js.map +1 -1
- package/dist/core/actions/context.js +109 -0
- package/dist/core/actions/context.js.map +1 -0
- package/dist/{actions/parsing.js → core/actions/parse.js} +33 -114
- package/dist/core/actions/parse.js.map +1 -0
- package/dist/core/actions/plan.js +197 -0
- package/dist/core/actions/plan.js.map +1 -0
- package/dist/core/actions/predicates.js +111 -0
- package/dist/core/actions/predicates.js.map +1 -0
- package/dist/core/actions/run-fold.js +248 -0
- package/dist/core/actions/run-fold.js.map +1 -0
- package/dist/core/actions/template.js +118 -0
- package/dist/core/actions/template.js.map +1 -0
- package/dist/core/cli/args.js +116 -0
- package/dist/core/cli/args.js.map +1 -0
- package/dist/core/coerce.js +75 -0
- package/dist/core/coerce.js.map +1 -0
- package/dist/core/credential/account-id.js +20 -0
- package/dist/core/credential/account-id.js.map +1 -0
- package/dist/core/credential/adapter-config.js +136 -0
- package/dist/core/credential/adapter-config.js.map +1 -0
- package/dist/core/credential/availability.js +98 -0
- package/dist/core/credential/availability.js.map +1 -0
- package/dist/core/credential/extract.js +228 -0
- package/dist/core/credential/extract.js.map +1 -0
- package/dist/core/credential/fake-creds.js +171 -0
- package/dist/core/credential/fake-creds.js.map +1 -0
- package/dist/core/credential/identity.js +125 -0
- package/dist/core/credential/identity.js.map +1 -0
- package/dist/core/credential/shape.js +230 -0
- package/dist/core/credential/shape.js.map +1 -0
- package/dist/core/credential/strings.js +15 -0
- package/dist/core/credential/strings.js.map +1 -0
- package/dist/core/doctor/checks.js +303 -0
- package/dist/core/doctor/checks.js.map +1 -0
- package/dist/core/git/result.js +107 -0
- package/dist/core/git/result.js.map +1 -0
- package/dist/core/http/decisions.js +225 -0
- package/dist/core/http/decisions.js.map +1 -0
- package/dist/{http.js → core/http/render.js} +472 -738
- package/dist/core/http/render.js.map +1 -0
- package/dist/{http-handlers.js → core/http/routes.js} +52 -87
- package/dist/core/http/routes.js.map +1 -0
- package/dist/core/http/views.js +181 -0
- package/dist/core/http/views.js.map +1 -0
- package/dist/core/image/managed-image.js +95 -0
- package/dist/core/image/managed-image.js.map +1 -0
- package/dist/core/issue/file.js +149 -0
- package/dist/core/issue/file.js.map +1 -0
- package/dist/core/issue/parse.js +210 -0
- package/dist/core/issue/parse.js.map +1 -0
- package/dist/core/mcp/dispatch.js +239 -0
- package/dist/core/mcp/dispatch.js.map +1 -0
- package/dist/core/mcp/post-move.js +92 -0
- package/dist/core/mcp/post-move.js.map +1 -0
- package/dist/core/mcp/protocol.js +293 -0
- package/dist/core/mcp/protocol.js.map +1 -0
- package/dist/core/mcp/url.js +162 -0
- package/dist/core/mcp/url.js.map +1 -0
- package/dist/core/path.js +63 -0
- package/dist/core/path.js.map +1 -0
- package/dist/core/reconcile/image-decide.js +48 -0
- package/dist/core/reconcile/image-decide.js.map +1 -0
- package/dist/core/reconcile/ledger.js +142 -0
- package/dist/core/reconcile/ledger.js.map +1 -0
- package/dist/core/reconcile/pr-classify.js +62 -0
- package/dist/core/reconcile/pr-classify.js.map +1 -0
- package/dist/{reconciler → core/reconcile}/pr-decide.js +25 -12
- package/dist/core/reconcile/pr-decide.js.map +1 -0
- package/dist/core/reconcile/pr-loop.js +161 -0
- package/dist/core/reconcile/pr-loop.js.map +1 -0
- package/dist/core/reconcile/pr-notes.js +35 -0
- package/dist/core/reconcile/pr-notes.js.map +1 -0
- package/dist/core/reconcile/vm-decide.js +70 -0
- package/dist/core/reconcile/vm-decide.js.map +1 -0
- package/dist/core/reconcile/vm-reap.js +207 -0
- package/dist/core/reconcile/vm-reap.js.map +1 -0
- package/dist/core/reconcile/workspace-decide.js +162 -0
- package/dist/core/reconcile/workspace-decide.js.map +1 -0
- package/dist/core/runlog/summary.js +231 -0
- package/dist/core/runlog/summary.js.map +1 -0
- package/dist/core/runner/dispatch-config.js +95 -0
- package/dist/core/runner/dispatch-config.js.map +1 -0
- package/dist/core/runner/injection.js +61 -0
- package/dist/core/runner/injection.js.map +1 -0
- package/dist/core/runner/mise.js +210 -0
- package/dist/core/runner/mise.js.map +1 -0
- package/dist/core/runner/prompt.js +720 -0
- package/dist/core/runner/prompt.js.map +1 -0
- package/dist/core/runner/turn.js +242 -0
- package/dist/core/runner/turn.js.map +1 -0
- package/dist/core/runner/vm-plan.js +390 -0
- package/dist/core/runner/vm-plan.js.map +1 -0
- package/dist/core/schedule/admission.js +123 -0
- package/dist/core/schedule/admission.js.map +1 -0
- package/dist/core/schedule/circuit-breaker.js +111 -0
- package/dist/core/schedule/circuit-breaker.js.map +1 -0
- package/dist/core/schedule/eligibility.js +83 -0
- package/dist/core/schedule/eligibility.js.map +1 -0
- package/dist/core/schedule/reconcile-issue.js +82 -0
- package/dist/core/schedule/reconcile-issue.js.map +1 -0
- package/dist/core/schedule/retry.js +96 -0
- package/dist/core/schedule/retry.js.map +1 -0
- package/dist/core/schedule/sleep-cycle.js +133 -0
- package/dist/core/schedule/sleep-cycle.js.map +1 -0
- package/dist/core/schedule/slots.js +124 -0
- package/dist/core/schedule/slots.js.map +1 -0
- package/dist/core/schedule/tick.js +553 -0
- package/dist/core/schedule/tick.js.map +1 -0
- package/dist/core/schedule/token-fold.js +181 -0
- package/dist/core/schedule/token-fold.js.map +1 -0
- package/dist/core/state-resolve.js +86 -0
- package/dist/core/state-resolve.js.map +1 -0
- package/dist/core/vm-guards.js +278 -0
- package/dist/core/vm-guards.js.map +1 -0
- package/dist/core/workflow/derive.js +107 -0
- package/dist/core/workflow/derive.js.map +1 -0
- package/dist/core/workflow/parse.js +687 -0
- package/dist/core/workflow/parse.js.map +1 -0
- package/dist/core/workflow/prompt-probe.js +78 -0
- package/dist/core/workflow/prompt-probe.js.map +1 -0
- package/dist/core/workflow/validate.js +189 -0
- package/dist/core/workflow/validate.js.map +1 -0
- package/dist/core/workspace-key.js +19 -0
- package/dist/core/workspace-key.js.map +1 -0
- package/dist/shell/actions-runner.js +356 -0
- package/dist/shell/actions-runner.js.map +1 -0
- package/dist/shell/adapter/adapter-registry.js +45 -0
- package/dist/shell/adapter/adapter-registry.js.map +1 -0
- package/dist/shell/adapter/clock-random.js +96 -0
- package/dist/shell/adapter/clock-random.js.map +1 -0
- package/dist/shell/adapter/gondolin-dispatch-helpers.js +158 -0
- package/dist/shell/adapter/gondolin-dispatch-helpers.js.map +1 -0
- package/dist/shell/adapter/gondolin-dispatch.js +385 -0
- package/dist/shell/adapter/gondolin-dispatch.js.map +1 -0
- package/dist/shell/adapter/gondolin-image-converter.js +233 -0
- package/dist/shell/adapter/gondolin-image-converter.js.map +1 -0
- package/dist/shell/adapter/gondolin-image-fetch.js +180 -0
- package/dist/shell/adapter/gondolin-image-fetch.js.map +1 -0
- package/dist/shell/adapter/launcher-asset.js +57 -0
- package/dist/shell/adapter/launcher-asset.js.map +1 -0
- package/dist/shell/adapter/mise-config-asset.js +65 -0
- package/dist/shell/adapter/mise-config-asset.js.map +1 -0
- package/dist/shell/adapter/workflow-loader.js +304 -0
- package/dist/shell/adapter/workflow-loader.js.map +1 -0
- package/dist/shell/cli/doctor.js +268 -0
- package/dist/shell/cli/doctor.js.map +1 -0
- package/dist/shell/effect-interpreter-families.js +314 -0
- package/dist/shell/effect-interpreter-families.js.map +1 -0
- package/dist/shell/effect-interpreter.js +29 -0
- package/dist/shell/effect-interpreter.js.map +1 -0
- package/dist/shell/interp/acp-frame.js +137 -0
- package/dist/shell/interp/acp-frame.js.map +1 -0
- package/dist/shell/interp/acp-ws-conn.js +320 -0
- package/dist/shell/interp/acp-ws-conn.js.map +1 -0
- package/dist/shell/interp/acp-ws-frames.js +159 -0
- package/dist/shell/interp/acp-ws-frames.js.map +1 -0
- package/dist/shell/interp/acp-ws.js +197 -0
- package/dist/shell/interp/acp-ws.js.map +1 -0
- package/dist/shell/interp/acp.js +319 -0
- package/dist/shell/interp/acp.js.map +1 -0
- package/dist/shell/interp/credential-defaults.js +128 -0
- package/dist/shell/interp/credential-defaults.js.map +1 -0
- package/dist/shell/interp/credential-hooks.js +149 -0
- package/dist/shell/interp/credential-hooks.js.map +1 -0
- package/dist/shell/interp/credential-registry.js +226 -0
- package/dist/shell/interp/credential-registry.js.map +1 -0
- package/dist/shell/interp/credential.js +103 -0
- package/dist/shell/interp/credential.js.map +1 -0
- package/dist/shell/interp/gh.js +163 -0
- package/dist/shell/interp/gh.js.map +1 -0
- package/dist/shell/interp/git.js +28 -0
- package/dist/shell/interp/git.js.map +1 -0
- package/dist/shell/interp/log.js +213 -0
- package/dist/shell/interp/log.js.map +1 -0
- package/dist/shell/interp/process.js +178 -0
- package/dist/shell/interp/process.js.map +1 -0
- package/dist/shell/interp/runlog.js +193 -0
- package/dist/shell/interp/runlog.js.map +1 -0
- package/dist/shell/interp/timer.js +64 -0
- package/dist/shell/interp/timer.js.map +1 -0
- package/dist/shell/interp/tracker-disk.js +99 -0
- package/dist/shell/interp/tracker-disk.js.map +1 -0
- package/dist/shell/interp/tracker-parse.js +71 -0
- package/dist/shell/interp/tracker-parse.js.map +1 -0
- package/dist/shell/interp/tracker-scan.js +238 -0
- package/dist/shell/interp/tracker-scan.js.map +1 -0
- package/dist/shell/interp/tracker-write.js +91 -0
- package/dist/shell/interp/tracker-write.js.map +1 -0
- package/dist/shell/interp/tracker.js +41 -0
- package/dist/shell/interp/tracker.js.map +1 -0
- package/dist/shell/interp/tty.js +48 -0
- package/dist/shell/interp/tty.js.map +1 -0
- package/dist/shell/interp/vm.js +199 -0
- package/dist/shell/interp/vm.js.map +1 -0
- package/dist/shell/interp/workspace.js +310 -0
- package/dist/shell/interp/workspace.js.map +1 -0
- package/dist/shell/main-acp.js +78 -0
- package/dist/shell/main-acp.js.map +1 -0
- package/dist/shell/main-adapters.js +222 -0
- package/dist/shell/main-adapters.js.map +1 -0
- package/dist/shell/main-credential.js +122 -0
- package/dist/shell/main-credential.js.map +1 -0
- package/dist/shell/main-doctor.js +22 -0
- package/dist/shell/main-doctor.js.map +1 -0
- package/dist/shell/main-entry.js +46 -0
- package/dist/shell/main-entry.js.map +1 -0
- package/dist/shell/main-http-csrf.js +45 -0
- package/dist/shell/main-http-csrf.js.map +1 -0
- package/dist/shell/main-http-handler.js +389 -0
- package/dist/shell/main-http-handler.js.map +1 -0
- package/dist/shell/main-http-mcp.js +122 -0
- package/dist/shell/main-http-mcp.js.map +1 -0
- package/dist/shell/main-http-views.js +253 -0
- package/dist/shell/main-http-views.js.map +1 -0
- package/dist/shell/main-http.js +76 -0
- package/dist/shell/main-http.js.map +1 -0
- package/dist/shell/main-loops.js +130 -0
- package/dist/shell/main-loops.js.map +1 -0
- package/dist/shell/main-mcp.js +129 -0
- package/dist/shell/main-mcp.js.map +1 -0
- package/dist/shell/main-orchestrator.js +120 -0
- package/dist/shell/main-orchestrator.js.map +1 -0
- package/dist/shell/main-preflight.js +43 -0
- package/dist/shell/main-preflight.js.map +1 -0
- package/dist/shell/main-reconcilers-helpers.js +244 -0
- package/dist/shell/main-reconcilers-helpers.js.map +1 -0
- package/dist/shell/main-reconcilers-pr.js +148 -0
- package/dist/shell/main-reconcilers-pr.js.map +1 -0
- package/dist/shell/main-reconcilers.js +225 -0
- package/dist/shell/main-reconcilers.js.map +1 -0
- package/dist/shell/main-runner.js +355 -0
- package/dist/shell/main-runner.js.map +1 -0
- package/dist/shell/main-scaffold.js +116 -0
- package/dist/shell/main-scaffold.js.map +1 -0
- package/dist/shell/main-shutdown.js +115 -0
- package/dist/shell/main-shutdown.js.map +1 -0
- package/dist/shell/main-startup.js +48 -0
- package/dist/shell/main-startup.js.map +1 -0
- package/dist/shell/main-substrates.js +43 -0
- package/dist/shell/main-substrates.js.map +1 -0
- package/dist/shell/main.js +385 -0
- package/dist/shell/main.js.map +1 -0
- package/dist/shell/orchestrator-feedback.js +69 -0
- package/dist/shell/orchestrator-feedback.js.map +1 -0
- package/dist/shell/orchestrator-image.js +167 -0
- package/dist/shell/orchestrator-image.js.map +1 -0
- package/dist/shell/orchestrator-loop.js +468 -0
- package/dist/shell/orchestrator-loop.js.map +1 -0
- package/dist/shell/orchestrator-reconcile.js +36 -0
- package/dist/shell/orchestrator-reconcile.js.map +1 -0
- package/dist/shell/reconciler-loop.js +228 -0
- package/dist/shell/reconciler-loop.js.map +1 -0
- package/dist/shell/runner-loop-turn.js +301 -0
- package/dist/shell/runner-loop-turn.js.map +1 -0
- package/dist/shell/runner-loop.js +338 -0
- package/dist/shell/runner-loop.js.map +1 -0
- package/dist/shell/server/http.js +208 -0
- package/dist/shell/server/http.js.map +1 -0
- package/dist/shell/server/mcp-runtime-effects.js +237 -0
- package/dist/shell/server/mcp-runtime-effects.js.map +1 -0
- package/dist/shell/server/mcp-runtime.js +99 -0
- package/dist/shell/server/mcp-runtime.js.map +1 -0
- package/dist/shell/workspace-key.js +14 -0
- package/dist/shell/workspace-key.js.map +1 -0
- package/dist/types/acp.js +8 -0
- package/dist/types/acp.js.map +1 -0
- package/dist/types/actions/plan.js +6 -0
- package/dist/types/actions/plan.js.map +1 -0
- package/dist/types/actions/predicates.js +6 -0
- package/dist/types/actions/predicates.js.map +1 -0
- package/dist/types/actions/run-fold.js +8 -0
- package/dist/types/actions/run-fold.js.map +1 -0
- package/dist/types/actions.js +7 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/adapter/clock-random.js +4 -0
- package/dist/types/adapter/clock-random.js.map +1 -0
- package/dist/types/adapter/gondolin-image-converter.js +5 -0
- package/dist/types/adapter/gondolin-image-converter.js.map +1 -0
- package/dist/types/adapter/gondolin-image-fetch.js +5 -0
- package/dist/types/adapter/gondolin-image-fetch.js.map +1 -0
- package/dist/types/adapter/workflow-loader.js +4 -0
- package/dist/types/adapter/workflow-loader.js.map +1 -0
- package/dist/types/cli/args.js +8 -0
- package/dist/types/cli/args.js.map +1 -0
- package/dist/types/config.js +8 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/credential-interp.js +6 -0
- package/dist/types/credential-interp.js.map +1 -0
- package/dist/types/credentials.js +10 -0
- package/dist/types/credentials.js.map +1 -0
- package/dist/types/doctor.js +7 -0
- package/dist/types/doctor.js.map +1 -0
- package/dist/types/domain.js +7 -0
- package/dist/types/domain.js.map +1 -0
- package/dist/types/effect.js +15 -0
- package/dist/types/effect.js.map +1 -0
- package/dist/types/errors.js +39 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/http/decisions.js +6 -0
- package/dist/types/http/decisions.js.map +1 -0
- package/dist/types/http/render.js +10 -0
- package/dist/types/http/render.js.map +1 -0
- package/dist/types/http/views.js +6 -0
- package/dist/types/http/views.js.map +1 -0
- package/dist/types/http.js +9 -0
- package/dist/types/http.js.map +1 -0
- package/dist/types/image/managed-image.js +7 -0
- package/dist/types/image/managed-image.js.map +1 -0
- package/dist/types/interp/effect-interpreter.js +8 -0
- package/dist/types/interp/effect-interpreter.js.map +1 -0
- package/dist/types/interp/tracker.js +7 -0
- package/dist/types/interp/tracker.js.map +1 -0
- package/dist/types/issue/file.js +6 -0
- package/dist/types/issue/file.js.map +1 -0
- package/dist/types/issue/parse.js +8 -0
- package/dist/types/issue/parse.js.map +1 -0
- package/dist/types/main-acp.js +13 -0
- package/dist/types/main-acp.js.map +1 -0
- package/dist/types/main-adapters.js +5 -0
- package/dist/types/main-adapters.js.map +1 -0
- package/dist/types/main-credential.js +21 -0
- package/dist/types/main-credential.js.map +1 -0
- package/dist/types/main-doctor.js +6 -0
- package/dist/types/main-doctor.js.map +1 -0
- package/dist/types/main-http-handler.js +12 -0
- package/dist/types/main-http-handler.js.map +1 -0
- package/dist/types/main-http.js +5 -0
- package/dist/types/main-http.js.map +1 -0
- package/dist/types/main-loops.js +5 -0
- package/dist/types/main-loops.js.map +1 -0
- package/dist/types/main-mcp.js +12 -0
- package/dist/types/main-mcp.js.map +1 -0
- package/dist/types/main-orchestrator.js +5 -0
- package/dist/types/main-orchestrator.js.map +1 -0
- package/dist/types/main-reconcilers.js +11 -0
- package/dist/types/main-reconcilers.js.map +1 -0
- package/dist/types/main-runner.js +13 -0
- package/dist/types/main-runner.js.map +1 -0
- package/dist/types/main-startup.js +5 -0
- package/dist/types/main-startup.js.map +1 -0
- package/dist/types/main-substrates.js +5 -0
- package/dist/types/main-substrates.js.map +1 -0
- package/dist/types/mcp/dispatch.js +4 -0
- package/dist/types/mcp/dispatch.js.map +1 -0
- package/dist/types/mcp/post-move.js +7 -0
- package/dist/types/mcp/post-move.js.map +1 -0
- package/dist/types/mcp.js +9 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/ports.js +12 -0
- package/dist/types/ports.js.map +1 -0
- package/dist/types/reconcile/image-decide.js +5 -0
- package/dist/types/reconcile/image-decide.js.map +1 -0
- package/dist/types/reconcile/ledger.js +7 -0
- package/dist/types/reconcile/ledger.js.map +1 -0
- package/dist/types/reconcile/pr-loop.js +8 -0
- package/dist/types/reconcile/pr-loop.js.map +1 -0
- package/dist/types/reconcile/vm-reap.js +8 -0
- package/dist/types/reconcile/vm-reap.js.map +1 -0
- package/dist/types/reconcile/workspace-decide.js +7 -0
- package/dist/types/reconcile/workspace-decide.js.map +1 -0
- package/dist/types/reconcile.js +9 -0
- package/dist/types/reconcile.js.map +1 -0
- package/dist/types/runlog.js +7 -0
- package/dist/types/runlog.js.map +1 -0
- package/dist/types/runner/actions-runner.js +12 -0
- package/dist/types/runner/actions-runner.js.map +1 -0
- package/dist/types/runner/gondolin-dispatch.js +5 -0
- package/dist/types/runner/gondolin-dispatch.js.map +1 -0
- package/dist/types/runner/injection.js +6 -0
- package/dist/types/runner/injection.js.map +1 -0
- package/dist/types/runner/runner-loop.js +5 -0
- package/dist/types/runner/runner-loop.js.map +1 -0
- package/dist/types/runner/turn.js +4 -0
- package/dist/types/runner/turn.js.map +1 -0
- package/dist/types/runner/vm-plan.js +4 -0
- package/dist/types/runner/vm-plan.js.map +1 -0
- package/dist/types/runtime.js +9 -0
- package/dist/types/runtime.js.map +1 -0
- package/dist/types/schedule/admission.js +7 -0
- package/dist/types/schedule/admission.js.map +1 -0
- package/dist/types/schedule/circuit-breaker.js +2 -0
- package/dist/types/schedule/circuit-breaker.js.map +1 -0
- package/dist/types/schedule/eligibility.js +9 -0
- package/dist/types/schedule/eligibility.js.map +1 -0
- package/dist/types/schedule/orchestrator-loop.js +10 -0
- package/dist/types/schedule/orchestrator-loop.js.map +1 -0
- package/dist/types/schedule/sleep-cycle.js +4 -0
- package/dist/types/schedule/sleep-cycle.js.map +1 -0
- package/dist/types/schedule/slots.js +8 -0
- package/dist/types/schedule/slots.js.map +1 -0
- package/dist/types/schedule/tick.js +9 -0
- package/dist/types/schedule/tick.js.map +1 -0
- package/dist/types/server/mcp-runtime.js +8 -0
- package/dist/types/server/mcp-runtime.js.map +1 -0
- package/dist/types/workflow/parse.js +4 -0
- package/dist/types/workflow/parse.js.map +1 -0
- package/package.json +22 -10
- 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/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/bin/symphony.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symphony.js","sourceRoot":"","sources":["../../src/bin/symphony.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"symphony.js","sourceRoot":"","sources":["../../src/bin/symphony.ts"],"names":[],"mappings":";AACA,mDAAmD;AACnD,EAAE;AACF,SAAS;AACT,qFAAqF;AACrF,+DAA+D;AAC/D,yEAAyE;AACzE,EAAE;AACF,8EAA8E;AAC9E,kFAAkF;AAClF,gFAAgF;AAChF,8EAA8E;AAC9E,2EAA2E;AAC3E,yEAAyE;AACzE,gBAAgB;AAChB,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AAExE,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,kFAAkF;AAClF,kFAAkF;AAClF,kFAAkF;AAClF,qEAAqE;AACrE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACjD,MAAM,CAAC,GAAG,GAAY,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// FCIS rewrite — pure ActionContext derivation + forwarded-env computation.
|
|
2
|
+
//
|
|
3
|
+
// Ports the two pure helpers from the original
|
|
4
|
+
// `src/agent/runner-decisions.ts` (`deriveActionContext`, `computeForwardedEnv`)
|
|
5
|
+
// plus the credential-strip filter the runner used to layer on top of
|
|
6
|
+
// `computeForwardedEnv` via `src/agent/vm-guards.ts:stripCredentialEnv`.
|
|
7
|
+
//
|
|
8
|
+
// In the original the runner did:
|
|
9
|
+
// stripCredentialEnv(computeForwardedEnv(forward_env, undefined, readEnv))
|
|
10
|
+
// `stripCredentialEnv` is itself a pure string-name filter (no IO), so the
|
|
11
|
+
// FCIS design folds the strip directly into the pure core function: the single
|
|
12
|
+
// `computeForwardedEnv` here returns the boot env with EVERY credential-bearing
|
|
13
|
+
// var already removed. The credential policy itself (`isCredentialEnvName`) is
|
|
14
|
+
// the ONE wired into the running app — it lives in `core/vm-guards.ts` and is
|
|
15
|
+
// re-exported here (no duplicate). The guest holds only placeholders Gondolin
|
|
16
|
+
// substitutes at egress (host-only refresh / placeholder-only guest invariant),
|
|
17
|
+
// so a real token must never enter the forwarded boot env. `readEnv` is injected
|
|
18
|
+
// so the function stays deterministic and unit-testable (no `process.env` in core).
|
|
19
|
+
//
|
|
20
|
+
// HARD CONSTRAINTS (gate-enforced):
|
|
21
|
+
// - 100% SYNCHRONOUS. No async/await/Promise anywhere.
|
|
22
|
+
// - No IO, no node: imports, no process/fetch, no wall clock, no randomness.
|
|
23
|
+
// - Imports ONLY from src/types/** and other pure-core modules (vm-guards).
|
|
24
|
+
/**
|
|
25
|
+
* Map a `RunningEntryView` snapshot + optional staged `SYMPHONY_*` env into the
|
|
26
|
+
* `ActionContext` the actions executor consumes. Mirrors the prior inline
|
|
27
|
+
* fallback chain in the original `buildActionContext` / `deriveActionContext`
|
|
28
|
+
* so a Done state reads `$branch` from the action-template namespace (the staged
|
|
29
|
+
* `SYMPHONY_*` env feeds the fallbacks).
|
|
30
|
+
*
|
|
31
|
+
* Fallback chain (highest → lowest precedence) per field:
|
|
32
|
+
* branch SYMPHONY_BRANCH → `agent/<identifier>`
|
|
33
|
+
* base_branch SYMPHONY_BASE_BRANCH → view.base_branch_at_dispatch → input.baseBranchDefault → 'main'
|
|
34
|
+
* repo repoEnv (SYMPHONY_REPO)→ view.github_repo_at_dispatch → input.repoDefault → null
|
|
35
|
+
* pr_title SYMPHONY_PR_TITLE → `<id>: <title>` (or `<id>` if untitled)
|
|
36
|
+
* pr_body_file SYMPHONY_PR_BODY_FILE → ''
|
|
37
|
+
*/
|
|
38
|
+
export function deriveActionContext(input) {
|
|
39
|
+
const { view, extraEnv } = input;
|
|
40
|
+
const issueId = view.issue.id;
|
|
41
|
+
const issueTitle = view.issue.title;
|
|
42
|
+
const trimmedTitle = issueTitle.trim();
|
|
43
|
+
const defaultPrTitle = trimmedTitle.length > 0 ? `${issueId}: ${trimmedTitle}` : issueId;
|
|
44
|
+
// SYMPHONY_REPO wins; then the dispatch-pinned repo; then the live
|
|
45
|
+
// workspace.github_repo default; null when none is set. The cfg fallback is
|
|
46
|
+
// load-bearing because the dispatch-time pin (github_repo_at_dispatch) is not
|
|
47
|
+
// populated yet — without it a Done transition resolves $repo to null and
|
|
48
|
+
// silently skips push_branch / create_pr_if_missing. Mirrors runner-loop.ts's
|
|
49
|
+
// `|| cfg.workspace.github_repo` for the clone path.
|
|
50
|
+
const repoEnv = input.repoEnv;
|
|
51
|
+
const repoFromEnv = repoEnv && repoEnv.length > 0 ? repoEnv : null;
|
|
52
|
+
const repoPinned = view.github_repo_at_dispatch;
|
|
53
|
+
const repoFromPin = repoPinned && repoPinned.length > 0 ? repoPinned : null;
|
|
54
|
+
const repoDefault = input.repoDefault && input.repoDefault.length > 0 ? input.repoDefault : null;
|
|
55
|
+
const repo = repoFromEnv ?? repoFromPin ?? repoDefault;
|
|
56
|
+
// base_branch: staged env → dispatch-pinned base → live workspace.base_branch
|
|
57
|
+
// default → 'main' (the original's literal floor). Same cfg-fallback rationale
|
|
58
|
+
// as $repo: the dispatch-time pin isn't populated yet.
|
|
59
|
+
const pinnedBase = view.base_branch_at_dispatch;
|
|
60
|
+
const baseDefault = input.baseBranchDefault && input.baseBranchDefault.length > 0 ? input.baseBranchDefault : 'main';
|
|
61
|
+
const baseBranch = extraEnv?.SYMPHONY_BASE_BRANCH ?? (pinnedBase.length > 0 ? pinnedBase : baseDefault);
|
|
62
|
+
return {
|
|
63
|
+
identifier: view.identifier,
|
|
64
|
+
workspace: view.workspace_path,
|
|
65
|
+
branch: extraEnv?.SYMPHONY_BRANCH ?? `agent/${view.identifier}`,
|
|
66
|
+
base_branch: baseBranch,
|
|
67
|
+
issue_title: issueTitle,
|
|
68
|
+
issue_body: view.issue.description ?? '',
|
|
69
|
+
repo,
|
|
70
|
+
pr_title: extraEnv?.SYMPHONY_PR_TITLE ?? defaultPrTitle,
|
|
71
|
+
pr_body_file: extraEnv?.SYMPHONY_PR_BODY_FILE ?? '',
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// ─── Forwarded boot env (with credential strip folded in) ────────────────────
|
|
75
|
+
// The strict boot-env credential policy lives canonically in core/vm-guards.ts
|
|
76
|
+
// (the copy actually wired into the running app via runner/vm-plan.ts). It is
|
|
77
|
+
// imported for `computeForwardedEnv` AND re-exported here so this module's
|
|
78
|
+
// importers (and its test) keep the `actions/context.js` specifier without a
|
|
79
|
+
// duplicate definition + duplicate named-set/prefix/suffix constants.
|
|
80
|
+
// vm-guards.ts is pure core, so importing it from another pure-core module is
|
|
81
|
+
// allowed.
|
|
82
|
+
import { isCredentialEnvName } from '../vm-guards.js';
|
|
83
|
+
export { isCredentialEnvName };
|
|
84
|
+
/**
|
|
85
|
+
* Compute the VM boot env from the `forward_env` list, dropping `omitVar` when
|
|
86
|
+
* set AND every credential-bearing var (strict boot-env policy). `omitVar` lets
|
|
87
|
+
* a caller exclude a single var by name; the runner strips all credential vars
|
|
88
|
+
* uniformly (the guest holds only a placeholder Gondolin substitutes at egress),
|
|
89
|
+
* so callers pass `omitVar = undefined` and rely on the credential filter.
|
|
90
|
+
* `readEnv` is injected so this stays deterministic and unit-testable (no
|
|
91
|
+
* `process.env` in core).
|
|
92
|
+
*
|
|
93
|
+
* A name that survives the credential filter but reads as empty/undefined is
|
|
94
|
+
* skipped (the original only forwarded vars with a non-empty value).
|
|
95
|
+
*/
|
|
96
|
+
export function computeForwardedEnv(forwardList, omitVar, readEnv) {
|
|
97
|
+
const env = {};
|
|
98
|
+
for (const k of forwardList) {
|
|
99
|
+
if (k === omitVar)
|
|
100
|
+
continue;
|
|
101
|
+
if (isCredentialEnvName(k))
|
|
102
|
+
continue;
|
|
103
|
+
const v = readEnv(k);
|
|
104
|
+
if (v && v.length > 0)
|
|
105
|
+
env[k] = v;
|
|
106
|
+
}
|
|
107
|
+
return env;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/core/actions/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,20 @@
|
|
|
1
|
-
//
|
|
1
|
+
// FCIS rewrite — pure parser for per-state `actions:` blocks.
|
|
2
2
|
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
|
|
3
|
+
// Functional core: every export here is a pure, synchronous (data) -> data
|
|
4
|
+
// function. No IO, no clock, no randomness, no node: imports. Imports only from
|
|
5
|
+
// src/types. Lifts the YAML shape of a per-state `actions:` block into the
|
|
6
|
+
// closed `WorkflowAction` union, validating each kind's required fields up-front
|
|
7
|
+
// so a missing `head:` on `create_pr_if_missing` (or a misspelled `kind:`) fails
|
|
8
|
+
// at workflow load instead of at the first dispatch into the terminal state.
|
|
9
|
+
//
|
|
10
|
+
// Ported faithfully from the original src/actions/parsing.ts.
|
|
11
|
+
import { WorkflowError } from '../../types/errors.js';
|
|
12
|
+
import { asString, asInt } from '../coerce.js';
|
|
8
13
|
const KNOWN_KINDS = [
|
|
9
14
|
'push_branch',
|
|
10
15
|
'create_pr_if_missing',
|
|
11
|
-
'ensure_branch',
|
|
12
|
-
'checkout',
|
|
13
|
-
'merge',
|
|
14
|
-
'delete_branch',
|
|
15
16
|
'run_in_vm',
|
|
16
|
-
'propose_followup',
|
|
17
17
|
];
|
|
18
|
-
function asString(v) {
|
|
19
|
-
return typeof v === 'string' ? v : null;
|
|
20
|
-
}
|
|
21
|
-
function asInt(v) {
|
|
22
|
-
if (typeof v === 'number' && Number.isFinite(v))
|
|
23
|
-
return Math.trunc(v);
|
|
24
|
-
if (typeof v === 'string' && /^-?\d+$/.test(v))
|
|
25
|
-
return parseInt(v, 10);
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
18
|
function expectString(stateName, idx, kind, key, v) {
|
|
29
19
|
const s = asString(v);
|
|
30
20
|
if (s === null || s.length === 0) {
|
|
@@ -70,13 +60,14 @@ function parseErrorPolicy(stateName, idx, raw) {
|
|
|
70
60
|
out.retry = { count, backoff_ms: backoff };
|
|
71
61
|
}
|
|
72
62
|
if (m.then !== undefined) {
|
|
63
|
+
const thenRouteTo = typeof m.then === 'object' && m.then !== null && !Array.isArray(m.then)
|
|
64
|
+
? m.then.route_to
|
|
65
|
+
: undefined;
|
|
73
66
|
if (m.then === 'abort') {
|
|
74
67
|
out.then = 'abort';
|
|
75
68
|
}
|
|
76
|
-
else if (typeof
|
|
77
|
-
|
|
78
|
-
typeof m.then.route_to === 'string') {
|
|
79
|
-
out.then = { route_to: m.then.route_to };
|
|
69
|
+
else if (typeof thenRouteTo === 'string') {
|
|
70
|
+
out.then = { route_to: thenRouteTo };
|
|
80
71
|
}
|
|
81
72
|
else {
|
|
82
73
|
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] "on_error.then" must be "abort" or {route_to: <state>}`);
|
|
@@ -123,75 +114,21 @@ function parseAction(stateName, idx, raw) {
|
|
|
123
114
|
body_from: expectString(stateName, idx, kind, 'body_from', m.body_from),
|
|
124
115
|
...cleanBase,
|
|
125
116
|
};
|
|
126
|
-
case 'ensure_branch':
|
|
127
|
-
return {
|
|
128
|
-
kind: 'ensure_branch',
|
|
129
|
-
name: expectString(stateName, idx, kind, 'name', m.name),
|
|
130
|
-
seed_from: asString(m.seed_from) ?? undefined,
|
|
131
|
-
...cleanBase,
|
|
132
|
-
};
|
|
133
|
-
case 'checkout':
|
|
134
|
-
return {
|
|
135
|
-
kind: 'checkout',
|
|
136
|
-
ref: expectString(stateName, idx, kind, 'ref', m.ref),
|
|
137
|
-
...cleanBase,
|
|
138
|
-
};
|
|
139
|
-
case 'merge': {
|
|
140
|
-
const onConflictRaw = m.on_conflict;
|
|
141
|
-
let onConflict;
|
|
142
|
-
if (onConflictRaw === 'abort') {
|
|
143
|
-
onConflict = 'abort';
|
|
144
|
-
}
|
|
145
|
-
else if (typeof onConflictRaw === 'object' &&
|
|
146
|
-
onConflictRaw !== null &&
|
|
147
|
-
!Array.isArray(onConflictRaw) &&
|
|
148
|
-
typeof onConflictRaw.route_to === 'string') {
|
|
149
|
-
onConflict = { route_to: onConflictRaw.route_to };
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (merge): "on_conflict" must be "abort" or {route_to: <state>}`);
|
|
153
|
-
}
|
|
154
|
-
return {
|
|
155
|
-
kind: 'merge',
|
|
156
|
-
source: expectString(stateName, idx, kind, 'source', m.source),
|
|
157
|
-
target: expectString(stateName, idx, kind, 'target', m.target),
|
|
158
|
-
on_conflict: onConflict,
|
|
159
|
-
...cleanBase,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
case 'delete_branch': {
|
|
163
|
-
const scope = asString(m.scope);
|
|
164
|
-
if (scope !== 'local' && scope !== 'remote' && scope !== 'both') {
|
|
165
|
-
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (delete_branch): "scope" must be one of local|remote|both`);
|
|
166
|
-
}
|
|
167
|
-
const remote = asString(m.remote) ?? undefined;
|
|
168
|
-
if ((scope === 'remote' || scope === 'both') && !remote) {
|
|
169
|
-
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (delete_branch): "remote" is required when scope includes "remote"`);
|
|
170
|
-
}
|
|
171
|
-
return {
|
|
172
|
-
kind: 'delete_branch',
|
|
173
|
-
name: expectString(stateName, idx, kind, 'name', m.name),
|
|
174
|
-
scope,
|
|
175
|
-
remote,
|
|
176
|
-
...cleanBase,
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
117
|
case 'run_in_vm': {
|
|
180
118
|
const name = asString(m.name);
|
|
181
119
|
if (!name || name.length === 0) {
|
|
182
|
-
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (run_in_vm): "name" is required (
|
|
120
|
+
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (run_in_vm): "name" is required (run-log label + snapshot key)`);
|
|
183
121
|
}
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
//
|
|
187
|
-
// can escape the namespace (e.g. via `..`). The cache layer also
|
|
188
|
-
// defensively encodes unsafe chars, but rejecting at parse time keeps
|
|
189
|
-
// the CLI surface honest.
|
|
122
|
+
// The name labels the action's run-log output + snapshot key. Restrict it
|
|
123
|
+
// to a safe identifier set so the label is unambiguous and free of path
|
|
124
|
+
// separators / leading dots.
|
|
190
125
|
if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(name)) {
|
|
191
126
|
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (run_in_vm): "name" must match /^[A-Za-z0-9][A-Za-z0-9._-]*$/ (got: ${JSON.stringify(name)})`);
|
|
192
127
|
}
|
|
193
128
|
const cmdRaw = m.cmd;
|
|
194
|
-
if (!Array.isArray(cmdRaw) ||
|
|
129
|
+
if (!Array.isArray(cmdRaw) ||
|
|
130
|
+
cmdRaw.length === 0 ||
|
|
131
|
+
!cmdRaw.every((s) => typeof s === 'string')) {
|
|
195
132
|
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (run_in_vm): "cmd" must be a non-empty list of strings`);
|
|
196
133
|
}
|
|
197
134
|
const envRaw = m.env;
|
|
@@ -224,33 +161,6 @@ function parseAction(stateName, idx, raw) {
|
|
|
224
161
|
action.timeout = timeout;
|
|
225
162
|
return action;
|
|
226
163
|
}
|
|
227
|
-
case 'propose_followup': {
|
|
228
|
-
const labelsRaw = m.labels;
|
|
229
|
-
let labels;
|
|
230
|
-
if (labelsRaw !== undefined) {
|
|
231
|
-
if (!Array.isArray(labelsRaw) || !labelsRaw.every((s) => typeof s === 'string')) {
|
|
232
|
-
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (propose_followup): "labels" must be a list of strings`);
|
|
233
|
-
}
|
|
234
|
-
labels = labelsRaw;
|
|
235
|
-
}
|
|
236
|
-
const priority = m.priority === undefined ? undefined : asInt(m.priority);
|
|
237
|
-
if (m.priority !== undefined && priority === null) {
|
|
238
|
-
throw new WorkflowError('workflow_parse_error', `state "${stateName}": actions[${idx}] (propose_followup): "priority" must be an integer`);
|
|
239
|
-
}
|
|
240
|
-
const action = {
|
|
241
|
-
kind: 'propose_followup',
|
|
242
|
-
title: expectString(stateName, idx, kind, 'title', m.title),
|
|
243
|
-
...cleanBase,
|
|
244
|
-
};
|
|
245
|
-
const body = asString(m.body);
|
|
246
|
-
if (body !== null)
|
|
247
|
-
action.body = body;
|
|
248
|
-
if (labels !== undefined)
|
|
249
|
-
action.labels = labels;
|
|
250
|
-
if (priority !== undefined && priority !== null)
|
|
251
|
-
action.priority = priority;
|
|
252
|
-
return action;
|
|
253
|
-
}
|
|
254
164
|
default: {
|
|
255
165
|
// Exhaustiveness check at the type level — adding a new kind to the union
|
|
256
166
|
// without extending this switch is a TypeScript error.
|
|
@@ -260,6 +170,15 @@ function parseAction(stateName, idx, raw) {
|
|
|
260
170
|
}
|
|
261
171
|
}
|
|
262
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Lift a per-state `actions:` YAML block into the typed `WorkflowAction` union.
|
|
175
|
+
*
|
|
176
|
+
* - `undefined` (no `actions:` key) -> `undefined`.
|
|
177
|
+
* - `null` (declared but empty) -> `[]`.
|
|
178
|
+
* - Any non-list -> throws `WorkflowError('workflow_parse_error', ...)`.
|
|
179
|
+
*
|
|
180
|
+
* Each entry is validated per-kind; the first invalid entry throws.
|
|
181
|
+
*/
|
|
263
182
|
export function parseActionsBlock(stateName, raw) {
|
|
264
183
|
if (raw === undefined)
|
|
265
184
|
return undefined;
|
|
@@ -270,4 +189,4 @@ export function parseActionsBlock(stateName, raw) {
|
|
|
270
189
|
}
|
|
271
190
|
return raw.map((entry, idx) => parseAction(stateName, idx, entry));
|
|
272
191
|
}
|
|
273
|
-
//# sourceMappingURL=
|
|
192
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/core/actions/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
// FCIS rewrite — pure action planner (ported from src/actions/effects.ts +
|
|
2
|
+
// the per-kind appliers in src/actions/executor.ts of the reference
|
|
3
|
+
// orchestrator).
|
|
4
|
+
//
|
|
5
|
+
// FUNCTIONAL CORE. Every function here is SYNCHRONOUS and pure: (data) -> data.
|
|
6
|
+
// No IO, no async/await/Promise, no clock, no randomness, no Effects executed.
|
|
7
|
+
// Imports ONLY from src/types (NodeNext ESM → .js extensions on relative
|
|
8
|
+
// imports) plus the sibling pure core helpers (template.ts, predicates.ts).
|
|
9
|
+
//
|
|
10
|
+
// WHAT MOVED INTO CORE (vs. the reference):
|
|
11
|
+
// • The reference `planActions` (src/actions/effects.ts) only rendered each
|
|
12
|
+
// action and emitted a `{ kind:'run' | 'render_failed' }` envelope; the
|
|
13
|
+
// ACTUAL git/gh/vm decisions lived in the async per-kind appliers in
|
|
14
|
+
// executor.ts (applyPushBranch, applyMerge, …). Those appliers WERE the
|
|
15
|
+
// side-effect-deciding logic interleaved with IO.
|
|
16
|
+
// • Here the per-kind mapping is lifted into the pure core: each rendered
|
|
17
|
+
// action is mapped to its git/gh/vm/tracker `Effect[]` SEQUENCE as DATA.
|
|
18
|
+
// The shell becomes a dumb interpreter that runs the emitted effects and
|
|
19
|
+
// folds outcomes back (the conditional branches the appliers used to take
|
|
20
|
+
// — "PR already exists? skip create", "non-fast-forward? force-with-lease"
|
|
21
|
+
// — are still in the shell's run-fold, but the candidate effects, including
|
|
22
|
+
// the NFF fallback sub-sequence, are produced here as data).
|
|
23
|
+
//
|
|
24
|
+
// The push_branch NFF (non-fast-forward) recovery is the keystone (mustFix, all
|
|
25
|
+
// judges): the planner emits BOTH the plain push and the force-with-lease
|
|
26
|
+
// fallback sub-sequence (fetch → rev-parse → push_force_with_lease) as data, so
|
|
27
|
+
// the shell never has to decide what the recovery looks like — only WHETHER to
|
|
28
|
+
// take it (on a non-fast-forward push result).
|
|
29
|
+
import { renderTree } from './template.js';
|
|
30
|
+
import { evaluatePredicate } from './predicates.js';
|
|
31
|
+
// ─── defaults (mirror src/actions/effects.ts) ────────────────────────────────
|
|
32
|
+
const DEFAULT_RETRY_COUNT = 3;
|
|
33
|
+
const DEFAULT_RETRY_BACKOFF_MS = 1_000;
|
|
34
|
+
/** Reference default per-command timeout (executor.ts defaultCommandTimeoutMs). */
|
|
35
|
+
const DEFAULT_COMMAND_TIMEOUT_MS = 300_000;
|
|
36
|
+
/**
|
|
37
|
+
* Pure planner — same inputs always produce the same `PlannedAction[]`.
|
|
38
|
+
*
|
|
39
|
+
* Faithful to src/actions/effects.ts:planActions for the envelope + snapshot
|
|
40
|
+
* keying; extended to emit the per-kind Effect sequence as data.
|
|
41
|
+
*/
|
|
42
|
+
export function planActions(actions, ctx, opts) {
|
|
43
|
+
return actions.map((action, index) => planOne(action, index, ctx, opts));
|
|
44
|
+
}
|
|
45
|
+
function planOne(action, index, ctx, opts) {
|
|
46
|
+
const snapshotKey = actionSnapshotKey(action, index);
|
|
47
|
+
const r = renderTree(action, ctx);
|
|
48
|
+
if (!r.ok) {
|
|
49
|
+
return { kind: 'render_failed', snapshotKey, error: r.error };
|
|
50
|
+
}
|
|
51
|
+
const rendered = r.value;
|
|
52
|
+
const predicate = evaluatePredicate(actionPredicate(rendered), ctx, opts.workspacePath);
|
|
53
|
+
const { effects, nffFallback } = mapEffects(rendered, opts);
|
|
54
|
+
return {
|
|
55
|
+
kind: 'run',
|
|
56
|
+
snapshotKey,
|
|
57
|
+
actionKind: rendered.kind,
|
|
58
|
+
rendered,
|
|
59
|
+
predicate,
|
|
60
|
+
policy: normalizePolicy(actionPolicy(rendered)),
|
|
61
|
+
effects,
|
|
62
|
+
nffFallback,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
// ─── snapshot keying (faithful to actionSnapshotKey) ──────────────────────────
|
|
66
|
+
function actionSnapshotKey(action, idx) {
|
|
67
|
+
if (action.name && action.name.length > 0)
|
|
68
|
+
return `${action.kind}:${action.name}`;
|
|
69
|
+
return `${action.kind}:#${idx}`;
|
|
70
|
+
}
|
|
71
|
+
// ─── policy normalization (faithful to effectivePolicy) ───────────────────────
|
|
72
|
+
// NOTE: the new NormalizedActionPolicy shape (src/types/actions.ts) flattens the
|
|
73
|
+
// reference `{ retry: { count, backoff_ms } }` into `{ retryCount, backoffMs }`.
|
|
74
|
+
function normalizePolicy(p) {
|
|
75
|
+
return {
|
|
76
|
+
retryCount: p?.retry?.count ?? DEFAULT_RETRY_COUNT,
|
|
77
|
+
backoffMs: p?.retry?.backoff_ms ?? DEFAULT_RETRY_BACKOFF_MS,
|
|
78
|
+
then: p?.then ?? 'abort',
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
// BaseAction carries `if`/`on_error` but the discriminated union has no shared
|
|
82
|
+
// accessor; read them positionally without widening to `any`.
|
|
83
|
+
function actionPredicate(a) {
|
|
84
|
+
return a.if;
|
|
85
|
+
}
|
|
86
|
+
function actionPolicy(a) {
|
|
87
|
+
return a.on_error;
|
|
88
|
+
}
|
|
89
|
+
function mapEffects(action, opts) {
|
|
90
|
+
switch (action.kind) {
|
|
91
|
+
case 'push_branch':
|
|
92
|
+
return mapPushBranch(action, opts);
|
|
93
|
+
case 'create_pr_if_missing':
|
|
94
|
+
return mapCreatePrIfMissing(action, opts);
|
|
95
|
+
case 'run_in_vm':
|
|
96
|
+
return mapRunInVm(action, opts);
|
|
97
|
+
default: {
|
|
98
|
+
// Exhaustiveness guard — a new kind without a mapping is a compile error.
|
|
99
|
+
const _exhaustive = action;
|
|
100
|
+
void _exhaustive;
|
|
101
|
+
return { effects: [], nffFallback: null };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// push_branch — `git push -u <remote> <ref>`, with the non-fast-forward
|
|
106
|
+
// recovery (fetch → rev-parse remote-tracking → push_force_with_lease) emitted
|
|
107
|
+
// as a SEPARATE data sub-sequence. Mirrors applyPushBranch + isNonFastForward.
|
|
108
|
+
//
|
|
109
|
+
// The reference resolved the remote SHA at runtime (it read the live remote-
|
|
110
|
+
// tracking ref). Core cannot read the remote, so `expectedRemoteSha` is a
|
|
111
|
+
// placeholder ('') the shell rewrites with the SHA the preceding rev_parse
|
|
112
|
+
// returns. The lease keeps the force-push safe under a true concurrent push.
|
|
113
|
+
function mapPushBranch(action, opts) {
|
|
114
|
+
const cwd = opts.workspacePath;
|
|
115
|
+
const effects = [
|
|
116
|
+
{ family: 'git', kind: 'push', cwd, remote: action.remote, ref: action.ref },
|
|
117
|
+
];
|
|
118
|
+
const remoteTrackingRef = `refs/remotes/${action.remote}/${action.ref}`;
|
|
119
|
+
const nffFallback = [
|
|
120
|
+
{ family: 'git', kind: 'fetch', cwd, remote: action.remote, ref: action.ref },
|
|
121
|
+
{ family: 'git', kind: 'rev_parse', cwd, ref: remoteTrackingRef },
|
|
122
|
+
{
|
|
123
|
+
family: 'git',
|
|
124
|
+
kind: 'push_force_with_lease',
|
|
125
|
+
cwd,
|
|
126
|
+
remote: action.remote,
|
|
127
|
+
ref: action.ref,
|
|
128
|
+
// Placeholder; shell substitutes the SHA from the rev_parse above.
|
|
129
|
+
expectedRemoteSha: '',
|
|
130
|
+
},
|
|
131
|
+
];
|
|
132
|
+
return { effects, nffFallback };
|
|
133
|
+
}
|
|
134
|
+
// create_pr_if_missing — `gh pr list/view` then `gh pr create` if missing.
|
|
135
|
+
// Mirrors applyCreatePrIfMissing. The reference probed `gh pr view <head>`
|
|
136
|
+
// (non-zero ⇒ open one). The effect union models the probe as
|
|
137
|
+
// `gh.pr_list_for_branch` (head branch → existing PR?), and the create as
|
|
138
|
+
// `gh.pr_create`. The shell skips the create when the probe finds a PR.
|
|
139
|
+
//
|
|
140
|
+
// body_from / `--body-file` vs `--body`: the reference decided this at runtime
|
|
141
|
+
// by stat-ing the body string against the workspace (looksLikeFile). Core
|
|
142
|
+
// cannot stat, so it carries `bodyIsFile` as a STRUCTURAL guess (a single-line
|
|
143
|
+
// path-shaped value); the shell confirms the file exists before choosing the
|
|
144
|
+
// flag. A multi-line body is unambiguously NOT a file.
|
|
145
|
+
function mapCreatePrIfMissing(action, opts) {
|
|
146
|
+
const cwd = opts.workspacePath;
|
|
147
|
+
const effects = [
|
|
148
|
+
{ family: 'gh', kind: 'pr_list_for_branch', cwd, branch: action.head },
|
|
149
|
+
{
|
|
150
|
+
family: 'gh',
|
|
151
|
+
kind: 'pr_create',
|
|
152
|
+
cwd,
|
|
153
|
+
base: action.base,
|
|
154
|
+
head: action.head,
|
|
155
|
+
title: action.title_from,
|
|
156
|
+
bodyOrFile: action.body_from,
|
|
157
|
+
bodyIsFile: looksLikeFilePath(action.body_from),
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
return { effects, nffFallback: null };
|
|
161
|
+
}
|
|
162
|
+
// run_in_vm — a plain uncached `vm.exec` on the live per-issue VM. Mirrors
|
|
163
|
+
// applyRunInVm / executeRunInVm. The exec timeout mirrors executeRunInVm:
|
|
164
|
+
// action.timeout (seconds) overrides the bound default (ms).
|
|
165
|
+
function mapRunInVm(action, opts) {
|
|
166
|
+
const env = action.env ?? {};
|
|
167
|
+
const timeoutMs = action.timeout !== undefined
|
|
168
|
+
? action.timeout * 1000
|
|
169
|
+
: (opts.defaultCommandTimeoutMs ?? DEFAULT_COMMAND_TIMEOUT_MS);
|
|
170
|
+
const effects = [
|
|
171
|
+
// vmId is a placeholder the shell binds to the per-issue VM at exec time
|
|
172
|
+
// (core has no handle to the live VM). workdir is the workspace mount.
|
|
173
|
+
{
|
|
174
|
+
family: 'vm',
|
|
175
|
+
kind: 'exec',
|
|
176
|
+
vmId: '',
|
|
177
|
+
command: action.cmd,
|
|
178
|
+
workdir: opts.workspacePath,
|
|
179
|
+
env,
|
|
180
|
+
timeoutMs,
|
|
181
|
+
},
|
|
182
|
+
];
|
|
183
|
+
return { effects, nffFallback: null };
|
|
184
|
+
}
|
|
185
|
+
// ─── helpers ──────────────────────────────────────────────────────────────────
|
|
186
|
+
/**
|
|
187
|
+
* Structural guess at whether a `body_from` value names a file (so the shell
|
|
188
|
+
* passes `--body-file` rather than `--body`). The reference (looksLikeFile)
|
|
189
|
+
* stat-ed the path against the workspace — an IO read core cannot do — so here
|
|
190
|
+
* we only rule OUT the unambiguous non-paths: empty strings and multi-line
|
|
191
|
+
* bodies. A single-line value is FLAGGED as file-shaped; the shell confirms the
|
|
192
|
+
* file exists before committing to `--body-file`.
|
|
193
|
+
*/
|
|
194
|
+
function looksLikeFilePath(value) {
|
|
195
|
+
return value.length > 0 && !value.includes('\n');
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/core/actions/plan.ts"],"names":[],"mappings":"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"}
|