@osolmaz/pi-workflows 0.12.0 → 0.13.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 (257) hide show
  1. package/README.md +56 -31
  2. package/dist/builtins/autodoc.workflow.d.ts +4 -4
  3. package/dist/builtins/autoimplement.workflow.d.ts +797 -142
  4. package/dist/builtins/autoimplement.workflow.js +17 -105
  5. package/dist/builtins/autoimplement.workflow.js.map +1 -1
  6. package/dist/builtins/autoplan.workflow.d.ts +126 -13
  7. package/dist/builtins/autoplan.workflow.js +200 -29
  8. package/dist/builtins/autoplan.workflow.js.map +1 -1
  9. package/dist/builtins/catalog.js +7 -5
  10. package/dist/builtins/catalog.js.map +1 -1
  11. package/dist/builtins/index.d.ts +4 -2
  12. package/dist/builtins/index.js +3 -1
  13. package/dist/builtins/index.js.map +1 -1
  14. package/dist/builtins/monitor.workflow.d.ts +56 -23
  15. package/dist/builtins/monitor.workflow.js +508 -329
  16. package/dist/builtins/monitor.workflow.js.map +1 -1
  17. package/dist/builtins/pi-agent-group.d.ts +72 -0
  18. package/dist/builtins/pi-agent-group.js +1087 -0
  19. package/dist/builtins/pi-agent-group.js.map +1 -0
  20. package/dist/builtins/plain-summary.workflow.d.ts +32 -0
  21. package/dist/builtins/plain-summary.workflow.js +134 -0
  22. package/dist/builtins/plain-summary.workflow.js.map +1 -0
  23. package/dist/builtins/plan-approval.workflow.d.ts +39 -5
  24. package/dist/builtins/plan-approval.workflow.js +92 -14
  25. package/dist/builtins/plan-approval.workflow.js.map +1 -1
  26. package/dist/builtins/plan-change.workflow.d.ts +449 -0
  27. package/dist/builtins/plan-change.workflow.js +256 -0
  28. package/dist/builtins/plan-change.workflow.js.map +1 -0
  29. package/dist/builtins/plan-presentation.js +2 -2
  30. package/dist/builtins/plan-presentation.js.map +1 -1
  31. package/dist/builtins/sanity-check.workflow.d.ts +50 -6
  32. package/dist/builtins/sanity-check.workflow.js +150 -28
  33. package/dist/builtins/sanity-check.workflow.js.map +1 -1
  34. package/dist/controllers/effects.d.ts +3 -2
  35. package/dist/controllers/effects.js +8 -1
  36. package/dist/controllers/effects.js.map +1 -1
  37. package/dist/controllers/index.d.ts +1 -1
  38. package/dist/controllers/index.js +1 -1
  39. package/dist/controllers/index.js.map +1 -1
  40. package/dist/controllers/manager.d.ts +1 -0
  41. package/dist/controllers/manager.js +41 -17
  42. package/dist/controllers/manager.js.map +1 -1
  43. package/dist/controllers/sqlite.d.ts +107 -85
  44. package/dist/controllers/sqlite.js +1611 -1486
  45. package/dist/controllers/sqlite.js.map +1 -1
  46. package/dist/controllers/store.d.ts +9 -8
  47. package/dist/controllers/store.js +1 -31
  48. package/dist/controllers/store.js.map +1 -1
  49. package/dist/controllers/types.d.ts +3 -0
  50. package/dist/controllers/workflow-engine-scheduler.d.ts +1 -1
  51. package/dist/controllers/workflow-engine-scheduler.js +3 -5
  52. package/dist/controllers/workflow-engine-scheduler.js.map +1 -1
  53. package/dist/controllers/workflows.d.ts +2 -2
  54. package/dist/controllers/workflows.js +11 -10
  55. package/dist/controllers/workflows.js.map +1 -1
  56. package/dist/extension/controller-host.js +2 -2
  57. package/dist/extension/controller-host.js.map +1 -1
  58. package/dist/extension/decision-channels.d.ts +4 -2
  59. package/dist/extension/decision-channels.js +333 -146
  60. package/dist/extension/decision-channels.js.map +1 -1
  61. package/dist/extension/executor.d.ts +9 -2
  62. package/dist/extension/executor.js +89 -2
  63. package/dist/extension/executor.js.map +1 -1
  64. package/dist/extension/herdr-viewer.d.ts +0 -1
  65. package/dist/extension/herdr-viewer.js +0 -4
  66. package/dist/extension/herdr-viewer.js.map +1 -1
  67. package/dist/extension/index.js +209 -127
  68. package/dist/extension/index.js.map +1 -1
  69. package/dist/extension/recorder.d.ts +3 -10
  70. package/dist/extension/recorder.js +13 -22
  71. package/dist/extension/recorder.js.map +1 -1
  72. package/dist/extension/session-events.d.ts +2 -2
  73. package/dist/extension/step-message.d.ts +7 -2
  74. package/dist/extension/step-message.js +94 -2
  75. package/dist/extension/step-message.js.map +1 -1
  76. package/dist/extension/widget.js +29 -3
  77. package/dist/extension/widget.js.map +1 -1
  78. package/dist/host/rpc-executor.d.ts +3 -0
  79. package/dist/host/rpc-executor.js +2 -0
  80. package/dist/host/rpc-executor.js.map +1 -1
  81. package/dist/host/runner.d.ts +3 -6
  82. package/dist/host/runner.js +83 -32
  83. package/dist/host/runner.js.map +1 -1
  84. package/dist/render/graph-render.js +15 -10
  85. package/dist/render/graph-render.js.map +1 -1
  86. package/dist/state/database.d.ts +35 -0
  87. package/dist/state/database.js +287 -0
  88. package/dist/state/database.js.map +1 -0
  89. package/dist/state/index.d.ts +4 -0
  90. package/dist/state/index.js +5 -0
  91. package/dist/state/index.js.map +1 -0
  92. package/dist/state/json.d.ts +6 -0
  93. package/dist/state/json.js +38 -0
  94. package/dist/state/json.js.map +1 -0
  95. package/dist/state/mutation.d.ts +57 -0
  96. package/dist/state/mutation.js +255 -0
  97. package/dist/state/mutation.js.map +1 -0
  98. package/dist/state/schema.d.ts +6 -0
  99. package/dist/state/schema.js +473 -0
  100. package/dist/state/schema.js.map +1 -0
  101. package/dist/viewer/cli.d.ts +2 -2
  102. package/dist/viewer/cli.js +142 -122
  103. package/dist/viewer/cli.js.map +1 -1
  104. package/dist/viewer/render.d.ts +4 -4
  105. package/dist/viewer/render.js +9 -23
  106. package/dist/viewer/render.js.map +1 -1
  107. package/dist/viewer/session-reducer.d.ts +1 -1
  108. package/dist/viewer/session-reducer.js +1 -1
  109. package/dist/viewer/tui.d.ts +3 -3
  110. package/dist/viewer/tui.js +15 -13
  111. package/dist/viewer/tui.js.map +1 -1
  112. package/dist/viewer/watch.d.ts +2 -5
  113. package/dist/viewer/watch.js +13 -13
  114. package/dist/viewer/watch.js.map +1 -1
  115. package/dist/workflows/catalog.js +7 -2
  116. package/dist/workflows/catalog.js.map +1 -1
  117. package/dist/workflows/composition.js +20 -2
  118. package/dist/workflows/composition.js.map +1 -1
  119. package/dist/workflows/decision-presentation.d.ts +1 -1
  120. package/dist/workflows/decision-presentation.js +51 -38
  121. package/dist/workflows/decision-presentation.js.map +1 -1
  122. package/dist/workflows/definition.d.ts +6 -2
  123. package/dist/workflows/definition.js +17 -0
  124. package/dist/workflows/definition.js.map +1 -1
  125. package/dist/workflows/engine.d.ts +7 -7
  126. package/dist/workflows/engine.js +196 -115
  127. package/dist/workflows/engine.js.map +1 -1
  128. package/dist/workflows/errors.d.ts +16 -3
  129. package/dist/workflows/errors.js +18 -3
  130. package/dist/workflows/errors.js.map +1 -1
  131. package/dist/workflows/human-decision.d.ts +45 -8
  132. package/dist/workflows/human-decision.js +641 -274
  133. package/dist/workflows/human-decision.js.map +1 -1
  134. package/dist/workflows/index.d.ts +5 -6
  135. package/dist/workflows/index.js +4 -5
  136. package/dist/workflows/index.js.map +1 -1
  137. package/dist/workflows/progress.d.ts +1 -0
  138. package/dist/workflows/progress.js +15 -3
  139. package/dist/workflows/progress.js.map +1 -1
  140. package/dist/workflows/schema.js +27 -1
  141. package/dist/workflows/schema.js.map +1 -1
  142. package/dist/workflows/store.d.ts +83 -103
  143. package/dist/workflows/store.js +907 -951
  144. package/dist/workflows/store.js.map +1 -1
  145. package/dist/workflows/types.d.ts +88 -126
  146. package/docs/CONTROLLERS.md +10 -8
  147. package/docs/DEFERRED_TURNS.md +2 -2
  148. package/docs/DESIGN_PHILOSOPHY.md +4 -2
  149. package/docs/HUMAN_DECISIONS.md +36 -47
  150. package/docs/HUMAN_DECISION_PRESENTATIONS.md +14 -24
  151. package/docs/MONITOR.md +179 -237
  152. package/docs/SQLITE_STATE.md +219 -0
  153. package/docs/WORKFLOW_COMPOSITION.md +27 -26
  154. package/docs/WORKFLOW_STEP_MESSAGES.md +20 -18
  155. package/docs/WORKFLOW_UPDATES.md +10 -9
  156. package/docs/development.md +9 -9
  157. package/docs/live-replay-protocol.md +28 -37
  158. package/docs/plans/2026-08-16-workflow-updates-plan.md +1 -1
  159. package/docs/plans/2026-08-19-human-decision-gates-plan.md +1 -1
  160. package/docs/plans/2026-08-21-autoimplement-timeout-fallback-plan.md +1 -1
  161. package/docs/plans/2026-08-21-plan-change-approval-policy-plan.md +322 -0
  162. package/docs/plans/2026-08-21-sanity-check-plan.md +217 -95
  163. package/docs/plans/2026-08-22-goal-finishing-monitor-plan.md +200 -0
  164. package/docs/plans/2026-08-23-assistant-agent-completion-plan.md +701 -0
  165. package/docs/plans/2026-08-23-sqlite-state-plan.md +970 -0
  166. package/docs/plans/replayable-run-bundles-implementation-plan.md +2 -2
  167. package/docs/plans/session-event-replay-implementation-plan.md +1 -1
  168. package/docs/plans/tui-viewer-implementation-plan.md +1 -1
  169. package/docs/session-event-journal.md +63 -434
  170. package/docs/tui-viewer.md +13 -15
  171. package/docs/workflows.md +127 -53
  172. package/examples/workflows/approved-plan.workflow.ts +19 -46
  173. package/examples/workflows/plain-summary.workflow.ts +1 -0
  174. package/herdr-plugin.toml +1 -1
  175. package/package.json +7 -7
  176. package/plugins/herdr/viewer.mjs +1 -11
  177. package/schemas/human-decision-accepted-v1.schema.json +15 -3
  178. package/schemas/human-decision-continuation-v1.schema.json +10 -1
  179. package/schemas/human-decision-delivery-v1.schema.json +8 -0
  180. package/schemas/human-decision-receipt-v1.schema.json +8 -0
  181. package/schemas/human-decision-request-v1.schema.json +24 -4
  182. package/skills/autoimplement/SKILL.md +27 -0
  183. package/skills/autoplan/SKILL.md +5 -4
  184. package/skills/monitor/SKILL.md +91 -135
  185. package/skills/pi-workflows/SKILL.md +9 -8
  186. package/skills/sanity-check/SKILL.md +44 -0
  187. package/src/builtins/autoimplement.workflow.ts +19 -118
  188. package/src/builtins/autoplan.workflow.ts +290 -40
  189. package/src/builtins/catalog.ts +7 -5
  190. package/src/builtins/index.ts +18 -1
  191. package/src/builtins/monitor.workflow.ts +673 -382
  192. package/src/builtins/pi-agent-group.ts +1407 -0
  193. package/src/builtins/plain-summary.workflow.ts +185 -0
  194. package/src/builtins/plan-approval.workflow.ts +157 -24
  195. package/src/builtins/plan-change.workflow.ts +321 -0
  196. package/src/builtins/plan-presentation.ts +2 -2
  197. package/src/builtins/sanity-check.workflow.ts +248 -48
  198. package/src/controllers/effects.ts +7 -0
  199. package/src/controllers/index.ts +0 -6
  200. package/src/controllers/manager.ts +72 -32
  201. package/src/controllers/sqlite.ts +2420 -1948
  202. package/src/controllers/store.ts +17 -38
  203. package/src/controllers/types.ts +3 -0
  204. package/src/controllers/workflow-engine-scheduler.ts +4 -8
  205. package/src/controllers/workflows.ts +45 -21
  206. package/src/extension/controller-host.ts +1 -2
  207. package/src/extension/decision-channels.ts +456 -203
  208. package/src/extension/executor.ts +105 -2
  209. package/src/extension/herdr-viewer.ts +0 -5
  210. package/src/extension/index.ts +251 -151
  211. package/src/extension/recorder.ts +13 -22
  212. package/src/extension/session-events.ts +2 -2
  213. package/src/extension/step-message.ts +106 -4
  214. package/src/extension/widget.ts +32 -5
  215. package/src/host/rpc-executor.ts +4 -0
  216. package/src/host/runner.ts +93 -41
  217. package/src/render/graph-render.ts +12 -6
  218. package/src/state/database.ts +375 -0
  219. package/src/state/index.ts +29 -0
  220. package/src/state/json.ts +42 -0
  221. package/src/state/mutation.ts +435 -0
  222. package/src/state/schema.ts +475 -0
  223. package/src/viewer/cli.ts +151 -144
  224. package/src/viewer/render.ts +19 -30
  225. package/src/viewer/session-reducer.ts +1 -1
  226. package/src/viewer/tui.ts +18 -17
  227. package/src/viewer/watch.ts +13 -17
  228. package/src/workflows/catalog.ts +7 -2
  229. package/src/workflows/composition.ts +21 -3
  230. package/src/workflows/decision-presentation.ts +56 -43
  231. package/src/workflows/definition.ts +36 -3
  232. package/src/workflows/engine.ts +228 -130
  233. package/src/workflows/errors.ts +27 -3
  234. package/src/workflows/human-decision.ts +921 -349
  235. package/src/workflows/index.ts +20 -30
  236. package/src/workflows/progress.ts +18 -3
  237. package/src/workflows/schema.ts +36 -1
  238. package/src/workflows/store.ts +1300 -1163
  239. package/src/workflows/types.ts +100 -137
  240. package/dist/builtins/sanity-check-session.d.ts +0 -17
  241. package/dist/builtins/sanity-check-session.js +0 -168
  242. package/dist/builtins/sanity-check-session.js.map +0 -1
  243. package/dist/workflows/artifacts.d.ts +0 -40
  244. package/dist/workflows/artifacts.js +0 -155
  245. package/dist/workflows/artifacts.js.map +0 -1
  246. package/dist/workflows/migrate-sources.d.ts +0 -42
  247. package/dist/workflows/migrate-sources.js +0 -133
  248. package/dist/workflows/migrate-sources.js.map +0 -1
  249. package/docs/run-bundles.md +0 -481
  250. package/schemas/human-decision-accepted-v2.schema.json +0 -50
  251. package/schemas/human-decision-delivery-v2.schema.json +0 -36
  252. package/schemas/human-decision-receipt-v2.schema.json +0 -39
  253. package/schemas/human-decision-request-v2.schema.json +0 -69
  254. package/schemas/human-decision-resolution-v2.schema.json +0 -27
  255. package/src/builtins/sanity-check-session.ts +0 -205
  256. package/src/workflows/artifacts.ts +0 -188
  257. package/src/workflows/migrate-sources.ts +0 -178
