@revisium/orchestrator 0.1.0-alpha.9 → 0.2.0-alpha.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.
Files changed (249) hide show
  1. package/README.md +210 -146
  2. package/control-plane/bootstrap.config.json +43 -1
  3. package/control-plane/default-playbook/catalog/pipelines.json +1157 -10
  4. package/control-plane/default-playbook/catalog/roles.json +54 -0
  5. package/control-plane/default-playbook/package.json +1 -1
  6. package/control-plane/default-playbook/prompts/developer.md +1 -0
  7. package/control-plane/default-playbook/prompts/triager.md +3 -0
  8. package/dist/api/graphql-api/graphql-ws/pubsub.module.js +0 -1
  9. package/dist/api/graphql-api/graphql-ws/pubsub.module.js.map +1 -1
  10. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js +0 -1
  11. package/dist/api/graphql-api/graphql-ws/run-progress-subscription-poller.service.js.map +1 -1
  12. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js +0 -1
  13. package/dist/api/graphql-api/graphql-ws/subscription-bridge.service.js.map +1 -1
  14. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js +3 -0
  15. package/dist/api/graphql-api/graphql-ws/subscription-mappers.js.map +1 -1
  16. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js +6 -0
  17. package/dist/api/graphql-api/pr/inputs/pr-readiness.input.js.map +1 -1
  18. package/dist/api/graphql-api/pr/model/pr-readiness.model.js +26 -0
  19. package/dist/api/graphql-api/pr/model/pr-readiness.model.js.map +1 -1
  20. package/dist/api/graphql-api/runs/inputs/create-run.input.js +6 -0
  21. package/dist/api/graphql-api/runs/inputs/create-run.input.js.map +1 -1
  22. package/dist/api/graphql-api/runs/model/run.model.js +6 -0
  23. package/dist/api/graphql-api/runs/model/run.model.js.map +1 -1
  24. package/dist/api/graphql-api/share/model/issue-ref.model.js +53 -0
  25. package/dist/api/graphql-api/share/model/issue-ref.model.js.map +1 -0
  26. package/dist/cli/commands/doctor-report.js +0 -18
  27. package/dist/cli/commands/doctor-report.js.map +1 -1
  28. package/dist/cli/commands/lifecycle.js +3 -71
  29. package/dist/cli/commands/lifecycle.js.map +1 -1
  30. package/dist/cli/commands/mcp.js +0 -14
  31. package/dist/cli/commands/mcp.js.map +1 -1
  32. package/dist/cli/commands/process-tree.js +4 -26
  33. package/dist/cli/commands/process-tree.js.map +1 -1
  34. package/dist/cli/commands/revisium-helpers.js +0 -6
  35. package/dist/cli/commands/revisium-helpers.js.map +1 -1
  36. package/dist/cli/commands/rogue-reaper.js +0 -34
  37. package/dist/cli/commands/rogue-reaper.js.map +1 -1
  38. package/dist/cli/index.js +0 -4
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/cli/program.js +0 -5
  41. package/dist/cli/program.js.map +1 -1
  42. package/dist/config.js +0 -25
  43. package/dist/config.js.map +1 -1
  44. package/dist/control-plane/bootstrap.js +12 -27
  45. package/dist/control-plane/bootstrap.js.map +1 -1
  46. package/dist/control-plane/change-notifications.js +0 -1
  47. package/dist/control-plane/change-notifications.js.map +1 -1
  48. package/dist/control-plane/client-transport.js +1 -12
  49. package/dist/control-plane/client-transport.js.map +1 -1
  50. package/dist/control-plane/default-playbook-policy.js +593 -0
  51. package/dist/control-plane/default-playbook-policy.js.map +1 -0
  52. package/dist/control-plane/definitions.js +8 -17
  53. package/dist/control-plane/definitions.js.map +1 -1
  54. package/dist/control-plane/inbox.js +2 -120
  55. package/dist/control-plane/inbox.js.map +1 -1
  56. package/dist/control-plane/resolve-cwd.js +0 -61
  57. package/dist/control-plane/resolve-cwd.js.map +1 -1
  58. package/dist/control-plane/schema-migration.js +0 -9
  59. package/dist/control-plane/schema-migration.js.map +1 -1
  60. package/dist/control-plane/seed-default-playbook.js +50 -46
  61. package/dist/control-plane/seed-default-playbook.js.map +1 -1
  62. package/dist/control-plane/steps.js +0 -15
  63. package/dist/control-plane/steps.js.map +1 -1
  64. package/dist/e2e/kit/agents.js +15 -21
  65. package/dist/e2e/kit/agents.js.map +1 -1
  66. package/dist/e2e/kit/assertions.js +12 -8
  67. package/dist/e2e/kit/assertions.js.map +1 -1
  68. package/dist/e2e/kit/fake-integrator.js +11 -2
  69. package/dist/e2e/kit/fake-integrator.js.map +1 -1
  70. package/dist/e2e/kit/git-target-repo.js +1 -1
  71. package/dist/engine/dbos.service.js +12 -179
  72. package/dist/engine/dbos.service.js.map +1 -1
  73. package/dist/engine/ensure-postgres.js +0 -48
  74. package/dist/engine/ensure-postgres.js.map +1 -1
  75. package/dist/features/pr/queries/impl/get-pr-readiness.query.js.map +1 -1
  76. package/dist/features/runs/commands/impl/create-run.command.js.map +1 -1
  77. package/dist/features/runs/queries/handlers/runs-query.handlers.js +1 -0
  78. package/dist/features/runs/queries/handlers/runs-query.handlers.js.map +1 -1
  79. package/dist/host/daemon.js +2 -21
  80. package/dist/host/daemon.js.map +1 -1
  81. package/dist/host/dbos-identity.js +0 -31
  82. package/dist/host/dbos-identity.js.map +1 -1
  83. package/dist/host/ensure-host.js +1 -37
  84. package/dist/host/ensure-host.js.map +1 -1
  85. package/dist/host/ensure-revisium.js +1 -135
  86. package/dist/host/ensure-revisium.js.map +1 -1
  87. package/dist/host/host-runtime.js +0 -28
  88. package/dist/host/host-runtime.js.map +1 -1
  89. package/dist/host/host.lifecycle.js +0 -27
  90. package/dist/host/host.lifecycle.js.map +1 -1
  91. package/dist/host/queue-ownership.js +0 -42
  92. package/dist/host/queue-ownership.js.map +1 -1
  93. package/dist/host/queue-poller-census.js +1 -28
  94. package/dist/host/queue-poller-census.js.map +1 -1
  95. package/dist/http/graphql-host.module.js +0 -3
  96. package/dist/http/graphql-host.module.js.map +1 -1
  97. package/dist/mcp/mcp-capabilities.js +23 -5
  98. package/dist/mcp/mcp-capabilities.js.map +1 -1
  99. package/dist/mcp/mcp-facade.service.js +335 -22
  100. package/dist/mcp/mcp-facade.service.js.map +1 -1
  101. package/dist/mcp/mcp-http.service.js +0 -18
  102. package/dist/mcp/mcp-http.service.js.map +1 -1
  103. package/dist/mcp/mcp-tools.js +41 -36
  104. package/dist/mcp/mcp-tools.js.map +1 -1
  105. package/dist/observability/activity-signal.js +103 -0
  106. package/dist/observability/activity-signal.js.map +1 -0
  107. package/dist/observability/agent-activity-reporter.js +0 -4
  108. package/dist/observability/agent-activity-reporter.js.map +1 -1
  109. package/dist/observability/index.js +1 -0
  110. package/dist/observability/index.js.map +1 -1
  111. package/dist/pipeline/await-human.js +0 -40
  112. package/dist/pipeline/await-human.js.map +1 -1
  113. package/dist/pipeline/data-driven-task.workflow.js +563 -251
  114. package/dist/pipeline/data-driven-task.workflow.js.map +1 -1
  115. package/dist/pipeline/data-driven-template.js +0 -25
  116. package/dist/pipeline/data-driven-template.js.map +1 -1
  117. package/dist/pipeline/pipeline.module.js +0 -12
  118. package/dist/pipeline/pipeline.module.js.map +1 -1
  119. package/dist/pipeline/pipeline.service.js +194 -189
  120. package/dist/pipeline/pipeline.service.js.map +1 -1
  121. package/dist/pipeline/route-contract.js +4 -3
  122. package/dist/pipeline/route-contract.js.map +1 -1
  123. package/dist/pipeline-core/index.js +1 -13
  124. package/dist/pipeline-core/index.js.map +1 -1
  125. package/dist/pipeline-core/interpret.js +21 -94
  126. package/dist/pipeline-core/interpret.js.map +1 -1
  127. package/dist/pipeline-core/kit/assertions.js +0 -19
  128. package/dist/pipeline-core/kit/assertions.js.map +1 -1
  129. package/dist/pipeline-core/kit/builders.js +1 -21
  130. package/dist/pipeline-core/kit/builders.js.map +1 -1
  131. package/dist/pipeline-core/kit/drive.js +1 -31
  132. package/dist/pipeline-core/kit/drive.js.map +1 -1
  133. package/dist/pipeline-core/kit/fixtures.js +78 -101
  134. package/dist/pipeline-core/kit/fixtures.js.map +1 -1
  135. package/dist/pipeline-core/kit/index.js +0 -8
  136. package/dist/pipeline-core/kit/index.js.map +1 -1
  137. package/dist/pipeline-core/types.js +13 -52
  138. package/dist/pipeline-core/types.js.map +1 -1
  139. package/dist/pipeline-core/validate-capability.js +0 -3
  140. package/dist/pipeline-core/validate-capability.js.map +1 -1
  141. package/dist/pipeline-core/validate-conflicts.js +0 -9
  142. package/dist/pipeline-core/validate-conflicts.js.map +1 -1
  143. package/dist/pipeline-core/validate-dataflow.js +0 -17
  144. package/dist/pipeline-core/validate-dataflow.js.map +1 -1
  145. package/dist/pipeline-core/validate-diff.js +3 -36
  146. package/dist/pipeline-core/validate-diff.js.map +1 -1
  147. package/dist/pipeline-core/validate-edges.js +0 -6
  148. package/dist/pipeline-core/validate-edges.js.map +1 -1
  149. package/dist/pipeline-core/validate-graph.js +0 -11
  150. package/dist/pipeline-core/validate-graph.js.map +1 -1
  151. package/dist/pipeline-core/validate-loops.js +37 -44
  152. package/dist/pipeline-core/validate-loops.js.map +1 -1
  153. package/dist/pipeline-core/validate-parallel.js +9 -15
  154. package/dist/pipeline-core/validate-parallel.js.map +1 -1
  155. package/dist/pipeline-core/validate-sink.js +0 -7
  156. package/dist/pipeline-core/validate-sink.js.map +1 -1
  157. package/dist/pipeline-core/validate-topology.js +1 -20
  158. package/dist/pipeline-core/validate-topology.js.map +1 -1
  159. package/dist/pipeline-core/validate-verdict.js +52 -7
  160. package/dist/pipeline-core/validate-verdict.js.map +1 -1
  161. package/dist/pipeline-core/validate.js +5 -29
  162. package/dist/pipeline-core/validate.js.map +1 -1
  163. package/dist/playbook/catalog-loader.js +8 -3
  164. package/dist/playbook/catalog-loader.js.map +1 -1
  165. package/dist/playbook/import-mapper.js +4 -5
  166. package/dist/playbook/import-mapper.js.map +1 -1
  167. package/dist/poller/pr-readiness-core.js +226 -29
  168. package/dist/poller/pr-readiness-core.js.map +1 -1
  169. package/dist/revisium/inbox.service.js +0 -24
  170. package/dist/revisium/inbox.service.js.map +1 -1
  171. package/dist/revisium/playbooks.service.js +15 -2
  172. package/dist/revisium/playbooks.service.js.map +1 -1
  173. package/dist/revisium/revisium.module.js +0 -12
  174. package/dist/revisium/revisium.module.js.map +1 -1
  175. package/dist/revisium/roles.service.js +0 -6
  176. package/dist/revisium/roles.service.js.map +1 -1
  177. package/dist/revisium/run.service.js +2 -75
  178. package/dist/revisium/run.service.js.map +1 -1
  179. package/dist/revisium/tokens.js +0 -4
  180. package/dist/revisium/tokens.js.map +1 -1
  181. package/dist/run/append-event.js +6 -37
  182. package/dist/run/append-event.js.map +1 -1
  183. package/dist/run/block-run.js.map +1 -1
  184. package/dist/run/cancel-run.js +0 -33
  185. package/dist/run/cancel-run.js.map +1 -1
  186. package/dist/run/complete-run.js.map +1 -1
  187. package/dist/run/create-run.js +5 -8
  188. package/dist/run/create-run.js.map +1 -1
  189. package/dist/run/fail-run.js +0 -3
  190. package/dist/run/fail-run.js.map +1 -1
  191. package/dist/run/inspect-run.js +10 -29
  192. package/dist/run/inspect-run.js.map +1 -1
  193. package/dist/run/issue-ref.js +88 -0
  194. package/dist/run/issue-ref.js.map +1 -0
  195. package/dist/run/run-outputs.js +0 -19
  196. package/dist/run/run-outputs.js.map +1 -1
  197. package/dist/run/terminal-run-status.js +0 -12
  198. package/dist/run/terminal-run-status.js.map +1 -1
  199. package/dist/runners/claude-code.service.js +2 -13
  200. package/dist/runners/claude-code.service.js.map +1 -1
  201. package/dist/runners/codex.service.js +2 -11
  202. package/dist/runners/codex.service.js.map +1 -1
  203. package/dist/runners/gh-identity.js +0 -52
  204. package/dist/runners/gh-identity.js.map +1 -1
  205. package/dist/runners/integrator-branch-naming.js +16 -19
  206. package/dist/runners/integrator-branch-naming.js.map +1 -1
  207. package/dist/runners/integrator-git.js +0 -25
  208. package/dist/runners/integrator-git.js.map +1 -1
  209. package/dist/runners/integrator-remote.js +0 -2
  210. package/dist/runners/integrator-remote.js.map +1 -1
  211. package/dist/runners/integrator-types.js +0 -7
  212. package/dist/runners/integrator-types.js.map +1 -1
  213. package/dist/runners/integrator.js +231 -230
  214. package/dist/runners/integrator.js.map +1 -1
  215. package/dist/runners/runner.module.js +0 -6
  216. package/dist/runners/runner.module.js.map +1 -1
  217. package/dist/runners/tokens.js +0 -4
  218. package/dist/runners/tokens.js.map +1 -1
  219. package/dist/runners/worktree.service.js +3 -19
  220. package/dist/runners/worktree.service.js.map +1 -1
  221. package/dist/task-control-plane/pr-readiness.service.js +15 -13
  222. package/dist/task-control-plane/pr-readiness.service.js.map +1 -1
  223. package/dist/task-control-plane/run-watch.service.js +170 -63
  224. package/dist/task-control-plane/run-watch.service.js.map +1 -1
  225. package/dist/task-control-plane/task-control-plane-api.service.js +285 -40
  226. package/dist/task-control-plane/task-control-plane-api.service.js.map +1 -1
  227. package/dist/worker/artifact-store.js +21 -3
  228. package/dist/worker/artifact-store.js.map +1 -1
  229. package/dist/worker/build-context.js +10 -10
  230. package/dist/worker/build-context.js.map +1 -1
  231. package/dist/worker/claude-code-runner.js +76 -48
  232. package/dist/worker/claude-code-runner.js.map +1 -1
  233. package/dist/worker/codex-runner.js +128 -35
  234. package/dist/worker/codex-runner.js.map +1 -1
  235. package/dist/worker/git-worktree-manager.js +20 -67
  236. package/dist/worker/git-worktree-manager.js.map +1 -1
  237. package/dist/worker/process-executor.js +144 -27
  238. package/dist/worker/process-executor.js.map +1 -1
  239. package/dist/worker/result-envelope.js +33 -49
  240. package/dist/worker/result-envelope.js.map +1 -1
  241. package/dist/worker/runner-common.js +29 -0
  242. package/dist/worker/runner-common.js.map +1 -1
  243. package/dist/worker/runner-dispatch.js +0 -3
  244. package/dist/worker/runner-dispatch.js.map +1 -1
  245. package/dist/worker/runner.js +16 -1
  246. package/dist/worker/runner.js.map +1 -1
  247. package/dist/worker/stub-runner.js +0 -7
  248. package/dist/worker/stub-runner.js.map +1 -1
  249. package/package.json +2 -2
