lastlight-workflow-engine 0.4.0 → 0.6.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.
@@ -115,6 +115,77 @@ const GenericLoopSchema = z
115
115
  .refine((v) => v.until !== undefined || v.until_bash !== undefined, {
116
116
  message: "generic_loop requires at least one of: until, until_bash",
117
117
  });
118
+ // ── Fan-out branches (`type: fanout`) ─────────────────────────────────
119
+ /**
120
+ * One branch of a `type: fanout` phase — a single agent session run
121
+ * CONCURRENTLY with its siblings inside the phase's one provisioned workspace.
122
+ *
123
+ * `name` is deliberately restricted to `[A-Za-z0-9-]` (no underscores). Every
124
+ * branch gets its own `executions` row keyed `<phase>_branch_<name>`, plus
125
+ * `_retry` / `_check` variants, and {@link PhaseRef.parse} has to split those
126
+ * back apart against a BASE phase name that may itself contain underscores
127
+ * (`survey_contract`). Forbidding `_` in the branch half is what makes the split
128
+ * unambiguous rather than heuristic.
129
+ */
130
+ const FanoutBranchSchema = z
131
+ .object({
132
+ /** Branch identity — the ledger key, the skill-bundle key, and the label. */
133
+ name: z
134
+ .string()
135
+ .regex(/^[A-Za-z0-9][A-Za-z0-9-]*$/, "a fanout branch name must be alphanumeric with hyphens (no underscores — see PhaseRef)")
136
+ .refine((n) => !/-(retry|check)$/.test(n), {
137
+ message: "a fanout branch name may not end in `-retry` or `-check` (reserved ledger suffixes)",
138
+ }),
139
+ /** Prompt template for this branch. Falls back to the phase's own `prompt`. */
140
+ prompt: z.string().optional(),
141
+ /** Skill override for this branch. Falls back to the phase's `skill`/`skills`. */
142
+ skill: z.string().optional(),
143
+ skills: z.array(z.string()).min(1).optional(),
144
+ /** Model / reasoning-effort override. Falls back to the phase's. */
145
+ model: z.string().optional(),
146
+ variant: z.string().optional(),
147
+ /**
148
+ * Post-branch condition, run in the SAME workspace after every branch has
149
+ * joined. Observational, exactly like a `generic_loop.until_bash` on a loop
150
+ * with `max_iterations: 1`: it records a `<phase>_branch_<name>_check`
151
+ * ledger row with `condition_met` / `condition_not_met` and can never fail
152
+ * the phase. Literal shell only — `{{` is rejected, same as everywhere else.
153
+ */
154
+ until_bash: z.string().optional(),
155
+ /** Per-branch timeout for `until_bash` (seconds). */
156
+ timeout_seconds: TemplatedNumberSchema.optional(),
157
+ /**
158
+ * A workspace file whose CONTENTS are appended to this branch's rendered
159
+ * prompt — resolved **relative to the agent's own working directory** and
160
+ * read by the harness, never by the model.
161
+ *
162
+ * **This exists because a path in a prompt is not a path.** Measured across
163
+ * three stored pr-review runs (2026-08-22): of 120 non-spec survey branches,
164
+ * 27 first-turn reads of the per-family obligations file went to
165
+ * `<workspaceRoot>/.lastlight/…` instead of `<checkout>/.lastlight/…` and
166
+ * hit ENOENT; 23 of those branches never recovered. Every single failure
167
+ * was the workspace-root ABSOLUTE form and every one of the 98 relative
168
+ * reads succeeded — the model was joining the prompt's relative path onto
169
+ * the only absolute base it had been handed at that point, the skill bundle
170
+ * (`<workspaceRoot>/.lastlight-skills/<phase>/<skill>/SKILL.md`), which sits
171
+ * one level ABOVE the checkout. Those branches then took the prompt's
172
+ * "if the file does not exist, work the diff directly" escape hatch, so a
173
+ * SEEDED pass silently became an unseeded one and which questions got asked
174
+ * varied per run.
175
+ *
176
+ * Appending the bytes removes the resolution from the model entirely: the
177
+ * harness reads the file at the same base the deterministic phases wrote it
178
+ * (`ProvisionResult.hostAgentCwd`, the host view of the very `cwd` a
179
+ * `type: bash` phase runs in), so the producer and the consumer cannot
180
+ * disagree about where the file is. A file the harness cannot read appends a
181
+ * LOUD notice naming the path instead — "nobody looked" never renders as
182
+ * "looked and found none".
183
+ */
184
+ context_file: z.string().optional(),
185
+ })
186
+ .refine((b) => !(b.skill && b.skills), {
187
+ message: "a fanout branch cannot specify both `skill` and `skills`",
188
+ });
118
189
  // ── Phase definition ──────────────────────────────────────────────────
