lastlight-workflow-engine 0.3.5 → 0.5.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.),
@@ -356,6 +441,48 @@ const PhaseDefinitionSchema = z
356
441
  loop: PhaseLoopSchema.optional(),
357
442
  /** Generic loop configuration — expression/bash-based completion conditions */
358
443
  generic_loop: GenericLoopSchema.optional(),
444
+ /**
445
+ * The branches of a `type: fanout` phase. Required for that type, rejected
446
+ * on every other. Order is declaration order and is what the results are
447
+ * reported in; it does NOT constrain execution order.
448
+ */
449
+ branches: z.array(FanoutBranchSchema).min(1).optional(),
450
+ /**
451
+ * How many fan-out branches may be in flight at once. Accepts the
452
+ * `{ from: <ctx path>, default: N }` form so an operator dials it from
453
+ * config without forking the workflow.
454
+ *
455
+ * **This is a ceiling the run then clamps further, per backend.** The host
456
+ * has the last word: `gondolin` boots a QEMU micro-VM per agent session in
457
+ * the harness process (WP5's D7 — the nearform host has no swap and has
458
+ * wedged under memory pressure), and `smol`/`kubernetes` are unverified, so
459
+ * all three clamp to 1 and run the branches sequentially. `none` and
460
+ * `docker` take the declared value. A clamp to 1 is byte-identical to
461
+ * running the branches as a chain, which is what makes this safe to ship
462
+ * before the backends are measured.
463
+ */
464
+ max_concurrent: TemplatedNumberSchema.optional(),
465
+ /**
466
+ * What a SOFT branch outcome costs — a clean exit that produced no usable
467
+ * output (`stopReason` `unknown` / `error_truncated`), as opposed to a real
468
+ * crash. Mirrors `generic_loop.on_soft_failure`, and exists as its own
469
+ * phase-level key rather than reusing that name for a reason worth stating:
470
+ * `on_soft_failure` at PHASE level is stripped by zod (it belongs to
471
+ * `generic_loop`), which is exactly how all six survey phases silently ran
472
+ * with `{retries: 0, then: fail}` until 2026-08-22. A distinct key cannot be
473
+ * confused with it, and `fanout-policy.test.ts` pins the EFFECTIVE resolved
474
+ * value off the shipped YAML rather than the key's presence.
475
+ *
476
+ * Absent ⇒ `{ retries: 0, then: "complete" }`. Note the default `then`
477
+ * differs from `generic_loop`'s: a fan-out exists to gather independent
478
+ * evidence, so one degenerate branch must not discard the other five.
479
+ */
480
+ on_branch_soft_failure: z
481
+ .object({
482
+ retries: z.number().int().min(0).default(0),
483
+ then: z.enum(["fail", "complete"]).default("complete"),
484
+ })
485
+ .optional(),
359
486
  /** Rules applied to agent output */
360
487
  on_output: PhaseOnOutputSchema.optional(),
361
488
  /** Actions taken on successful completion */
@@ -393,7 +520,7 @@ const PhaseDefinitionSchema = z
393
520
  }
394
521
  }
395
522
  else {
396
- // context / agent
523
+ // context / agent / post-review / fanout
397
524
  if (p.command !== undefined) {
398
525
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: "`command:` is only valid on type `bash`" });
399
526
  }
@@ -404,6 +531,48 @@ const PhaseDefinitionSchema = z
404
531
  ctx.addIssue({ code: z.ZodIssueCode.custom, message: "`runtime:` is only valid on type `script`" });
405
532
  }
406
533
  }
