@osolmaz/pi-workflows 0.9.1 → 0.11.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 (147) hide show
  1. package/README.md +64 -19
  2. package/dist/builtins/autodoc.workflow.d.ts +58 -0
  3. package/dist/builtins/autodoc.workflow.js +266 -0
  4. package/dist/builtins/autodoc.workflow.js.map +1 -0
  5. package/dist/builtins/autoimplement.workflow.d.ts +353 -0
  6. package/dist/builtins/autoimplement.workflow.js +961 -0
  7. package/dist/builtins/autoimplement.workflow.js.map +1 -0
  8. package/dist/builtins/autoplan.workflow.d.ts +58 -0
  9. package/dist/builtins/autoplan.workflow.js +190 -0
  10. package/dist/builtins/autoplan.workflow.js.map +1 -0
  11. package/dist/builtins/catalog.js +9 -1
  12. package/dist/builtins/catalog.js.map +1 -1
  13. package/dist/builtins/index.d.ts +6 -0
  14. package/dist/builtins/index.js +7 -0
  15. package/dist/builtins/index.js.map +1 -0
  16. package/dist/builtins/monitor.workflow.d.ts +29 -3
  17. package/dist/builtins/monitor.workflow.js +325 -13
  18. package/dist/builtins/monitor.workflow.js.map +1 -1
  19. package/dist/builtins/plan-approval.workflow.d.ts +83 -0
  20. package/dist/builtins/plan-approval.workflow.js +148 -0
  21. package/dist/builtins/plan-approval.workflow.js.map +1 -0
  22. package/dist/builtins/plan-presentation.d.ts +7 -0
  23. package/dist/builtins/plan-presentation.js +44 -0
  24. package/dist/builtins/plan-presentation.js.map +1 -0
  25. package/dist/extension/decision-channels.d.ts +132 -0
  26. package/dist/extension/decision-channels.js +1082 -0
  27. package/dist/extension/decision-channels.js.map +1 -0
  28. package/dist/extension/index.d.ts +1 -0
  29. package/dist/extension/index.js +426 -11
  30. package/dist/extension/index.js.map +1 -1
  31. package/dist/extension/widget.js +26 -2
  32. package/dist/extension/widget.js.map +1 -1
  33. package/dist/extension/workflow-tool.d.ts +1 -37
  34. package/dist/extension/workflow-tool.js +1 -42
  35. package/dist/extension/workflow-tool.js.map +1 -1
  36. package/dist/host/rpc-bridge.js +4 -21
  37. package/dist/host/rpc-bridge.js.map +1 -1
  38. package/dist/render/graph-render.js +46 -10
  39. package/dist/render/graph-render.js.map +1 -1
  40. package/dist/viewer/render.js +36 -2
  41. package/dist/viewer/render.js.map +1 -1
  42. package/dist/workflows/catalog.d.ts +1 -0
  43. package/dist/workflows/catalog.js +6 -0
  44. package/dist/workflows/catalog.js.map +1 -1
  45. package/dist/workflows/composition.d.ts +45 -0
  46. package/dist/workflows/composition.js +485 -0
  47. package/dist/workflows/composition.js.map +1 -0
  48. package/dist/workflows/decision-presentation.d.ts +18 -0
  49. package/dist/workflows/decision-presentation.js +417 -0
  50. package/dist/workflows/decision-presentation.js.map +1 -0
  51. package/dist/workflows/decision.d.ts +11 -5
  52. package/dist/workflows/decision.js.map +1 -1
  53. package/dist/workflows/definition.d.ts +22 -3
  54. package/dist/workflows/definition.js +46 -3
  55. package/dist/workflows/definition.js.map +1 -1
  56. package/dist/workflows/engine.d.ts +2 -1
  57. package/dist/workflows/engine.js +199 -18
  58. package/dist/workflows/engine.js.map +1 -1
  59. package/dist/workflows/graph.js +8 -6
  60. package/dist/workflows/graph.js.map +1 -1
  61. package/dist/workflows/human-decision.d.ts +87 -0
  62. package/dist/workflows/human-decision.js +583 -0
  63. package/dist/workflows/human-decision.js.map +1 -0
  64. package/dist/workflows/index.d.ts +5 -2
  65. package/dist/workflows/index.js +4 -1
  66. package/dist/workflows/index.js.map +1 -1
  67. package/dist/workflows/loader.d.ts +5 -4
  68. package/dist/workflows/loader.js +118 -18
  69. package/dist/workflows/loader.js.map +1 -1
  70. package/dist/workflows/schema.d.ts +3 -1
  71. package/dist/workflows/schema.js +64 -2
  72. package/dist/workflows/schema.js.map +1 -1
  73. package/dist/workflows/store.js +39 -2
  74. package/dist/workflows/store.js.map +1 -1
  75. package/dist/workflows/tool-input.d.ts +72 -0
  76. package/dist/workflows/tool-input.js +141 -0
  77. package/dist/workflows/tool-input.js.map +1 -0
  78. package/dist/workflows/types.d.ts +300 -2
  79. package/docs/CONTROLLERS.md +1 -1
  80. package/docs/DESIGN_PHILOSOPHY.md +1 -1
  81. package/docs/HUMAN_DECISIONS.md +371 -0
  82. package/docs/HUMAN_DECISION_PRESENTATIONS.md +323 -0
  83. package/docs/MONITOR.md +46 -18
  84. package/docs/WORKFLOW_COMPOSITION.md +333 -0
  85. package/docs/plans/2026-08-19-human-decision-gates-plan.md +296 -0
  86. package/docs/plans/2026-08-19-human-decision-presentations-plan.md +172 -0
  87. package/docs/plans/2026-08-19-provider-compatible-workflow-tool-schema-plan.md +45 -0
  88. package/docs/plans/2026-08-19-workflow-composition-plan.md +308 -0
  89. package/docs/run-bundles.md +45 -10
  90. package/docs/workflows.md +106 -15
  91. package/examples/workflows/approved-plan.workflow.ts +58 -0
  92. package/examples/workflows/autoimplement.workflow.ts +1 -92
  93. package/examples/workflows/autoplan.workflow.ts +1 -0
  94. package/examples/workflows/human-decision.workflow.ts +62 -0
  95. package/herdr-plugin.toml +1 -1
  96. package/package.json +6 -1
  97. package/schemas/decision-presentation-v1.schema.json +83 -0
  98. package/schemas/human-decision-accepted-v1.schema.json +44 -0
  99. package/schemas/human-decision-accepted-v2.schema.json +50 -0
  100. package/schemas/human-decision-answer-attempt-v1.schema.json +37 -0
  101. package/schemas/human-decision-cancellation-v1.schema.json +15 -0
  102. package/schemas/human-decision-continuation-v1.schema.json +16 -0
  103. package/schemas/human-decision-delivery-v1.schema.json +28 -0
  104. package/schemas/human-decision-delivery-v2.schema.json +36 -0
  105. package/schemas/human-decision-receipt-v1.schema.json +33 -0
  106. package/schemas/human-decision-receipt-v2.schema.json +39 -0
  107. package/schemas/human-decision-request-v1.schema.json +59 -0
  108. package/schemas/human-decision-request-v2.schema.json +69 -0
  109. package/schemas/human-decision-resolution-v1.schema.json +27 -0
  110. package/schemas/human-decision-resolution-v2.schema.json +27 -0
  111. package/schemas/human-decision-settlement-v1.schema.json +28 -0
  112. package/skills/autodoc/SKILL.md +43 -0
  113. package/skills/autoimplement/SKILL.md +58 -0
  114. package/skills/autoimplement/agents/openai.yaml +4 -0
  115. package/skills/autoplan/SKILL.md +25 -0
  116. package/skills/monitor/SKILL.md +8 -1
  117. package/skills/pi-workflows/SKILL.md +5 -3
  118. package/src/builtins/autodoc.workflow.ts +325 -0
  119. package/src/builtins/autoimplement.workflow.ts +1123 -0
  120. package/src/builtins/autoplan.workflow.ts +231 -0
  121. package/src/builtins/catalog.ts +9 -1
  122. package/src/builtins/index.ts +32 -0
  123. package/src/builtins/monitor.workflow.ts +396 -15
  124. package/src/builtins/plan-approval.workflow.ts +190 -0
  125. package/src/builtins/plan-presentation.ts +57 -0
  126. package/src/extension/decision-channels.ts +1533 -0
  127. package/src/extension/index.ts +499 -9
  128. package/src/extension/widget.ts +39 -2
  129. package/src/extension/workflow-tool.ts +5 -81
  130. package/src/host/rpc-bridge.ts +7 -30
  131. package/src/render/graph-render.ts +54 -5
  132. package/src/viewer/render.ts +56 -3
  133. package/src/workflows/catalog.ts +7 -0
  134. package/src/workflows/composition.ts +642 -0
  135. package/src/workflows/decision-presentation.ts +501 -0
  136. package/src/workflows/decision.ts +12 -5
  137. package/src/workflows/definition.ts +118 -8
  138. package/src/workflows/engine.ts +257 -20
  139. package/src/workflows/graph.ts +8 -6
  140. package/src/workflows/human-decision.ts +819 -0
  141. package/src/workflows/index.ts +89 -0
  142. package/src/workflows/loader.ts +186 -18
  143. package/src/workflows/schema.ts +79 -2
  144. package/src/workflows/store.ts +45 -2
  145. package/src/workflows/tool-input.ts +202 -0
  146. package/src/workflows/types.ts +374 -2
  147. package/examples/workflows/elegant-solution.workflow.ts +0 -95