@@ -10,31 +10,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- /**
14
- * PipelineService — the DBOS registration hub for the data-driven pipeline engine (plan 0015 / ADR-0002).
15
- *
16
- * (Renamed from `develop-task.workflow.ts`: the hardcoded `developTask` workflow that file was named for was
17
- * removed in the plan-0015 cutover, so the old name described code that no longer exists.)
18
- *
19
- * INVARIANT: `src/pipeline/*` imports NO `@dbos-inc/dbos-sdk` (M1 — DBOS sealed).
20
- * All DBOS interaction goes through the generic DbosService verbs.
21
- *
22
- * Registration happens in the constructor, BEFORE DBOS.launch() (mirroring dev:ping).
23
- *
24
- * The data-driven engine (`makeDataDrivenTask`, executing a `pipeline-core` graph) is the SOLE pipeline engine:
25
- * selection routes EVERY pipeline to it (TaskControlPlaneApiService.startRun), and a pipeline lacking a valid
26
- * data-driven template FAILS LOUD there (PIPELINE_NOT_DATA_DRIVEN). The former hardcoded role→phase classifiers
27
- * (`planRouteExecution`, `validatePostIntegratorBindings`, …) were removed in that cutover.
28
- *
29
- * KEPT here (the shared seams the data-driven adapter reuses):
30
- * - `makeRunStep` — the generic per-step runner (role→runner dispatch, attempt/cost/event bookkeeping).
31
- * - the run lifecycle verbs (complete/fail/block) + `awaitHuman` (gate park/resume) + the integrator
32
- * (real + stub) + the live preflight, wired as DataDrivenTaskDeps.
33
- *
34
- * C1 architecture: the step and workflow bodies are extracted as DBOS-free builder functions
35
- * (`makeRunStep` / `makeDataDrivenTask`). PipelineService registers exactly those builders via
36
- * the engine seam, so tests can import and exercise the SAME production logic directly.
37
- */
38
13
  import { Injectable, Inject } from '@nestjs/common';