119
190
  const PhaseDefinitionSchema = z
120
191
  .object({
@@ -141,14 +212,28 @@ const PhaseDefinitionSchema = z
141
212
  * `GitHubClient`. Runs on the harness (no sandbox); a genuine failure
142
213
  * fails the phase, a legitimate `skip` succeeds without posting. See
143
214
  * `PhaseExecutor.runPostReview`.
215
+ * - `fanout`: run N agent sessions CONCURRENTLY inside ONE provisioned
216
+ * workspace. Requires `branches:`. See {@link FanoutBranchSchema} and the
217
+ * note below.
144
218
  *
145
219
  * `bash`/`script` phases run in the SAME sandbox/workspace as agent
146
220
  * phases (the host workDir persists across phases keyed by taskId), honour
147
221
  * `unrestricted_egress`/`sandbox_image`/`timeout_seconds`, and expose
148
222
  * their stdout downstream exactly like an agent phase (`output_var` →
149
223
  * `{{phaseOutputs.<name>.output}}`). A non-zero exit fails the phase.
224
+ *
225
+ * **Why `fanout` is one node rather than N parallel phases.** Real DAG
226
+ * concurrency is parked (`docs/plans/deterministic-pr-levers.md` §WP5)
227
+ * behind four hard blockers and seven design changes, and that doc records
228
+ * why: *"every hard blocker exists because each phase provisions its own
229
+ * sandbox against a shared workspace"*. A fan-out INSIDE one phase has none
230
+ * of them — one node, one provision, one `current_phase`, one artifact
231
+ * harvest, one dispose. What it gives up is a DAG node per branch; what it
232
+ * keeps (because each branch still goes through the dedup ledger under its
233
+ * own `<phase>_branch_<name>` key) is resume, dedup, per-branch cost
234
+ * attribution and the dashboard's longest-prefix grouping.
150
235
  */
151
- type: z.enum(["context", "agent", "bash", "script", "post-review"]).default("agent"),
236
+ type: z.enum(["context", "agent", "bash", "script", "post-review", "fanout"]).default("agent"),
152
237
  /**
153
238
  * Shell command for `type: bash`. Rendered through the template engine
154
239
  * first (so it may reference `{{phaseOutputs.*}}`, `{{branch}}`, etc.),
@@ -170,15 +255,17 @@ const PhaseDefinitionSchema = z
170
255
  */
171
256
  runtime: z.enum(["js", "ts", "python"]).optional(),
172
257
  /**
173
- * Per-step timeout in seconds for `bash`/`script` phases, and for an agent
174
- * phase's `generic_loop.until_bash` gate. Defaults to the sandbox's
175
- * configured timeout (fallback 300s for deterministic steps, 30s for a
176
- * loop condition).
258
+ * Timeout in seconds. What it bounds depends on the phase:
259
+ * - `bash`/`script` phase: the command.
260
+ * - standard or reviewer-`loop` agent phase: each agent run (forwarded to
261
+ * `AgentPort.runAgent` as `opts.timeoutSeconds`).
262
+ * - `generic_loop` agent phase: the `until_bash` gate ONLY (the agent keeps
263
+ * the backend's agent limit). With no `timeout_seconds` the gate reads
264
+ * `timeouts.untilBashSeconds` from the run context — never a literal.
177
265
  *
178
- * Accepts `{ from: <ctx path>, default: N }` — see
179
- * {@link TemplatedNumberSchema}. `pr-fix` / `dependabot-ci-fix` read
180
- * `fix.gateTimeoutSeconds` that way, so the repo-clamped config value is
181
- * what actually bounds the gate.
266
+ * Accepts `{ from: <ctx path> }` — see {@link TemplatedNumberSchema}; an
267
+ * unresolvable key fails the phase. `pr-fix` / `dependabot-ci-fix` read
268
+ * `fix.gateTimeoutSeconds` that way, and build reads `gate.phaseTimeoutSeconds`.
182
269
  */
183
270
  timeout_seconds: TemplatedNumberSchema.optional(),
184
271
  /**
@@ -356,6 +443,48 @@ const PhaseDefinitionSchema = z
356
443
  loop: PhaseLoopSchema.optional(),
357
444
  /** Generic loop configuration — expression/bash-based completion conditions */
358
445
  generic_loop: GenericLoopSchema.optional(),
446
+ /**
447
+ * The branches of a `type: fanout` phase. Required for that type, rejected
448
+ * on every other. Order is declaration order and is what the results are
449
+ * reported in; it does NOT constrain execution order.
450
+ */
451
+ branches: z.array(FanoutBranchSchema).min(1).optional(),
452
+ /**
453
+ * How many fan-out branches may be in flight at once. Accepts the
454
+ * `{ from: <ctx path>, default: N }` form so an operator dials it from
455
+ * config without forking the workflow.
456
+ *
457
+ * **This is a ceiling the run then clamps further, per backend.** The host
458
+ * has the last word: `gondolin` boots a QEMU micro-VM per agent session in
459
+ * the harness process (WP5's D7 — the nearform host has no swap and has
460
+ * wedged under memory pressure), and `smol`/`kubernetes` are unverified, so
461
+ * all three clamp to 1 and run the branches sequentially. `none` and
462
+ * `docker` take the declared value. A clamp to 1 is byte-identical to
463
+ * running the branches as a chain, which is what makes this safe to ship
464
+ * before the backends are measured.
465
+ */
466
+ max_concurrent: TemplatedNumberSchema.optional(),
467
+ /**
468
+ * What a SOFT branch outcome costs — a clean exit that produced no usable
469
+ * output (`stopReason` `unknown` / `error_truncated`), as opposed to a real
470
+ * crash. Mirrors `generic_loop.on_soft_failure`, and exists as its own
471
+ * phase-level key rather than reusing that name for a reason worth stating:
472
+ * `on_soft_failure` at PHASE level is stripped by zod (it belongs to
473
+ * `generic_loop`), which is exactly how all six survey phases silently ran
474
+ * with `{retries: 0, then: fail}` until 2026-08-22. A distinct key cannot be
475
+ * confused with it, and `fanout-policy.test.ts` pins the EFFECTIVE resolved
476
+ * value off the shipped YAML rather than the key's presence.
477
+ *
478
+ * Absent ⇒ `{ retries: 0, then: "complete" }`. Note the default `then`
479
+ * differs from `generic_loop`'s: a fan-out exists to gather independent
480
+ * evidence, so one degenerate branch must not discard the other five.
481
+ */
482
+ on_branch_soft_failure: z
483
+ .object({
484
+ retries: z.number().int().min(0).default(0),
485
+ then: z.enum(["fail", "complete"]).default("complete"),
486
+ })
487
+ .optional(),
359
488
  /** Rules applied to agent output */
360
489
  on_output: PhaseOnOutputSchema.optional(),
361
490
  /** Actions taken on successful completion */
@@ -393,7 +522,7 @@ const PhaseDefinitionSchema = z
393
522
  }
394
523
  }