@@ -27,8 +27,8 @@ import {
27
27
  type PublishedRepository,
28
28
  type VerificationCommandPlan,
29
29
  } from "./autoimplement-command-batches.js";
30
- import autoplanWorkflow, { type AutoplanInput } from "./autoplan.workflow.js";
31
- import planApprovalWorkflow, { type PlanApprovalInput } from "./plan-approval.workflow.js";
30
+ import { parsePlanApprovalPolicy, type PlanApprovalPolicy } from "./plan-approval.workflow.js";
31
+ import planChangeWorkflow, { type NormalizedPlanChangeInput } from "./plan-change.workflow.js";
32
32
 
33
33
  export type AutoimplementInput = {
34
34
  task: string;
@@ -44,10 +44,7 @@ export type AutoimplementInput = {
44
44
  planDigest: string;
45
45
  documents: string[];
46
46
  };
47
- approval?: {
48
- audience: string;
49
- maxReplans: number;
50
- };
47
+ approval?: PlanApprovalPolicy;
51
48
  concurrency?: Partial<AutoimplementConcurrency>;
52
49
  };
53
50
 
@@ -465,22 +462,7 @@ function parseInput(value: unknown): AutoimplementInput {
465
462
  };
466
463
  }
467
464
  const concurrency = parseAutoimplementConcurrency(input.concurrency);