39
14
  import { DbosService } from '../engine/dbos.service.js';
40
15
  import { RolesService } from '../revisium/roles.service.js';
@@ -45,42 +20,44 @@ import { WorktreeService } from '../runners/worktree.service.js';
45
20
  import { redactTokens } from '../runners/gh-identity.js';
46
21
  import { RUN_AGENT } from '../runners/tokens.js';
47
22
  import { buildContext, ContextMissingError } from '../worker/build-context.js';
48
- import { artifactsFromRunAgentError } from '../worker/runner.js';
23
+ import { artifactsFromRunAgentError, failureMetadataFromRunAgentError } from '../worker/runner.js';
49
24
  import { fnv1a64Hex } from '../control-plane/steps.js';
25
+ import { getConfig } from '../config.js';
50
26
  import { createAgentActivityReporter, } from '../observability/agent-activity-reporter.js';
51
27
  import { AGENT_OUTPUT_STREAM_KEY } from '../observability/types.js';
52
28
  import { makeAwaitHuman } from './await-human.js';
53
- import { makeDataDrivenTask, RUN_PROGRESS_EVENT_KEY, } from './data-driven-task.workflow.js';
29
+ import { makeDataDrivenTask, resolveRunnerTransientRetryPolicy, RUN_PROGRESS_EVENT_KEY, } from './data-driven-task.workflow.js';
54
30
  import { dispatchRunnerId, } from './route-contract.js';
55
- /** Queue name for the dev-tasks WorkflowQueue. */
56
31
  const DEV_TASKS_QUEUE = 'dev-tasks';
57
- /**
58
- * Concurrency limit for the dev-tasks queue. Default 2; overridable via `REVO_DEV_TASKS_CONCURRENCY`
59
- * (a deployment throughput knob, and what lets the e2e crash-recovery suite hold several PENDING
60
- * runs at once — each parked run occupies a slot until recovered).
61
- */
62
- const DEV_TASKS_CONCURRENCY = (() => {
63
- const raw = Number.parseInt(process.env['REVO_DEV_TASKS_CONCURRENCY'] ?? '', 10);
64
- return Number.isFinite(raw) && raw > 0 ? raw : 2;
65
- })();
32
+ export function resolveDevTasksConcurrency(env = process.env) {
33
+ const value = env['REVO_DEV_TASKS_CONCURRENCY']?.trim();
34
+ if (!value)
35
+ return 20;
36
+ const raw = Number(value);
37
+ return Number.isSafeInteger(raw) && raw > 0 ? raw : 20;
38
+ }
39
+ const DEV_TASKS_CONCURRENCY = resolveDevTasksConcurrency();
66
40
  const RUNNER_FAILURE_REASON_MAX = 2_000;
