@osolmaz/pi-workflows 0.12.1 → 0.13.1

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 (233) hide show
  1. package/README.md +59 -33
  2. package/dist/builtins/autodoc.workflow.d.ts +194 -7
  3. package/dist/builtins/autodoc.workflow.js +156 -30
  4. package/dist/builtins/autodoc.workflow.js.map +1 -1
  5. package/dist/builtins/autoimplement-command-batches.d.ts +1 -0
  6. package/dist/builtins/autoimplement-command-batches.js +29 -31
  7. package/dist/builtins/autoimplement-command-batches.js.map +1 -1
  8. package/dist/builtins/autoimplement.workflow.d.ts +1619 -97
  9. package/dist/builtins/autoimplement.workflow.js +416 -153
  10. package/dist/builtins/autoimplement.workflow.js.map +1 -1
  11. package/dist/builtins/autoplan.workflow.d.ts +126 -13
  12. package/dist/builtins/autoplan.workflow.js +200 -29
  13. package/dist/builtins/autoplan.workflow.js.map +1 -1
  14. package/dist/builtins/catalog.js +7 -5
  15. package/dist/builtins/catalog.js.map +1 -1
  16. package/dist/builtins/change-verification.workflow.d.ts +110 -0
  17. package/dist/builtins/change-verification.workflow.js +860 -0
  18. package/dist/builtins/change-verification.workflow.js.map +1 -0
  19. package/dist/builtins/index.d.ts +2 -1
  20. package/dist/builtins/index.js +1 -0
  21. package/dist/builtins/index.js.map +1 -1
  22. package/dist/builtins/monitor.workflow.d.ts +56 -21
  23. package/dist/builtins/monitor.workflow.js +499 -217
  24. package/dist/builtins/monitor.workflow.js.map +1 -1
  25. package/dist/builtins/plain-summary.workflow.d.ts +32 -0
  26. package/dist/builtins/plain-summary.workflow.js +134 -0
  27. package/dist/builtins/plain-summary.workflow.js.map +1 -0
  28. package/dist/builtins/plan-change.workflow.d.ts +527 -26
  29. package/dist/builtins/plan-change.workflow.js +26 -0
  30. package/dist/builtins/plan-change.workflow.js.map +1 -1
  31. package/dist/builtins/sanity-check.workflow.d.ts +45 -3
  32. package/dist/builtins/sanity-check.workflow.js +45 -7
  33. package/dist/builtins/sanity-check.workflow.js.map +1 -1
  34. package/dist/builtins/workspace-preparation.workflow.d.ts +75 -0
  35. package/dist/builtins/workspace-preparation.workflow.js +498 -0
  36. package/dist/builtins/workspace-preparation.workflow.js.map +1 -0
  37. package/dist/controllers/effects.d.ts +3 -2
  38. package/dist/controllers/effects.js +8 -1
  39. package/dist/controllers/effects.js.map +1 -1
  40. package/dist/controllers/index.d.ts +1 -1
  41. package/dist/controllers/index.js +1 -1
  42. package/dist/controllers/index.js.map +1 -1
  43. package/dist/controllers/manager.d.ts +1 -0
  44. package/dist/controllers/manager.js +41 -17
  45. package/dist/controllers/manager.js.map +1 -1
  46. package/dist/controllers/sqlite.d.ts +107 -85
  47. package/dist/controllers/sqlite.js +1611 -1486
  48. package/dist/controllers/sqlite.js.map +1 -1
  49. package/dist/controllers/store.d.ts +9 -8
  50. package/dist/controllers/store.js +1 -31
  51. package/dist/controllers/store.js.map +1 -1
  52. package/dist/controllers/types.d.ts +3 -0
  53. package/dist/controllers/workflow-engine-scheduler.d.ts +1 -1
  54. package/dist/controllers/workflow-engine-scheduler.js +3 -5
  55. package/dist/controllers/workflow-engine-scheduler.js.map +1 -1
  56. package/dist/controllers/workflows.d.ts +2 -2
  57. package/dist/controllers/workflows.js +11 -10
  58. package/dist/controllers/workflows.js.map +1 -1
  59. package/dist/extension/controller-host.js +2 -2
  60. package/dist/extension/controller-host.js.map +1 -1
  61. package/dist/extension/decision-channels.d.ts +2 -0
  62. package/dist/extension/decision-channels.js +311 -118
  63. package/dist/extension/decision-channels.js.map +1 -1
  64. package/dist/extension/executor.d.ts +9 -2
  65. package/dist/extension/executor.js +90 -6
  66. package/dist/extension/executor.js.map +1 -1
  67. package/dist/extension/herdr-viewer.d.ts +0 -1
  68. package/dist/extension/herdr-viewer.js +0 -4
  69. package/dist/extension/herdr-viewer.js.map +1 -1
  70. package/dist/extension/index.js +156 -117
  71. package/dist/extension/index.js.map +1 -1
  72. package/dist/extension/recorder.d.ts +3 -10
  73. package/dist/extension/recorder.js +13 -22
  74. package/dist/extension/recorder.js.map +1 -1
  75. package/dist/extension/step-message.d.ts +7 -2
  76. package/dist/extension/step-message.js +94 -2
  77. package/dist/extension/step-message.js.map +1 -1
  78. package/dist/extension/widget.js +6 -0
  79. package/dist/extension/widget.js.map +1 -1
  80. package/dist/host/rpc-executor.d.ts +3 -0
  81. package/dist/host/rpc-executor.js +2 -0
  82. package/dist/host/rpc-executor.js.map +1 -1
  83. package/dist/host/runner.d.ts +3 -6
  84. package/dist/host/runner.js +83 -32
  85. package/dist/host/runner.js.map +1 -1
  86. package/dist/render/graph-render.js +14 -8
  87. package/dist/render/graph-render.js.map +1 -1
  88. package/dist/state/database.d.ts +35 -0
  89. package/dist/state/database.js +287 -0
  90. package/dist/state/database.js.map +1 -0
  91. package/dist/state/index.d.ts +4 -0
  92. package/dist/state/index.js +5 -0
  93. package/dist/state/index.js.map +1 -0
  94. package/dist/state/json.d.ts +6 -0
  95. package/dist/state/json.js +38 -0
  96. package/dist/state/json.js.map +1 -0
  97. package/dist/state/mutation.d.ts +57 -0
  98. package/dist/state/mutation.js +255 -0
  99. package/dist/state/mutation.js.map +1 -0
  100. package/dist/state/schema.d.ts +6 -0
  101. package/dist/state/schema.js +473 -0
  102. package/dist/state/schema.js.map +1 -0
  103. package/dist/viewer/cli.d.ts +2 -2
  104. package/dist/viewer/cli.js +142 -122
  105. package/dist/viewer/cli.js.map +1 -1
  106. package/dist/viewer/render.d.ts +4 -4
  107. package/dist/viewer/render.js +2 -17
  108. package/dist/viewer/render.js.map +1 -1
  109. package/dist/viewer/session-reducer.d.ts +1 -1
  110. package/dist/viewer/session-reducer.js +1 -1
  111. package/dist/viewer/tui.d.ts +3 -3
  112. package/dist/viewer/tui.js +15 -13
  113. package/dist/viewer/tui.js.map +1 -1
  114. package/dist/viewer/watch.d.ts +2 -5
  115. package/dist/viewer/watch.js +13 -13
  116. package/dist/viewer/watch.js.map +1 -1
  117. package/dist/workflows/composition.js +12 -2
  118. package/dist/workflows/composition.js.map +1 -1
  119. package/dist/workflows/definition.d.ts +6 -2
  120. package/dist/workflows/definition.js +17 -0
  121. package/dist/workflows/definition.js.map +1 -1
  122. package/dist/workflows/engine.d.ts +6 -6
  123. package/dist/workflows/engine.js +183 -103
  124. package/dist/workflows/engine.js.map +1 -1
  125. package/dist/workflows/errors.d.ts +3 -3
  126. package/dist/workflows/errors.js +3 -3
  127. package/dist/workflows/human-decision.d.ts +29 -4
  128. package/dist/workflows/human-decision.js +547 -283
  129. package/dist/workflows/human-decision.js.map +1 -1
  130. package/dist/workflows/index.d.ts +4 -5
  131. package/dist/workflows/index.js +3 -4
  132. package/dist/workflows/index.js.map +1 -1
  133. package/dist/workflows/schema.js +17 -1
  134. package/dist/workflows/schema.js.map +1 -1
  135. package/dist/workflows/store.d.ts +83 -103
  136. package/dist/workflows/store.js +902 -951
  137. package/dist/workflows/store.js.map +1 -1
  138. package/dist/workflows/types.d.ts +55 -81
  139. package/docs/CONTROLLERS.md +10 -8
  140. package/docs/DEFERRED_TURNS.md +2 -2
  141. package/docs/DESIGN_PHILOSOPHY.md +4 -2
  142. package/docs/HUMAN_DECISIONS.md +13 -14
  143. package/docs/MONITOR.md +179 -231
  144. package/docs/SQLITE_STATE.md +219 -0
  145. package/docs/WORKFLOW_COMPOSITION.md +27 -19
  146. package/docs/WORKFLOW_STEP_MESSAGES.md +20 -18
  147. package/docs/WORKFLOW_UPDATES.md +10 -9
  148. package/docs/development.md +9 -9
  149. package/docs/live-replay-protocol.md +28 -37
  150. package/docs/plans/2026-08-16-workflow-updates-plan.md +1 -1
  151. package/docs/plans/2026-08-19-human-decision-gates-plan.md +1 -1
  152. package/docs/plans/2026-08-21-autoimplement-timeout-fallback-plan.md +1 -1
  153. package/docs/plans/2026-08-21-plan-change-approval-policy-plan.md +1 -1
  154. package/docs/plans/2026-08-21-sanity-check-plan.md +30 -16
  155. package/docs/plans/2026-08-22-goal-finishing-monitor-plan.md +200 -0
  156. package/docs/plans/2026-08-23-assistant-agent-completion-plan.md +701 -0
  157. package/docs/plans/2026-08-23-sqlite-state-plan.md +970 -0
  158. package/docs/plans/2026-08-24-change-scoped-verification-plan.md +419 -0
  159. package/docs/plans/replayable-run-bundles-implementation-plan.md +2 -2
  160. package/docs/plans/session-event-replay-implementation-plan.md +1 -1
  161. package/docs/plans/tui-viewer-implementation-plan.md +1 -1
  162. package/docs/session-event-journal.md +63 -434
  163. package/docs/tui-viewer.md +13 -15
  164. package/docs/workflows.md +111 -62
  165. package/examples/workflows/plain-summary.workflow.ts +1 -0
  166. package/herdr-plugin.toml +1 -1
  167. package/package.json +1 -1
  168. package/plugins/herdr/viewer.mjs +1 -11
  169. package/skills/autodoc/SKILL.md +7 -0
  170. package/skills/autoimplement/SKILL.md +4 -0
  171. package/skills/autoplan/SKILL.md +5 -4
  172. package/skills/monitor/SKILL.md +91 -163
  173. package/skills/pi-workflows/SKILL.md +7 -7
  174. package/skills/sanity-check/SKILL.md +1 -1
  175. package/src/builtins/autodoc.workflow.ts +184 -33
  176. package/src/builtins/autoimplement-command-batches.ts +39 -33
  177. package/src/builtins/autoimplement.workflow.ts +483 -175
  178. package/src/builtins/autoplan.workflow.ts +290 -40
  179. package/src/builtins/catalog.ts +7 -5
  180. package/src/builtins/change-verification.workflow.ts +1143 -0
  181. package/src/builtins/index.ts +7 -1
  182. package/src/builtins/monitor.workflow.ts +667 -250
  183. package/src/builtins/plain-summary.workflow.ts +185 -0
  184. package/src/builtins/plan-change.workflow.ts +35 -0
  185. package/src/builtins/sanity-check.workflow.ts +62 -7
  186. package/src/builtins/workspace-preparation.workflow.ts +668 -0
  187. package/src/controllers/effects.ts +7 -0
  188. package/src/controllers/index.ts +0 -6
  189. package/src/controllers/manager.ts +72 -32
  190. package/src/controllers/sqlite.ts +2420 -1948
  191. package/src/controllers/store.ts +17 -38
  192. package/src/controllers/types.ts +3 -0
  193. package/src/controllers/workflow-engine-scheduler.ts +4 -8
  194. package/src/controllers/workflows.ts +45 -21
  195. package/src/extension/controller-host.ts +1 -2
  196. package/src/extension/decision-channels.ts +427 -144
  197. package/src/extension/executor.ts +106 -6
  198. package/src/extension/herdr-viewer.ts +0 -5
  199. package/src/extension/index.ts +180 -132
  200. package/src/extension/recorder.ts +13 -22
  201. package/src/extension/step-message.ts +106 -4
  202. package/src/extension/widget.ts +8 -0
  203. package/src/host/rpc-executor.ts +4 -0
  204. package/src/host/runner.ts +93 -41
  205. package/src/render/graph-render.ts +11 -4
  206. package/src/state/database.ts +375 -0
  207. package/src/state/index.ts +29 -0
  208. package/src/state/json.ts +42 -0
  209. package/src/state/mutation.ts +435 -0
  210. package/src/state/schema.ts +475 -0
  211. package/src/viewer/cli.ts +151 -144
  212. package/src/viewer/render.ts +12 -24
  213. package/src/viewer/session-reducer.ts +1 -1
  214. package/src/viewer/tui.ts +18 -17
  215. package/src/viewer/watch.ts +13 -17
  216. package/src/workflows/composition.ts +12 -3
  217. package/src/workflows/definition.ts +36 -3
  218. package/src/workflows/engine.ts +212 -116
  219. package/src/workflows/errors.ts +3 -3
  220. package/src/workflows/human-decision.ts +795 -340
  221. package/src/workflows/index.ts +15 -19
  222. package/src/workflows/schema.ts +19 -1
  223. package/src/workflows/store.ts +1295 -1163
  224. package/src/workflows/types.ts +61 -81
  225. package/dist/workflows/artifacts.d.ts +0 -40
  226. package/dist/workflows/artifacts.js +0 -155
  227. package/dist/workflows/artifacts.js.map +0 -1
  228. package/dist/workflows/migrate-sources.d.ts +0 -42
  229. package/dist/workflows/migrate-sources.js +0 -133
  230. package/dist/workflows/migrate-sources.js.map +0 -1
  231. package/docs/run-bundles.md +0 -481
  232. package/src/workflows/artifacts.ts +0 -188
  233. package/src/workflows/migrate-sources.ts +0 -178