468
- let approval: AutoimplementInput["approval"];
469
- if (input.approval !== undefined) {
470
- const raw = requireRecord(input.approval, "autoimplement approval");
471
- const maxReplans = raw.maxReplans ?? 3;
472
- if (
473
- !Number.isInteger(maxReplans) ||
474
- (maxReplans as number) < 1 ||
475
- (maxReplans as number) > 20
476
- ) {
477
- throw new Error("autoimplement approval maxReplans must be from 1 through 20");
478
- }
479
- approval = {
480
- audience: requireString(raw.audience, "autoimplement approval audience"),
481
- maxReplans: maxReplans as number,
482
- };
483
- }
465
+ const approval = parsePlanApprovalPolicy(input.approval);
484
466
  return {
485
467
  task: requireString(input.task, "autoimplement task"),
486
468
  ...(input.plan !== undefined ? { plan: input.plan } : {}),
@@ -495,7 +477,7 @@ function parseInput(value: unknown): AutoimplementInput {
495
477
  merge: input.merge === true,
496
478
  ...(documents !== undefined ? { documents: [...documents] as string[] } : {}),
497
479
  ...(documentation !== undefined ? { documentation } : {}),
498
- ...(approval !== undefined ? { approval } : {}),
480
+ approval,
499
481
  concurrency,
500
482
  };
501
483
  }