41
+ function validateRunnerTransientRetryPolicy(policy) {
42
+ if (!Number.isSafeInteger(policy.maxAttempts) || policy.maxAttempts <= 0) {
43
+ throw new Error('runnerRetryPolicy.maxAttempts must be a positive integer');
44
+ }
45
+ if (!Number.isSafeInteger(policy.backoffMs) || policy.backoffMs < 0) {
46
+ throw new Error('runnerRetryPolicy.backoffMs must be a non-negative integer');
47
+ }
48
+ return policy;
49
+ }
50
+ function pinRunnerTransientRetryPolicy(policy) {
51
+ return validateRunnerTransientRetryPolicy(policy ?? resolveRunnerTransientRetryPolicy());
52
+ }
67
53
  function isRecord(value) {
68
54
  return value !== null && typeof value === 'object' && !Array.isArray(value);
69
55
  }
70
- /**
71
- * verdictForAttemptRow — best-effort verdict label for the observability attempts row.
72
- *
73
- * The data-driven engine routes on a node's DOMAIN verdict (resolved in the adapter, §8) and never
74
- * consults this. This is purely the human-readable verdict surfaced on the per-attempt log row: read
75
- * only the explicit top-level AttemptResult.verdict, else mark it `unknown` for observability. No
76
- * engine semantics are derived from it.
77
- */
78
56
  function verdictForAttemptRow(result) {
79
57
  if (typeof result.verdict === 'string' && result.verdict.trim().length > 0)
80
58
  return result.verdict;
81
59
  return 'unknown';
82
60
  }
