poly-weaver 0.7.1 → 0.8.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.
- package/dist/ansi.d.ts +7 -0
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +30 -0
- package/dist/ansi.js.map +1 -1
- package/dist/app-header.d.ts +16 -0
- package/dist/app-header.d.ts.map +1 -0
- package/dist/app-header.js +74 -0
- package/dist/app-header.js.map +1 -0
- package/dist/cli.js +81 -59
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/dump/collector.d.ts +2 -1
- package/dist/dump/collector.d.ts.map +1 -1
- package/dist/dump/collector.js +1 -0
- package/dist/dump/collector.js.map +1 -1
- package/dist/dump/hotkey.d.ts +9 -30
- package/dist/dump/hotkey.d.ts.map +1 -1
- package/dist/dump/hotkey.js +15 -158
- package/dist/dump/hotkey.js.map +1 -1
- package/dist/dump/service.d.ts +3 -2
- package/dist/dump/service.d.ts.map +1 -1
- package/dist/dump/service.js +4 -1
- package/dist/dump/service.js.map +1 -1
- package/dist/dump/types.d.ts +5 -0
- package/dist/dump/types.d.ts.map +1 -1
- package/dist/flow/built-in/default-factory.d.ts +21 -0
- package/dist/flow/built-in/default-factory.d.ts.map +1 -0
- package/dist/flow/built-in/default-factory.js +155 -0
- package/dist/flow/built-in/default-factory.js.map +1 -0
- package/dist/flow/built-in/default.d.ts +4 -4
- package/dist/flow/built-in/default.d.ts.map +1 -1
- package/dist/flow/built-in/default.js +3 -141
- package/dist/flow/built-in/default.js.map +1 -1
- package/dist/flow/built-in/default.ts +5 -169
- package/dist/flow/built-in/why-so-serious-factory.d.ts +16 -0
- package/dist/flow/built-in/why-so-serious-factory.d.ts.map +1 -0
- package/dist/flow/built-in/why-so-serious-factory.js +187 -0
- package/dist/flow/built-in/why-so-serious-factory.js.map +1 -0
- package/dist/flow/built-in/why-so-serious.d.ts +3 -2
- package/dist/flow/built-in/why-so-serious.d.ts.map +1 -1
- package/dist/flow/built-in/why-so-serious.js +3 -164
- package/dist/flow/built-in/why-so-serious.js.map +1 -1
- package/dist/flow/custom/AUTHORING.md +13 -0
- package/dist/flow/custom/load.d.ts +16 -1
- package/dist/flow/custom/load.d.ts.map +1 -1
- package/dist/flow/custom/load.js +69 -18
- package/dist/flow/custom/load.js.map +1 -1
- package/dist/flow/dsl.js +1 -1
- package/dist/flow/dsl.js.map +1 -1
- package/dist/flow/executor.d.ts.map +1 -1
- package/dist/flow/executor.js +44 -8
- package/dist/flow/executor.js.map +1 -1
- package/dist/flow/types.d.ts +20 -2
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/flow/types.js.map +1 -1
- package/dist/flow-editor/tui.d.ts.map +1 -1
- package/dist/flow-editor/tui.js +9 -18
- package/dist/flow-editor/tui.js.map +1 -1
- package/dist/orchestrator.d.ts +43 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +230 -92
- package/dist/orchestrator.js.map +1 -1
- package/dist/providers/claude/completion-plan-mode.d.ts.map +1 -1
- package/dist/providers/claude/completion-plan-mode.js +5 -2
- package/dist/providers/claude/completion-plan-mode.js.map +1 -1
- package/dist/providers/claude/tool-tracking.d.ts +1 -0
- package/dist/providers/claude/tool-tracking.d.ts.map +1 -1
- package/dist/providers/claude/tool-tracking.js +3 -0
- package/dist/providers/claude/tool-tracking.js.map +1 -1
- package/dist/pty/spawn.d.ts.map +1 -1
- package/dist/pty/spawn.js +6 -1
- package/dist/pty/spawn.js.map +1 -1
- package/dist/pty/types.d.ts +7 -2
- package/dist/pty/types.d.ts.map +1 -1
- package/dist/resume-tui.d.ts +52 -0
- package/dist/resume-tui.d.ts.map +1 -0
- package/dist/resume-tui.js +344 -0
- package/dist/resume-tui.js.map +1 -0
- package/dist/session/flow-snapshot.d.ts +14 -0
- package/dist/session/flow-snapshot.d.ts.map +1 -0
- package/dist/session/flow-snapshot.js +28 -0
- package/dist/session/flow-snapshot.js.map +1 -0
- package/dist/session/list.d.ts +16 -0
- package/dist/session/list.d.ts.map +1 -0
- package/dist/session/list.js +89 -0
- package/dist/session/list.js.map +1 -0
- package/dist/session/lock.d.ts +26 -0
- package/dist/session/lock.d.ts.map +1 -0
- package/dist/session/lock.js +95 -0
- package/dist/session/lock.js.map +1 -0
- package/dist/session/manifest.d.ts +80 -0
- package/dist/session/manifest.d.ts.map +1 -0
- package/dist/session/manifest.js +2 -0
- package/dist/session/manifest.js.map +1 -0
- package/dist/session/persistence.d.ts +19 -0
- package/dist/session/persistence.d.ts.map +1 -0
- package/dist/session/persistence.js +68 -0
- package/dist/session/persistence.js.map +1 -0
- package/dist/session/process-start-time.d.ts +17 -0
- package/dist/session/process-start-time.d.ts.map +1 -0
- package/dist/session/process-start-time.js +99 -0
- package/dist/session/process-start-time.js.map +1 -0
- package/dist/session/restore.d.ts +31 -0
- package/dist/session/restore.d.ts.map +1 -0
- package/dist/session/restore.js +111 -0
- package/dist/session/restore.js.map +1 -0
- package/dist/session/resume.d.ts +5 -0
- package/dist/session/resume.d.ts.map +1 -0
- package/dist/session/resume.js +109 -0
- package/dist/session/resume.js.map +1 -0
- package/dist/session/session-store.d.ts +43 -0
- package/dist/session/session-store.d.ts.map +1 -0
- package/dist/session/session-store.js +134 -0
- package/dist/session/session-store.js.map +1 -0
- package/dist/startup-tui.d.ts +10 -11
- package/dist/startup-tui.d.ts.map +1 -1
- package/dist/startup-tui.js +25 -108
- package/dist/startup-tui.js.map +1 -1
- package/dist/status-bar.js +1 -26
- package/dist/status-bar.js.map +1 -1
- package/dist/terminal/host.d.ts +22 -9
- package/dist/terminal/host.d.ts.map +1 -1
- package/dist/terminal/host.js +67 -78
- package/dist/terminal/host.js.map +1 -1
- package/dist/terminal/input-router.d.ts +24 -103
- package/dist/terminal/input-router.d.ts.map +1 -1
- package/dist/terminal/input-router.js +63 -364
- package/dist/terminal/input-router.js.map +1 -1
- package/dist/terminal/key-event-source.d.ts +52 -0
- package/dist/terminal/key-event-source.d.ts.map +1 -0
- package/dist/terminal/key-event-source.js +31 -0
- package/dist/terminal/key-event-source.js.map +1 -0
- package/dist/terminal/key-to-bytes.d.ts +11 -0
- package/dist/terminal/key-to-bytes.d.ts.map +1 -0
- package/dist/terminal/key-to-bytes.js +81 -0
- package/dist/terminal/key-to-bytes.js.map +1 -0
- package/dist/terminal/koffi-loader.d.ts +14 -0
- package/dist/terminal/koffi-loader.d.ts.map +1 -1
- package/dist/terminal/koffi-loader.js.map +1 -1
- package/dist/terminal/render.d.ts +1 -2
- package/dist/terminal/render.d.ts.map +1 -1
- package/dist/terminal/render.js +1 -30
- package/dist/terminal/render.js.map +1 -1
- package/dist/terminal/stdin-byte-source.d.ts +27 -0
- package/dist/terminal/stdin-byte-source.d.ts.map +1 -0
- package/dist/terminal/stdin-byte-source.js +92 -0
- package/dist/terminal/stdin-byte-source.js.map +1 -0
- package/dist/terminal/win32-console-mode.d.ts.map +1 -1
- package/dist/terminal/win32-console-mode.js.map +1 -1
- package/dist/terminal/win32-console-source.d.ts +26 -0
- package/dist/terminal/win32-console-source.d.ts.map +1 -0
- package/dist/terminal/win32-console-source.js +275 -0
- package/dist/terminal/win32-console-source.js.map +1 -0
- package/dist/terminal/win32-key-translator.d.ts +26 -0
- package/dist/terminal/win32-key-translator.d.ts.map +1 -0
- package/dist/terminal/win32-key-translator.js +87 -0
- package/dist/terminal/win32-key-translator.js.map +1 -0
- package/dist/terminal-input.d.ts +10 -0
- package/dist/terminal-input.d.ts.map +1 -1
- package/dist/terminal-input.js +132 -113
- package/dist/terminal-input.js.map +1 -1
- package/dist/user/host-curate-prompt.d.ts +2 -1
- package/dist/user/host-curate-prompt.d.ts.map +1 -1
- package/dist/user/host-curate-prompt.js +13 -11
- package/dist/user/host-curate-prompt.js.map +1 -1
- package/dist/user/host-prompt.d.ts +4 -1
- package/dist/user/host-prompt.d.ts.map +1 -1
- package/dist/user/host-prompt.js +24 -6
- package/dist/user/host-prompt.js.map +1 -1
- package/dist/user/prompt.d.ts +7 -9
- package/dist/user/prompt.d.ts.map +1 -1
- package/dist/user/prompt.js +14 -23
- package/dist/user/prompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,145 +1,7 @@
|
|
|
1
1
|
import { flowDSL } from "../../dsl.js";
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
{ key: "planner", type: "driver", role: "planner", label: "Planner", default: "claude",
|
|
6
|
-
description: "Which CLI plans" },
|
|
7
|
-
{ key: "reviewer", type: "driver", role: "reviewer", label: "Reviewer", default: "codex",
|
|
8
|
-
description: "Which CLI reviews" },
|
|
9
|
-
{ key: "implementor", type: "driver", role: "implementor", label: "Implementor", default: "claude",
|
|
10
|
-
description: "Which CLI implements" },
|
|
11
|
-
// Loop limits
|
|
12
|
-
{ key: "maxIterations", type: "number", label: "Max Planning Iterations",
|
|
13
|
-
default: 5, min: 1, max: 50 },
|
|
14
|
-
{ key: "maxImplIterations", type: "number", label: "Max Impl Iterations",
|
|
15
|
-
default: 5, min: 1, max: 50 },
|
|
16
|
-
// Mode toggles
|
|
17
|
-
{ key: "auto", type: "boolean", label: "Auto Mode", default: false,
|
|
18
|
-
description: "Skip user review phases" },
|
|
19
|
-
{ key: "planOnly", type: "boolean", label: "Plan Only", default: false,
|
|
20
|
-
description: "Skip implementation phase" },
|
|
21
|
-
{ key: "curateAllVerdicts", type: "boolean", label: "Curate All Verdicts", default: false,
|
|
22
|
-
description: "Curate every plan-review verdict (off = first verdict only)" },
|
|
23
|
-
];
|
|
24
|
-
// Factory — single source of truth
|
|
25
|
-
export default function createDefaultFlow({ defineFlow, loop, artifactData, ctxField, cyclePhase, plan, review, implement, user, TASK }) {
|
|
26
|
-
return {
|
|
27
|
-
name: "default",
|
|
28
|
-
params: defaultParams,
|
|
29
|
-
build(values) {
|
|
30
|
-
const maxPlan = values.maxIterations;
|
|
31
|
-
const maxImpl = values.maxImplIterations;
|
|
32
|
-
const isPlanOnly = values.planOnly;
|
|
33
|
-
const isAuto = values.auto;
|
|
34
|
-
const curateAll = values.curateAllVerdicts;
|
|
35
|
-
const plannerDriver = values.planner;
|
|
36
|
-
const reviewerDriver = values.reviewer;
|
|
37
|
-
const implementorDriver = values.implementor;
|
|
38
|
-
const steps = [];
|
|
39
|
-
if (isAuto) {
|
|
40
|
-
// Auto mode: no user steps, reviewer-only approval
|
|
41
|
-
steps.push(loop(maxPlan, artifactData("verdict", "approved"), [
|
|
42
|
-
plan({
|
|
43
|
-
driver: plannerDriver,
|
|
44
|
-
phaseLabel: cyclePhase("📝 Planning...", "✏️ Revising Plan..."),
|
|
45
|
-
reads: { task: TASK, verdict: "verdict" },
|
|
46
|
-
writes: { plan: "plan" },
|
|
47
|
-
}),
|
|
48
|
-
review({
|
|
49
|
-
driver: reviewerDriver,
|
|
50
|
-
variant: "plan",
|
|
51
|
-
reads: { task: TASK, plan: "plan" },
|
|
52
|
-
writes: { verdict: "verdict" },
|
|
53
|
-
}),
|
|
54
|
-
]));
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// Interactive mode: two-layered loop
|
|
58
|
-
// Outer loop: user feedback (uncapped, exits via break-loop)
|
|
59
|
-
// Inner loop: agent review (capped by maxPlan, no onExhausted)
|
|
60
|
-
steps.push(loop(Infinity, () => false, [
|
|
61
|
-
plan({
|
|
62
|
-
driver: plannerDriver,
|
|
63
|
-
phaseLabel: cyclePhase("📝 Planning...", "✏️ Addressing Feedback..."),
|
|
64
|
-
reads: { task: TASK, verdict: "verdict" },
|
|
65
|
-
writes: { plan: "plan" },
|
|
66
|
-
}),
|
|
67
|
-
user("user:feedback", { writes: { verdict: "verdict" } }),
|
|
68
|
-
loop(maxPlan, artifactData("verdict", "approved"), [
|
|
69
|
-
plan({
|
|
70
|
-
driver: plannerDriver,
|
|
71
|
-
when: ctxField("iteration", "!=", 1),
|
|
72
|
-
phaseLabel: "✏️ Revising Plan...",
|
|
73
|
-
reads: { task: TASK, verdict: "verdict" },
|
|
74
|
-
writes: { plan: "plan" },
|
|
75
|
-
}),
|
|
76
|
-
review({
|
|
77
|
-
driver: reviewerDriver,
|
|
78
|
-
variant: "plan",
|
|
79
|
-
sessionShareKey: "reviewer-plan",
|
|
80
|
-
reads: { task: TASK, plan: "plan" },
|
|
81
|
-
writes: { verdict: "verdict" },
|
|
82
|
-
sessionBoundary: ctxField("iteration", "==", 1),
|
|
83
|
-
}),
|
|
84
|
-
loop(Infinity, (ctx) => {
|
|
85
|
-
const v = ctx.artifacts.getData("verdict");
|
|
86
|
-
if (!v || v.approved || (v.issues?.length ?? 0) === 0)
|
|
87
|
-
return true;
|
|
88
|
-
const decisions = ctx.artifacts
|
|
89
|
-
.getData("user-decisions")
|
|
90
|
-
?.decisions;
|
|
91
|
-
return !decisions?.some((d) => d.decision === "revise");
|
|
92
|
-
}, [
|
|
93
|
-
review({
|
|
94
|
-
driver: reviewerDriver,
|
|
95
|
-
variant: "plan",
|
|
96
|
-
sessionShareKey: "reviewer-plan",
|
|
97
|
-
when: ctxField("iteration", "!=", 1),
|
|
98
|
-
reads: { task: TASK, plan: "plan", userDecisions: "user-decisions" },
|
|
99
|
-
writes: { verdict: "verdict" },
|
|
100
|
-
}),
|
|
101
|
-
user("user:curate-verdict", {
|
|
102
|
-
variant: "curate-verdict",
|
|
103
|
-
when: (ctx) => {
|
|
104
|
-
const v = ctx.artifacts.getData("verdict");
|
|
105
|
-
return !!v && (v.issues?.length ?? 0) > 0;
|
|
106
|
-
},
|
|
107
|
-
reads: { verdict: "verdict", plan: "plan" },
|
|
108
|
-
writes: { verdict: "verdict", userDecisions: "user-decisions" },
|
|
109
|
-
feedbackToTask: false,
|
|
110
|
-
}),
|
|
111
|
-
], {
|
|
112
|
-
when: curateAll ? () => true : ctxField("iteration", "==", 1),
|
|
113
|
-
untilLabel: "no revise comments",
|
|
114
|
-
}),
|
|
115
|
-
]),
|
|
116
|
-
user("user:approval", {
|
|
117
|
-
breakOnAccept: true,
|
|
118
|
-
writes: { verdict: "verdict" },
|
|
119
|
-
}),
|
|
120
|
-
]));
|
|
121
|
-
}
|
|
122
|
-
// Optional implementation loop (same regardless of auto)
|
|
123
|
-
if (!isPlanOnly) {
|
|
124
|
-
const implVerdict = "impl-verdict";
|
|
125
|
-
steps.push(loop(maxImpl, artifactData(implVerdict, "approved"), [
|
|
126
|
-
implement({
|
|
127
|
-
driver: implementorDriver,
|
|
128
|
-
phaseLabel: cyclePhase("🔨 Implementing...", "✏️ Revising Impl..."),
|
|
129
|
-
reads: { plan: "plan", verdict: implVerdict },
|
|
130
|
-
}),
|
|
131
|
-
review({
|
|
132
|
-
driver: reviewerDriver,
|
|
133
|
-
variant: "impl",
|
|
134
|
-
reads: { task: TASK, plan: "plan" },
|
|
135
|
-
writes: { verdict: implVerdict },
|
|
136
|
-
}),
|
|
137
|
-
]));
|
|
138
|
-
}
|
|
139
|
-
return defineFlow("default", steps);
|
|
140
|
-
},
|
|
141
|
-
};
|
|
142
|
-
}
|
|
2
|
+
import createDefaultFlow, { defaultParams, SOURCE_FILE } from "./default-factory.js";
|
|
3
|
+
export { defaultParams, SOURCE_FILE };
|
|
4
|
+
export default createDefaultFlow;
|
|
143
5
|
// Static convenience (tests, backward compat)
|
|
144
6
|
export const defaultFlowTemplate = createDefaultFlow(flowDSL);
|
|
145
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/flow/built-in/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/flow/built-in/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,iBAAiB,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AACtC,eAAe,iBAAiB,CAAC;AAEjC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAiB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE5E;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAMhC;IACC,OAAO,mBAAmB,CAAC,KAAK,CAAC;QAC/B,aAAa,EAAE,IAAI,EAAE,iBAAiB,IAAI,CAAC;QAC3C,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,iBAAiB,IAAI,CAAC,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,qBAAqB,IAAI,KAAK,CAAC;QACjD,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK;QACzB,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,IAAI,KAAK;QACnD,OAAO,EAAE,QAAQ;QACjB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,QAAQ;KACtB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,173 +1,9 @@
|
|
|
1
|
-
import { flowDSL
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
FlowTemplate,
|
|
5
|
-
FlowParamValues,
|
|
6
|
-
FlowParam,
|
|
7
|
-
} from "../types.js";
|
|
8
|
-
import type { ReviewVerdict } from "../../agents/reviewers/types.js";
|
|
1
|
+
import { flowDSL } from "../../dsl.js";
|
|
2
|
+
import createDefaultFlow, { defaultParams, SOURCE_FILE } from "./default-factory.js";
|
|
3
|
+
import type { FlowTemplate, FlowDefinition } from "../types.js";
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
export
|
|
12
|
-
// Driver selections
|
|
13
|
-
{ key: "planner", type: "driver", role: "planner", label: "Planner", default: "claude",
|
|
14
|
-
description: "Which CLI plans" },
|
|
15
|
-
{ key: "reviewer", type: "driver", role: "reviewer", label: "Reviewer", default: "codex",
|
|
16
|
-
description: "Which CLI reviews" },
|
|
17
|
-
{ key: "implementor", type: "driver", role: "implementor", label: "Implementor", default: "claude",
|
|
18
|
-
description: "Which CLI implements" },
|
|
19
|
-
|
|
20
|
-
// Loop limits
|
|
21
|
-
{ key: "maxIterations", type: "number", label: "Max Planning Iterations",
|
|
22
|
-
default: 5, min: 1, max: 50 },
|
|
23
|
-
{ key: "maxImplIterations", type: "number", label: "Max Impl Iterations",
|
|
24
|
-
default: 5, min: 1, max: 50 },
|
|
25
|
-
|
|
26
|
-
// Mode toggles
|
|
27
|
-
{ key: "auto", type: "boolean", label: "Auto Mode", default: false,
|
|
28
|
-
description: "Skip user review phases" },
|
|
29
|
-
{ key: "planOnly", type: "boolean", label: "Plan Only", default: false,
|
|
30
|
-
description: "Skip implementation phase" },
|
|
31
|
-
{ key: "curateAllVerdicts", type: "boolean", label: "Curate All Verdicts", default: false,
|
|
32
|
-
description: "Curate every plan-review verdict (off = first verdict only)" },
|
|
33
|
-
];
|
|
34
|
-
|
|
35
|
-
// Factory — single source of truth
|
|
36
|
-
export default function createDefaultFlow(
|
|
37
|
-
{ defineFlow, loop, artifactData, ctxField, cyclePhase, plan, review, implement, user, TASK }: FlowDSL,
|
|
38
|
-
): FlowTemplate {
|
|
39
|
-
return {
|
|
40
|
-
name: "default",
|
|
41
|
-
params: defaultParams,
|
|
42
|
-
|
|
43
|
-
build(values: FlowParamValues) {
|
|
44
|
-
const maxPlan = values.maxIterations as number;
|
|
45
|
-
const maxImpl = values.maxImplIterations as number;
|
|
46
|
-
const isPlanOnly = values.planOnly as boolean;
|
|
47
|
-
const isAuto = values.auto as boolean;
|
|
48
|
-
const curateAll = values.curateAllVerdicts as boolean;
|
|
49
|
-
|
|
50
|
-
const plannerDriver = values.planner as string;
|
|
51
|
-
const reviewerDriver = values.reviewer as string;
|
|
52
|
-
const implementorDriver = values.implementor as string;
|
|
53
|
-
|
|
54
|
-
const steps = [];
|
|
55
|
-
|
|
56
|
-
if (isAuto) {
|
|
57
|
-
// Auto mode: no user steps, reviewer-only approval
|
|
58
|
-
steps.push(
|
|
59
|
-
loop(maxPlan, artifactData("verdict", "approved"), [
|
|
60
|
-
plan({
|
|
61
|
-
driver: plannerDriver,
|
|
62
|
-
phaseLabel: cyclePhase("📝 Planning...", "✏️ Revising Plan..."),
|
|
63
|
-
reads: { task: TASK, verdict: "verdict" },
|
|
64
|
-
writes: { plan: "plan" },
|
|
65
|
-
}),
|
|
66
|
-
review({
|
|
67
|
-
driver: reviewerDriver,
|
|
68
|
-
variant: "plan",
|
|
69
|
-
reads: { task: TASK, plan: "plan" },
|
|
70
|
-
writes: { verdict: "verdict" },
|
|
71
|
-
}),
|
|
72
|
-
]),
|
|
73
|
-
);
|
|
74
|
-
} else {
|
|
75
|
-
// Interactive mode: two-layered loop
|
|
76
|
-
// Outer loop: user feedback (uncapped, exits via break-loop)
|
|
77
|
-
// Inner loop: agent review (capped by maxPlan, no onExhausted)
|
|
78
|
-
steps.push(
|
|
79
|
-
loop(Infinity, () => false, [
|
|
80
|
-
plan({
|
|
81
|
-
driver: plannerDriver,
|
|
82
|
-
phaseLabel: cyclePhase("📝 Planning...", "✏️ Addressing Feedback..."),
|
|
83
|
-
reads: { task: TASK, verdict: "verdict" },
|
|
84
|
-
writes: { plan: "plan" },
|
|
85
|
-
}),
|
|
86
|
-
user("user:feedback", { writes: { verdict: "verdict" } }),
|
|
87
|
-
loop(maxPlan, artifactData("verdict", "approved"), [
|
|
88
|
-
plan({
|
|
89
|
-
driver: plannerDriver,
|
|
90
|
-
when: ctxField("iteration", "!=", 1),
|
|
91
|
-
phaseLabel: "✏️ Revising Plan...",
|
|
92
|
-
reads: { task: TASK, verdict: "verdict" },
|
|
93
|
-
writes: { plan: "plan" },
|
|
94
|
-
}),
|
|
95
|
-
review({
|
|
96
|
-
driver: reviewerDriver,
|
|
97
|
-
variant: "plan",
|
|
98
|
-
sessionShareKey: "reviewer-plan",
|
|
99
|
-
reads: { task: TASK, plan: "plan" },
|
|
100
|
-
writes: { verdict: "verdict" },
|
|
101
|
-
sessionBoundary: ctxField("iteration", "==", 1),
|
|
102
|
-
}),
|
|
103
|
-
loop(
|
|
104
|
-
Infinity,
|
|
105
|
-
(ctx) => {
|
|
106
|
-
const v = ctx.artifacts.getData<ReviewVerdict>("verdict");
|
|
107
|
-
if (!v || v.approved || (v.issues?.length ?? 0) === 0) return true;
|
|
108
|
-
const decisions = ctx.artifacts
|
|
109
|
-
.getData<{ decisions: Array<{ decision: string }> }>("user-decisions")
|
|
110
|
-
?.decisions;
|
|
111
|
-
return !decisions?.some((d) => d.decision === "revise");
|
|
112
|
-
},
|
|
113
|
-
[
|
|
114
|
-
review({
|
|
115
|
-
driver: reviewerDriver,
|
|
116
|
-
variant: "plan",
|
|
117
|
-
sessionShareKey: "reviewer-plan",
|
|
118
|
-
when: ctxField("iteration", "!=", 1),
|
|
119
|
-
reads: { task: TASK, plan: "plan", userDecisions: "user-decisions" },
|
|
120
|
-
writes: { verdict: "verdict" },
|
|
121
|
-
}),
|
|
122
|
-
user("user:curate-verdict", {
|
|
123
|
-
variant: "curate-verdict",
|
|
124
|
-
when: (ctx) => {
|
|
125
|
-
const v = ctx.artifacts.getData<ReviewVerdict>("verdict");
|
|
126
|
-
return !!v && (v.issues?.length ?? 0) > 0;
|
|
127
|
-
},
|
|
128
|
-
reads: { verdict: "verdict", plan: "plan" },
|
|
129
|
-
writes: { verdict: "verdict", userDecisions: "user-decisions" },
|
|
130
|
-
feedbackToTask: false,
|
|
131
|
-
}),
|
|
132
|
-
],
|
|
133
|
-
{
|
|
134
|
-
when: curateAll ? () => true : ctxField("iteration", "==", 1),
|
|
135
|
-
untilLabel: "no revise comments",
|
|
136
|
-
},
|
|
137
|
-
),
|
|
138
|
-
]),
|
|
139
|
-
user("user:approval", {
|
|
140
|
-
breakOnAccept: true,
|
|
141
|
-
writes: { verdict: "verdict" },
|
|
142
|
-
}),
|
|
143
|
-
]),
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Optional implementation loop (same regardless of auto)
|
|
148
|
-
if (!isPlanOnly) {
|
|
149
|
-
const implVerdict = "impl-verdict";
|
|
150
|
-
steps.push(
|
|
151
|
-
loop(maxImpl, artifactData(implVerdict, "approved"), [
|
|
152
|
-
implement({
|
|
153
|
-
driver: implementorDriver,
|
|
154
|
-
phaseLabel: cyclePhase("🔨 Implementing...", "✏️ Revising Impl..."),
|
|
155
|
-
reads: { plan: "plan", verdict: implVerdict },
|
|
156
|
-
}),
|
|
157
|
-
review({
|
|
158
|
-
driver: reviewerDriver,
|
|
159
|
-
variant: "impl",
|
|
160
|
-
reads: { task: TASK, plan: "plan" },
|
|
161
|
-
writes: { verdict: implVerdict },
|
|
162
|
-
}),
|
|
163
|
-
]),
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return defineFlow("default", steps);
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
}
|
|
5
|
+
export { defaultParams, SOURCE_FILE };
|
|
6
|
+
export default createDefaultFlow;
|
|
171
7
|
|
|
172
8
|
// Static convenience (tests, backward compat)
|
|
173
9
|
export const defaultFlowTemplate: FlowTemplate = createDefaultFlow(flowDSL);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {FlowDSL} dsl
|
|
3
|
+
* @returns {FlowTemplate}
|
|
4
|
+
*/
|
|
5
|
+
export default function createWhySoSeriousFlow(dsl: FlowDSL): FlowTemplate;
|
|
6
|
+
/** @type {readonly FlowParam[]} */
|
|
7
|
+
export const whySoSeriousParams: readonly FlowParam[];
|
|
8
|
+
export const SOURCE_FILE: string;
|
|
9
|
+
export type FlowDSL = import("../../dsl.js").FlowDSL;
|
|
10
|
+
export type FlowTemplate = import("../types.js").FlowTemplate;
|
|
11
|
+
export type FlowDefinition = import("../types.js").FlowDefinition;
|
|
12
|
+
export type FlowParam = import("../types.js").FlowParam;
|
|
13
|
+
export type FlowParamValues = import("../types.js").FlowParamValues;
|
|
14
|
+
export type StepContext = import("../types.js").StepContext;
|
|
15
|
+
export type ReviewVerdict = import("../../agents/reviewers/types.js").ReviewVerdict;
|
|
16
|
+
//# sourceMappingURL=why-so-serious-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"why-so-serious-factory.d.ts","sourceRoot":"","sources":["../../../src/flow/built-in/why-so-serious-factory.js"],"names":[],"mappings":"AA6CA;;;GAGG;AACH,oDAHW,OAAO,GACL,YAAY,CA2KxB;AArMD,mCAAmC;AACnC,iCADW,SAAS,SAAS,EAAE,CAsB7B;AAiLF,iCAA0D;sBAlN5C,OAAO,cAAc,EAAE,OAAO;2BAC9B,OAAO,aAAa,EAAE,YAAY;6BAClC,OAAO,aAAa,EAAE,cAAc;wBACpC,OAAO,aAAa,EAAE,SAAS;8BAC/B,OAAO,aAAa,EAAE,eAAe;0BACrC,OAAO,aAAa,EAAE,WAAW;4BACjC,OAAO,iCAAiC,EAAE,aAAa"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
// IMPORTANT: This file is snapshotted verbatim into session directories
|
|
3
|
+
// (`flow-source.mjs`) and re-imported on resume. It must therefore be valid
|
|
4
|
+
// plain ESM JavaScript — no TypeScript-only syntax (no `import type`, no
|
|
5
|
+
// type annotations on parameters/returns). Use JSDoc comments for type info
|
|
6
|
+
// so the TypeScript compiler still checks the file but the source content
|
|
7
|
+
// is loadable by Node/vite as ESM.
|
|
8
|
+
import { fileURLToPath } from "node:url";
|
|
9
|
+
/** @typedef {import("../../dsl.js").FlowDSL} FlowDSL */
|
|
10
|
+
/** @typedef {import("../types.js").FlowTemplate} FlowTemplate */
|
|
11
|
+
/** @typedef {import("../types.js").FlowDefinition} FlowDefinition */
|
|
12
|
+
/** @typedef {import("../types.js").FlowParam} FlowParam */
|
|
13
|
+
/** @typedef {import("../types.js").FlowParamValues} FlowParamValues */
|
|
14
|
+
/** @typedef {import("../types.js").StepContext} StepContext */
|
|
15
|
+
/** @typedef {import("../../agents/reviewers/types.js").ReviewVerdict} ReviewVerdict */
|
|
16
|
+
const implVerdict = "impl-verdict";
|
|
17
|
+
const revisePlan = "revise-plan";
|
|
18
|
+
/** @type {readonly FlowParam[]} */
|
|
19
|
+
export const whySoSeriousParams = [
|
|
20
|
+
{ key: "planner", type: "driver", role: "planner", label: "Planner", default: "claude",
|
|
21
|
+
description: "Which CLI plans" },
|
|
22
|
+
{ key: "reviewer", type: "driver", role: "reviewer", label: "Reviewer", default: "codex",
|
|
23
|
+
description: "Which CLI reviews" },
|
|
24
|
+
{ key: "implementor", type: "driver", role: "implementor", label: "Implementor", default: "claude",
|
|
25
|
+
description: "Which CLI implements" },
|
|
26
|
+
{ key: "simplifier", type: "driver", role: "simplifier", label: "Simplifier", default: "claude",
|
|
27
|
+
description: "Which CLI simplifies" },
|
|
28
|
+
{ key: "maxIterations", type: "number", label: "Max Planning Iterations",
|
|
29
|
+
default: 5, min: 1, max: 50 },
|
|
30
|
+
{ key: "maxImplIterations", type: "number", label: "Max Impl Iterations",
|
|
31
|
+
default: 5, min: 1, max: 50 },
|
|
32
|
+
{ key: "auto", type: "boolean", label: "Auto Mode", default: false,
|
|
33
|
+
description: "Skip user review phases" },
|
|
34
|
+
{ key: "planOnly", type: "boolean", label: "Plan Only", default: false,
|
|
35
|
+
description: "Skip implementation phase" },
|
|
36
|
+
{ key: "curateAllVerdicts", type: "boolean", label: "Curate All Verdicts", default: true,
|
|
37
|
+
description: "Curate every plan-review verdict (off = first verdict only)" },
|
|
38
|
+
];
|
|
39
|
+
/**
|
|
40
|
+
* @param {FlowDSL} dsl
|
|
41
|
+
* @returns {FlowTemplate}
|
|
42
|
+
*/
|
|
43
|
+
export default function createWhySoSeriousFlow(dsl) {
|
|
44
|
+
const { defineFlow, loop, artifactData, ctxField, cyclePhase, plan, review, implement, simplify, user, TASK } = dsl;
|
|
45
|
+
/**
|
|
46
|
+
* @param {StepContext} ctx
|
|
47
|
+
* @returns {boolean}
|
|
48
|
+
*/
|
|
49
|
+
const implIssuesExceedThreshold = (ctx) => {
|
|
50
|
+
const data = /** @type {{ issues?: unknown[] } | undefined} */ (ctx.artifacts.getData(implVerdict));
|
|
51
|
+
const exceeds = data != null && Array.isArray(data.issues) && data.issues.length > 2;
|
|
52
|
+
if (!exceeds) {
|
|
53
|
+
ctx.artifacts.set(revisePlan, {});
|
|
54
|
+
}
|
|
55
|
+
return exceeds;
|
|
56
|
+
};
|
|
57
|
+
return {
|
|
58
|
+
name: "why-so-serious",
|
|
59
|
+
params: whySoSeriousParams,
|
|
60
|
+
/**
|
|
61
|
+
* @param {FlowParamValues} values
|
|
62
|
+
* @returns {FlowDefinition}
|
|
63
|
+
*/
|
|
64
|
+
build(values) {
|
|
65
|
+
const maxPlan = /** @type {number} */ (values.maxIterations);
|
|
66
|
+
const maxImpl = /** @type {number} */ (values.maxImplIterations);
|
|
67
|
+
const isPlanOnly = /** @type {boolean} */ (values.planOnly);
|
|
68
|
+
const isAuto = /** @type {boolean} */ (values.auto);
|
|
69
|
+
const curateAll = /** @type {boolean} */ (values.curateAllVerdicts);
|
|
70
|
+
const plannerDriver = /** @type {string} */ (values.planner);
|
|
71
|
+
const reviewerDriver = /** @type {string} */ (values.reviewer);
|
|
72
|
+
const implementorDriver = /** @type {string} */ (values.implementor);
|
|
73
|
+
const simplifierDriver = /** @type {string} */ (values.simplifier);
|
|
74
|
+
const steps = [];
|
|
75
|
+
if (isAuto) {
|
|
76
|
+
steps.push(loop(maxPlan, artifactData("verdict", "approved"), [
|
|
77
|
+
plan({
|
|
78
|
+
driver: plannerDriver,
|
|
79
|
+
phaseLabel: cyclePhase("📝 Planning...", "✏️ Revising Plan..."),
|
|
80
|
+
reads: { task: TASK, verdict: "verdict" },
|
|
81
|
+
writes: { plan: "plan" },
|
|
82
|
+
}),
|
|
83
|
+
review({
|
|
84
|
+
driver: reviewerDriver,
|
|
85
|
+
variant: "plan",
|
|
86
|
+
reads: { task: TASK, plan: "plan" },
|
|
87
|
+
writes: { verdict: "verdict" },
|
|
88
|
+
}),
|
|
89
|
+
]));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
steps.push(loop(Infinity, () => false, [
|
|
93
|
+
plan({
|
|
94
|
+
driver: plannerDriver,
|
|
95
|
+
phaseLabel: cyclePhase("📝 Planning...", "✏️ Addressing Feedback..."),
|
|
96
|
+
reads: { task: TASK, verdict: "verdict" },
|
|
97
|
+
writes: { plan: "plan" },
|
|
98
|
+
}),
|
|
99
|
+
user("user:feedback", { writes: { verdict: "verdict" } }),
|
|
100
|
+
loop(maxPlan, artifactData("verdict", "approved"), [
|
|
101
|
+
plan({
|
|
102
|
+
driver: plannerDriver,
|
|
103
|
+
when: ctxField("iteration", "!=", 1),
|
|
104
|
+
phaseLabel: "✏️ Revising Plan...",
|
|
105
|
+
reads: { task: TASK, verdict: "verdict" },
|
|
106
|
+
writes: { plan: "plan" },
|
|
107
|
+
}),
|
|
108
|
+
review({
|
|
109
|
+
driver: reviewerDriver,
|
|
110
|
+
variant: "plan",
|
|
111
|
+
sessionShareKey: "reviewer-plan",
|
|
112
|
+
reads: { task: TASK, plan: "plan" },
|
|
113
|
+
writes: { verdict: "verdict" },
|
|
114
|
+
sessionBoundary: ctxField("iteration", "==", 1),
|
|
115
|
+
}),
|
|
116
|
+
loop(Infinity, (ctx) => {
|
|
117
|
+
const v = /** @type {ReviewVerdict | undefined} */ (ctx.artifacts.getData("verdict"));
|
|
118
|
+
if (!v || v.approved || (v.issues?.length ?? 0) === 0)
|
|
119
|
+
return true;
|
|
120
|
+
const decisions = /** @type {{decisions: Array<{decision: string}>} | undefined} */ (ctx.artifacts.getData("user-decisions"))?.decisions;
|
|
121
|
+
return !decisions?.some((d) => d.decision === "revise");
|
|
122
|
+
}, [
|
|
123
|
+
review({
|
|
124
|
+
driver: reviewerDriver,
|
|
125
|
+
variant: "plan",
|
|
126
|
+
sessionShareKey: "reviewer-plan",
|
|
127
|
+
when: ctxField("iteration", "!=", 1),
|
|
128
|
+
reads: { task: TASK, plan: "plan", userDecisions: "user-decisions" },
|
|
129
|
+
writes: { verdict: "verdict" },
|
|
130
|
+
}),
|
|
131
|
+
user("user:curate-verdict", {
|
|
132
|
+
variant: "curate-verdict",
|
|
133
|
+
when: (ctx) => {
|
|
134
|
+
const v = /** @type {ReviewVerdict | undefined} */ (ctx.artifacts.getData("verdict"));
|
|
135
|
+
return !!v && (v.issues?.length ?? 0) > 0;
|
|
136
|
+
},
|
|
137
|
+
reads: { verdict: "verdict", plan: "plan" },
|
|
138
|
+
writes: { verdict: "verdict", userDecisions: "user-decisions" },
|
|
139
|
+
feedbackToTask: false,
|
|
140
|
+
}),
|
|
141
|
+
], {
|
|
142
|
+
when: curateAll ? () => true : ctxField("iteration", "==", 1),
|
|
143
|
+
untilLabel: "no revise comments",
|
|
144
|
+
}),
|
|
145
|
+
]),
|
|
146
|
+
user("user:approval", {
|
|
147
|
+
breakOnAccept: true,
|
|
148
|
+
writes: { verdict: "verdict" },
|
|
149
|
+
}),
|
|
150
|
+
]));
|
|
151
|
+
}
|
|
152
|
+
if (!isPlanOnly) {
|
|
153
|
+
steps.push(loop(maxImpl, artifactData("impl-verdict", "approved"), [
|
|
154
|
+
plan({
|
|
155
|
+
when: implIssuesExceedThreshold,
|
|
156
|
+
whenLabel: "impl-verdict.issues>2",
|
|
157
|
+
driver: plannerDriver,
|
|
158
|
+
reads: { task: "plan", verdict: implVerdict },
|
|
159
|
+
writes: { plan: revisePlan },
|
|
160
|
+
phaseLabel: "📋 Planning Fixes...",
|
|
161
|
+
}),
|
|
162
|
+
implement({
|
|
163
|
+
driver: implementorDriver,
|
|
164
|
+
reads: { plan: "plan", revisePlan, verdict: implVerdict },
|
|
165
|
+
phaseLabel: cyclePhase("🔨 Implementing...", "✏️ Revising Impl..."),
|
|
166
|
+
}),
|
|
167
|
+
review({
|
|
168
|
+
driver: reviewerDriver,
|
|
169
|
+
variant: "impl",
|
|
170
|
+
reads: { task: TASK, plan: "plan" },
|
|
171
|
+
writes: { verdict: implVerdict },
|
|
172
|
+
}),
|
|
173
|
+
]), simplify({
|
|
174
|
+
driver: simplifierDriver,
|
|
175
|
+
writes: { plan: "simplify-plan" },
|
|
176
|
+
}), implement({
|
|
177
|
+
driver: implementorDriver,
|
|
178
|
+
reads: { plan: "simplify-plan" },
|
|
179
|
+
phaseLabel: "🔨 Applying Simplifications...",
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
return defineFlow("why-so-serious", steps);
|
|
183
|
+
},
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
export const SOURCE_FILE = fileURLToPath(import.meta.url);
|
|
187
|
+
//# sourceMappingURL=why-so-serious-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"why-so-serious-factory.js","sourceRoot":"","sources":["../../../src/flow/built-in/why-so-serious-factory.js"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import createWhySoSeriousFlow, { SOURCE_FILE } from "./why-so-serious-factory.js";
|
|
2
2
|
import type { FlowDefinition, FlowTemplate } from "../types.js";
|
|
3
|
-
export
|
|
3
|
+
export { SOURCE_FILE };
|
|
4
|
+
export default createWhySoSeriousFlow;
|
|
4
5
|
export declare const whySoSeriousFlowTemplate: FlowTemplate;
|
|
5
6
|
/**
|
|
6
7
|
* Convenience wrapper used by tests to build a why-so-serious flow definition.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"why-so-serious.d.ts","sourceRoot":"","sources":["../../../src/flow/built-in/why-so-serious.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"why-so-serious.d.ts","sourceRoot":"","sources":["../../../src/flow/built-in/why-so-serious.ts"],"names":[],"mappings":"AACA,OAAO,sBAAsB,EAAE,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,sBAAsB,CAAC;AAGtC,eAAO,MAAM,wBAAwB,EAAE,YAA8C,CAAC;AAEtF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,cAAc,CAYjB"}
|