@osolmaz/pi-workflows 0.12.0 → 0.12.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 (119) hide show
  1. package/README.md +4 -3
  2. package/dist/builtins/autoimplement.workflow.d.ts +485 -126
  3. package/dist/builtins/autoimplement.workflow.js +17 -105
  4. package/dist/builtins/autoimplement.workflow.js.map +1 -1
  5. package/dist/builtins/catalog.js +4 -4
  6. package/dist/builtins/index.d.ts +2 -1
  7. package/dist/builtins/index.js +2 -1
  8. package/dist/builtins/index.js.map +1 -1
  9. package/dist/builtins/monitor.workflow.d.ts +2 -4
  10. package/dist/builtins/monitor.workflow.js +26 -128
  11. package/dist/builtins/monitor.workflow.js.map +1 -1
  12. package/dist/builtins/pi-agent-group.d.ts +72 -0
  13. package/dist/builtins/pi-agent-group.js +1087 -0
  14. package/dist/builtins/pi-agent-group.js.map +1 -0
  15. package/dist/builtins/plan-approval.workflow.d.ts +39 -5
  16. package/dist/builtins/plan-approval.workflow.js +92 -14
  17. package/dist/builtins/plan-approval.workflow.js.map +1 -1
  18. package/dist/builtins/plan-change.workflow.d.ts +301 -0
  19. package/dist/builtins/plan-change.workflow.js +256 -0
  20. package/dist/builtins/plan-change.workflow.js.map +1 -0
  21. package/dist/builtins/plan-presentation.js +2 -2
  22. package/dist/builtins/plan-presentation.js.map +1 -1
  23. package/dist/builtins/sanity-check.workflow.d.ts +5 -3
  24. package/dist/builtins/sanity-check.workflow.js +105 -21
  25. package/dist/builtins/sanity-check.workflow.js.map +1 -1
  26. package/dist/extension/decision-channels.d.ts +2 -2
  27. package/dist/extension/decision-channels.js +22 -28
  28. package/dist/extension/decision-channels.js.map +1 -1
  29. package/dist/extension/index.js +62 -33
  30. package/dist/extension/index.js.map +1 -1
  31. package/dist/extension/session-events.d.ts +2 -2
  32. package/dist/extension/widget.js +23 -3
  33. package/dist/extension/widget.js.map +1 -1
  34. package/dist/render/graph-render.js +1 -2
  35. package/dist/render/graph-render.js.map +1 -1
  36. package/dist/viewer/render.js +7 -6
  37. package/dist/viewer/render.js.map +1 -1
  38. package/dist/workflows/catalog.js +7 -2
  39. package/dist/workflows/catalog.js.map +1 -1
  40. package/dist/workflows/composition.js +8 -0
  41. package/dist/workflows/composition.js.map +1 -1
  42. package/dist/workflows/decision-presentation.d.ts +1 -1
  43. package/dist/workflows/decision-presentation.js +51 -38
  44. package/dist/workflows/decision-presentation.js.map +1 -1
  45. package/dist/workflows/engine.d.ts +2 -2
  46. package/dist/workflows/engine.js +14 -13
  47. package/dist/workflows/engine.js.map +1 -1
  48. package/dist/workflows/errors.d.ts +13 -0
  49. package/dist/workflows/errors.js +15 -0
  50. package/dist/workflows/errors.js.map +1 -1
  51. package/dist/workflows/human-decision.d.ts +16 -4
  52. package/dist/workflows/human-decision.js +175 -72
  53. package/dist/workflows/human-decision.js.map +1 -1
  54. package/dist/workflows/index.d.ts +2 -2
  55. package/dist/workflows/index.js +1 -1
  56. package/dist/workflows/index.js.map +1 -1
  57. package/dist/workflows/progress.d.ts +1 -0
  58. package/dist/workflows/progress.js +15 -3
  59. package/dist/workflows/progress.js.map +1 -1
  60. package/dist/workflows/schema.js +10 -0
  61. package/dist/workflows/schema.js.map +1 -1
  62. package/dist/workflows/store.js +5 -0
  63. package/dist/workflows/store.js.map +1 -1
  64. package/dist/workflows/types.d.ts +33 -45
  65. package/docs/HUMAN_DECISIONS.md +25 -35
  66. package/docs/HUMAN_DECISION_PRESENTATIONS.md +14 -24
  67. package/docs/MONITOR.md +5 -11
  68. package/docs/WORKFLOW_COMPOSITION.md +8 -7
  69. package/docs/plans/2026-08-21-plan-change-approval-policy-plan.md +322 -0
  70. package/docs/plans/2026-08-21-sanity-check-plan.md +202 -94
  71. package/docs/run-bundles.md +6 -6
  72. package/docs/workflows.md +26 -6
  73. package/examples/workflows/approved-plan.workflow.ts +19 -46
  74. package/herdr-plugin.toml +1 -1
  75. package/package.json +7 -7
  76. package/schemas/human-decision-accepted-v1.schema.json +15 -3
  77. package/schemas/human-decision-continuation-v1.schema.json +10 -1
  78. package/schemas/human-decision-delivery-v1.schema.json +8 -0
  79. package/schemas/human-decision-receipt-v1.schema.json +8 -0
  80. package/schemas/human-decision-request-v1.schema.json +24 -4
  81. package/skills/autoimplement/SKILL.md +27 -0
  82. package/skills/monitor/SKILL.md +31 -3
  83. package/skills/pi-workflows/SKILL.md +2 -1
  84. package/skills/sanity-check/SKILL.md +44 -0
  85. package/src/builtins/autoimplement.workflow.ts +19 -118
  86. package/src/builtins/catalog.ts +4 -4
  87. package/src/builtins/index.ts +11 -0
  88. package/src/builtins/monitor.workflow.ts +27 -150
  89. package/src/builtins/pi-agent-group.ts +1407 -0
  90. package/src/builtins/plan-approval.workflow.ts +157 -24
  91. package/src/builtins/plan-change.workflow.ts +321 -0
  92. package/src/builtins/plan-presentation.ts +2 -2
  93. package/src/builtins/sanity-check.workflow.ts +186 -41
  94. package/src/extension/decision-channels.ts +29 -59
  95. package/src/extension/index.ts +79 -41
  96. package/src/extension/session-events.ts +2 -2
  97. package/src/extension/widget.ts +24 -5
  98. package/src/render/graph-render.ts +1 -2
  99. package/src/viewer/render.ts +7 -6
  100. package/src/workflows/catalog.ts +7 -2
  101. package/src/workflows/composition.ts +9 -0
  102. package/src/workflows/decision-presentation.ts +56 -43
  103. package/src/workflows/engine.ts +17 -15
  104. package/src/workflows/errors.ts +24 -0
  105. package/src/workflows/human-decision.ts +218 -101
  106. package/src/workflows/index.ts +5 -11
  107. package/src/workflows/progress.ts +18 -3
  108. package/src/workflows/schema.ts +17 -0
  109. package/src/workflows/store.ts +5 -0
  110. package/src/workflows/types.ts +39 -56
  111. package/dist/builtins/sanity-check-session.d.ts +0 -17
  112. package/dist/builtins/sanity-check-session.js +0 -168
  113. package/dist/builtins/sanity-check-session.js.map +0 -1
  114. package/schemas/human-decision-accepted-v2.schema.json +0 -50
  115. package/schemas/human-decision-delivery-v2.schema.json +0 -36
  116. package/schemas/human-decision-receipt-v2.schema.json +0 -39
  117. package/schemas/human-decision-request-v2.schema.json +0 -69
  118. package/schemas/human-decision-resolution-v2.schema.json +0 -27
  119. package/src/builtins/sanity-check-session.ts +0 -205