@@ -637,20 +619,6 @@ function currentPlan(context: WorkflowNodeContext): unknown {
637
619
  return (context.input as AutoimplementInput).plan;
638
620
  }
639
621
 
640
- function currentPlanDigest(context: WorkflowNodeContext): string {
641
- const adopted = context.outputs.adoptPlan as { planDigest?: unknown } | undefined;
642
- if (typeof adopted?.planDigest === "string") return adopted.planDigest;
643
- const documented = context.outputs.documentation as
644
- | { exit?: string; output?: { planDigest?: unknown } }
645
- | undefined;
646
- if (documented?.exit === "ready" && typeof documented.output?.planDigest === "string") {
647
- return documented.output.planDigest;
648
- }
649
- const plan = currentPlan(context);
650
- if (plan === undefined) throw new Error("autoimplement does not have a selected plan");
651
- return digest(plan);
652
- }
653
-
654
622
  function blockerChallenges(context: WorkflowNodeContext): BlockerChallenge[] {
655
623
  return context.state.steps
656
624
  .filter((step) => step.nodeId === "challengeBlocker" && step.outcome === "ok")
@@ -688,16 +656,6 @@ function recentWorkflowAttempts(context: WorkflowNodeContext): unknown[] {
688
656
  }
689
657
 
690
658
  function latestIssue(context: WorkflowNodeContext): unknown {
691
- const approval = context.outputs.approval as
692
- | { exit?: string; output?: { instructions?: unknown } }
693
- | undefined;
694
- if (approval?.exit === "replan" && typeof approval.output?.instructions === "string") {
695
- return {
696
- source: "human-replan",
697
- instructions: approval.output.instructions,
698
- priorPlanDigest: currentPlanDigest(context),
699
- };
700
- }
701
659
  const ids = [
702
660
  "challengeBlocker",
703
661
  "classifyImplementation",
@@ -1145,11 +1103,10 @@ function latestBlockedReason(context: WorkflowNodeContext): { reason: string; ev
1145
1103
  "classifyImplementation",
1146
1104
  "classifyVerification",
1147
1105
  "triageReview",
1148
- "replanGuard",
1106
+ "redesign",
1149
1107
  "adoptPlan",
1150
1108
  "findPlan",
1151
1109
  "documentation",
1152
- "approval",
1153
1110
  ];
1154
1111
  for (let index = context.state.steps.length - 1; index >= 0; index -= 1) {
1155
1112
  const step = context.state.steps[index];
@@ -1191,37 +1148,18 @@ export const autoimplementWorkflow = defineWorkflow({
1191
1148
  };
1192
1149
  },
1193
1150
  }),
1194
- approval: includeWorkflow(planApprovalWorkflow, {
1195
- input: (context): PlanApprovalInput => {
1151
+ redesign: includeWorkflow(planChangeWorkflow, {
1152
+ input: (context): NormalizedPlanChangeInput => {
1196
1153
  const request = context.input as AutoimplementInput;
1197
- if (request.approval === undefined) {
1198
- throw new Error("autoimplement approval was entered without an approval policy");
1199
- }
1200
- const plan = currentPlan(context);
1201
- if (plan === undefined) throw new Error("autoimplement approval is missing a plan");
1202
- const revisions = context.state.steps.filter(
1203
- (step) => step.nodeId === "approval/approve",
1204
- ).length;
1205
1154
  return {
1206
1155
  task: request.task,
1207
- plan,
1208
- planDigest: currentPlanDigest(context),
1209
- audience: request.approval.audience,
1210
- revision: revisions + 1,
1211
- };
1212
- },
1213
- }),
1214
- redesign: includeWorkflow({
1215
- workflow: "autoplan",
1216
- contract: autoplanWorkflow,
1217
- input: (context): AutoplanInput => {
1218
- const request = context.input as AutoimplementInput;
1219
- return {
1220
- problem: request.task,
1221
1156
  ...(request.scope !== undefined ? { scope: request.scope } : {}),
1222
1157
  ...(request.constraints !== undefined ? { constraints: request.constraints } : {}),
1158
+ ...(request.repository !== undefined ? { repository: request.repository } : {}),
1159
+ documents: request.documents ?? request.documentation?.documents ?? [],
1223
1160
  ...(currentPlan(context) !== undefined ? { previousPlan: currentPlan(context) } : {}),
1224
1161
  newEvidence: latestIssue(context),
1162
+ approval: parsePlanApprovalPolicy(request.approval),
1225
1163
  };
1226
1164
  },
1227
1165
  }),
@@ -1285,40 +1223,17 @@ export const autoimplementWorkflow = defineWorkflow({
1285
1223
  }),
1286
1224
  adoptPlan: compute({
1287
1225
  run: ({ outputs }) => {
1288
- const result = includedResult(autoplanWorkflow, outputs.redesign);
1226
+ const result = includedResult(planChangeWorkflow, outputs.redesign);
1289
1227
  if (result.exit !== "ready") throw new Error("redesign did not return a ready plan");
1290
1228
  return {
1291
- route: result.output.changed ? "document" : "blocked",
1292
1229
  plan: result.output.plan,
1293
1230
  planDigest: result.output.planDigest,
1294
- changed: result.output.changed,
1295
- reason: result.output.changed
1296
- ? "The plan changed in response to new evidence and must be documented."
1297
- : "Redesign returned the same plan for the same unresolved evidence.",
1231
+ documents: result.output.documents,
1232
+ approval: result.output.approval,
1233
+ reason: "The changed plan was documented and passed its approval policy.",
1298
1234
  };
1299
1235
  },
1300
1236
  }),
1301
- maybeApproval: compute({
1302
- run: ({ input }) => ({
1303
- route: (input as AutoimplementInput).approval === undefined ? "implement" : "approve",
1304
- }),
1305
- }),
1306
- replanGuard: compute({
1307
- run: (context) => {
1308
- const request = context.input as AutoimplementInput;
1309
- const limit = request.approval?.maxReplans ?? 3;
1310
- const replans = context.state.steps.filter(
1311
- (step) => step.nodeId === "approval/replan",
1312
- ).length;
1313
- return replans > limit
1314
- ? {
1315
- route: "blocked",
1316
- reason: `Plan approval reached the ${limit}-replan safety limit.`,
1317
- evidence: context.outputs.approval,
1318
- }
1319
- : { route: "redesign", replans, limit };
1320
- },
1321
- }),
1322
1237
  timeoutFallbackGuard: compute({
1323
1238
  run: timeoutFallbackGuard,
1324
1239
  }),
@@ -1808,7 +1723,7 @@ export const autoimplementWorkflow = defineWorkflow({
1808
1723
  from: "prepare",
1809
1724
  switch: {
1810
1725
  on: "$.route",
1811
- cases: { find: "findPlan", document: "documentation", ready: "maybeApproval" },
1726
+ cases: { find: "findPlan", document: "documentation", ready: "implement" },
1812
1727
  },
1813
1728
  },
1814
1729
  {
@@ -1819,28 +1734,14 @@ export const autoimplementWorkflow = defineWorkflow({
1819
1734
  from: "routeFoundPlan",
1820
1735
  switch: {
1821
1736
  on: "$.route",
1822
- cases: { ready: "maybeApproval", document: "documentation", blocked: "blocked" },
1737
+ cases: { ready: "implement", document: "documentation", blocked: "blocked" },
1823
1738
  },
1824
1739
  },
1825
1740
  { from: "redesign.ready", to: "adoptPlan" },
1826
1741
  { from: "redesign.blocked", to: "blocked" },
1827
- {
1828
- from: "adoptPlan",
1829
- switch: { on: "$.route", cases: { document: "documentation", blocked: "blocked" } },
1830
- },
1831
- { from: "documentation.ready", to: "maybeApproval" },
1742
+ { from: "adoptPlan", to: "implement" },
1743
+ { from: "documentation.ready", to: "implement" },
1832
1744
  { from: "documentation.blocked", to: "blocked" },
1833
- {
1834
- from: "maybeApproval",
1835
- switch: { on: "$.route", cases: { approve: "approval", implement: "implement" } },
1836
- },
1837
- { from: "approval.continue", to: "implement" },
1838
- { from: "approval.stop", to: "blocked" },
1839
- { from: "approval.replan", to: "replanGuard" },
1840
- {
1841
- from: "replanGuard",
1842
- switch: { on: "$.route", cases: { redesign: "redesign", blocked: "blocked" } },
1843
- },
1844
1745
  {
1845
1746
  from: "timeoutFallbackGuard",
1846
1747
  switch: { on: "$.route", cases: { recover: "timeoutFallback", blocked: "blocked" } },