@@ -1,7 +1,9 @@
1
1
  import type { WorkflowNodeContext } from "../workflows/types.js";
2
2
  import { type AutodocInput, type DocumentedPlan } from "./autodoc.workflow.js";
3
3
  import { type AutoplanInput, type AutoplanReady } from "./autoplan.workflow.js";
4
+ import type { VerificationCheck } from "./change-verification.workflow.js";
4
5
  import { type PlanApprovalContinue, type NormalizedPlanApprovalInput, type PlanApprovalPolicy, type PlanApprovalResolution, type ResolvedPlanApprovalPolicy } from "./plan-approval.workflow.js";
6
+ import { parsePreparedWorkspace, type PreparedWorkspace } from "./workspace-preparation.workflow.js";
5
7
  export type PlanChangeInput = {
6
8
  task: string;
7
9
  scope?: string;
@@ -11,6 +13,9 @@ export type PlanChangeInput = {
11
13
  previousPlan?: unknown;
12
14
  newEvidence?: unknown;
13
15
  approval?: PlanApprovalPolicy;
16
+ preparedWorkspace?: PreparedWorkspace;
17
+ directDefaultBranchAuthorized?: boolean;
18
+ verificationChecks?: VerificationCheck[];
14
19
  };
15
20
  export type NormalizedPlanChangeInput = Omit<PlanChangeInput, "approval"> & {
16
21
  approval: ResolvedPlanApprovalPolicy;
@@ -48,17 +53,91 @@ export declare const planChangeWorkflow: import("../workflows/types.js").Workflo
48
53
  readonly from: "blocked";
49
54
  readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
50
55
  };
51
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
56
+ }, {
57
+ readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
58
+ readonly completed: {
59
+ readonly from: "finish";
60
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
61
+ };
62
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
63
+ nodes: {
64
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
65
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
66
+ };
67
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
68
+ exits?: {
69
+ readonly completed: {
70
+ readonly from: "finish";
71
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
72
+ };
73
+ };
74
+ }>;
75
+ readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
76
+ readonly completed: {
77
+ readonly from: "finish";
78
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
79
+ };
80
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
81
+ nodes: {
82
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
83
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
84
+ };
85
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
86
+ exits?: {
87
+ readonly completed: {
88
+ readonly from: "finish";
89
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
90
+ };
91
+ };
92
+ }>;
93
+ }> & {
52
94
  nodes: {
53
- readonly frame: import("../workflows/types.js").AgentNodeDefinition;
54
- readonly propose: import("../workflows/types.js").AgentNodeDefinition;
55
- readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
56
- readonly choose: import("../workflows/types.js").AgentNodeDefinition;
57
- readonly plan: import("../workflows/types.js").AgentNodeDefinition;
95
+ readonly frame: import("../workflows/types.js").SubmittedAgentNodeDefinition;
96
+ readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
97
+ readonly ideal: import("../workflows/types.js").SubmittedAgentNodeDefinition;
98
+ readonly choose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
99
+ readonly plan: import("../workflows/types.js").SubmittedAgentNodeDefinition;
58
100
  readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
59
101
  readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
60
102
  };
61
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
103
+ includes?: {
104
+ readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
105
+ readonly completed: {
106
+ readonly from: "finish";
107
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
108
+ };
109
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
110
+ nodes: {
111
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
112
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
113
+ };
114
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
115
+ exits?: {
116
+ readonly completed: {
117
+ readonly from: "finish";
118
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
119
+ };
120
+ };
121
+ }>;
122
+ readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
123
+ readonly completed: {
124
+ readonly from: "finish";
125
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
126
+ };
127
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
128
+ nodes: {
129
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
130
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
131
+ };
132
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
133
+ exits?: {
134
+ readonly completed: {
135
+ readonly from: "finish";
136
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
137
+ };
138
+ };
139
+ }>;
140
+ };
62
141
  exits?: {
63
142
  readonly ready: {
64
143
  readonly from: "finalize";
@@ -79,17 +158,191 @@ export declare const planChangeWorkflow: import("../workflows/types.js").Workflo
79
158
  readonly from: "blocked";
80
159
  readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
81
160
  };
82
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
161
+ }, {
162
+ readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./workspace-preparation.workflow.js").WorkspacePreparationInput, {
163
+ readonly ready: {
164
+ readonly from: "ready";
165
+ readonly validate: typeof parsePreparedWorkspace;
166
+ };
167
+ readonly blocked: {
168
+ readonly from: "blocked";
169
+ readonly validate: (value: unknown) => {
170
+ route: "ready" | "propose" | "blocked";
171
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
172
+ preparedWorkspace?: PreparedWorkspace;
173
+ repository: string;
174
+ baseBranch: string;
175
+ baseRevision?: string;
176
+ currentBranch?: string;
177
+ preExistingChangedPaths: string[];
178
+ reason: string;
179
+ evidence: string[];
180
+ };
181
+ };
182
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
183
+ nodes: {
184
+ readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition;
185
+ readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
186
+ readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition;
187
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
188
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
189
+ };
190
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
191
+ exits?: {
192
+ readonly ready: {
193
+ readonly from: "ready";
194
+ readonly validate: typeof parsePreparedWorkspace;
195
+ };
196
+ readonly blocked: {
197
+ readonly from: "blocked";
198
+ readonly validate: (value: unknown) => {
199
+ route: "ready" | "propose" | "blocked";
200
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
201
+ preparedWorkspace?: PreparedWorkspace;
202
+ repository: string;
203
+ baseBranch: string;
204
+ baseRevision?: string;
205
+ currentBranch?: string;
206
+ preExistingChangedPaths: string[];
207
+ reason: string;
208
+ evidence: string[];
209
+ };
210
+ };
211
+ };
212
+ }>;
213
+ readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./change-verification.workflow.js").ChangeVerificationInput, {
214
+ readonly ready: {
215
+ readonly from: "ready";
216
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
217
+ };
218
+ readonly blocked: {
219
+ readonly from: "blocked";
220
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
221
+ };
222
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
223
+ nodes: {
224
+ readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition;
225
+ readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition;
226
+ readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition;
227
+ readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition;
228
+ readonly classify: import("../workflows/types.js").ComputeNodeDefinition;
229
+ readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition;
230
+ readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition;
231
+ readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition;
232
+ readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition;
233
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
234
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
235
+ };
236
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
237
+ exits?: {
238
+ readonly ready: {
239
+ readonly from: "ready";
240
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
241
+ };
242
+ readonly blocked: {
243
+ readonly from: "blocked";
244
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
245
+ };
246
+ };
247
+ }>;
248
+ }> & {
83
249
  nodes: {
84
250
  readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
85
- readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
86
- readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
87
- readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
88
- readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
251
+ readonly locatePlan: import("../workflows/types.js").SubmittedAgentNodeDefinition;
252
+ readonly workspaceGuard: import("../workflows/types.js").ComputeNodeDefinition;
253
+ readonly inspectDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition;
254
+ readonly updateDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition;
89
255
  readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
90
256
  readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
91
257
  };
92
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
258
+ includes?: {
259
+ readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./workspace-preparation.workflow.js").WorkspacePreparationInput, {
260
+ readonly ready: {
261
+ readonly from: "ready";
262
+ readonly validate: typeof parsePreparedWorkspace;
263
+ };
264
+ readonly blocked: {
265
+ readonly from: "blocked";
266
+ readonly validate: (value: unknown) => {
267
+ route: "ready" | "propose" | "blocked";
268
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
269
+ preparedWorkspace?: PreparedWorkspace;
270
+ repository: string;
271
+ baseBranch: string;
272
+ baseRevision?: string;
273
+ currentBranch?: string;
274
+ preExistingChangedPaths: string[];
275
+ reason: string;
276
+ evidence: string[];
277
+ };
278
+ };
279
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
280
+ nodes: {
281
+ readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition;
282
+ readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
283
+ readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition;
284
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
285
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
286
+ };
287
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
288
+ exits?: {
289
+ readonly ready: {
290
+ readonly from: "ready";
291
+ readonly validate: typeof parsePreparedWorkspace;
292
+ };
293
+ readonly blocked: {
294
+ readonly from: "blocked";
295
+ readonly validate: (value: unknown) => {
296
+ route: "ready" | "propose" | "blocked";
297
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
298
+ preparedWorkspace?: PreparedWorkspace;
299
+ repository: string;
300
+ baseBranch: string;
301
+ baseRevision?: string;
302
+ currentBranch?: string;
303
+ preExistingChangedPaths: string[];
304
+ reason: string;
305
+ evidence: string[];
306
+ };
307
+ };
308
+ };
309
+ }>;
310
+ readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./change-verification.workflow.js").ChangeVerificationInput, {
311
+ readonly ready: {
312
+ readonly from: "ready";
313
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
314
+ };
315
+ readonly blocked: {
316
+ readonly from: "blocked";
317
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
318
+ };
319
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
320
+ nodes: {
321
+ readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition;
322
+ readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition;
323
+ readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition;
324
+ readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition;
325
+ readonly classify: import("../workflows/types.js").ComputeNodeDefinition;
326
+ readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition;
327
+ readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition;
328
+ readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition;
329
+ readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition;
330
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
331
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
332
+ };
333
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
334
+ exits?: {
335
+ readonly ready: {
336
+ readonly from: "ready";
337
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
338
+ };
339
+ readonly blocked: {
340
+ readonly from: "blocked";
341
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
342
+ };
343
+ };
344
+ }>;
345
+ };
93
346
  exits?: {
94
347
  readonly ready: {
95
348
  readonly from: "finalize";
@@ -176,17 +429,91 @@ export declare const planChangeWorkflow: import("../workflows/types.js").Workflo
176
429
  readonly from: "blocked";
177
430
  readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
178
431
  };
179
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
432
+ }, {
433
+ readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
434
+ readonly completed: {
435
+ readonly from: "finish";
436
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
437
+ };
438
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
439
+ nodes: {
440
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
441
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
442
+ };
443
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
444
+ exits?: {
445
+ readonly completed: {
446
+ readonly from: "finish";
447
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
448
+ };
449
+ };
450
+ }>;
451
+ readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
452
+ readonly completed: {
453
+ readonly from: "finish";
454
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
455
+ };
456
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
457
+ nodes: {
458
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
459
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
460
+ };
461
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
462
+ exits?: {
463
+ readonly completed: {
464
+ readonly from: "finish";
465
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
466
+ };
467
+ };
468
+ }>;
469
+ }> & {
180
470
  nodes: {
181
- readonly frame: import("../workflows/types.js").AgentNodeDefinition;
182
- readonly propose: import("../workflows/types.js").AgentNodeDefinition;
183
- readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
184
- readonly choose: import("../workflows/types.js").AgentNodeDefinition;
185
- readonly plan: import("../workflows/types.js").AgentNodeDefinition;
471
+ readonly frame: import("../workflows/types.js").SubmittedAgentNodeDefinition;
472
+ readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
473
+ readonly ideal: import("../workflows/types.js").SubmittedAgentNodeDefinition;
474
+ readonly choose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
475
+ readonly plan: import("../workflows/types.js").SubmittedAgentNodeDefinition;
186
476
  readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
187
477
  readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
188
478
  };
189
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
479
+ includes?: {
480
+ readonly readySummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
481
+ readonly completed: {
482
+ readonly from: "finish";
483
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
484
+ };
485
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
486
+ nodes: {
487
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
488
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
489
+ };
490
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
491
+ exits?: {
492
+ readonly completed: {
493
+ readonly from: "finish";
494
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
495
+ };
496
+ };
497
+ }>;
498
+ readonly blockedSummary: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plain-summary.workflow.js").PlainSummaryInput, {
499
+ readonly completed: {
500
+ readonly from: "finish";
501
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
502
+ };
503
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
504
+ nodes: {
505
+ readonly summarize: import("../workflows/types.js").AssistantAgentNodeDefinition;
506
+ readonly finish: import("../workflows/types.js").ComputeNodeDefinition;
507
+ };
508
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
509
+ exits?: {
510
+ readonly completed: {
511
+ readonly from: "finish";
512
+ readonly validate: (value: unknown) => import("./plain-summary.workflow.js").PlainSummaryResult;
513
+ };
514
+ };
515
+ }>;
516
+ };
190
517
  exits?: {
191
518
  readonly ready: {
192
519
  readonly from: "finalize";
@@ -207,17 +534,191 @@ export declare const planChangeWorkflow: import("../workflows/types.js").Workflo
207
534
  readonly from: "blocked";
208
535
  readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
209
536
  };
210
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
537
+ }, {
538
+ readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./workspace-preparation.workflow.js").WorkspacePreparationInput, {
539
+ readonly ready: {
540
+ readonly from: "ready";
541
+ readonly validate: typeof parsePreparedWorkspace;
542
+ };
543
+ readonly blocked: {
544
+ readonly from: "blocked";
545
+ readonly validate: (value: unknown) => {
546
+ route: "ready" | "propose" | "blocked";
547
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
548
+ preparedWorkspace?: PreparedWorkspace;
549
+ repository: string;
550
+ baseBranch: string;
551
+ baseRevision?: string;
552
+ currentBranch?: string;
553
+ preExistingChangedPaths: string[];
554
+ reason: string;
555
+ evidence: string[];
556
+ };
557
+ };
558
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
559
+ nodes: {
560
+ readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition;
561
+ readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
562
+ readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition;
563
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
564
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
565
+ };
566
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
567
+ exits?: {
568
+ readonly ready: {
569
+ readonly from: "ready";
570
+ readonly validate: typeof parsePreparedWorkspace;
571
+ };
572
+ readonly blocked: {
573
+ readonly from: "blocked";
574
+ readonly validate: (value: unknown) => {
575
+ route: "ready" | "propose" | "blocked";
576
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
577
+ preparedWorkspace?: PreparedWorkspace;
578
+ repository: string;
579
+ baseBranch: string;
580
+ baseRevision?: string;
581
+ currentBranch?: string;
582
+ preExistingChangedPaths: string[];
583
+ reason: string;
584
+ evidence: string[];
585
+ };
586
+ };
587
+ };
588
+ }>;
589
+ readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./change-verification.workflow.js").ChangeVerificationInput, {
590
+ readonly ready: {
591
+ readonly from: "ready";
592
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
593
+ };
594
+ readonly blocked: {
595
+ readonly from: "blocked";
596
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
597
+ };
598
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
599
+ nodes: {
600
+ readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition;
601
+ readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition;
602
+ readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition;
603
+ readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition;
604
+ readonly classify: import("../workflows/types.js").ComputeNodeDefinition;
605
+ readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition;
606
+ readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition;
607
+ readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition;
608
+ readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition;
609
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
610
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
611
+ };
612
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
613
+ exits?: {
614
+ readonly ready: {
615
+ readonly from: "ready";
616
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
617
+ };
618
+ readonly blocked: {
619
+ readonly from: "blocked";
620
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
621
+ };
622
+ };
623
+ }>;
624
+ }> & {
211
625
  nodes: {
212
626
  readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
213
- readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
214
- readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
215
- readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
216
- readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
627
+ readonly locatePlan: import("../workflows/types.js").SubmittedAgentNodeDefinition;
628
+ readonly workspaceGuard: import("../workflows/types.js").ComputeNodeDefinition;
629
+ readonly inspectDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition;
630
+ readonly updateDocumentation: import("../workflows/types.js").SubmittedAgentNodeDefinition;
217
631
  readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
218
632
  readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
219
633
  };
220
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
634
+ includes?: {
635
+ readonly workspace: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./workspace-preparation.workflow.js").WorkspacePreparationInput, {
636
+ readonly ready: {
637
+ readonly from: "ready";
638
+ readonly validate: typeof parsePreparedWorkspace;
639
+ };
640
+ readonly blocked: {
641
+ readonly from: "blocked";
642
+ readonly validate: (value: unknown) => {
643
+ route: "ready" | "propose" | "blocked";
644
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
645
+ preparedWorkspace?: PreparedWorkspace;
646
+ repository: string;
647
+ baseBranch: string;
648
+ baseRevision?: string;
649
+ currentBranch?: string;
650
+ preExistingChangedPaths: string[];
651
+ reason: string;
652
+ evidence: string[];
653
+ };
654
+ };
655
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
656
+ nodes: {
657
+ readonly inspect: import("../workflows/types.js").FunctionActionNodeDefinition;
658
+ readonly propose: import("../workflows/types.js").SubmittedAgentNodeDefinition;
659
+ readonly apply: import("../workflows/types.js").FunctionActionNodeDefinition;
660
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
661
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
662
+ };
663
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
664
+ exits?: {
665
+ readonly ready: {
666
+ readonly from: "ready";
667
+ readonly validate: typeof parsePreparedWorkspace;
668
+ };
669
+ readonly blocked: {
670
+ readonly from: "blocked";
671
+ readonly validate: (value: unknown) => {
672
+ route: "ready" | "propose" | "blocked";
673
+ selectedMode?: import("./workspace-preparation.workflow.js").PreparedWorkspaceMode;
674
+ preparedWorkspace?: PreparedWorkspace;
675
+ repository: string;
676
+ baseBranch: string;
677
+ baseRevision?: string;
678
+ currentBranch?: string;
679
+ preExistingChangedPaths: string[];
680
+ reason: string;
681
+ evidence: string[];
682
+ };
683
+ };
684
+ };
685
+ }>;
686
+ readonly verification: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./change-verification.workflow.js").ChangeVerificationInput, {
687
+ readonly ready: {
688
+ readonly from: "ready";
689
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
690
+ };
691
+ readonly blocked: {
692
+ readonly from: "blocked";
693
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
694
+ };
695
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
696
+ nodes: {
697
+ readonly selectChecks: import("../workflows/types.js").ComputeNodeDefinition;
698
+ readonly planChecks: import("../workflows/types.js").SubmittedAgentNodeDefinition;
699
+ readonly runCandidate: import("../workflows/types.js").FunctionActionNodeDefinition;
700
+ readonly runBase: import("../workflows/types.js").FunctionActionNodeDefinition;
701
+ readonly classify: import("../workflows/types.js").ComputeNodeDefinition;
702
+ readonly repairGuard: import("../workflows/types.js").ComputeNodeDefinition;
703
+ readonly mechanicalRepair: import("../workflows/types.js").FunctionActionNodeDefinition;
704
+ readonly semanticRepair: import("../workflows/types.js").SubmittedAgentNodeDefinition;
705
+ readonly judge: import("../workflows/types.js").SubmittedAgentNodeDefinition;
706
+ readonly ready: import("../workflows/types.js").ComputeNodeDefinition;
707
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
708
+ };
709
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
710
+ exits?: {
711
+ readonly ready: {
712
+ readonly from: "ready";
713
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
714
+ };
715
+ readonly blocked: {
716
+ readonly from: "blocked";
717
+ readonly validate: (value: unknown) => import("./change-verification.workflow.js").ChangeVerificationResult;
718
+ };
719
+ };
720
+ }>;
721
+ };
221
722
  exits?: {
222
723
  readonly ready: {
223
724
  readonly from: "finalize";