@@ -1,8 +1,8 @@
1
1
  import type { WorkflowNodeContext } from "../workflows/types.js";
2
2
  import { type AutodocInput } from "./autodoc.workflow.js";
3
3
  import { type AutoimplementConcurrency } from "./autoimplement-command-batches.js";
4
- import { type AutoplanInput } from "./autoplan.workflow.js";
5
- import { type PlanApprovalInput } from "./plan-approval.workflow.js";
4
+ import { type PlanApprovalPolicy } from "./plan-approval.workflow.js";
5
+ import { type NormalizedPlanChangeInput } from "./plan-change.workflow.js";
6
6
  export type AutoimplementInput = {
7
7
  task: string;
8
8
  plan?: unknown;
@@ -17,10 +17,7 @@ export type AutoimplementInput = {
17
17
  planDigest: string;
18
18
  documents: string[];
19
19
  };
20
- approval?: {
21
- audience: string;
22
- maxReplans: number;
23
- };
20
+ approval?: PlanApprovalPolicy;
24
21
  concurrency?: Partial<AutoimplementConcurrency>;
25
22
  };
26
23
  export type ExistingPlanDiscovery = {
@@ -116,48 +113,79 @@ export declare const autoimplementWorkflow: import("../workflows/types.js").Work
116
113
  };