@@ -0,0 +1,353 @@
1
+ import type { WorkflowNodeContext } from "../workflows/types.js";
2
+ import { type AutodocInput } from "./autodoc.workflow.js";
3
+ import { type AutoplanInput } from "./autoplan.workflow.js";
4
+ import { type PlanApprovalInput } from "./plan-approval.workflow.js";
5
+ export type AutoimplementInput = {
6
+ task: string;
7
+ plan?: unknown;
8
+ scope?: string;
9
+ constraints?: string[];
10
+ repository?: string;
11
+ baseBranch?: string;
12
+ merge?: boolean;
13
+ documents?: string[];
14
+ documentation?: {
15
+ status: "current";
16
+ planDigest: string;
17
+ documents: string[];
18
+ };
19
+ approval?: {
20
+ audience: string;
21
+ maxReplans: number;
22
+ };
23
+ };
24
+ export type ExistingPlanDiscovery = {
25
+ route: "found" | "blocked";
26
+ plan?: unknown;
27
+ documentation?: "current" | "missing" | "stale";
28
+ documents: string[];
29
+ reason: string;
30
+ evidence: unknown;
31
+ };
32
+ type ReviewFinding = {
33
+ severity: "P0" | "P1" | "P2" | "lower";
34
+ kind: "design" | "implementation";
35
+ summary: string;
36
+ };
37
+ type ReviewAssessment = {
38
+ route: "critical" | "p2" | "clean" | "command_error";
39
+ invocationSucceeded: boolean;
40
+ p0: ReviewFinding[];
41
+ p1: ReviewFinding[];
42
+ p2: ReviewFinding[];
43
+ lower: ReviewFinding[];
44
+ reason: string;
45
+ };
46
+ export type AutoimplementCompleted = {
47
+ status: "completed";
48
+ task: string;
49
+ plan: unknown;
50
+ implementation: unknown;
51
+ verification: unknown;
52
+ reviewRounds: ReviewAssessment[];
53
+ ci: unknown;
54
+ delivery: unknown;
55
+ };
56
+ export type AutoimplementBlocked = {
57
+ status: "blocked";
58
+ task: string;
59
+ reason: string;
60
+ evidence: unknown;
61
+ };
62
+ export declare const autoimplementWorkflow: import("../workflows/types.js").WorkflowDefinition<AutoimplementInput, {
63
+ readonly completed: {
64
+ readonly from: "finalize";
65
+ readonly validate: (value: unknown) => AutoimplementCompleted;
66
+ };
67
+ readonly blocked: {
68
+ readonly from: "blocked";
69
+ readonly validate: (value: unknown) => AutoimplementBlocked;
70
+ };
71
+ }, {
72
+ readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutodocInput, {
73
+ readonly ready: {
74
+ readonly from: "finalize";
75
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
76
+ };
77
+ readonly blocked: {
78
+ readonly from: "blocked";
79
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
80
+ };
81
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
82
+ nodes: {
83
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
84
+ readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
85
+ readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
86
+ readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
87
+ readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
88
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
89
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
90
+ };
91
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
92
+ exits?: {
93
+ readonly ready: {
94
+ readonly from: "finalize";
95
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
96
+ };
97
+ readonly blocked: {
98
+ readonly from: "blocked";
99
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
100
+ };
101
+ };
102
+ }>;
103
+ readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<PlanApprovalInput, {
104
+ readonly continue: {
105
+ readonly from: "continued";
106
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
107
+ };
108
+ readonly stop: {
109
+ readonly from: "stopped";
110
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
111
+ };
112
+ readonly replan: {
113
+ readonly from: "replan";
114
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
115
+ };
116
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
117
+ nodes: {
118
+ readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
119
+ nodeType: "checkpoint";
120
+ summary?: string;
121
+ run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
122
+ humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
123
+ } & {
124
+ readonly __humanChoices?: {
125
+ readonly continue: {
126
+ readonly label: "Yes, continue";
127
+ };
128
+ readonly stop: {
129
+ readonly label: "No, stop";
130
+ };
131
+ readonly replan: {
132
+ readonly label: "Replan";
133
+ readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
134
+ name: "instructions";
135
+ };
136
+ };
137
+ };
138
+ };
139
+ readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
140
+ readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
141
+ readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
142
+ };
143
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
144
+ exits?: {
145
+ readonly continue: {
146
+ readonly from: "continued";
147
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
148
+ };
149
+ readonly stop: {
150
+ readonly from: "stopped";
151
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
152
+ };
153
+ readonly replan: {
154
+ readonly from: "replan";
155
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
156
+ };
157
+ };
158
+ }>;
159
+ readonly redesign: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutoplanInput, {
160
+ readonly ready: {
161
+ readonly from: "finalize";
162
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
163
+ };
164
+ readonly blocked: {
165
+ readonly from: "blocked";
166
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
167
+ };
168
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
169
+ nodes: {
170
+ readonly frame: import("../workflows/types.js").AgentNodeDefinition;
171
+ readonly propose: import("../workflows/types.js").AgentNodeDefinition;
172
+ readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
173
+ readonly choose: import("../workflows/types.js").AgentNodeDefinition;
174
+ readonly plan: import("../workflows/types.js").AgentNodeDefinition;
175
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
176
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
177
+ };
178
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
179
+ exits?: {
180
+ readonly ready: {
181
+ readonly from: "finalize";
182
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
183
+ };
184
+ readonly blocked: {
185
+ readonly from: "blocked";
186
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
187
+ };
188
+ };
189
+ }>;
190
+ }> & {
191
+ nodes: {
192
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
193
+ readonly findPlan: import("../workflows/types.js").AgentNodeDefinition;
194
+ readonly routeFoundPlan: import("../workflows/types.js").ComputeNodeDefinition;
195
+ readonly adoptPlan: import("../workflows/types.js").ComputeNodeDefinition;
196
+ readonly maybeApproval: import("../workflows/types.js").ComputeNodeDefinition;
197
+ readonly replanGuard: import("../workflows/types.js").ComputeNodeDefinition;
198
+ readonly implement: import("../workflows/types.js").AgentNodeDefinition;
199
+ readonly classifyImplementation: import("../workflows/types.js").AgentNodeDefinition;
200
+ readonly verify: import("../workflows/types.js").AgentNodeDefinition;
201
+ readonly classifyVerification: import("../workflows/types.js").AgentNodeDefinition;
202
+ readonly fix: import("../workflows/types.js").AgentNodeDefinition;
203
+ readonly publish: import("../workflows/types.js").AgentNodeDefinition;
204
+ readonly authorReviewCommand: import("../workflows/types.js").AgentNodeDefinition;
205
+ readonly runReview: import("../workflows/types.js").ShellActionNodeDefinition;
206
+ readonly repairReviewCommand: import("../workflows/types.js").AgentNodeDefinition;
207
+ readonly assessReview: import("../workflows/types.js").AgentNodeDefinition;
208
+ readonly triageReview: import("../workflows/types.js").ComputeNodeDefinition;
209
+ readonly addressP2: import("../workflows/types.js").AgentNodeDefinition;
210
+ readonly verifyP2: import("../workflows/types.js").AgentNodeDefinition;
211
+ readonly inspectComments: import("../workflows/types.js").AgentNodeDefinition;
212
+ readonly inspectCi: import("../workflows/types.js").AgentNodeDefinition;
213
+ readonly trackCi: import("../workflows/types.js").ShellActionNodeDefinition;
214
+ readonly repairCiCommand: import("../workflows/types.js").AgentNodeDefinition;
215
+ readonly assessTrackedCi: import("../workflows/types.js").AgentNodeDefinition;
216
+ readonly opportunisticTest: import("../workflows/types.js").AgentNodeDefinition;
217
+ readonly classifyCi: import("../workflows/types.js").AgentNodeDefinition;
218
+ readonly finalizeDelivery: import("../workflows/types.js").AgentNodeDefinition;
219
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
220
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
221
+ };
222
+ includes?: {
223
+ readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutodocInput, {
224
+ readonly ready: {
225
+ readonly from: "finalize";
226
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
227
+ };
228
+ readonly blocked: {
229
+ readonly from: "blocked";
230
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
231
+ };
232
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
233
+ nodes: {
234
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
235
+ readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
236
+ readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
237
+ readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
238
+ readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
239
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
240
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
241
+ };
242
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
243
+ exits?: {
244
+ readonly ready: {
245
+ readonly from: "finalize";
246
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
247
+ };
248
+ readonly blocked: {
249
+ readonly from: "blocked";
250
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
251
+ };
252
+ };
253
+ }>;
254
+ readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<PlanApprovalInput, {
255
+ readonly continue: {
256
+ readonly from: "continued";
257
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
258
+ };
259
+ readonly stop: {
260
+ readonly from: "stopped";
261
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
262
+ };
263
+ readonly replan: {
264
+ readonly from: "replan";
265
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
266
+ };
267
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
268
+ nodes: {
269
+ readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
270
+ nodeType: "checkpoint";
271
+ summary?: string;
272
+ run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
273
+ humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
274
+ } & {
275
+ readonly __humanChoices?: {
276
+ readonly continue: {
277
+ readonly label: "Yes, continue";
278
+ };
279
+ readonly stop: {
280
+ readonly label: "No, stop";
281
+ };
282
+ readonly replan: {
283
+ readonly label: "Replan";
284
+ readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
285
+ name: "instructions";
286
+ };
287
+ };
288
+ };
289
+ };
290
+ readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
291
+ readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
292
+ readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
293
+ };
294
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
295
+ exits?: {
296
+ readonly continue: {
297
+ readonly from: "continued";
298
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
299
+ };
300
+ readonly stop: {
301
+ readonly from: "stopped";
302
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
303
+ };
304
+ readonly replan: {
305
+ readonly from: "replan";
306
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
307
+ };
308
+ };
309
+ }>;
310
+ readonly redesign: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutoplanInput, {
311
+ readonly ready: {
312
+ readonly from: "finalize";
313
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
314
+ };
315
+ readonly blocked: {
316
+ readonly from: "blocked";
317
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
318
+ };
319
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
320
+ nodes: {
321
+ readonly frame: import("../workflows/types.js").AgentNodeDefinition;
322
+ readonly propose: import("../workflows/types.js").AgentNodeDefinition;
323
+ readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
324
+ readonly choose: import("../workflows/types.js").AgentNodeDefinition;
325
+ readonly plan: import("../workflows/types.js").AgentNodeDefinition;
326
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
327
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
328
+ };
329
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
330
+ exits?: {
331
+ readonly ready: {
332
+ readonly from: "finalize";
333
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
334
+ };
335
+ readonly blocked: {
336
+ readonly from: "blocked";
337
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
338
+ };
339
+ };
340
+ }>;
341
+ };
342
+ exits?: {
343
+ readonly completed: {
344
+ readonly from: "finalize";
345
+ readonly validate: (value: unknown) => AutoimplementCompleted;
346
+ };
347
+ readonly blocked: {
348
+ readonly from: "blocked";
349
+ readonly validate: (value: unknown) => AutoimplementBlocked;
350
+ };
351
+ };
352
+ };
353
+ export default autoimplementWorkflow;