395
524
  else {
396
- // context / agent
525
+ // context / agent / post-review / fanout
397
526
  if (p.command !== undefined) {
398
527
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: "`command:` is only valid on type `bash`" });
399
528
  }
@@ -404,6 +533,48 @@ const PhaseDefinitionSchema = z
404
533
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: "`runtime:` is only valid on type `script`" });
405
534
  }
406
535
  }
536
+ // ── Fan-out ──────────────────────────────────────────────────────────────
537
+ if (type === "fanout") {
538
+ if (!p.branches?.length) {
539
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "phase type `fanout` requires a non-empty `branches:`" });
540
+ }
541
+ // A fan-out cannot pause. `pauseForApproval` persists the run as `paused`
542
+ // and RETURNS — under N in-flight sessions there is nothing to return to,
543
+ // and a sibling finishing afterwards would flip the run to `succeeded`
544
+ // over the top of `paused` and orphan the approval row. That is WP5's B2,
545
+ // the one item its own doc calls "silent corruption — the worst in this
546
+ // list", and refusing the combination is how a fan-out never meets it.
547
+ for (const key of ["approval_gate", "approval_artifact", "approval_gate_message"]) {
548
+ if (p[key] !== undefined) {
549
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `\`${key}:\` is not supported on type \`fanout\` (a fan-out cannot pause mid-flight)` });
550
+ }
551
+ }
552
+ // The branches ARE the iteration shape; a second one on top of them would
553
+ // multiply concurrent sessions by the loop count with nothing bounding it.
554
+ if (p.loop !== undefined || p.generic_loop !== undefined) {
555
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "`loop:`/`generic_loop:` are not supported on type `fanout` — use `branches[].until_bash`" });
556
+ }
557
+ const names = p.branches?.map((b) => b.name) ?? [];
558
+ if (new Set(names).size !== names.length) {
559
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "fanout branch names must be unique (they are ledger keys)" });
560
+ }
561
+ // Every branch must be able to build a prompt — `buildPhasePrompt` throws
562
+ // otherwise, and it would throw INSIDE the fan-out where the failure reads
563
+ // as a branch crash rather than as a malformed workflow.
564
+ for (const b of p.branches ?? []) {
565
+ const hasSkills = !!(b.skill || b.skills?.length || p.skill || p.skills?.length);
566
+ if (!b.prompt && !p.prompt && !hasSkills) {
567
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `fanout branch \`${b.name}\` has neither \`prompt:\` nor \`skills:\` (and the phase supplies neither)` });
568
+ }
569
+ }
570
+ }
571
+ else {
572
+ for (const key of ["branches", "max_concurrent", "on_branch_soft_failure"]) {
573
+ if (p[key] !== undefined) {
574
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `\`${key}:\` is only valid on type \`fanout\`` });
575
+ }
576
+ }
577
+ }
407
578
  });