117
114
  };
118
115
  }>;
119
- readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<PlanApprovalInput, {
120
- readonly continue: {
121
- readonly from: "continued";
122
- readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
123
- };
124
- readonly stop: {
125
- readonly from: "stopped";
126
- readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
116
+ readonly redesign: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<NormalizedPlanChangeInput, {
117
+ readonly ready: {
118
+ readonly from: "finalize";
119
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeReady;
127
120
  };
128
- readonly replan: {
129
- readonly from: "replan";
130
- readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
121
+ readonly blocked: {
122
+ readonly from: "blocked";
123
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeBlocked;
131
124
  };
132
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
133
- nodes: {
134
- readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
135
- nodeType: "checkpoint";
136
- summary?: string;
137
- run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
138
- humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
139
- } & {
140
- readonly __humanChoices?: {
141
- readonly continue: {
142
- readonly label: "Yes, continue";
143
- };
144
- readonly stop: {
145
- readonly label: "No, stop";
146
- };
147
- readonly replan: {
148
- readonly label: "Replan";
149
- readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
150
- name: "instructions";
151
- };
152
- };
125
+ }, {
126
+ readonly design: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./autoplan.workflow.js").AutoplanInput, {
127
+ readonly ready: {
128
+ readonly from: "finalize";
129
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
130
+ };
131
+ readonly blocked: {
132
+ readonly from: "blocked";
133
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
134
+ };
135
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
136
+ nodes: {
137
+ readonly frame: import("../workflows/types.js").AgentNodeDefinition;
138
+ readonly propose: import("../workflows/types.js").AgentNodeDefinition;
139
+ readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
140
+ readonly choose: import("../workflows/types.js").AgentNodeDefinition;
141
+ readonly plan: import("../workflows/types.js").AgentNodeDefinition;
142
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
143
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
144
+ };
145
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
146
+ exits?: {
147
+ readonly ready: {
148
+ readonly from: "finalize";
149
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
150
+ };
151
+ readonly blocked: {
152
+ readonly from: "blocked";
153
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
153
154
  };
154
155
  };
155
- readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
156
- readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
157
- readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
158
- };
159
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
160
- exits?: {
156
+ }>;
157
+ readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutodocInput, {
158
+ readonly ready: {
159
+ readonly from: "finalize";
160
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
161
+ };
162
+ readonly blocked: {
163
+ readonly from: "blocked";
164
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
165
+ };
166
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
167
+ nodes: {
168
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
169
+ readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
170
+ readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
171
+ readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
172
+ readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
173
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
174
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
175
+ };
176
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
177
+ exits?: {
178
+ readonly ready: {
179
+ readonly from: "finalize";
180
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
181
+ };
182
+ readonly blocked: {
183
+ readonly from: "blocked";
184
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
185
+ };
186
+ };
187
+ }>;
188
+ readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plan-approval.workflow.js").NormalizedPlanApprovalInput, {
161
189
  readonly continue: {
162
190
  readonly from: "continued";
163
191
  readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
@@ -170,36 +198,187 @@ export declare const autoimplementWorkflow: import("../workflows/types.js").Work
170
198
  readonly from: "replan";
171
199
  readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
172
200
  };
173
- };
174
- }>;
175
- readonly redesign: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutoplanInput, {
176
- readonly ready: {
177
- readonly from: "finalize";
178
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
179
- };
180
- readonly blocked: {
181
- readonly from: "blocked";
182
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
183
- };
184
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
201
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
202
+ nodes: {
203
+ readonly routePolicy: import("../workflows/types.js").ComputeNodeDefinition;
204
+ readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
205
+ nodeType: "checkpoint";
206
+ summary?: string;
207
+ run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
208
+ humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
209
+ } & {
210
+ readonly __humanChoices?: {
211
+ readonly continue: {
212
+ readonly label: "Yes, continue";
213
+ };
214
+ readonly stop: {
215
+ readonly label: "No, stop";
216
+ };
217
+ readonly replan: {
218
+ readonly label: "Replan";
219
+ readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
220
+ name: "instructions";
221
+ };
222
+ };
223
+ };
224
+ };
225
+ readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
226
+ readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
227
+ readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
228
+ };
229
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
230
+ exits?: {
231
+ readonly continue: {
232
+ readonly from: "continued";
233
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
234
+ };
235
+ readonly stop: {
236
+ readonly from: "stopped";
237
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
238
+ };
239
+ readonly replan: {
240
+ readonly from: "replan";
241
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
242
+ };
243
+ };
244
+ }>;
245
+ }> & {
185
246
  nodes: {
186
- readonly frame: import("../workflows/types.js").AgentNodeDefinition;
187
- readonly propose: import("../workflows/types.js").AgentNodeDefinition;
188
- readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
189
- readonly choose: import("../workflows/types.js").AgentNodeDefinition;
190
- readonly plan: import("../workflows/types.js").AgentNodeDefinition;
191
- readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
247
+ readonly start: import("../workflows/types.js").ComputeNodeDefinition;
248
+ readonly assessPlan: import("../workflows/types.js").ComputeNodeDefinition;
249
+ readonly replanGuard: import("../workflows/types.js").ComputeNodeDefinition;
192
250
  readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
251
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
252
+ };
253
+ includes?: {
254
+ readonly design: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./autoplan.workflow.js").AutoplanInput, {
255
+ readonly ready: {
256
+ readonly from: "finalize";
257
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
258
+ };
259
+ readonly blocked: {
260
+ readonly from: "blocked";
261
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
262
+ };
263
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
264
+ nodes: {
265
+ readonly frame: import("../workflows/types.js").AgentNodeDefinition;
266
+ readonly propose: import("../workflows/types.js").AgentNodeDefinition;
267
+ readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
268
+ readonly choose: import("../workflows/types.js").AgentNodeDefinition;
269
+ readonly plan: import("../workflows/types.js").AgentNodeDefinition;
270
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
271
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
272
+ };
273
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
274
+ exits?: {
275
+ readonly ready: {
276
+ readonly from: "finalize";
277
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
278
+ };
279
+ readonly blocked: {
280
+ readonly from: "blocked";
281
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
282
+ };
283
+ };
284
+ }>;
285
+ readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutodocInput, {
286
+ readonly ready: {
287
+ readonly from: "finalize";
288
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
289
+ };
290
+ readonly blocked: {
291
+ readonly from: "blocked";
292
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
293
+ };
294
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
295
+ nodes: {
296
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
297
+ readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
298
+ readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
299
+ readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
300
+ readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
301
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
302
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
303
+ };
304
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
305
+ exits?: {
306
+ readonly ready: {
307
+ readonly from: "finalize";
308
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
309
+ };
310
+ readonly blocked: {
311
+ readonly from: "blocked";
312
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
313
+ };
314
+ };
315
+ }>;
316
+ readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plan-approval.workflow.js").NormalizedPlanApprovalInput, {
317
+ readonly continue: {
318
+ readonly from: "continued";
319
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
320
+ };
321
+ readonly stop: {
322
+ readonly from: "stopped";
323
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
324
+ };
325
+ readonly replan: {
326
+ readonly from: "replan";
327
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
328
+ };
329
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
330
+ nodes: {
331
+ readonly routePolicy: import("../workflows/types.js").ComputeNodeDefinition;
332
+ readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
333
+ nodeType: "checkpoint";
334
+ summary?: string;
335
+ run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
336
+ humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
337
+ } & {
338
+ readonly __humanChoices?: {
339
+ readonly continue: {
340
+ readonly label: "Yes, continue";
341
+ };
342
+ readonly stop: {
343
+ readonly label: "No, stop";
344
+ };
345
+ readonly replan: {
346
+ readonly label: "Replan";
347
+ readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
348
+ name: "instructions";
349
+ };
350
+ };
351
+ };
352
+ };
353
+ readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
354
+ readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
355
+ readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
356
+ };
357
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
358
+ exits?: {
359
+ readonly continue: {
360
+ readonly from: "continued";
361
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
362
+ };
363
+ readonly stop: {
364
+ readonly from: "stopped";
365
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
366
+ };
367
+ readonly replan: {
368
+ readonly from: "replan";
369
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
370
+ };
371
+ };
372
+ }>;
193
373
  };