534
+ // ── Fan-out ──────────────────────────────────────────────────────────────
535
+ if (type === "fanout") {
536
+ if (!p.branches?.length) {
537
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "phase type `fanout` requires a non-empty `branches:`" });
538
+ }
539
+ // A fan-out cannot pause. `pauseForApproval` persists the run as `paused`
540
+ // and RETURNS — under N in-flight sessions there is nothing to return to,
541
+ // and a sibling finishing afterwards would flip the run to `succeeded`
542
+ // over the top of `paused` and orphan the approval row. That is WP5's B2,
543
+ // the one item its own doc calls "silent corruption — the worst in this
544
+ // list", and refusing the combination is how a fan-out never meets it.
545
+ for (const key of ["approval_gate", "approval_artifact", "approval_gate_message"]) {
546
+ if (p[key] !== undefined) {
547
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `\`${key}:\` is not supported on type \`fanout\` (a fan-out cannot pause mid-flight)` });
548
+ }
549
+ }
550
+ // The branches ARE the iteration shape; a second one on top of them would
551
+ // multiply concurrent sessions by the loop count with nothing bounding it.
552
+ if (p.loop !== undefined || p.generic_loop !== undefined) {
553
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "`loop:`/`generic_loop:` are not supported on type `fanout` — use `branches[].until_bash`" });
554
+ }
555
+ const names = p.branches?.map((b) => b.name) ?? [];
556
+ if (new Set(names).size !== names.length) {
557
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: "fanout branch names must be unique (they are ledger keys)" });
558
+ }
559
+ // Every branch must be able to build a prompt — `buildPhasePrompt` throws
560
+ // otherwise, and it would throw INSIDE the fan-out where the failure reads
561
+ // as a branch crash rather than as a malformed workflow.
562
+ for (const b of p.branches ?? []) {
563
+ const hasSkills = !!(b.skill || b.skills?.length || p.skill || p.skills?.length);
564
+ if (!b.prompt && !p.prompt && !hasSkills) {
565
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `fanout branch \`${b.name}\` has neither \`prompt:\` nor \`skills:\` (and the phase supplies neither)` });
566
+ }
567
+ }
568
+ }
569
+ else {
570
+ for (const key of ["branches", "max_concurrent", "on_branch_soft_failure"]) {
571
+ if (p[key] !== undefined) {
572
+ ctx.addIssue({ code: z.ZodIssueCode.custom, message: `\`${key}:\` is only valid on type \`fanout\`` });
573
+ }
574
+ }
575
+ }
407
576
  });
408
577
  /**
409
578
  * Normalize a phase's skill declaration to a single list of names.
@@ -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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"}
@@ -142,6 +142,24 @@ export interface ExecutorConfig {
142
142
  * phase that searches third-party documentation).
143
143
  */
144
144
  unrestrictedEgress?: boolean;
145
+ /**
146
+ * Dependency services this phase runs against — the RAW declarations from the target
147
+ * repo's `.lastlight/lastlight.yml`, keyed by service name
148
+ * (`docs/plans/sandbox-services`).
149
+ *
150
+ * Deliberately opaque `unknown` rather than a parsed `ServiceSpec[]`: the parsed type
151
+ * lives in `lastlight-shared`, and this package is a LEAF that shared depends on —
152
+ * importing it here would invert the dependency graph the dep-cruiser gate enforces.
153
+ * Core parses these through `parseServiceSpec` at the orchestrator boundary. The
154
+ * values are plain data for the same reason the merged repo config stores them that
155
+ * way: this config is persisted as JSON and rehydrated on resume.
156
+ */
157
+ services?: Record<string, unknown>;
158
+ /** Operator bounds the run resolved for {@link services}. Plain data, same reasoning. */
159
+ serviceBounds?: {
160
+ allowedImages: string[] | null;
161
+ maxServices: number;
162
+ };
145
163
  /**
146
164
  * Enable agentic-pi's web-search extension (`web_search` / `web_fetch`
147
165
  * tools). Default false. agentic-pi auto-enables web search whenever a
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, } 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,9 @@ 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, } from "./core/phase-executor.js";
24
27
  export { runWorkflowCore } from "./core/scheduler.js";
25
28
  //# 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,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * The workflow engine's injected ports — the concrete couplings the app layer
3
3
  * supplies so the engine stays domain-agnostic (no imports of `../engine`,
4
- * `../state`, `../notify`, `../admin`, `../config`, GitHub, or better-sqlite3).
4
+ * `../state`, `../notify`, `../admin`, `../config`, GitHub, or a database
5
+ * driver).
5
6
  *
6
7
  * The app's existing concrete types already satisfy these structurally, so
7
8
  * introducing each port is a type-only change: the default adapters (built in
8
9
  * `src/workflows/runner.ts`) are thin delegations to the real functions.
9
10
  */