408
579
  /**
409
580
  * Normalize a phase's skill declaration to a single list of names.
@@ -491,6 +662,144 @@ export const AgentWorkflowSchema = z.object({
491
662
  * `apps/server/src/workflows/pr-scope.ts`.
492
663
  */
493
664
  pr_scoped: z.boolean().optional(),
665
+ /**
666
+ * What the GitHub token minted for this workflow's sandbox may DO.
667
+ *
668
+ * A sibling of `pr_scoped` and load-bearing in the same way: it selects the
669
+ * permission profile (`GITHUB_PERMISSION_PROFILES` in
670
+ * `apps/server/src/engine/github/profiles.ts`) that the harness mints an
671
+ * installation token against and forwards as `GITHUB_TOKEN`, and it decides
672
+ * the agentic github-tool set the sandbox is given.
673
+ *
674
+ * - `read` — contents:read. The default, and the right answer for anything
675
+ * that never writes to GitHub.
676
+ * - `issues-write` — contents:read + issues:write + pull_requests:write
677
+ * (the last is needed to comment on a PR at all). Workflows that read the
678
+ * repo and post a findings/answer/demo comment but never push code.
679
+ * - `review-write` — as above plus the ability to SUBMIT a formal review on
680
+ * a pull request. `pr-review`'s profile.
681
+ * - `repo-write` — contents:write. The code-pushing profiles, plus
682
+ * `dependabot-pr-merge`, which never pushes but needs
683
+ * `github_enable_auto_merge` (that tool lives in the repo-write profile).
684
+ *
685
+ * `repo-write` also switches the sandbox pre-clone OFF `--depth 1`: only the
686
+ * pushing profiles keep the deeper clone for rebase/amend headroom
687
+ * (`shallow` in `gitSandboxAccessForWorkflow`).
688
+ *
689
+ * This used to be a `switch` over literal workflow names in
690
+ * `workflows/runner.ts`, so a workflow that exists only in a deployment
691
+ * overlay could never be anything but `read` — a reviewer arm shipped in an
692
+ * overlay silently could not submit its review (issue #368). Unlike
693
+ * `pr_scoped`, this key does not merely add restrictions: an overlay
694
+ * declaring `repo-write` mints itself a push token. That is deliberate —
695
+ * overlays already own prompts, skills and the agent persona, and are
696
+ * trusted.
697
+ */
698
+ git_access: z.enum(["read", "issues-write", "review-write", "repo-write"]).optional(),
699
+ /**
700
+ * How this workflow's sandbox workspace is KEYED and how a re-run treats an
701
+ * existing checkout.
702
+ *
703
+ * - `per-run` (default) — a fresh workspace per run, keyed by
704
+ * (repo, issue, workflow, run-id). Reaped on success.
705
+ *
706
+ * - `per-target-reuse` — the workspace is keyed by **(repo, PR)** rather
707
+ * than per-run. The taskId drops the run-id suffix so re-reviews of the
708
+ * same PR (push → `synchronize`, cron PR-review fanout) reuse one sandbox
709
+ * dir — a warm `node_modules` + an incremental `git fetch` instead of a
710
+ * fresh 1.3G clone + full install each time, and N dirs/PR collapse to 1
711
+ * (issue #107, cutting the #106 churn at its source). Concurrency is held
712
+ * off by the dispatcher's `isRunning(skill, triggerId)` guard plus
713
+ * `runs.getByTrigger` reuse — two runs never share the dir live; the
714
+ * cross-run refresh in `prePopulateWorkspace` resets it cleanly between
715
+ * them. `dependabot-pr-merge` uses this despite having no checkout at
716
+ * all: it is always single-PR (webhook or the cron's per-PR fan-out), so
717
+ * a repeated `pr.checks_passed` and the daily cron backstop for the same
718
+ * PR dedup onto one dir/run rather than stacking.
719
+ *
720
+ * - `per-target-recreate` — keyed by (repo, issue) exactly like
721
+ * `per-target-reuse`, but a *different*-run marker triggers a delete +
722
+ * fresh clone off the DEFAULT branch, not a `git fetch`/reset of the
723
+ * (stale) feature branch. This makes an incomplete `build` disposable:
724
+ * re-triggering it starts again from current `main` (issue #153). A
725
+ * genuine *resume* of the same run (approval gate) still preserves the
726
+ * workspace via the same-run marker — the architect's `plan.md` survives.
727
+ * Concurrency is held off by the same `isRunning` guard, so the delete
728
+ * only ever hits a leftover from a finished/abandoned run. `build` must
729
+ * not merely *refresh* a stale checkout — that would reset onto the old
730
+ * feature branch.
731
+ *
732
+ * Neither per-target class is reaped on success (`reapOnSuccess`): they are a
733
+ * warm cache whose eviction belongs to the backstop TTL/LRU sweep.
734
+ *
735
+ * Was two hardcoded name sets in `workflows/target-policy.ts`, which could
736
+ * also express the illegal state "both" (issue #368).
737
+ */
738
+ workspace: z.enum(["per-run", "per-target-reuse", "per-target-recreate"]).optional(),
739
+ /**
740
+ * This workflow synthesizes its own `lastlight/N-slug` branch (which doesn't
741
+ * exist on the remote at dispatch time) yet should still PRE-POPULATE the
742
+ * sandbox: the agent's cwd becomes the repo root (no `git clone`/`cd`), and —
743
+ * for the read-only `verify`/`qa-test` runs — server-mode artifacts the agent
744
+ * writes to `.lastlight/<key>/` (e.g. browser-QA screenshots) land where
745
+ * `serverArtifacts()` harvests them instead of being orphaned a level up.
746
+ * `build` was the original member; verify/qa-test were added for the harvest
747
+ * fix, and `demo` for the same reason (its `demo.mp4` is written under
748
+ * `.lastlight/<key>/` and harvested into the Artifacts store).
749
+ *
750
+ * For a fresh (issue-scoped) dispatch the dispatcher leaves
751
+ * `prePopulateBranch` unset and the missing-branch fallback in
752
+ * `prePopulateWorkspace` clones the default branch — correct for
753
+ * `build`/`demo`, which *create* the synth branch off the default. But when
754
+ * the *same* workflow runs against an existing PR, the synth
755
+ * `lastlight/<prNumber>-<title-slug>` name won't match the PR's real head ref
756
+ * (named after the originating issue), so the fallback would clone the
757
+ * default branch and test/demo code that lacks the PR — see
758
+ * {@link prepopulate_pr_head_ref}, the orthogonal key that fixes that.
759
+ */
760
+ prepopulate_synth_branch: z.boolean().optional(),
761
+ /**
762
+ * When there IS a real pull request, pin the pre-populated workspace to the
763
+ * PR's *real* head ref (via `getPullRequest(...).head.ref`) instead of
764
+ * letting it fall back to the synthesized `lastlight/N-<title-slug>` name.
765
+ *
766
+ * Each workflow that declares this is meaningful only against an existing PR,
767
+ * and the synth name never matches the PR's actual branch (which is named
768
+ * after the originating issue, e.g. `lastlight/14-…` for a PR #15). Without
769
+ * this pinning:
770
+ * - `qa-test` / `verify` QA the *base* branch and report the PR's feature
771
+ * missing — a false-negative result.
772
+ * - `demo`'s "after" collapses onto the default branch, matching "before".
773
+ *
774
+ * Orthogonal to {@link prepopulate_synth_branch} — "pre-populate even though
775
+ * my branch is synthesized" and "when there is a real PR, pin to its head
776
+ * ref" are different facts, and three workflows declare both. `pr_fix_shaped`
777
+ * workflows get head-ref pinning implicitly (they also plumb `branch` through
778
+ * context for the architect/executor to push to), so they need not declare
779
+ * this. See the resolution block in `dispatchWorkflow` (src/index.ts).
780
+ */
781
+ prepopulate_pr_head_ref: z.boolean().optional(),
782
+ /**
783
+ * This workflow is shaped like `pr-fix`: dispatched off a PR event, it
784
+ * resolves the PR's head branch + failed-check details and pushes a fix to
785
+ * that branch.
786
+ *
787
+ * The dispatcher routes every workflow declaring this through `handlePrFix`
788
+ * (branch resolution, CI failure summary, fork-PR skip), and
789
+ * `dispatchWorkflow` honours the `branch` they plumb through context as the
790
+ * pre-populate branch. It is also the family the fix ledger keys on: shared
791
+ * per-PR workspace (`${repo}-${N}-fix`), the `models["pr-fix-retry"]`
792
+ * escalation, the fix-marker harvest, and the admin PR-retry route's
793
+ * "which workflow last worked this PR" lookup.
794
+ *
795
+ * `dependabot-ci-fix` (fix a failing dependency-update PR, then auto-merge
796
+ * trivial ones) is the second member.
797
+ *
798
+ * Requires `pr_scoped: true` — the loader enforces it. Being routed through
799
+ * `handlePrFix` only makes sense inside the PR gate, and the two built-in
800
+ * members have always been a strict subset of the PR-scoped set.
801
+ */
802
+ pr_fix_shaped: z.boolean().optional(),
494
803
  /**
495
804
  * Render progress as a single in-place "task list" comment/message that is
496
805
  * edited as phases run, instead of posting a new comment per phase. When
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
@@ -41,10 +41,17 @@
41
41
  * runner. A repo that lowered its own budget is honoured for free; a repo that
42
42
  * tried to raise it was clamped before it ever reached here.
43
43
  *
44
- * Anything else — key absent, non-numeric, zero, negative, `NaN` — falls back
45
- * to `default` and warns. It never throws and never yields a non-positive
46
- * number, because both consumers are a kill timeout and a loop bound, where
47
- * `0` means "never run" and a negative means nothing at all.
44
+ * Anything else — key absent, non-numeric, zero, negative, `NaN` — is handled
45
+ * by whether the spec declares a `default`:
46
+ * - **no `default`** (the shape every packaged workflow now uses, issue #385):
47
+ * it THROWS, naming the key. Config is the single source of every budget;
48
+ * an unresolved key is a wiring bug to surface, not a gap to paper over
49
+ * with a number nobody can see in the resolved config.
50
+ * - **a `default`** (tolerated for overlay-forked YAML written before #385):
51
+ * falls back to it and warns.
52
+ * It never yields a non-positive number, because the consumers are kill
53
+ * timeouts and loop bounds, where `0` means "never run" and a negative means
54
+ * nothing at all.
48
55
  */