194
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
195
374
  exits?: {
196
375
  readonly ready: {
197
376
  readonly from: "finalize";
198
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
377
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeReady;
199
378
  };
200
379
  readonly blocked: {
201
380
  readonly from: "blocked";
202
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
381
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeBlocked;
203
382
  };
204
383
  };
205
384
  }>;
@@ -209,8 +388,6 @@ export declare const autoimplementWorkflow: import("../workflows/types.js").Work
209
388
  readonly findPlan: import("../workflows/types.js").AgentNodeDefinition;
210
389
  readonly routeFoundPlan: import("../workflows/types.js").ComputeNodeDefinition;
211
390
  readonly adoptPlan: import("../workflows/types.js").ComputeNodeDefinition;
212
- readonly maybeApproval: import("../workflows/types.js").ComputeNodeDefinition;
213
- readonly replanGuard: import("../workflows/types.js").ComputeNodeDefinition;
214
391
  readonly timeoutFallbackGuard: import("../workflows/types.js").ComputeNodeDefinition;
215
392
  readonly timeoutFallback: import("../workflows/types.js").AgentNodeDefinition;
216
393
  readonly routeTimeoutFallback: import("../workflows/types.js").ComputeNodeDefinition;
@@ -279,48 +456,79 @@ export declare const autoimplementWorkflow: import("../workflows/types.js").Work
279
456
  };