10
- import type { ExecutorConfig, ExecutionResult, GitSandboxAccess, CommandSpec } from "../core/types.js";
11
+ import type { ExecutorConfig, ExecutionResult, ExtensionStatusMap, GitSandboxAccess, SkillsStatus, CommandSpec } from "../core/types.js";
11
12
  import type { PhaseDefinition } from "../core/schema.js";
12
13
  import type { DagNode } from "../core/dag.js";
13
14
  import type { TemplateContext } from "../core/templates.js";
@@ -129,33 +130,48 @@ export interface ExecutionFinish {
129
130
  outputTokens?: number;
130
131
  apiDurationMs?: number;
131
132
  stopReason?: string;
132
- extensionStatus?: string;
133
- skillsStatus?: string;
133
+ /**
134
+ * Handed over as OBJECTS, not JSON text: the embedder's columns are real
135
+ * JSON columns, so it owns the serialization. Stringifying here would
136
+ * double-encode and fail silently on read.
137
+ */
138
+ extensionStatus?: ExtensionStatusMap;
139
+ skillsStatus?: SkillsStatus;
134
140
  }
135
141
  export interface FinishOpts {
136
142
  error?: string;
137
143
  terminalMarker?: PhaseMarker;
138
144
  }
139
145
  export interface RunStore {
140
- getRun(id: string): WorkflowRunView | null;
141
- appendPhase(id: string, phase: string, entry: PhaseHistoryEntry): void;
142
- finishRun(id: string, status: "succeeded" | "failed" | "cancelled", opts?: FinishOpts): void;
143
- mergeScratch(id: string, patch: Record<string, unknown>): void;
144
- pauseForApproval(runId: string, approval: NewApproval, marker: PhaseMarker, scratchPatch?: Record<string, unknown>): void;
146
+ getRun(id: string): Promise<WorkflowRunView | null>;
147
+ appendPhase(id: string, phase: string, entry: PhaseHistoryEntry): Promise<void>;
148
+ finishRun(id: string, status: "succeeded" | "failed" | "cancelled", opts?: FinishOpts): Promise<void>;
149
+ mergeScratch(id: string, patch: Record<string, unknown>): Promise<void>;
150
+ pauseForApproval(runId: string, approval: NewApproval, marker: PhaseMarker, scratchPatch?: Record<string, unknown>): Promise<void>;
145
151
  }
146
152
  export interface ExecutionLedger {
147
- shouldRunPhase(dedupKey: string, triggerId: string, workflowRunId?: string): "run" | "running" | "done";
148
- markStaleAsFailed(dedupKey: string, triggerId: string, workflowRunId?: string): number;
149
- markLatestAsFailed(dedupKey: string, triggerId: string, reason: string, workflowRunId?: string): number;
150
- recordStart(row: NewExecution): void;
151
- recordFinish(id: string, result: ExecutionFinish): void;
152
- recordSessionId(id: string, sessionId: string): void;
153
- recordOutputText(id: string, text: string): void;
153
+ shouldRunPhase(dedupKey: string, triggerId: string, workflowRunId?: string): Promise<"run" | "running" | "done">;
154
+ markStaleAsFailed(dedupKey: string, triggerId: string, workflowRunId?: string): Promise<number>;
155
+ markLatestAsFailed(dedupKey: string, triggerId: string, reason: string, workflowRunId?: string): Promise<number>;
156
+ recordStart(row: NewExecution): Promise<void>;
157
+ recordFinish(id: string, result: ExecutionFinish): Promise<void>;
158
+ recordSessionId(id: string, sessionId: string): Promise<void>;
159
+ recordOutputText(id: string, text: string): Promise<void>;
154
160
  /** `repo` is the BARE name and `owner` its account — see {@link NewExecution}. */
155
- recordSkippedPhase(dedupKey: string, triggerId: string, workflowRunId?: string, repo?: string, owner?: string): void;
156
- getPhaseOutput(dedupKey: string, triggerId: string, workflowRunId?: string): string | null;
157
- getExecutionOutput(id: string): string | null;
161
+ recordSkippedPhase(dedupKey: string, triggerId: string, workflowRunId?: string, repo?: string, owner?: string): Promise<void>;
162
+ getPhaseOutput(dedupKey: string, triggerId: string, workflowRunId?: string): Promise<string | null>;
163
+ getExecutionOutput(id: string): Promise<string | null>;
158
164
  }