49
56
  import { z } from "zod";
50
57
  import { type TemplateContext } from "./templates.js";
@@ -59,15 +66,15 @@ import { type LoggerPort } from "../ports/ports.js";
59
66
  */
60
67
  export declare const TemplatedNumberSchema: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
61
68
  from: z.ZodString;
62
- default: z.ZodNumber;
69
+ default: z.ZodOptional<z.ZodNumber>;
63
70
  }, z.core.$strict>]>;
64
71
  export type TemplatedNumber = z.infer<typeof TemplatedNumberSchema>;
65
72
  /**
66
73
  * Resolve a {@link TemplatedNumber} against a run's context.
67
74
  *
68
75
  * `undefined` in, `undefined` out — the fields this governs are optional and
69
- * their callers supply their own absent-value behaviour (`?? 30` for a
70
- * command phase's timeout).
76
+ * their callers decide what an ABSENT spec means (never a numeric literal).
77
+ * A spec that is present but unresolvable, with no `default`, throws.
71
78
  *
72
79
  * A resolved non-integer is rounded UP rather than rejected: the only duration
73
80
  * key that reaches here (`fix.gateTimeoutSeconds`) is documented as accepting
@@ -41,10 +41,17 @@
41
41
  * runner. A repo that lowered its own budget is honoured for free; a repo that
42
42
  * tried to raise it was clamped before it ever reached here.
43
43
  *
44
- * Anything else — key absent, non-numeric, zero, negative, `NaN` — falls back
45
- * to `default` and warns. It never throws and never yields a non-positive
46
- * number, because both consumers are a kill timeout and a loop bound, where
47
- * `0` means "never run" and a negative means nothing at all.
44
+ * Anything else — key absent, non-numeric, zero, negative, `NaN` — is handled
45
+ * by whether the spec declares a `default`:
46
+ * - **no `default`** (the shape every packaged workflow now uses, issue #385):
47
+ * it THROWS, naming the key. Config is the single source of every budget;
48
+ * an unresolved key is a wiring bug to surface, not a gap to paper over
49
+ * with a number nobody can see in the resolved config.
50
+ * - **a `default`** (tolerated for overlay-forked YAML written before #385):
51
+ * falls back to it and warns.
52
+ * It never yields a non-positive number, because the consumers are kill
53
+ * timeouts and loop bounds, where `0` means "never run" and a negative means
54
+ * nothing at all.
48
55
  */