83
- /** Parse the rework iteration from a stepKey (`developer#2` → 2; `developer` → 0). */
84
61
  function iterationOf(stepKey) {
85
62
  const hashIdx = stepKey.lastIndexOf('#');
86
63
  if (hashIdx < 0)
@@ -92,6 +69,24 @@ function runnerFailureReason(err) {
92
69
  const message = err instanceof Error ? err.message : String(err);
93
70
  return redactTokens(message).slice(0, RUNNER_FAILURE_REASON_MAX);
94
71
  }
72
+ function defaultPhysicalAttempt(runId, stepKey) {
73
+ const attemptKey = `${runId}|${stepKey}`;
74
+ return {
75
+ attemptNo: iterationOf(stepKey) + 1,
76
+ attemptId: `attempt_${fnv1a64Hex(attemptKey)}`,
77
+ };
78
+ }
79
+ function resolvePhysicalAttempt(runId, stepKey, physicalAttempt) {
80
+ if (!physicalAttempt)
81
+ return defaultPhysicalAttempt(runId, stepKey);
82
+ if (!Number.isSafeInteger(physicalAttempt.attemptNo) || physicalAttempt.attemptNo <= 0) {
83
+ throw new Error(`physicalAttempt.attemptNo must be a positive integer for ${stepKey}`);
84
+ }
85
+ if (physicalAttempt.attemptId.trim().length === 0) {
86
+ throw new Error(`physicalAttempt.attemptId must be non-empty for ${stepKey}`);
87
+ }
88
+ return physicalAttempt;
89
+ }
95
90
  async function flushReporter(reporter) {
96
91
  if (!reporter)
97
92
  return;
@@ -115,27 +110,141 @@ function processArtifactFields(artifacts) {
115
110
  stderrTail: typeof stderrTail === 'string' ? stderrTail : undefined,
116
111
  };
117
112
  }
118
- /**
119
- * makeRunStep — DBOS-free factory for the runStep async function.
120
- *
121
- * Returns a plain async function with the same signature as the DBOS step.
122
- * PipelineService passes this to `dbos.registerStep(...)` so tests can import
123
- * and call it directly — exercising the SAME code path as production (C1).
124
- */
113
+ async function runAgentWithReporterFlush(runAgent, args) {
114
+ try {
115
+ return await runAgent(args);
116
+ }
117
+ finally {
118
+ await flushReporter(args.reporter);
119
+ }
120
+ }
121
+ function runnerFailureDetails(err, role, stepKey) {
122
+ const reason = runnerFailureReason(err);
123
+ const output = {
124
+ verdict: 'BLOCKER',
125
+ error: 'runner_failed',
126
+ role,
127
+ stepKey,
128
+ reason,
129
+ };
130
+ const failureMetadata = failureMetadataFromRunAgentError(err);
131
+ if (failureMetadata.failureKind)
132
+ output.failureKind = failureMetadata.failureKind;
133
+ if (failureMetadata.retryableCandidate !== undefined)
134
+ output.retryableCandidate = failureMetadata.retryableCandidate;
135
+ if (failureMetadata.timing)
136
+ output.timing = failureMetadata.timing;
137
+ return {
138
+ reason,
139
+ output,
140
+ artifactFields: processArtifactFields(artifactsFromRunAgentError(err)),
141
+ };
142
+ }
143
+ async function appendRunnerFailureAttempt(appendAttempt, attemptContext, failure) {
144
+ try {
145
+ await appendAttempt({
146
+ runId: attemptContext.runId,
147
+ stepId: attemptContext.step.id,
148
+ attemptId: attemptContext.attemptId,
149
+ attemptNo: attemptContext.attemptNo,
150
+ iteration: iterationOf(attemptContext.stepKey),
151
+ status: 'failed',
152
+ modelProfile: attemptContext.step.modelProfile,
153
+ verdict: 'BLOCKER',
154
+ inputTokens: 0,
155
+ outputTokens: 0,
156
+ costAmount: 0,
157
+ durationMs: attemptContext.durationMs,
158
+ output: failure.output,
159
+ lesson: failure.reason,
160
+ error: failure.reason,
161
+ ...failure.artifactFields,
162
+ });
163
+ }
164
+ catch (attemptErr) {
165
+ console.warn(`[pipeline] failed-attempt row write failed for ${attemptContext.stepKey} (${attemptContext.attemptId}) — observability only. ` +
166
+ `${String(attemptErr)}`);
167
+ }
168
+ }
169
+ async function handleRunnerFailure(appendEvent, appendAttempt, attemptContext, err) {
170
+ const failure = runnerFailureDetails(err, attemptContext.role, attemptContext.stepKey);
171
+ await appendEvent({
172
+ runId: attemptContext.runId,
173
+ taskId: attemptContext.step.taskId,
174
+ stepId: attemptContext.step.id,
175
+ stepKey: attemptContext.stepKey,
176
+ type: 'step_failed',
177
+ idempotencyKey: attemptContext.attemptId,
178
+ payload: {
179
+ output: failure.output,
180
+ role: attemptContext.role,
181
+ stepKey: attemptContext.stepKey,
182
+ attemptId: attemptContext.attemptId,
183
+ attemptNo: attemptContext.attemptNo,
184
+ },
185
+ });
186
+ await appendRunnerFailureAttempt(appendAttempt, attemptContext, failure);
187
+ return { output: failure.output, nextSteps: [], costs: [], needsHuman: true, lesson: failure.reason };
188
+ }
189
+ async function appendAttemptCosts(appendCost, runId, step, stepKey, attemptId, costs) {
190
+ for (let i = 0; i < costs.length; i++) {
191
+ const cost = costs[i];
192
+ if (!cost)
193
+ continue;
194
+ await appendCost({
195
+ runId,
196
+ stepId: step.id,
197
+ stepKey,
198
+ attemptId,
199
+ cost,
200
+ index: i,
201
+ });
202
+ }
203
+ }
204
+ function aggregateCostTotals(costs) {
205
+ return costs.reduce((sum, cost) => ({
206
+ inputTokens: sum.inputTokens + (cost?.inputTokens ?? 0),
207
+ outputTokens: sum.outputTokens + (cost?.outputTokens ?? 0),
208
+ costAmount: sum.costAmount + (cost?.costAmount ?? 0),
209
+ }), { inputTokens: 0, outputTokens: 0, costAmount: 0 });
210
+ }
211
+ async function appendSuccessfulAttempt(appendAttempt, attemptContext, result, artifactFields) {
212
+ const { inputTokens, outputTokens, costAmount } = aggregateCostTotals(result.costs);
213
+ try {
214
+ await appendAttempt({
215
+ runId: attemptContext.runId,
216
+ stepId: attemptContext.step.id,
217
+ attemptId: attemptContext.attemptId,
218
+ attemptNo: attemptContext.attemptNo,
219
+ iteration: iterationOf(attemptContext.stepKey),
220
+ status: result.needsHuman ? 'awaiting_approval' : 'succeeded',
221
+ modelProfile: attemptContext.step.modelProfile,
222
+ verdict: verdictForAttemptRow(result),
223
+ inputTokens,
224
+ outputTokens,
225
+ costAmount,
226
+ durationMs: attemptContext.durationMs,
227
+ output: result.output,
228
+ lesson: result.lesson,
229
+ ...artifactFields,
230
+ });
231
+ }
232
+ catch (err) {
233
+ console.warn(`[pipeline] attempt-row write failed for ${attemptContext.stepKey} (${attemptContext.attemptId}) — observability only, step still succeeds. ` +
234
+ `If this is a schema-drift error, migrate the control-plane attempts table to the 0008 fields. ${String(err)}`);
235
+ }
236
+ }
125
237
  export function makeRunStep(deps) {
126
238
  const { loadRole, loadModelProfile, loadPipelineContext, appendEvent, appendCost, appendAttempt, runAgent, writeAgentOutputEvent, } = deps;
127
239
  const clock = deps.now ?? (() => Date.now());
128
- return async function runStepImpl(runId, role, stepKey, stepInput, resolvedRunnerId, executionProfile) {
129
- // 1. Load the canonical role (B1: role is NEVER mutated with #k).
240
+ return async function runStepImpl(runId, role, stepKey, stepInput, resolvedRunnerId, executionProfile, physicalAttempt, acceptedVerdicts) {
130
241
  const loadedRole = await loadRole(role);
131
- // 2. Load the model profile from the role's modelLevel (B7: not hardcoded 'standard').
132
242
  const profile = await loadModelProfile(loadedRole.modelLevel);
133
- // 3. Build pipeline context: synthesize in-memory Step with real taskId (M3, B6).
134
243
  const { da, step, runContext } = await loadPipelineContext(runId, role, stepKey, stepInput, profile.level);
135
- // 4. Build the agent context string.
244
+ const { attemptId, attemptNo } = resolvePhysicalAttempt(runId, stepKey, physicalAttempt);
136
245
  let context;
137
246
  try {
138
- context = await buildContext(da, step, loadedRole, runContext);
247
+ context = await buildContext(da, step, loadedRole, runContext, getConfig().dataDir);
139
248
  }
140
249
  catch (err) {
141
250
  const reason = err instanceof Error ? err.message : String(err);
@@ -145,19 +254,18 @@ export function makeRunStep(deps) {
145
254
  stepId: step.id,
146
255
  stepKey,
147
256
  type: 'step_failed',
257
+ idempotencyKey: attemptId,
148
258
  payload: {
149
259
  error: err instanceof ContextMissingError ? err.code : 'revo.ContextBuildFailed',
150
260
  reason,
151
261
  role,
152
262
  stepKey,
263
+ attemptId,
264
+ attemptNo,
153
265
  },
154
266
  });
155
267
  throw err;
156
268
  }
157
- // 5. Deterministic, bounded attemptId (B2).
158
- const attemptId = `attempt_${fnv1a64Hex(`${runId}|${stepKey}`)}`;
159
- // 6. Dispatch through the resolved per-role runner binding. Legacy direct callers may still
160
- // pass runnerMode ('script'|'live') without a route; that fallback is intentionally private.
161
269
  const effectiveRunner = dispatchRunnerId(resolveStepRunner(loadedRole.runner, resolvedRunnerId, executionProfile));
162
270
  const dispatchRole = { ...loadedRole, runner: effectiveRunner };
163
271
  const reporter = writeAgentOutputEvent
@@ -170,117 +278,37 @@ export function makeRunStep(deps) {
170
278
  runner: effectiveRunner,
171
279
  }, writeAgentOutputEvent)
172
280
  : undefined;
173
- // 7. Run the agent (timed for the attempt-row duration). Runner-process failures are domain
174
- // failures, not DBOS step failures: convert them to a blocking attempt so the workflow can
175
- // park/fail the run row instead of leaving DBOS=ERROR with task_runs.status='ready'.
176
281
  const startedAt = clock();
177
282
  let result;
178
283
  try {
179
- result = await runAgent({ role: dispatchRole, profile, context, attemptId, step, reporter });
180
- await flushReporter(reporter);
284
+ result = await runAgentWithReporterFlush(runAgent, {
285
+ role: dispatchRole,
286
+ profile,
287
+ context,
288
+ attemptId,
289
+ step,
290
+ reporter,
291
+ ...(acceptedVerdicts ? { acceptedVerdicts } : {}),
292
+ });
181
293
  }
182
294
  catch (err) {
183
- await flushReporter(reporter);
184
295
  const durationMs = Math.max(0, clock() - startedAt);
185
- const reason = runnerFailureReason(err);
186
- const artifactFields = processArtifactFields(artifactsFromRunAgentError(err));
187
- const output = {
188
- verdict: 'BLOCKER',
189
- error: 'runner_failed',
190
- role,
191
- stepKey,
192
- reason,
193
- };
194
- await appendEvent({
195
- runId,
196
- taskId: step.taskId,
197
- stepId: step.id,
198
- stepKey,
199
- type: 'step_failed',
200
- payload: { output, role, stepKey, attemptId },
201
- });
202
- try {
203
- await appendAttempt({
204
- runId,
205
- stepId: step.id,
206
- attemptId,
207
- attemptNo: iterationOf(stepKey) + 1,
208
- iteration: iterationOf(stepKey),
209
- status: 'failed',
210
- modelProfile: step.modelProfile,
211
- verdict: 'BLOCKER',
212
- inputTokens: 0,
213
- outputTokens: 0,
214
- costAmount: 0,
215
- durationMs,
216
- output,
217
- lesson: reason,
218
- error: reason,
219
- ...artifactFields,
220
- });
221
- }
222
- catch (attemptErr) {
223
- console.warn(`[pipeline] failed-attempt row write failed for ${stepKey} (${attemptId}) — observability only. ` +
224
- `${String(attemptErr)}`);
225
- }
226
- return { output, nextSteps: [], costs: [], needsHuman: true, lesson: reason };
296
+ return handleRunnerFailure(appendEvent, appendAttempt, { runId, role, stepKey, attemptId, attemptNo, step, durationMs }, err);
227
297
  }
228
298
  const durationMs = Math.max(0, clock() - startedAt);
299
+ const attemptContext = { runId, role, stepKey, attemptId, attemptNo, step, durationMs };
229
300
  const artifactFields = processArtifactFields(result.artifacts);
230
- // 8. Persist event to Revisium draft (idempotent — ROW_CONFLICT = no-op on replay).
231
301
  await appendEvent({
232
302
  runId,
233
303
  taskId: step.taskId,
234
304
  stepId: step.id,
235
305
  stepKey,
236
306
  type: 'step_succeeded',
237
- payload: { output: result.output, role, stepKey, attemptId },
307
+ idempotencyKey: attemptId,
308
+ payload: { output: result.output, role, stepKey, attemptId, attemptNo },
238
309
  });
239
- // 9. Persist cost rows (idempotent by index).
240
- for (let i = 0; i < result.costs.length; i++) {
241
- const cost = result.costs[i];
242
- if (!cost)
243
- continue;
244
- await appendCost({
245
- runId,
246
- stepId: step.id,
247
- stepKey,
248
- attemptId,
249
- cost,
250
- index: i,
251
- });
252
- }
253
- // 10. Persist the per-attempt observability row (0008 #4). Aggregate tokens/cost from the
254
- // cost records; surface the verdict; redact secrets on store. Idempotent by attemptId.
255
- // NON-FATAL: the attempts row is pure observability — a write failure (e.g. a control-plane
256
- // whose attempts schema predates 0008's fields, additionalProperties:false → VALIDATION_FAILURE)
257
- // must NEVER fail an otherwise-successful agent step. Log and continue.
258
- const inputTokens = result.costs.reduce((sum, c) => sum + (c?.inputTokens ?? 0), 0);
259
- const outputTokens = result.costs.reduce((sum, c) => sum + (c?.outputTokens ?? 0), 0);
260
- const costAmount = result.costs.reduce((sum, c) => sum + (c?.costAmount ?? 0), 0);
261
- try {
262
- await appendAttempt({
263
- runId,
264
- stepId: step.id,
265
- attemptId,
266
- attemptNo: iterationOf(stepKey) + 1,
267
- iteration: iterationOf(stepKey),
268
- status: result.needsHuman ? 'awaiting_approval' : 'succeeded',
269
- modelProfile: step.modelProfile,
270
- verdict: verdictForAttemptRow(result),
271
- inputTokens,
272
- outputTokens,
273
- costAmount,
274
- durationMs,
275
- output: result.output,
276
- lesson: result.lesson,
277
- ...artifactFields,
278
- });
279
- }
280
- catch (err) {
281
- console.warn(`[pipeline] attempt-row write failed for ${stepKey} (${attemptId}) — observability only, step still succeeds. ` +
282
- `If this is a schema-drift error, migrate the control-plane attempts table to the 0008 fields. ${String(err)}`);
283
- }
310
+ await appendAttemptCosts(appendCost, runId, step, stepKey, attemptId, result.costs);
311
+ await appendSuccessfulAttempt(appendAttempt, attemptContext, result, artifactFields);
284
312
  return result;
285
313
  };
286
314
  }