165
+ /**
166
+ * The state store the engine drives.
167
+ *
168
+ * Every method is `Promise`-returning. This package is published but consumed
169
+ * only inside this repo, so when lastlight-core's state layer moved to an async
170
+ * driver we took the clean break rather than carrying an
171
+ * `Awaitable<T> = T | Promise<T>` compatibility shim — which would have made
172
+ * every engine call site defensively awaitable forever to serve no real
173
+ * external consumer.
174
+ */
159
175
  export interface WorkflowStateStore {
160
176
  runs: RunStore;
161
177
  executions: ExecutionLedger;
@@ -209,9 +225,9 @@ export interface PhaseReporter {
209
225
  /** Post a pre-rendered standalone message. */
210
226
  postNote(text: string): Promise<void>;
211
227
  /** Persist a phase-history entry on the workflow run. */
212
- persistPhase(phase: string, summary?: string): void;
228
+ persistPhase(phase: string, summary?: string): Promise<void>;
213
229
  /** Mark the workflow run failed. */
214
- failWorkflow(errorMsg?: string): void;
230
+ failWorkflow(errorMsg?: string): Promise<void>;
215
231
  /** Set (or clear) the trailing footer of the single status surface. */
216
232
  footer(markdown: string): Promise<void>;
217
233
  /** Post the run's completion message (terminal-ping surfaces only). */
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * The workflow engine's injected ports — the concrete couplings the app layer
3
3
  * supplies so the engine stays domain-agnostic (no imports of `../engine`,
4
- * `../state`, `../notify`, `../admin`, `../config`, GitHub, or better-sqlite3).
4
+ * `../state`, `../notify`, `../admin`, `../config`, GitHub, or a database
5
+ * driver).
5
6
  *
6
7
  * The app's existing concrete types already satisfy these structurally, so
7
8
  * introducing each port is a type-only change: the default adapters (built in
@@ -1 +1 @@
1
- {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/ports/ports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAyPH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,KAAK,KAAI,CAAC;IACV,IAAI,KAAI,CAAC;IACT,IAAI,KAAI,CAAC;IACT,KAAK,KAAI,CAAC;IACV,KAAK,KAAI,CAAC;IACV,KAAK;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/ports/ports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA0QH,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,KAAK,KAAI,CAAC;IACV,IAAI,KAAI,CAAC;IACT,IAAI,KAAI,CAAC;IACT,KAAK,KAAI,CAAC;IACV,KAAK,KAAI,CAAC;IACV,KAAK;QACH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC"}
@@ -66,7 +66,7 @@ export interface FakeExecutionRow {
66
66
  }
67
67
  /**
68
68
  * Map-backed {@link WorkflowStateStore} — the resume/dedup ledger + run store,
69
- * with no better-sqlite3. Reproduces the production resume caveat: a phase whose
69
+ * with no database at all. Reproduces the production resume caveat: a phase whose
70
70
  * ledger row is already `success=1` returns `"done"` from
71
71
  * {@link ExecutionLedger.shouldRunPhase}, so the engine skips it (and it
72
72
  * contributes nothing to the in-memory `outputs` map).
@@ -117,8 +117,8 @@ export declare class RecordingReporter implements PhaseReporter {
117
117
  message(template: string | undefined): Promise<void>;
118
118
  approvalNote(template: string | undefined): Promise<void>;
119
119
  postNote(text: string): Promise<void>;
120
- persistPhase(phase: string, summary?: string): void;
121
- failWorkflow(errorMsg?: string): void;
120
+ persistPhase(phase: string, summary?: string): Promise<void>;
121
+ failWorkflow(errorMsg?: string): Promise<void>;
122
122
  footer(markdown: string): Promise<void>;
123
123
  noteTerminal(markdown: string): Promise<void>;
124
124
  }
@@ -43,7 +43,7 @@ export class FakeAgentPort {
43
43
  const ledgerKey = (dedupKey, triggerId, workflowRunId) => JSON.stringify([dedupKey, triggerId, workflowRunId ?? ""]);
44
44
  /**
45
45
  * Map-backed {@link WorkflowStateStore} — the resume/dedup ledger + run store,
46
- * with no better-sqlite3. Reproduces the production resume caveat: a phase whose
46
+ * with no database at all. Reproduces the production resume caveat: a phase whose
47
47
  * ledger row is already `success=1` returns `"done"` from
48
48
  * {@link ExecutionLedger.shouldRunPhase}, so the engine skips it (and it
49
49
  * contributes nothing to the in-memory `outputs` map).
@@ -88,24 +88,24 @@ export class InMemoryStateStore {
88
88
  return this.runsById.get(runId)?.history ?? [];
89
89
  }
90
90
  runs = {
91
- getRun: (id) => {
91
+ getRun: async (id) => {
92
92
  const row = this.runsById.get(id);
93
93
  return row ? { status: row.status, scratch: row.scratch } : null;
94
94
  },
95
- appendPhase: (id, _phase, entry) => {
95
+ appendPhase: async (id, _phase, entry) => {
96
96
  this.ensureRun(id).history.push(entry);
97
97
  },
98
- finishRun: (id, status, opts) => {
98
+ finishRun: async (id, status, opts) => {
99
99
  const row = this.ensureRun(id);
100
100
  if (opts?.terminalMarker)
101
101
  row.history.push({ ...opts.terminalMarker, timestamp: new Date().toISOString(), success: true });
102
102
  row.status = status;
103
103
  },
104
- mergeScratch: (id, patch) => {
104
+ mergeScratch: async (id, patch) => {
105
105
  const row = this.ensureRun(id);
106
106
  row.scratch = { ...row.scratch, ...patch };
107
107
  },
108
- pauseForApproval: (runId, approval, marker, scratchPatch) => {
108
+ pauseForApproval: async (runId, approval, marker, scratchPatch) => {
109
109
  const row = this.ensureRun(runId);
110
110
  row.history.push({ phase: marker.phase, summary: marker.summary, timestamp: new Date().toISOString(), success: true });
111
111
  if (scratchPatch)
@@ -115,7 +115,7 @@ export class InMemoryStateStore {
115
115
  },
116
116
  };
117
117
  executions = {
118
- shouldRunPhase: (dedupKey, triggerId, workflowRunId) => {
118
+ shouldRunPhase: async (dedupKey, triggerId, workflowRunId) => {
119
119
  const row = this.ledger.get(ledgerKey(dedupKey, triggerId, workflowRunId));
120
120
  if (!row)
121
121
  return "run";
@@ -123,7 +123,7 @@ export class InMemoryStateStore {
123
123
  return "running";
124
124
  return row.success ? "done" : "run";
125
125
  },
126
- markStaleAsFailed: (dedupKey, triggerId, workflowRunId) => {
126
+ markStaleAsFailed: async (dedupKey, triggerId, workflowRunId) => {
127
127
  const row = this.ledger.get(ledgerKey(dedupKey, triggerId, workflowRunId));
128
128
  if (row && !row.finished) {
129
129
  row.finished = true;
@@ -132,7 +132,7 @@ export class InMemoryStateStore {
132
132
  }
133
133
  return 0;
134
134
  },
135
- markLatestAsFailed: (dedupKey, triggerId, _reason, workflowRunId) => {
135
+ markLatestAsFailed: async (dedupKey, triggerId, _reason, workflowRunId) => {
136
136
  const row = this.ledger.get(ledgerKey(dedupKey, triggerId, workflowRunId));
137
137
  if (row) {
138
138
  row.finished = true;
@@ -141,7 +141,7 @@ export class InMemoryStateStore {
141
141
  }
142
142
  return 0;
143
143
  },
144
- recordStart: (rec) => {
144
+ recordStart: async (rec) => {
145
145
  const row = {
146
146
  id: rec.id,
147
147
  dedupKey: rec.skill,
@@ -156,7 +156,7 @@ export class InMemoryStateStore {
156
156
  this.byExecId.set(rec.id, row);
157
157
  this.rows.push(row);
158
158
  },
159
- recordFinish: (id, result) => {
159
+ recordFinish: async (id, result) => {
160
160
  const row = this.byExecId.get(id);
161
161
  if (row) {
162
162
  row.finished = true;
@@ -166,13 +166,13 @@ export class InMemoryStateStore {
166
166
  row.error = result.error;
167
167
  }
168
168
  },
169
- recordSessionId: () => { },
170
- recordOutputText: (id, text) => {
169
+ recordSessionId: async () => { },
170
+ recordOutputText: async (id, text) => {
171
171
  const row = this.byExecId.get(id);
172
172
  if (row)
173
173
  row.output = text;
174
174
  },
175
- recordSkippedPhase: (dedupKey, triggerId, workflowRunId, repo, owner) => {
175
+ recordSkippedPhase: async (dedupKey, triggerId, workflowRunId, repo, owner) => {
176
176
  const row = {
177
177
  id: `skipped:${dedupKey}`,
178
178
  dedupKey,
@@ -188,8 +188,8 @@ export class InMemoryStateStore {
188
188
  this.ledger.set(ledgerKey(dedupKey, triggerId, workflowRunId), row);
189
189
  this.rows.push(row);
190
190
  },
191
- getPhaseOutput: (dedupKey, triggerId, workflowRunId) => this.ledger.get(ledgerKey(dedupKey, triggerId, workflowRunId))?.output ?? null,
192
- getExecutionOutput: (id) => this.byExecId.get(id)?.output ?? null,
191
+ getPhaseOutput: async (dedupKey, triggerId, workflowRunId) => this.ledger.get(ledgerKey(dedupKey, triggerId, workflowRunId))?.output ?? null,
192
+ getExecutionOutput: async (id) => this.byExecId.get(id)?.output ?? null,
193
193
  };
194
194
  }
195
195
  /** A {@link PhaseReporter} that records everything and posts nowhere. */
@@ -217,10 +217,10 @@ export class RecordingReporter {
217
217
  async postNote(text) {
218
218
  this.notes.push(text);
219
219
  }
220
- persistPhase(phase, summary) {
220
+ async persistPhase(phase, summary) {
221
221
  this.persisted.push({ phase, summary });
222
222
  }
223
- failWorkflow(errorMsg) {
223
+ async failWorkflow(errorMsg) {
224
224
  this.failures.push(errorMsg ?? "");
225
225
  }
226
226
  async footer(markdown) {
@@ -1 +1 @@
1
- {"version":3,"file":"fakes.js","sourceRoot":"","sources":["../../src/test-support/fakes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fakes.js","sourceRoot":"","sources":["../../src/test-support/fakes.ts"],"names":[],"mappings":"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"}