49
56
  import { z } from "zod";
50
57
  import { lookupContextKey } from "./templates.js";
@@ -63,8 +70,11 @@ export const TemplatedNumberSchema = z.union([
63
70
  .object({
64
71
  /** Dotted path into the run's template context, e.g. `fix.localIterations`. */
65
72
  from: z.string().min(1),
66
- /** The packaged value — used verbatim when `from` resolves to nothing usable. */
67
- default: z.number().int().positive(),
73
+ /**
74
+ * Optional fallback used when `from` resolves to nothing usable. Omit it
75
+ * (the packaged workflows do) and an unresolved key is a loud error.
76
+ */
77
+ default: z.number().int().positive().optional(),
68
78
  })
69
79
  .strict(),
70
80
  ]);
@@ -72,8 +82,8 @@ export const TemplatedNumberSchema = z.union([
72
82
  * Resolve a {@link TemplatedNumber} against a run's context.
73
83
  *
74
84
  * `undefined` in, `undefined` out — the fields this governs are optional and
75
- * their callers supply their own absent-value behaviour (`?? 30` for a
76
- * command phase's timeout).
85
+ * their callers decide what an ABSENT spec means (never a numeric literal).
86
+ * A spec that is present but unresolvable, with no `default`, throws.
77
87
  *
78
88
  * A resolved non-integer is rounded UP rather than rejected: the only duration
79
89
  * key that reaches here (`fix.gateTimeoutSeconds`) is documented as accepting
@@ -92,9 +102,13 @@ log = noopLogger) {
92
102
  const raw = lookupContextKey(ctx, value.from);
93
103
  const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : Number.NaN;
94
104
  if (!Number.isFinite(n) || n <= 0) {
95
- // Not an error: a workflow may legitimately run in a context that carries
96
- // no `fix` block (a manual trigger, a resumed pre-upgrade run). The warning
97
- // is what stops a MISSPELLED `from:` from looking identical to that.
105
+ if (value.default === undefined) {
106
+ throw new Error(`${where}: \`from: ${value.from}\` did not resolve to a positive number ` +
107
+ `(got ${raw === undefined ? "nothing" : JSON.stringify(raw)}) — the run context must carry ` +
108
+ `\`${value.from}\` from resolved config; there is no fallback`);
109
+ }
110
+ // A legacy spec with its own fallback. The warning is what stops a
111
+ // MISSPELLED `from:` from looking identical to a context without the block.
98
112
  log.warn("templated number did not resolve to a positive number — using default", {
99
113
  where,
100
114
  from: value.from,
@@ -1 +1 @@
1
- {"version":3,"file":"templated-number.js","sourceRoot":"","sources":["../../src/core/templated-number.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,CAAC;SACE,MAAM,CAAC;QACN,+EAA+E;QAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,iFAAiF;QACjF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACrC,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC,EAClC,GAAoB;AACpB,wEAAwE;AACxE,KAAa;AACb,uEAAuE;AACvE,GAAG,GAAe,UAAU;IAE5B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAC7F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,0EAA0E;QAC1E,4EAA4E;QAC5E,qEAAqE;QACrE,GAAG,CAAC,IAAI,CAAC,uEAAuE,EAAE;YAChF,KAAK;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"templated-number.js","sourceRoot":"","sources":["../../src/core/templated-number.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAwB,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3C,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC3B,CAAC;SACE,MAAM,CAAC;QACN,+EAA+E;QAC/E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB;;;WAGG;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAChD,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAkC,EAClC,GAAoB;AACpB,wEAAwE;AACxE,KAAa;AACb,uEAAuE;AACvE,GAAG,GAAe,UAAU;IAE5B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAC7F,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,aAAa,KAAK,CAAC,IAAI,0CAA0C;gBACvE,QAAQ,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iCAAiC;gBAC5F,KAAK,KAAK,CAAC,IAAI,+CAA+C,CACjE,CAAC;QACJ,CAAC;QACD,mEAAmE;QACnE,4EAA4E;QAC5E,GAAG,CAAC,IAAI,CAAC,uEAAuE,EAAE;YAChF,KAAK;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export * from "./core/verdict.js";
16
16
  export * from "./core/phase-ref.js";
17
17
  export * from "./core/loop-eval.js";
18
18
  export * from "./ports/ports.js";
19
- export { PhaseExecutor, isTerminated, isSoftOutcome, buildPhasePrompt, phaseConfigFor, runPhase, runCommandPhase, } from "./core/phase-executor.js";
20
- export type { PhaseRunContext } from "./core/phase-executor.js";
19
+ export { PhaseExecutor, isTerminated, isSoftOutcome, buildPhasePrompt, phaseConfigFor, runPhase, runCommandPhase, runLedgeredPhase, validateShellCommand, UNTIL_BASH_TIMEOUT_KEY, } from "./core/phase-executor.js";
20
+ export type { PhaseRunContext, LedgerDeps, RunPhaseResult } from "./core/phase-executor.js";
21
21
  export { runWorkflowCore } from "./core/scheduler.js";
22
22
  export type { SchedulerDeps, HostCapabilities } from "./core/scheduler.js";
package/dist/index.js CHANGED
@@ -20,6 +20,12 @@ export * from "./core/loop-eval.js";
20
20
  export * from "./ports/ports.js";
21
21
  // The executor + scheduler — explicit named exports so their re-exported port
22
22
  // types don't collide with the `./ports/ports.js` star export above.
23
- export { PhaseExecutor, isTerminated, isSoftOutcome, buildPhasePrompt, phaseConfigFor, runPhase, runCommandPhase, } from "./core/phase-executor.js";
23
+ export { PhaseExecutor, isTerminated, isSoftOutcome, buildPhasePrompt, phaseConfigFor, runPhase, runCommandPhase,
24
+ // The dedup ledger itself, for app-registered phase-type handlers that drive
25
+ // their own work (see `type: fanout`) and must still land an executions row.
26
+ runLedgeredPhase, validateShellCommand,
27
+ // Run-context key an `until_bash` check falls back to (issue #385) — exported so
28
+ // app-registered handlers (`type: fanout`) resolve it by name, never a literal.
29
+ UNTIL_BASH_TIMEOUT_KEY, } from "./core/phase-executor.js";
24
30
  export { runWorkflowCore } from "./core/scheduler.js";
25
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,iDAAiD;AACjD,cAAc,kBAAkB,CAAC;AAEjC,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,mEAAmE;AACnE,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,iDAAiD;AACjD,cAAc,kBAAkB,CAAC;AAEjC,8EAA8E;AAC9E,qEAAqE;AACrE,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,eAAe;AACf,6EAA6E;AAC7E,6EAA6E;AAC7E,gBAAgB,EAChB,oBAAoB;AACpB,iFAAiF;AACjF,gFAAgF;AAChF,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lastlight-workflow-engine",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/nearform/lastlight.git",
@@ -32,13 +32,12 @@
32
32
  "zod": "^4.3.6"
33
33
  },
34
34
  "devDependencies": {
35
- "@types/node": "^26.1.1",
36
- "dependency-cruiser": "^18.1.0",
35
+ "@types/node": "^26.2.0",
37
36
  "typescript": "^7.0.2"
38
37
  },
39
38
  "scripts": {
40
39
  "build": "tsc -p tsconfig.json",
41
40
  "typecheck": "tsc -p tsconfig.json --noEmit && pnpm run lint:boundaries",
42
- "lint:boundaries": "depcruise --config .dependency-cruiser.cjs src"
41
+ "lint:boundaries": "node ../../scripts/lint-import-boundaries.mjs engine"
43
42
  }
44
43
  }