280
457
  };
281
458
  }>;
282
- readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<PlanApprovalInput, {
283
- readonly continue: {
284
- readonly from: "continued";
285
- readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
286
- };
287
- readonly stop: {
288
- readonly from: "stopped";
289
- readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
459
+ readonly redesign: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<NormalizedPlanChangeInput, {
460
+ readonly ready: {
461
+ readonly from: "finalize";
462
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeReady;
290
463
  };
291
- readonly replan: {
292
- readonly from: "replan";
293
- readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
464
+ readonly blocked: {
465
+ readonly from: "blocked";
466
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeBlocked;
294
467
  };
295
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
296
- nodes: {
297
- readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
298
- nodeType: "checkpoint";
299
- summary?: string;
300
- run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
301
- humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
302
- } & {
303
- readonly __humanChoices?: {
304
- readonly continue: {
305
- readonly label: "Yes, continue";
306
- };
307
- readonly stop: {
308
- readonly label: "No, stop";
309
- };
310
- readonly replan: {
311
- readonly label: "Replan";
312
- readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
313
- name: "instructions";
314
- };
315
- };
468
+ }, {
469
+ readonly design: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./autoplan.workflow.js").AutoplanInput, {
470
+ readonly ready: {
471
+ readonly from: "finalize";
472
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
473
+ };
474
+ readonly blocked: {
475
+ readonly from: "blocked";
476
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
477
+ };
478
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
479
+ nodes: {
480
+ readonly frame: import("../workflows/types.js").AgentNodeDefinition;
481
+ readonly propose: import("../workflows/types.js").AgentNodeDefinition;
482
+ readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
483
+ readonly choose: import("../workflows/types.js").AgentNodeDefinition;
484
+ readonly plan: import("../workflows/types.js").AgentNodeDefinition;
485
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
486
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
487
+ };
488
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
489
+ exits?: {
490
+ readonly ready: {
491
+ readonly from: "finalize";
492
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
493
+ };
494
+ readonly blocked: {
495
+ readonly from: "blocked";
496
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
316
497
  };
317
498
  };
318
- readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
319
- readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
320
- readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
321
- };
322
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
323
- exits?: {
499
+ }>;
500
+ readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutodocInput, {
501
+ readonly ready: {
502
+ readonly from: "finalize";
503
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
504
+ };
505
+ readonly blocked: {
506
+ readonly from: "blocked";
507
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
508
+ };
509
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
510
+ nodes: {
511
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
512
+ readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
513
+ readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
514
+ readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
515
+ readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
516
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
517
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
518
+ };
519
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
520
+ exits?: {
521
+ readonly ready: {
522
+ readonly from: "finalize";
523
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
524
+ };
525
+ readonly blocked: {
526
+ readonly from: "blocked";
527
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
528
+ };
529
+ };
530
+ }>;
531
+ readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plan-approval.workflow.js").NormalizedPlanApprovalInput, {
324
532
  readonly continue: {
325
533
  readonly from: "continued";
326
534
  readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
@@ -333,36 +541,187 @@ export declare const autoimplementWorkflow: import("../workflows/types.js").Work
333
541
  readonly from: "replan";
334
542
  readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
335
543
  };
336
- };
337
- }>;
338
- readonly redesign: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutoplanInput, {
339
- readonly ready: {
340
- readonly from: "finalize";
341
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
342
- };
343
- readonly blocked: {
344
- readonly from: "blocked";
345
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
346
- };
347
- }, import("../workflows/types.js").WorkflowIncludeMap> & {
544
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
545
+ nodes: {
546
+ readonly routePolicy: import("../workflows/types.js").ComputeNodeDefinition;
547
+ readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
548
+ nodeType: "checkpoint";
549
+ summary?: string;
550
+ run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
551
+ humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
552
+ } & {
553
+ readonly __humanChoices?: {
554
+ readonly continue: {
555
+ readonly label: "Yes, continue";
556
+ };
557
+ readonly stop: {
558
+ readonly label: "No, stop";
559
+ };
560
+ readonly replan: {
561
+ readonly label: "Replan";
562
+ readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
563
+ name: "instructions";
564
+ };
565
+ };
566
+ };
567
+ };
568
+ readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
569
+ readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
570
+ readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
571
+ };
572
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
573
+ exits?: {
574
+ readonly continue: {
575
+ readonly from: "continued";
576
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
577
+ };
578
+ readonly stop: {
579
+ readonly from: "stopped";
580
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
581
+ };
582
+ readonly replan: {
583
+ readonly from: "replan";
584
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
585
+ };
586
+ };
587
+ }>;
588
+ }> & {
348
589
  nodes: {
349
- readonly frame: import("../workflows/types.js").AgentNodeDefinition;
350
- readonly propose: import("../workflows/types.js").AgentNodeDefinition;
351
- readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
352
- readonly choose: import("../workflows/types.js").AgentNodeDefinition;
353
- readonly plan: import("../workflows/types.js").AgentNodeDefinition;
354
- readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
590
+ readonly start: import("../workflows/types.js").ComputeNodeDefinition;
591
+ readonly assessPlan: import("../workflows/types.js").ComputeNodeDefinition;
592
+ readonly replanGuard: import("../workflows/types.js").ComputeNodeDefinition;
355
593
  readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
594
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
595
+ };
596
+ includes?: {
597
+ readonly design: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./autoplan.workflow.js").AutoplanInput, {
598
+ readonly ready: {
599
+ readonly from: "finalize";
600
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
601
+ };
602
+ readonly blocked: {
603
+ readonly from: "blocked";
604
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
605
+ };
606
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
607
+ nodes: {
608
+ readonly frame: import("../workflows/types.js").AgentNodeDefinition;
609
+ readonly propose: import("../workflows/types.js").AgentNodeDefinition;
610
+ readonly ideal: import("../workflows/types.js").AgentNodeDefinition;
611
+ readonly choose: import("../workflows/types.js").AgentNodeDefinition;
612
+ readonly plan: import("../workflows/types.js").AgentNodeDefinition;
613
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
614
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
615
+ };
616
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
617
+ exits?: {
618
+ readonly ready: {
619
+ readonly from: "finalize";
620
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
621
+ };
622
+ readonly blocked: {
623
+ readonly from: "blocked";
624
+ readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
625
+ };
626
+ };
627
+ }>;
628
+ readonly documentation: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<AutodocInput, {
629
+ readonly ready: {
630
+ readonly from: "finalize";
631
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
632
+ };
633
+ readonly blocked: {
634
+ readonly from: "blocked";
635
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
636
+ };
637
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
638
+ nodes: {
639
+ readonly prepare: import("../workflows/types.js").ComputeNodeDefinition;
640
+ readonly locatePlan: import("../workflows/types.js").AgentNodeDefinition;
641
+ readonly inspectDocumentation: import("../workflows/types.js").AgentNodeDefinition;
642
+ readonly updateDocumentation: import("../workflows/types.js").AgentNodeDefinition;
643
+ readonly verifyDocumentation: import("../workflows/types.js").AgentNodeDefinition;
644
+ readonly finalize: import("../workflows/types.js").ComputeNodeDefinition;
645
+ readonly blocked: import("../workflows/types.js").ComputeNodeDefinition;
646
+ };
647
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
648
+ exits?: {
649
+ readonly ready: {
650
+ readonly from: "finalize";
651
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").DocumentedPlan;
652
+ };
653
+ readonly blocked: {
654
+ readonly from: "blocked";
655
+ readonly validate: (value: unknown) => import("./autodoc.workflow.js").AutodocBlocked;
656
+ };
657
+ };
658
+ }>;
659
+ readonly approval: import("../workflows/types.js").WorkflowIncludeDefinition<import("../workflows/types.js").WorkflowDefinition<import("./plan-approval.workflow.js").NormalizedPlanApprovalInput, {
660
+ readonly continue: {
661
+ readonly from: "continued";
662
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
663
+ };
664
+ readonly stop: {
665
+ readonly from: "stopped";
666
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
667
+ };
668
+ readonly replan: {
669
+ readonly from: "replan";
670
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
671
+ };
672
+ }, import("../workflows/types.js").WorkflowIncludeMap> & {
673
+ nodes: {
674
+ readonly routePolicy: import("../workflows/types.js").ComputeNodeDefinition;
675
+ readonly approve: import("../workflows/types.js").WorkflowNodeCommon & {
676
+ nodeType: "checkpoint";
677
+ summary?: string;
678
+ run?: (context: WorkflowNodeContext) => import("../workflows/types.js").MaybePromise<unknown>;
679
+ humanDecision?: import("../workflows/types.js").HumanDecisionNodeContract;
680
+ } & {
681
+ readonly __humanChoices?: {
682
+ readonly continue: {
683
+ readonly label: "Yes, continue";
684
+ };
685
+ readonly stop: {
686
+ readonly label: "No, stop";
687
+ };
688
+ readonly replan: {
689
+ readonly label: "Replan";
690
+ readonly input: import("../workflows/types.js").HumanDecisionTextInput & {
691
+ name: "instructions";
692
+ };
693
+ };
694
+ };
695
+ };
696
+ readonly continued: import("../workflows/types.js").ComputeNodeDefinition;
697
+ readonly stopped: import("../workflows/types.js").ComputeNodeDefinition;
698
+ readonly replan: import("../workflows/types.js").ComputeNodeDefinition;
699
+ };
700
+ includes?: import("../workflows/types.js").WorkflowIncludeMap;
701
+ exits?: {
702
+ readonly continue: {
703
+ readonly from: "continued";
704
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalContinue;
705
+ };
706
+ readonly stop: {
707
+ readonly from: "stopped";
708
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalStop;
709
+ };
710
+ readonly replan: {
711
+ readonly from: "replan";
712
+ readonly validate: (value: unknown) => import("./plan-approval.workflow.js").PlanApprovalReplan;
713
+ };
714
+ };
715
+ }>;
356
716
  };
357
- includes?: import("../workflows/types.js").WorkflowIncludeMap;
358
717
  exits?: {
359
718
  readonly ready: {
360
719
  readonly from: "finalize";
361
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanReady;
720
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeReady;
362
721
  };
363
722
  readonly blocked: {
364
723
  readonly from: "blocked";
365
- readonly validate: (value: unknown) => import("./autoplan.workflow.js").AutoplanBlocked;
724
+ readonly validate: (value: unknown) => import("./plan-change.workflow.js").PlanChangeBlocked;
366
725
  };
367
726
  };
368
727
  }>;