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.
- package/dist/core/phase-executor.d.ts +83 -6
- package/dist/core/phase-executor.js +107 -38
- package/dist/core/phase-executor.js.map +1 -1
- package/dist/core/phase-ref.d.ts +26 -2
- package/dist/core/phase-ref.js +51 -2
- package/dist/core/phase-ref.js.map +1 -1
- package/dist/core/schema.d.ts +97 -5
- package/dist/core/schema.js +319 -10
- package/dist/core/schema.js.map +1 -1
- package/dist/core/templated-number.d.ts +14 -7
- package/dist/core/templated-number.js +25 -11
- package/dist/core/templated-number.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -4
package/dist/core/schema.js
CHANGED
|
@@ -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
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
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
|
|
179
|
-
*
|
|
180
|
-
* `fix.gateTimeoutSeconds` that way,
|
|
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
|
package/dist/core/schema.js.map
CHANGED
|
@@ -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` —
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
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
|
|
70
|
-
*
|
|
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` —
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
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
|
-
/**
|
|
67
|
-
|
|
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
|
|
76
|
-
*
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
|
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,
|
|
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,
|
|
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.
|
|
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.
|
|
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": "
|
|
41
|
+
"lint:boundaries": "node ../../scripts/lint-import-boundaries.mjs engine"
|
|
43
42
|
}
|
|
44
43
|
}
|