@@ -299,15 +327,8 @@ let PipelineService = class PipelineService {
299
327
  inboxService;
300
328
  integratorService;
301
329
  worktreeService;
302
- /** Registered DBOS-wrapped function types. */
303
330
  runStepFn;
304
- /**
305
- * The DATA-DRIVEN workflow (plan 0015) — the SOLE pipeline engine. Selection routes EVERY pipeline
306
- * here (TaskControlPlaneApiService); the engine executes the pinned `pipeline-core` graph on real
307
- * DBOS, reusing the SAME runStep DBOS step + awaitHuman + integrator + live preflight.
308
- */
309
331
  dataDrivenTaskFn;
310
- /** The single run-agent used by all steps. */
311
332
  runAgent;
312
333
  constructor(dbos, rolesService, runService, inboxService, integratorService, worktreeService, runAgentToken) {
313
334
  this.dbos = dbos;
@@ -317,7 +338,6 @@ let PipelineService = class PipelineService {
317
338
  this.integratorService = integratorService;
318
339
  this.worktreeService = worktreeService;
319
340
  this.runAgent = runAgentToken;
320
- // Capture bound dep methods (S7740: no `this`-aliasing in closures).
321
341
  const stepDeps = {
322
342
  loadRole: this.rolesService.loadRole.bind(this.rolesService),
323
343
  loadModelProfile: this.rolesService.loadModelProfile.bind(this.rolesService),
@@ -328,36 +348,25 @@ let PipelineService = class PipelineService {
328
348
  runAgent: this.runAgent,
329
349
  writeAgentOutputEvent: (event) => this.dbos.writeStream(AGENT_OUTPUT_STREAM_KEY, event),
330
350
  };
331
- // Register the step using the production builder (must happen BEFORE DBOS.launch()).
332
351
  this.runStepFn = this.dbos.registerStep('PipelineService.runStep', makeRunStep(stepDeps));
333
- // Register the REAL integrator as a DBOS step (M6/B7: .bind so `this` survives registration).
334
352
  const integrateFn = this.dbos.registerStep('PipelineService.integrate', this.integratorService.runIntegrate.bind(this.integratorService));
335
- // Register the REAL confirm-merge as a DBOS step (plan 0017 follow-up: gate worktree cleanup on a
336
- // real merge). Idempotent (re-views before merging) → replay-safe.
337
353
  const confirmMergeFn = this.dbos.registerStep('PipelineService.confirmMerge', this.integratorService.runConfirmMerge.bind(this.integratorService));
338
- // Register the REAL pollPr + respondThreads as DBOS steps (plan 0018: the PR review-feedback loop).
339
- // pollPr observes + classifies; respondThreads replies + resolves. Both gh-pinned + idempotent.
340
354
  const pollPrFn = this.dbos.registerStep('PipelineService.pollPr', this.integratorService.runPollPr.bind(this.integratorService));
341
355
  const respondThreadsFn = this.dbos.registerStep('PipelineService.respondThreads', this.integratorService.runRespondThreads.bind(this.integratorService));
342
- // Register the live preflight as a memoized DBOS step (B5/B7).
356
+ const captureChangeFn = this.dbos.registerStep('PipelineService.captureProducedChange', this.integratorService.runCaptureProducedChange.bind(this.integratorService));
343
357
  const preflightFn = this.dbos.registerStep('PipelineService.preflightLive', this.integratorService.runPreflight.bind(this.integratorService));
344
- // Register the per-run worktree lifecycle as memoized DBOS steps (plan 0017). `ensure` is
345
- // create-if-absent (idempotent on replay); `release` is best-effort + idempotent.
346
358
  const createWorktreeFn = this.dbos.registerStep('PipelineService.worktreeCreate', this.worktreeService.ensure);
347
359
  const releaseWorktreeFn = this.dbos.registerStep('PipelineService.worktreeRelease', this.worktreeService.release);
348
- // Build the awaitHuman factory — DBOS-free, depends on injected service verbs.
349
360
  const awaitHuman = makeAwaitHuman({
350
361
  pushInbox: (item, id) => this.inboxService.pushInbox(item, { id }),
351
362
  awaitDecision: (topic) => this.dbos.awaitDecision(topic),
352
363
  appendEvent: stepDeps.appendEvent,
353
364
  });
354
- // Register the DATA-DRIVEN workflow (plan 0015) using the production builder with the DBOS-wrapped
355
- // step. Reuses the SAME runStep + awaitHuman + integrator + preflight so capabilities resolve
356
- // through the existing runner machinery (no duplicate dispatch logic, no role-ids in the engine).
357
365
  const dataDrivenDeps = {
358
366
  appendEvent: stepDeps.appendEvent,
359
367
  appendRunOutput: this.runService.appendRunOutput.bind(this.runService),
360
368
  setProgress: (_runId, cursor) => this.dbos.setEvent(RUN_PROGRESS_EVENT_KEY, cursor),
369
+ sleep: (ms) => this.dbos.sleep(ms),
361
370
  awaitHuman,
362
371
  completeRun: (runId, completeOpts) => this.runService.completeRun(runId, completeOpts),
363
372
  failRun: (runId, reason) => this.runService.failRun(runId, reason),
@@ -371,24 +380,20 @@ let PipelineService = class PipelineService {
371
380
  runPollStub: this.integratorService.runPollStub,
372
381
  respondThreadsFn,
373
382
  runRespondStub: this.integratorService.runRespondStub,
383
+ captureChangeFn,
374
384
  preflightFn,
375
385
  createWorktreeFn,
376
386
  releaseWorktreeFn,
377
387
  };
378
388
  this.dataDrivenTaskFn = this.dbos.registerWorkflow('PipelineService.dataDrivenTask', makeDataDrivenTask(this.runStepFn, dataDrivenDeps));
379
- // Register the WorkflowQueue (idempotent — Map-guarded in DbosService).
380
389
  this.dbos.registerQueue(DEV_TASKS_QUEUE, { concurrency: DEV_TASKS_CONCURRENCY });
381
390
  }
382
- /**
383
- * Enqueue the DATA-DRIVEN workflow for the given runId (plan 0015).
384
- *
385
- * Idempotent by workflowID=runId: re-starting the same runId returns the existing handle. The pinned,
386
- * validated template is passed as a DBOS workflow ARGUMENT, so it is durable and replayed verbatim on
387
- * recovery (the MVP pin — a Revisium-revision pin is a later upgrade per §11/§14 Q4). Route role
388
- * bindings are persisted in the DBOS workflow input row and are authoritative for runner dispatch.
389
- */
390
391
  startDataDrivenTask(runId, opts) {
391
- return this.dbos.startWorkflowOn(this.dataDrivenTaskFn, runId, DEV_TASKS_QUEUE, runId, opts);
392
+ const pinnedOpts = {
393
+ ...opts,
394
+ runnerRetryPolicy: pinRunnerTransientRetryPolicy(opts.runnerRetryPolicy),
395
+ };
396
+ return this.dbos.startWorkflowOn(this.dataDrivenTaskFn, runId, DEV_TASKS_QUEUE, runId, pinnedOpts);
392
397
  }
393
398
  };
394
399
  PipelineService = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.service.js","sourceRoot":"","sources":["../../src/pipeline/pipeline.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EACL,2BAA2B,GAE5B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAyB,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GAIvB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAE7B,kDAAkD;AAClD,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE;IAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,EAAE,CAAC;AAEL,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAWxC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAmBD;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,MAAqB;IACjD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAClG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,sFAAsF;AACtF,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAA2C;IACtE,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,yEAAyE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAkB;IAC/C,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3G,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC;IAChC,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;IAC9C,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;IAC9C,OAAO;QACL,WAAW,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;QACtD,UAAU,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACnE,UAAU,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,IAAiB;IAC3C,MAAM,EACJ,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,aAAa,EACb,QAAQ,EACR,qBAAqB,GACtB,GAAG,IAAI,CAAC;IACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7C,OAAO,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,IAAY,EACZ,OAAe,EACf,SAAkB,EAClB,gBAAyB,EACzB,gBAAmC;QAEnC,kEAAkE;QAClE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAExC,uFAAuF;QACvF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE9D,kFAAkF;QAClF,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,mBAAmB,CACxD,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,OAAO,CAAC,KAAK,CACd,CAAC;QAEF,qCAAqC;QACrC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE;oBACP,KAAK,EAAE,GAAG,YAAY,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;oBAChF,MAAM;oBACN,IAAI;oBACJ,OAAO;iBACR;aACF,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG,WAAW,UAAU,CAAC,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;QAEjE,4FAA4F;QAC5F,gGAAgG;QAChG,MAAM,eAAe,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACnH,MAAM,YAAY,GAAG,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,qBAAqB;YACpC,CAAC,CAAC,2BAA2B,CACzB;gBACE,KAAK;gBACL,SAAS;gBACT,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,IAAI;gBACJ,MAAM,EAAE,eAAe;aACxB,EACD,qBAAqB,CACtB;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,4FAA4F;QAC5F,2FAA2F;QAC3F,qFAAqF;QACrF,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;QAC1B,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7F,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,cAAc,GAAG,qBAAqB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG;gBACb,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,eAAe;gBACtB,IAAI;gBACJ,OAAO;gBACP,MAAM;aACP,CAAC;YACF,MAAM,WAAW,CAAC;gBAChB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;aAC9C,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC;oBAClB,KAAK;oBACL,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,SAAS;oBACT,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;oBACnC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;oBAC/B,MAAM,EAAE,QAAQ;oBAChB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,OAAO,EAAE,SAAS;oBAClB,WAAW,EAAE,CAAC;oBACd,YAAY,EAAE,CAAC;oBACf,UAAU,EAAE,CAAC;oBACb,UAAU;oBACV,MAAM;oBACN,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,MAAM;oBACb,GAAG,cAAc;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CACV,kDAAkD,OAAO,KAAK,SAAS,0BAA0B;oBAC/F,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAC1B,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAChF,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE/D,oFAAoF;QACpF,MAAM,WAAW,CAAC;YAChB,KAAK;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO;YACP,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE;SAC7D,CAAC,CAAC;QAEH,8CAA8C;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,UAAU,CAAC;gBACf,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,OAAO;gBACP,SAAS;gBACT,IAAI;gBACJ,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC;QAED,0FAA0F;QAC1F,2FAA2F;QAC3F,gGAAgG;QAChG,qGAAqG;QACrG,4EAA4E;QAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC;YACH,MAAM,aAAa,CAAC;gBAClB,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS;gBACT,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;gBACnC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC;gBAC/B,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW;gBAC7D,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC;gBACrC,WAAW;gBACX,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,cAAc;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CACV,2CAA2C,OAAO,KAAK,SAAS,+CAA+C;gBAC7G,iGAAiG,MAAM,CAAC,GAAG,CAAC,EAAE,CACjH,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,gBAAyB,EACzB,gBAAmC;IAEnC,IAAI,gBAAgB,IAAI,gBAAgB,KAAK,MAAM;QAAE,OAAO,gBAAgB,CAAC;IAC7E,IAAI,gBAAgB,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACnD,MAAM,eAAe,GAAG,gBAAgB,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACtE,OAAO,eAAe,IAAI,UAAU,CAAC;AACvC,CAAC;AAGM,IAAM,eAAe,GAArB,MAAM,eAAe;IA0BP;IAEA;IAEA;IAEA;IAEA;IAEA;IAnCnB,8CAA8C;IAC7B,SAAS,CAOE;IAE5B;;;;OAIG;IACc,gBAAgB,CAGF;IAE/B,8CAA8C;IAC7B,QAAQ,CAAW;IAEpC,YAEmB,IAAiB,EAEjB,YAA0B,EAE1B,UAAsB,EAEtB,YAA0B,EAE1B,iBAAoC,EAEpC,eAAgC,EAC9B,aAAuB;QAXzB,SAAI,GAAJ,IAAI,CAAa;QAEjB,iBAAY,GAAZ,YAAY,CAAc;QAE1B,eAAU,GAAV,UAAU,CAAY;QAEtB,iBAAY,GAAZ,YAAY,CAAc;QAE1B,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEpC,oBAAe,GAAf,eAAe,CAAiB;QAGjD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;QAE9B,qEAAqE;QACrE,MAAM,QAAQ,GAAgB;YAC5B,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5D,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAC5E,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9E,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC9D,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5D,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,qBAAqB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,KAAK,CAAC;SACxF,CAAC;QAEF,qFAAqF;QACrF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACrC,yBAAyB,EACzB,WAAW,CAAC,QAAQ,CAAC,CACtB,CAAC;QAEF,8FAA8F;QAC9F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACxC,2BAA2B,EAC3B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CACjE,CAAC;QAEF,kGAAkG;QAClG,mEAAmE;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAC3C,8BAA8B,EAC9B,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CACpE,CAAC;QAEF,oGAAoG;QACpG,gGAAgG;QAChG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACrC,wBAAwB,EACxB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAC9D,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAC7C,gCAAgC,EAChC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CACtE,CAAC;QAEF,+DAA+D;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CACxC,+BAA+B,EAC/B,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CACjE,CAAC;QAEF,0FAA0F;QAC1F,kFAAkF;QAClF,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAC7C,gCAAgC,EAChC,IAAI,CAAC,eAAe,CAAC,MAAM,CAC5B,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAC9C,iCAAiC,EACjC,IAAI,CAAC,eAAe,CAAC,OAAO,CAC7B,CAAC;QAEF,+EAA+E;QAC/E,MAAM,UAAU,GAAG,cAAc,CAAC;YAChC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAClE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,WAAW,EAAE,QAAQ,CAAC,WAAW;SAClC,CAAC,CAAC;QAEH,mGAAmG;QACnG,8FAA8F;QAC9F,kGAAkG;QAClG,MAAM,cAAc,GAAuB;YACzC,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACtE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;YACnF,UAAU;YACV,WAAW,EAAE,CACX,KAAa,EACb,YAAyF,EACzF,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;YACrD,OAAO,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YAClF,QAAQ,EAAE,CACR,KAAa,EACb,SAAgE,EAChE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;YAC/C,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5E,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO;YACvC,cAAc;YACd,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc;YACrD,QAAQ;YACR,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,WAAW;YAC/C,gBAAgB;YAChB,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc;YACrD,WAAW;YACX,gBAAgB;YAChB,iBAAiB;SAClB,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAChD,gCAAgC,EAChC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CACnD,CAAC;QAEF,wEAAwE;QACxE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IACH,mBAAmB,CACjB,KAAa,EACb,IAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;CACF,CAAA;AAhKY,eAAe;IAD3B,UAAU,EAAE;IA0BR,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnB,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;IAEpB,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;IAEpB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IAEzB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;IAEvB,WAAA,MAAM,CAAC,SAAS,CAAC,CAAA;qCAXK,WAAW;QAEH,YAAY;QAEd,UAAU;QAER,YAAY;QAEP,iBAAiB;QAEnB,eAAe;GApCxC,eAAe,CAgK3B"}
1
+ {"version":3,"file":"pipeline.service.js","sourceRoot":"","sources":["../../src/pipeline/pipeline.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { normalizeIssueRefIntoParams } from '../run/issue-ref.js';
1
2
  const GATE_ID_BY_CANONICAL_LABEL = {
2
3
  'task spec approval': 'plan',
3
4
  'merge approval': 'merge',
@@ -23,12 +24,12 @@ function asStringArray(value) {
23
24
  return undefined;
24
25
  return value.filter((item) => typeof item === 'string' && item.trim() !== '');
25
26
  }
26
- export function normalizeParams(value) {
27
+ export function normalizeParams(value, issueRef) {
27
28
  const record = asRecord(value);
28
29
  if (!record)
29
- return {};
30
+ return normalizeIssueRefIntoParams({}, issueRef);
30
31
  const { executionProfile: _executionProfile, execution_profile: _executionProfileSnake, runnerOverrides: _runnerOverrides, runner_overrides: _runnerOverridesSnake, availableRunners: _availableRunners, available_runners: _availableRunnersSnake, ...publicParams } = record;
31
- return publicParams;
32
+ return normalizeIssueRefIntoParams(publicParams, issueRef);
32
33
  }
33
34
  export function normalizeRouteGates(value) {
34
35
  if (!Array.isArray(value))
@@ -1 +1 @@
1
- {"version":3,"file":"route-contract.js","sourceRoot":"","sources":["../../src/pipeline/route-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-contract.js","sourceRoot":"","sources":["../../src/pipeline/route-contract.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,4 @@
1
- /**
2
- * pipeline-core — the pure, framework-free pipeline state machine (plan 0015, slice 1).
3
- *
4
- * ZERO imports from NestJS / DBOS / Revisium / runners / any I/O; deterministic (no clocks/randomness).
5
- * The DBOS effect-adapter (slice 2) consumes this surface:
6
- * - `validateTemplate` / `classifyTemplateDiff` — install-time validation (§12).
7
- * - `step` — the pure reducer `(template, state, lastResult) -> { state, decision }` (§10).
8
- * - `initialState` — build the entry cursor.
9
- *
10
- * The `kit/` sub-path is a TEST helper (builders/fixtures/drive/assertions) and is intentionally NOT
11
- * re-exported here — production code depends only on these primitives.
12
- */
13
1
  export * from './types.js';
14
2
  export { validateTemplate, classifyTemplateDiff } from './validate.js';
15
- export { step, initialState, evalCondition, selectJoinWinner, applyCounterMutations, InterpretError } from './interpret.js';
3
+ export { step, initialState, evalCondition, selectJoinWinner, reduceJoinVerdict, applyCounterMutations, InterpretError } from './interpret.js';
16
4
  //# sourceMappingURL=index.js.map