@sylphx/flow 0.2.13 → 1.0.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.
- package/CHANGELOG.md +318 -0
- package/LOOP_MODE.md +446 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +59398 -698
- package/dist/lancedb.linux-x64-gnu-b7f0jgsz.node +0 -0
- package/dist/lancedb.linux-x64-musl-tgcv22rx.node +0 -0
- package/dist/shared/chunk-25dwp0dp.js +89 -0
- package/dist/shared/chunk-3pjb6063.js +208 -0
- package/dist/shared/chunk-4d6ydpw7.js +2854 -0
- package/dist/shared/chunk-4wjcadjk.js +225 -0
- package/dist/shared/chunk-5j4w74t6.js +30 -0
- package/dist/shared/chunk-5j8m3dh3.js +58 -0
- package/dist/shared/chunk-5thh3qem.js +91 -0
- package/dist/shared/chunk-6g9xy73m.js +252 -0
- package/dist/shared/chunk-7eq34c42.js +23 -0
- package/dist/shared/chunk-c2gwgx3r.js +115 -0
- package/dist/shared/chunk-cjd3mk4c.js +1320 -0
- package/dist/shared/chunk-g5cv6703.js +368 -0
- package/dist/shared/chunk-hpkhykhq.js +574 -0
- package/dist/shared/chunk-m2322pdk.js +122 -0
- package/dist/shared/chunk-nd5fdvaq.js +26 -0
- package/dist/shared/chunk-pgd3m6zf.js +108 -0
- package/dist/shared/chunk-qk8n91hw.js +494 -0
- package/dist/shared/chunk-rkkn8szp.js +16855 -0
- package/dist/shared/chunk-t16rfxh0.js +61 -0
- package/dist/shared/chunk-t4fbfa5v.js +19 -0
- package/dist/shared/chunk-t77h86w6.js +276 -0
- package/dist/shared/chunk-v0ez4aef.js +71 -0
- package/dist/shared/chunk-v29j2r3s.js +32051 -0
- package/dist/shared/chunk-vfbc6ew5.js +765 -0
- package/dist/shared/chunk-vmeqwm1c.js +204 -0
- package/dist/shared/chunk-x66eh37x.js +137 -0
- package/package.json +45 -93
- package/README.md +0 -625
- package/assets/agents/coder.md +0 -32
- package/assets/agents/orchestrator.md +0 -36
- package/assets/agents/reviewer.md +0 -30
- package/assets/agents/writer.md +0 -30
- package/assets/knowledge/data/sql.md +0 -216
- package/assets/knowledge/guides/saas-template.md +0 -85
- package/assets/knowledge/guides/system-prompt.md +0 -344
- package/assets/knowledge/guides/tech-stack.md +0 -92
- package/assets/knowledge/guides/ui-ux.md +0 -44
- package/assets/knowledge/stacks/nextjs-app.md +0 -165
- package/assets/knowledge/stacks/node-api.md +0 -220
- package/assets/knowledge/stacks/react-app.md +0 -232
- package/assets/knowledge/universal/deployment.md +0 -109
- package/assets/knowledge/universal/performance.md +0 -121
- package/assets/knowledge/universal/security.md +0 -79
- package/assets/knowledge/universal/testing.md +0 -111
- package/assets/output-styles/silent.md +0 -23
- package/assets/rules/core.md +0 -197
- package/assets/slash-commands/commit.md +0 -23
- package/assets/slash-commands/context.md +0 -112
- package/assets/slash-commands/explain.md +0 -35
- package/assets/slash-commands/mep.md +0 -63
- package/assets/slash-commands/review.md +0 -39
- package/assets/slash-commands/test.md +0 -30
- package/dist/assets/agents/coder.md +0 -32
- package/dist/assets/agents/orchestrator.md +0 -36
- package/dist/assets/agents/reviewer.md +0 -30
- package/dist/assets/agents/writer.md +0 -30
- package/dist/assets/knowledge/data/sql.md +0 -216
- package/dist/assets/knowledge/guides/saas-template.md +0 -85
- package/dist/assets/knowledge/guides/system-prompt.md +0 -344
- package/dist/assets/knowledge/guides/tech-stack.md +0 -92
- package/dist/assets/knowledge/guides/ui-ux.md +0 -44
- package/dist/assets/knowledge/stacks/nextjs-app.md +0 -165
- package/dist/assets/knowledge/stacks/node-api.md +0 -220
- package/dist/assets/knowledge/stacks/react-app.md +0 -232
- package/dist/assets/knowledge/universal/deployment.md +0 -109
- package/dist/assets/knowledge/universal/performance.md +0 -121
- package/dist/assets/knowledge/universal/security.md +0 -79
- package/dist/assets/knowledge/universal/testing.md +0 -111
- package/dist/assets/output-styles/silent.md +0 -23
- package/dist/assets/rules/core.md +0 -197
- package/dist/assets/slash-commands/commit.md +0 -23
- package/dist/assets/slash-commands/context.md +0 -112
- package/dist/assets/slash-commands/explain.md +0 -35
- package/dist/assets/slash-commands/mep.md +0 -63
- package/dist/assets/slash-commands/review.md +0 -39
- package/dist/assets/slash-commands/test.md +0 -30
- package/dist/chunk-01gv4qey.js +0 -4
- package/dist/chunk-01gv4qey.js.map +0 -11
- package/dist/chunk-1e8xf3f6.js +0 -27
- package/dist/chunk-1e8xf3f6.js.map +0 -23
- package/dist/chunk-3m9whg4q.js +0 -4
- package/dist/chunk-3m9whg4q.js.map +0 -9
- package/dist/chunk-3qxj0zy3.js +0 -23
- package/dist/chunk-3qxj0zy3.js.map +0 -11
- package/dist/chunk-3w6pd43t.js +0 -25
- package/dist/chunk-3w6pd43t.js.map +0 -61
- package/dist/chunk-4e5g3df9.js +0 -105
- package/dist/chunk-4e5g3df9.js.map +0 -27
- package/dist/chunk-4nm4ere4.js +0 -4
- package/dist/chunk-4nm4ere4.js.map +0 -11
- package/dist/chunk-4vrj3f8r.js +0 -26
- package/dist/chunk-4vrj3f8r.js.map +0 -75
- package/dist/chunk-5njgv5k5.js +0 -161
- package/dist/chunk-5njgv5k5.js.map +0 -83
- package/dist/chunk-67n29s4q.js +0 -7
- package/dist/chunk-67n29s4q.js.map +0 -10
- package/dist/chunk-7yyg008s.js +0 -27
- package/dist/chunk-7yyg008s.js.map +0 -14
- package/dist/chunk-86ce45n6.js +0 -3
- package/dist/chunk-86ce45n6.js.map +0 -10
- package/dist/chunk-99pz5wm0.js +0 -75
- package/dist/chunk-99pz5wm0.js.map +0 -12
- package/dist/chunk-cv1nhr27.js +0 -2
- package/dist/chunk-cv1nhr27.js.map +0 -9
- package/dist/chunk-g4baca7p.js +0 -10
- package/dist/chunk-g4baca7p.js.map +0 -23
- package/dist/chunk-gc66xe7z.js +0 -4
- package/dist/chunk-gc66xe7z.js.map +0 -11
- package/dist/chunk-hj6qtsqp.js +0 -15
- package/dist/chunk-hj6qtsqp.js.map +0 -10
- package/dist/chunk-jbd95k1f.js +0 -14
- package/dist/chunk-jbd95k1f.js.map +0 -20
- package/dist/chunk-jk1ebfqn.js +0 -23
- package/dist/chunk-jk1ebfqn.js.map +0 -132
- package/dist/chunk-kn908zkk.js +0 -4
- package/dist/chunk-kn908zkk.js.map +0 -10
- package/dist/chunk-mw13a082.js +0 -4
- package/dist/chunk-mw13a082.js.map +0 -10
- package/dist/chunk-n8vzewr3.js +0 -4
- package/dist/chunk-n8vzewr3.js.map +0 -12
- package/dist/chunk-nke51f3c.js +0 -4
- package/dist/chunk-nke51f3c.js.map +0 -10
- package/dist/chunk-ns5atzyz.js +0 -3
- package/dist/chunk-ns5atzyz.js.map +0 -10
- package/dist/chunk-q4nh3vst.js +0 -54
- package/dist/chunk-q4nh3vst.js.map +0 -53
- package/dist/chunk-q5gqgs0p.js +0 -4
- package/dist/chunk-q5gqgs0p.js.map +0 -10
- package/dist/chunk-qpej66sh.js +0 -6
- package/dist/chunk-qpej66sh.js.map +0 -11
- package/dist/chunk-s9bsh0gp.js +0 -4
- package/dist/chunk-s9bsh0gp.js.map +0 -10
- package/dist/chunk-waemzsf4.js +0 -4
- package/dist/chunk-waemzsf4.js.map +0 -10
- package/dist/chunk-wnhhwtsy.js +0 -19
- package/dist/chunk-wnhhwtsy.js.map +0 -11
- package/dist/chunk-xs370t8p.js +0 -119
- package/dist/chunk-xs370t8p.js.map +0 -26
- package/dist/chunk-xtrn4wn0.js +0 -3
- package/dist/chunk-xtrn4wn0.js.map +0 -10
- package/dist/index.js.map +0 -920
- package/drizzle/0000_wooden_lady_bullseye.sql +0 -52
- package/drizzle/0001_material_pyro.sql +0 -85
- package/drizzle/0002_lyrical_random.sql +0 -2
- package/drizzle/0003_romantic_lockjaw.sql +0 -4
- package/drizzle/0004_blushing_meteorite.sql +0 -6
- package/drizzle/meta/0000_snapshot.json +0 -310
- package/drizzle/meta/0001_snapshot.json +0 -906
- package/drizzle/meta/0002_snapshot.json +0 -920
- package/drizzle/meta/0003_snapshot.json +0 -920
- package/drizzle/meta/0004_snapshot.json +0 -921
- package/drizzle/meta/_journal.json +0 -41
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import"./chunk-5j4w74t6.js";
|
|
2
|
+
|
|
3
|
+
// src/core/loop-controller.ts
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
|
|
6
|
+
class LoopController {
|
|
7
|
+
state;
|
|
8
|
+
shouldStop = false;
|
|
9
|
+
constructor() {
|
|
10
|
+
this.state = {
|
|
11
|
+
iteration: 0,
|
|
12
|
+
startTime: new Date,
|
|
13
|
+
successCount: 0,
|
|
14
|
+
errorCount: 0
|
|
15
|
+
};
|
|
16
|
+
this.setupSignalHandlers();
|
|
17
|
+
}
|
|
18
|
+
async run(executor, options) {
|
|
19
|
+
console.log(chalk.cyan.bold(`
|
|
20
|
+
━━━ \uD83D\uDD04 Loop Mode Activated
|
|
21
|
+
`));
|
|
22
|
+
console.log(chalk.dim(` Wait time: ${options.interval}s`));
|
|
23
|
+
console.log(chalk.dim(` Max runs: ${options.maxRuns || "∞"}`));
|
|
24
|
+
console.log(chalk.dim(` Stop: Ctrl+C or max-runs limit
|
|
25
|
+
`));
|
|
26
|
+
while (this.shouldContinue(options)) {
|
|
27
|
+
this.state.iteration++;
|
|
28
|
+
try {
|
|
29
|
+
await this.executeIteration(executor, options);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
this.handleError(error);
|
|
32
|
+
}
|
|
33
|
+
if (this.shouldContinue(options)) {
|
|
34
|
+
await this.waitForNextRun(options);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
this.printSummary();
|
|
38
|
+
}
|
|
39
|
+
async executeIteration(executor, options) {
|
|
40
|
+
const maxDisplay = options.maxRuns || "∞";
|
|
41
|
+
console.log(chalk.cyan(`
|
|
42
|
+
\uD83D\uDD04 Loop iteration ${this.state.iteration}/${maxDisplay}`));
|
|
43
|
+
console.log(chalk.dim(`Started: ${new Date().toLocaleTimeString()}
|
|
44
|
+
`));
|
|
45
|
+
const result = await executor();
|
|
46
|
+
if (result.error || result.exitCode !== 0) {
|
|
47
|
+
this.state.errorCount++;
|
|
48
|
+
console.log(chalk.yellow(`
|
|
49
|
+
⚠️ Task encountered error (continuing...)`));
|
|
50
|
+
} else {
|
|
51
|
+
this.state.successCount++;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
handleError(error) {
|
|
55
|
+
this.state.errorCount++;
|
|
56
|
+
console.error(chalk.yellow(`
|
|
57
|
+
⚠️ Error occurred - continuing to next iteration`));
|
|
58
|
+
console.error(chalk.dim(`Error: ${error.message}
|
|
59
|
+
`));
|
|
60
|
+
}
|
|
61
|
+
async waitForNextRun(options) {
|
|
62
|
+
const maxDisplay = options.maxRuns || "∞";
|
|
63
|
+
const progress = `${this.state.iteration}/${maxDisplay}`;
|
|
64
|
+
console.log(chalk.dim(`
|
|
65
|
+
⏳ Waiting ${options.interval}s until next run... (completed: ${progress})`));
|
|
66
|
+
const startTime = Date.now();
|
|
67
|
+
const endTime = startTime + options.interval * 1000;
|
|
68
|
+
while (Date.now() < endTime && !this.shouldStop) {
|
|
69
|
+
await this.sleep(1000);
|
|
70
|
+
const remaining = Math.ceil((endTime - Date.now()) / 1000);
|
|
71
|
+
if (remaining > 0 && remaining % 10 === 0) {
|
|
72
|
+
process.stdout.write(chalk.dim(`\r⏳ ${remaining}s remaining...`));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!this.shouldStop) {
|
|
76
|
+
process.stdout.write("\r" + " ".repeat(50) + "\r");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
shouldContinue(options) {
|
|
80
|
+
if (this.shouldStop)
|
|
81
|
+
return false;
|
|
82
|
+
if (options.maxRuns && this.state.iteration >= options.maxRuns)
|
|
83
|
+
return false;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
printSummary() {
|
|
87
|
+
const duration = Date.now() - this.state.startTime.getTime();
|
|
88
|
+
const minutes = Math.floor(duration / 60000);
|
|
89
|
+
const seconds = Math.floor(duration % 60000 / 1000);
|
|
90
|
+
console.log(chalk.cyan.bold(`
|
|
91
|
+
━━━ \uD83C\uDFC1 Loop Summary
|
|
92
|
+
`));
|
|
93
|
+
console.log(` Total iterations: ${this.state.iteration}`);
|
|
94
|
+
console.log(` Successful: ${chalk.green(this.state.successCount.toString())}`);
|
|
95
|
+
console.log(` Errors: ${chalk.red(this.state.errorCount.toString())}`);
|
|
96
|
+
console.log(` Duration: ${minutes}m ${seconds}s`);
|
|
97
|
+
console.log();
|
|
98
|
+
}
|
|
99
|
+
setupSignalHandlers() {
|
|
100
|
+
const handler = () => {
|
|
101
|
+
console.log(chalk.yellow(`
|
|
102
|
+
|
|
103
|
+
⚠️ Interrupt received - finishing current iteration...`));
|
|
104
|
+
this.shouldStop = true;
|
|
105
|
+
};
|
|
106
|
+
process.on("SIGINT", handler);
|
|
107
|
+
process.on("SIGTERM", handler);
|
|
108
|
+
}
|
|
109
|
+
sleep(ms) {
|
|
110
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
export {
|
|
114
|
+
LoopController
|
|
115
|
+
};
|