@synergenius/flowweaver-pack-weaver 0.4.0 → 0.5.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/bot/dashboard.d.ts +3 -0
- package/dist/bot/dashboard.d.ts.map +1 -1
- package/dist/bot/dashboard.js +141 -0
- package/dist/bot/dashboard.js.map +1 -1
- package/dist/bot/index.d.ts +8 -1
- package/dist/bot/index.d.ts.map +1 -1
- package/dist/bot/index.js +5 -0
- package/dist/bot/index.js.map +1 -1
- package/dist/bot/notifications.d.ts.map +1 -1
- package/dist/bot/notifications.js +18 -0
- package/dist/bot/notifications.js.map +1 -1
- package/dist/bot/session-state.d.ts +19 -0
- package/dist/bot/session-state.d.ts.map +1 -0
- package/dist/bot/session-state.js +56 -0
- package/dist/bot/session-state.js.map +1 -0
- package/dist/bot/steering.d.ts +13 -0
- package/dist/bot/steering.d.ts.map +1 -0
- package/dist/bot/steering.js +35 -0
- package/dist/bot/steering.js.map +1 -0
- package/dist/bot/system-prompt.d.ts +1 -0
- package/dist/bot/system-prompt.d.ts.map +1 -1
- package/dist/bot/system-prompt.js +55 -0
- package/dist/bot/system-prompt.js.map +1 -1
- package/dist/bot/task-queue.d.ts +26 -0
- package/dist/bot/task-queue.d.ts.map +1 -0
- package/dist/bot/task-queue.js +87 -0
- package/dist/bot/task-queue.js.map +1 -0
- package/dist/bot/types.d.ts +37 -1
- package/dist/bot/types.d.ts.map +1 -1
- package/dist/cli-bridge.d.ts.map +1 -1
- package/dist/cli-bridge.js +5 -1
- package/dist/cli-bridge.js.map +1 -1
- package/dist/cli-handlers.d.ts +10 -1
- package/dist/cli-handlers.d.ts.map +1 -1
- package/dist/cli-handlers.js +261 -0
- package/dist/cli-handlers.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-tools.d.ts.map +1 -1
- package/dist/mcp-tools.js +91 -0
- package/dist/mcp-tools.js.map +1 -1
- package/dist/node-types/abort-task.d.ts +22 -0
- package/dist/node-types/abort-task.d.ts.map +1 -0
- package/dist/node-types/abort-task.js +33 -0
- package/dist/node-types/abort-task.js.map +1 -0
- package/dist/node-types/approval-gate.d.ts +35 -0
- package/dist/node-types/approval-gate.d.ts.map +1 -0
- package/dist/node-types/approval-gate.js +62 -0
- package/dist/node-types/approval-gate.js.map +1 -0
- package/dist/node-types/bot-report.d.ts +22 -0
- package/dist/node-types/bot-report.d.ts.map +1 -0
- package/dist/node-types/bot-report.js +63 -0
- package/dist/node-types/bot-report.js.map +1 -0
- package/dist/node-types/build-context.d.ts +29 -0
- package/dist/node-types/build-context.d.ts.map +1 -0
- package/dist/node-types/build-context.js +73 -0
- package/dist/node-types/build-context.js.map +1 -0
- package/dist/node-types/exec-validate-retry.d.ts +38 -0
- package/dist/node-types/exec-validate-retry.d.ts.map +1 -0
- package/dist/node-types/exec-validate-retry.js +250 -0
- package/dist/node-types/exec-validate-retry.js.map +1 -0
- package/dist/node-types/execute-plan.d.ts +34 -0
- package/dist/node-types/execute-plan.d.ts.map +1 -0
- package/dist/node-types/execute-plan.js +175 -0
- package/dist/node-types/execute-plan.js.map +1 -0
- package/dist/node-types/fix-errors.d.ts +32 -0
- package/dist/node-types/fix-errors.d.ts.map +1 -0
- package/dist/node-types/fix-errors.js +106 -0
- package/dist/node-types/fix-errors.js.map +1 -0
- package/dist/node-types/git-ops.d.ts +18 -0
- package/dist/node-types/git-ops.d.ts.map +1 -0
- package/dist/node-types/git-ops.js +65 -0
- package/dist/node-types/git-ops.js.map +1 -0
- package/dist/node-types/index.d.ts +13 -0
- package/dist/node-types/index.d.ts.map +1 -1
- package/dist/node-types/index.js +13 -0
- package/dist/node-types/index.js.map +1 -1
- package/dist/node-types/plan-task.d.ts +32 -0
- package/dist/node-types/plan-task.d.ts.map +1 -0
- package/dist/node-types/plan-task.js +122 -0
- package/dist/node-types/plan-task.js.map +1 -0
- package/dist/node-types/read-workflow.d.ts +30 -0
- package/dist/node-types/read-workflow.d.ts.map +1 -0
- package/dist/node-types/read-workflow.js +72 -0
- package/dist/node-types/read-workflow.js.map +1 -0
- package/dist/node-types/receive-task.d.ts +31 -0
- package/dist/node-types/receive-task.d.ts.map +1 -0
- package/dist/node-types/receive-task.js +72 -0
- package/dist/node-types/receive-task.js.map +1 -0
- package/dist/node-types/route-task.d.ts +26 -0
- package/dist/node-types/route-task.d.ts.map +1 -0
- package/dist/node-types/route-task.js +29 -0
- package/dist/node-types/route-task.js.map +1 -0
- package/dist/node-types/validate-result.d.ts +32 -0
- package/dist/node-types/validate-result.d.ts.map +1 -0
- package/dist/node-types/validate-result.js +53 -0
- package/dist/node-types/validate-result.js.map +1 -0
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/index.js +3 -1
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/weaver-bot-template.d.ts +3 -0
- package/dist/templates/weaver-bot-template.d.ts.map +1 -0
- package/dist/templates/weaver-bot-template.js +99 -0
- package/dist/templates/weaver-bot-template.js.map +1 -0
- package/dist/workflows/index.d.ts +3 -0
- package/dist/workflows/index.d.ts.map +1 -1
- package/dist/workflows/index.js +3 -0
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/weaver-bot-batch.d.ts +57 -0
- package/dist/workflows/weaver-bot-batch.d.ts.map +1 -0
- package/dist/workflows/weaver-bot-batch.js +60 -0
- package/dist/workflows/weaver-bot-batch.js.map +1 -0
- package/dist/workflows/weaver-bot-session.d.ts +65 -0
- package/dist/workflows/weaver-bot-session.d.ts.map +1 -0
- package/dist/workflows/weaver-bot-session.js +68 -0
- package/dist/workflows/weaver-bot-session.js.map +1 -0
- package/dist/workflows/weaver-bot.d.ts +72 -0
- package/dist/workflows/weaver-bot.d.ts.map +1 -0
- package/dist/workflows/weaver-bot.js +75 -0
- package/dist/workflows/weaver-bot.js.map +1 -0
- package/flowweaver.manifest.json +719 -2
- package/package.json +5 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface QueuedTask {
|
|
2
|
+
id: string;
|
|
3
|
+
instruction: string;
|
|
4
|
+
mode?: 'create' | 'modify' | 'read' | 'batch';
|
|
5
|
+
targets?: string[];
|
|
6
|
+
options?: Record<string, unknown>;
|
|
7
|
+
priority: number;
|
|
8
|
+
addedAt: number;
|
|
9
|
+
status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
10
|
+
}
|
|
11
|
+
export declare class TaskQueue {
|
|
12
|
+
private filePath;
|
|
13
|
+
constructor(dir?: string);
|
|
14
|
+
add(task: Omit<QueuedTask, 'id' | 'addedAt' | 'status'>): string;
|
|
15
|
+
next(): QueuedTask | null;
|
|
16
|
+
list(): QueuedTask[];
|
|
17
|
+
remove(id: string): boolean;
|
|
18
|
+
clear(): number;
|
|
19
|
+
markRunning(id: string): void;
|
|
20
|
+
markComplete(id: string): void;
|
|
21
|
+
markFailed(id: string): void;
|
|
22
|
+
private updateStatus;
|
|
23
|
+
private readAll;
|
|
24
|
+
private writeAll;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=task-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-queue.d.ts","sourceRoot":"","sources":["../../src/bot/task-queue.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;CACtE;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;gBAEb,GAAG,CAAC,EAAE,MAAM;IAKxB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG,MAAM;IAahE,IAAI,IAAI,UAAU,GAAG,IAAI;IAMzB,IAAI,IAAI,UAAU,EAAE;IAIpB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B,KAAK,IAAI,MAAM;IAOf,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI7B,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,QAAQ;CAKjB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import * as fs from 'node:fs';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
import * as os from 'node:os';
|
|
4
|
+
import * as crypto from 'node:crypto';
|
|
5
|
+
export class TaskQueue {
|
|
6
|
+
filePath;
|
|
7
|
+
constructor(dir) {
|
|
8
|
+
const base = dir ?? path.join(os.homedir(), '.weaver');
|
|
9
|
+
this.filePath = path.join(base, 'task-queue.ndjson');
|
|
10
|
+
}
|
|
11
|
+
add(task) {
|
|
12
|
+
const entry = {
|
|
13
|
+
...task,
|
|
14
|
+
id: crypto.randomUUID().slice(0, 8),
|
|
15
|
+
addedAt: Date.now(),
|
|
16
|
+
status: 'pending',
|
|
17
|
+
};
|
|
18
|
+
const dir = path.dirname(this.filePath);
|
|
19
|
+
if (!fs.existsSync(dir))
|
|
20
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
21
|
+
fs.appendFileSync(this.filePath, JSON.stringify(entry) + '\n', 'utf-8');
|
|
22
|
+
return entry.id;
|
|
23
|
+
}
|
|
24
|
+
next() {
|
|
25
|
+
const tasks = this.readAll().filter(t => t.status === 'pending');
|
|
26
|
+
tasks.sort((a, b) => b.priority - a.priority || a.addedAt - b.addedAt);
|
|
27
|
+
return tasks[0] ?? null;
|
|
28
|
+
}
|
|
29
|
+
list() {
|
|
30
|
+
return this.readAll();
|
|
31
|
+
}
|
|
32
|
+
remove(id) {
|
|
33
|
+
const tasks = this.readAll();
|
|
34
|
+
const filtered = tasks.filter(t => t.id !== id);
|
|
35
|
+
if (filtered.length === tasks.length)
|
|
36
|
+
return false;
|
|
37
|
+
this.writeAll(filtered);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
clear() {
|
|
41
|
+
const tasks = this.readAll();
|
|
42
|
+
if (tasks.length === 0)
|
|
43
|
+
return 0;
|
|
44
|
+
try {
|
|
45
|
+
fs.unlinkSync(this.filePath);
|
|
46
|
+
}
|
|
47
|
+
catch { /* ignore */ }
|
|
48
|
+
return tasks.length;
|
|
49
|
+
}
|
|
50
|
+
markRunning(id) {
|
|
51
|
+
this.updateStatus(id, 'running');
|
|
52
|
+
}
|
|
53
|
+
markComplete(id) {
|
|
54
|
+
this.updateStatus(id, 'completed');
|
|
55
|
+
}
|
|
56
|
+
markFailed(id) {
|
|
57
|
+
this.updateStatus(id, 'failed');
|
|
58
|
+
}
|
|
59
|
+
updateStatus(id, status) {
|
|
60
|
+
const tasks = this.readAll();
|
|
61
|
+
const task = tasks.find(t => t.id === id);
|
|
62
|
+
if (task) {
|
|
63
|
+
task.status = status;
|
|
64
|
+
this.writeAll(tasks);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
readAll() {
|
|
68
|
+
try {
|
|
69
|
+
if (!fs.existsSync(this.filePath))
|
|
70
|
+
return [];
|
|
71
|
+
const content = fs.readFileSync(this.filePath, 'utf-8').trim();
|
|
72
|
+
if (!content)
|
|
73
|
+
return [];
|
|
74
|
+
return content.split('\n').map(line => JSON.parse(line));
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
writeAll(tasks) {
|
|
81
|
+
const dir = path.dirname(this.filePath);
|
|
82
|
+
if (!fs.existsSync(dir))
|
|
83
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
84
|
+
fs.writeFileSync(this.filePath, tasks.map(t => JSON.stringify(t)).join('\n') + (tasks.length > 0 ? '\n' : ''), 'utf-8');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=task-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/bot/task-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAatC,MAAM,OAAO,SAAS;IACZ,QAAQ,CAAS;IAEzB,YAAY,GAAY;QACtB,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,IAAmD;QACrD,MAAM,KAAK,GAAe;YACxB,GAAG,IAAI;YACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,MAAM,EAAE,SAAS;SAClB,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC1B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,EAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QAC5D,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,EAAU;QACpB,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEO,YAAY,CAAC,EAAU,EAAE,MAA4B;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEO,OAAO;QACb,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/D,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAAmB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1H,CAAC;CACF"}
|
package/dist/bot/types.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export interface BotNotifyConfig {
|
|
|
44
44
|
events?: NotificationEventType[];
|
|
45
45
|
headers?: Record<string, string>;
|
|
46
46
|
}
|
|
47
|
-
export type NotificationEventType = 'workflow-start' | 'workflow-complete' | 'cycle-start' | 'cycle-complete' | 'approval-needed' | 'error' | 'pipeline-start' | 'pipeline-complete' | 'stage-start' | 'stage-complete';
|
|
47
|
+
export type NotificationEventType = 'workflow-start' | 'workflow-complete' | 'cycle-start' | 'cycle-complete' | 'approval-needed' | 'error' | 'pipeline-start' | 'pipeline-complete' | 'stage-start' | 'stage-complete' | 'bot-task-start' | 'bot-task-complete' | 'bot-plan-ready' | 'bot-step-complete' | 'bot-validation-failed' | 'bot-fix-attempt' | 'bot-session-start' | 'bot-session-end' | 'bot-steering-received';
|
|
48
48
|
export interface NotificationEvent {
|
|
49
49
|
type: NotificationEventType;
|
|
50
50
|
workflowFile?: string;
|
|
@@ -260,4 +260,40 @@ export interface DashboardServerOptions {
|
|
|
260
260
|
keepAlive: boolean;
|
|
261
261
|
keepAliveSeconds: number;
|
|
262
262
|
}
|
|
263
|
+
export type BotNotificationEventType = 'bot-task-start' | 'bot-task-complete' | 'bot-plan-ready' | 'bot-step-complete' | 'bot-validation-failed' | 'bot-fix-attempt' | 'bot-session-start' | 'bot-session-end' | 'bot-steering-received';
|
|
264
|
+
export interface BotTask {
|
|
265
|
+
instruction: string;
|
|
266
|
+
mode: 'create' | 'modify' | 'read' | 'batch';
|
|
267
|
+
targets?: string[];
|
|
268
|
+
options?: {
|
|
269
|
+
template?: string;
|
|
270
|
+
batchCount?: number;
|
|
271
|
+
dryRun?: boolean;
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
export interface BotPlanStep {
|
|
275
|
+
id: string;
|
|
276
|
+
operation: 'create-workflow' | 'implement-node' | 'add-node' | 'remove-node' | 'add-connection' | 'remove-connection' | 'compile' | 'validate' | 'modify-source' | 'scaffold' | 'read-file' | 'write-file' | 'run-cli';
|
|
277
|
+
description: string;
|
|
278
|
+
args: Record<string, unknown>;
|
|
279
|
+
}
|
|
280
|
+
export interface BotPlan {
|
|
281
|
+
steps: BotPlanStep[];
|
|
282
|
+
summary: string;
|
|
283
|
+
}
|
|
284
|
+
export interface BotValidationResult {
|
|
285
|
+
file: string;
|
|
286
|
+
valid: boolean;
|
|
287
|
+
errors: string[];
|
|
288
|
+
warnings: string[];
|
|
289
|
+
}
|
|
290
|
+
export interface BotExecutionResult {
|
|
291
|
+
success: boolean;
|
|
292
|
+
filesModified: string[];
|
|
293
|
+
filesCreated: string[];
|
|
294
|
+
stepsCompleted: number;
|
|
295
|
+
stepsTotal: number;
|
|
296
|
+
errors: string[];
|
|
297
|
+
output: string;
|
|
298
|
+
}
|
|
263
299
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/bot/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bot/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAID,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,OAAO,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,qBAAqB,KAAK,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE9G,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,OAAO,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtC;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,KAAK,CAAC;AAElF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,qBAAqB,GAC7B,gBAAgB,GAChB,mBAAmB,GACnB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,OAAO,GACP,gBAAgB,GAChB,mBAAmB,GACnB,aAAa,GACb,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bot/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-bridge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-bridge.d.ts","sourceRoot":"","sources":["../src/cli-bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-bridge.d.ts","sourceRoot":"","sources":["../src/cli-bridge.ts"],"names":[],"mappings":"AAuBA,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
package/dist/cli-bridge.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { handleRun, handleHistory, handleCosts, handleWatch, handleCron, handlePipeline, handleDashboard, handleProviders, handleEject, } from './cli-handlers.js';
|
|
1
|
+
import { handleRun, handleHistory, handleCosts, handleWatch, handleCron, handlePipeline, handleDashboard, handleProviders, handleEject, handleBot, handleSession, handleSteer, handleQueue, } from './cli-handlers.js';
|
|
2
2
|
const handlers = {
|
|
3
3
|
run: handleRun,
|
|
4
4
|
history: handleHistory,
|
|
@@ -9,6 +9,10 @@ const handlers = {
|
|
|
9
9
|
dashboard: handleDashboard,
|
|
10
10
|
providers: handleProviders,
|
|
11
11
|
eject: handleEject,
|
|
12
|
+
bot: handleBot,
|
|
13
|
+
session: handleSession,
|
|
14
|
+
steer: handleSteer,
|
|
15
|
+
queue: handleQueue,
|
|
12
16
|
};
|
|
13
17
|
export async function handleCommand(name, args) {
|
|
14
18
|
// Build a minimal ParsedArgs from the raw args.
|
package/dist/cli-bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-bridge.js","sourceRoot":"","sources":["../src/cli-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAClD,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAC5D,WAAW,
|
|
1
|
+
{"version":3,"file":"cli-bridge.js","sourceRoot":"","sources":["../src/cli-bridge.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAClD,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAC5D,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,GAChE,MAAM,mBAAmB,CAAC;AAE3B,MAAM,QAAQ,GAAwD;IACpE,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,eAAe;IAC1B,SAAS,EAAE,eAAe;IAC1B,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;IAClB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAc;IAEd,gDAAgD;IAChD,0DAA0D;IAC1D,kCAAkC;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,iDAAiD;IACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxD,+DAA+D;IAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/cli-handlers.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export interface ParsedArgs {
|
|
2
|
-
command: 'run' | 'history' | 'costs' | 'providers' | 'watch' | 'cron' | 'pipeline' | 'dashboard' | 'eject';
|
|
2
|
+
command: 'run' | 'history' | 'costs' | 'providers' | 'watch' | 'cron' | 'pipeline' | 'dashboard' | 'eject' | 'bot' | 'session' | 'steer' | 'queue';
|
|
3
3
|
file?: string;
|
|
4
4
|
verbose: boolean;
|
|
5
5
|
dryRun: boolean;
|
|
@@ -26,6 +26,11 @@ export interface ParsedArgs {
|
|
|
26
26
|
dashboardPort: number;
|
|
27
27
|
dashboardOpen: boolean;
|
|
28
28
|
approvalMode?: string;
|
|
29
|
+
botTask?: string;
|
|
30
|
+
botFile?: string;
|
|
31
|
+
botTemplate?: string;
|
|
32
|
+
botBatch?: number;
|
|
33
|
+
autoApprove: boolean;
|
|
29
34
|
}
|
|
30
35
|
export declare function parseArgs(argv: string[]): ParsedArgs;
|
|
31
36
|
export declare function formatDuration(ms: number): string;
|
|
@@ -38,4 +43,8 @@ export declare function handleDashboard(opts: ParsedArgs): Promise<void>;
|
|
|
38
43
|
export declare function handleProviders(): Promise<void>;
|
|
39
44
|
export declare function handleEject(): Promise<void>;
|
|
40
45
|
export declare function handleRun(opts: ParsedArgs): Promise<void>;
|
|
46
|
+
export declare function handleBot(opts: ParsedArgs): Promise<void>;
|
|
47
|
+
export declare function handleSession(opts: ParsedArgs): Promise<void>;
|
|
48
|
+
export declare function handleSteer(opts: ParsedArgs): Promise<void>;
|
|
49
|
+
export declare function handleQueue(opts: ParsedArgs): Promise<void>;
|
|
41
50
|
//# sourceMappingURL=cli-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-handlers.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as path from 'node:path';
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
3
4
|
import { runWorkflow } from './bot/runner.js';
|
|
4
5
|
import { RunStore } from './bot/run-store.js';
|
|
5
6
|
import { CostStore } from './bot/cost-store.js';
|
|
@@ -27,6 +28,7 @@ export function parseArgs(argv) {
|
|
|
27
28
|
dashboard: false,
|
|
28
29
|
dashboardPort: 4242,
|
|
29
30
|
dashboardOpen: false,
|
|
31
|
+
autoApprove: false,
|
|
30
32
|
};
|
|
31
33
|
const args = argv.slice(2);
|
|
32
34
|
let i = 0;
|
|
@@ -155,6 +157,62 @@ export function parseArgs(argv) {
|
|
|
155
157
|
result.command = 'dashboard';
|
|
156
158
|
result.dashboard = true;
|
|
157
159
|
}
|
|
160
|
+
else if (arg === 'bot') {
|
|
161
|
+
result.command = 'bot';
|
|
162
|
+
// Next non-flag arg is the task string
|
|
163
|
+
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
164
|
+
i++;
|
|
165
|
+
result.botTask = args[i];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else if (arg === 'session') {
|
|
169
|
+
result.command = 'session';
|
|
170
|
+
}
|
|
171
|
+
else if (arg === 'steer') {
|
|
172
|
+
result.command = 'steer';
|
|
173
|
+
// Next arg is the subcommand
|
|
174
|
+
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
175
|
+
i++;
|
|
176
|
+
result.botTask = args[i];
|
|
177
|
+
// Next arg after redirect/queue is payload
|
|
178
|
+
if ((args[i] === 'redirect' || args[i] === 'queue') && i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
179
|
+
i++;
|
|
180
|
+
result.botFile = args[i];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
else if (arg === 'queue') {
|
|
185
|
+
result.command = 'queue';
|
|
186
|
+
// Next arg is action (add/list/clear/remove)
|
|
187
|
+
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
188
|
+
i++;
|
|
189
|
+
result.botTask = args[i];
|
|
190
|
+
// Next arg is task/id
|
|
191
|
+
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
192
|
+
i++;
|
|
193
|
+
result.botFile = args[i];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
else if (arg === '--file' && i + 1 < args.length) {
|
|
198
|
+
i++;
|
|
199
|
+
result.botFile = args[i];
|
|
200
|
+
}
|
|
201
|
+
else if (arg === '--template' && i + 1 < args.length) {
|
|
202
|
+
i++;
|
|
203
|
+
result.botTemplate = args[i];
|
|
204
|
+
}
|
|
205
|
+
else if (arg === '--batch' && i + 1 < args.length) {
|
|
206
|
+
i++;
|
|
207
|
+
result.botBatch = parseInt(args[i], 10) || undefined;
|
|
208
|
+
}
|
|
209
|
+
else if (arg === '--auto-approve') {
|
|
210
|
+
result.autoApprove = true;
|
|
211
|
+
}
|
|
212
|
+
else if (arg === '--project-dir' && i + 1 < args.length) {
|
|
213
|
+
i++;
|
|
214
|
+
result.file = args[i];
|
|
215
|
+
}
|
|
158
216
|
else if (arg === 'run') {
|
|
159
217
|
// skip, next arg is the file
|
|
160
218
|
}
|
|
@@ -717,4 +775,207 @@ export async function handleRun(opts) {
|
|
|
717
775
|
process.exit(1);
|
|
718
776
|
}
|
|
719
777
|
}
|
|
778
|
+
export async function handleBot(opts) {
|
|
779
|
+
if (!opts.botTask) {
|
|
780
|
+
console.error('[weaver] No task specified');
|
|
781
|
+
console.error('Usage: flow-weaver weaver bot "Create a workflow that..."');
|
|
782
|
+
process.exit(1);
|
|
783
|
+
}
|
|
784
|
+
const task = {
|
|
785
|
+
instruction: opts.botTask,
|
|
786
|
+
mode: opts.botFile ? 'modify' : 'create',
|
|
787
|
+
targets: opts.botFile ? [opts.botFile] : undefined,
|
|
788
|
+
options: {
|
|
789
|
+
template: opts.botTemplate,
|
|
790
|
+
batchCount: opts.botBatch,
|
|
791
|
+
dryRun: opts.dryRun,
|
|
792
|
+
autoApprove: opts.autoApprove,
|
|
793
|
+
},
|
|
794
|
+
};
|
|
795
|
+
// Use the batch workflow if --batch specified
|
|
796
|
+
const workflowName = opts.botBatch ? 'weaver-bot-batch' : 'weaver-bot';
|
|
797
|
+
// Find the workflow file in the pack
|
|
798
|
+
const packRoot = new URL('..', import.meta.url);
|
|
799
|
+
let workflowPath;
|
|
800
|
+
try {
|
|
801
|
+
workflowPath = fileURLToPath(new URL(`src/workflows/${workflowName}.ts`, packRoot));
|
|
802
|
+
const { existsSync } = await import('node:fs');
|
|
803
|
+
if (!existsSync(workflowPath)) {
|
|
804
|
+
workflowPath = fileURLToPath(new URL(`dist/workflows/${workflowName}.js`, packRoot));
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
catch {
|
|
808
|
+
workflowPath = fileURLToPath(new URL(`dist/workflows/${workflowName}.js`, packRoot));
|
|
809
|
+
}
|
|
810
|
+
const config = await loadConfig(opts.configPath);
|
|
811
|
+
const nodeTimings = new Map();
|
|
812
|
+
// Start dashboard if requested
|
|
813
|
+
let dashboard = null;
|
|
814
|
+
if (opts.dashboard) {
|
|
815
|
+
dashboard = new DashboardServer({ port: opts.dashboardPort ?? 4242 });
|
|
816
|
+
const port = await dashboard.start();
|
|
817
|
+
console.log(`[weaver] Dashboard: http://127.0.0.1:${port}`);
|
|
818
|
+
openBrowser(`http://127.0.0.1:${port}`);
|
|
819
|
+
dashboard.broadcastWorkflowStart(workflowPath);
|
|
820
|
+
}
|
|
821
|
+
const onEvent = opts.quiet
|
|
822
|
+
? undefined
|
|
823
|
+
: (event) => {
|
|
824
|
+
const icon = STATUS_ICONS[event.type] ?? ' ';
|
|
825
|
+
const label = event.nodeType ? `${event.nodeId} (${event.nodeType})` : event.nodeId;
|
|
826
|
+
if (dashboard)
|
|
827
|
+
dashboard.broadcastExecution(event);
|
|
828
|
+
if (event.type === 'node-start') {
|
|
829
|
+
nodeTimings.set(event.nodeId, event.timestamp);
|
|
830
|
+
if (opts.verbose)
|
|
831
|
+
console.log(` ${icon} ${label}`);
|
|
832
|
+
}
|
|
833
|
+
else if (event.type === 'node-complete') {
|
|
834
|
+
const start = nodeTimings.get(event.nodeId);
|
|
835
|
+
const dur = start ? ` ${formatDuration(event.timestamp - start)}` : '';
|
|
836
|
+
console.log(` ${icon} ${label}${dur}`);
|
|
837
|
+
}
|
|
838
|
+
else if (event.type === 'node-error') {
|
|
839
|
+
console.log(` ${icon} ${label}: ${event.error ?? 'unknown error'}`);
|
|
840
|
+
}
|
|
841
|
+
};
|
|
842
|
+
const startTime = Date.now();
|
|
843
|
+
if (!opts.quiet) {
|
|
844
|
+
console.log(`[weaver] Bot: ${opts.botTask.slice(0, 80)}`);
|
|
845
|
+
}
|
|
846
|
+
try {
|
|
847
|
+
const result = await runWorkflow(workflowPath, {
|
|
848
|
+
params: { taskJson: JSON.stringify(task), projectDir: opts.file ?? process.cwd() },
|
|
849
|
+
verbose: opts.verbose,
|
|
850
|
+
dryRun: opts.dryRun,
|
|
851
|
+
config,
|
|
852
|
+
onEvent,
|
|
853
|
+
onNotificationError: (channel, _event, error) => {
|
|
854
|
+
console.error(`[weaver] Notification error (${channel}): ${error}`);
|
|
855
|
+
},
|
|
856
|
+
});
|
|
857
|
+
const elapsed = formatDuration(Date.now() - startTime);
|
|
858
|
+
if (!opts.quiet) {
|
|
859
|
+
const color = result.success ? '\x1b[32m' : '\x1b[31m';
|
|
860
|
+
console.log(`\n${color}Bot: ${result.outcome}\x1b[0m (${elapsed})`);
|
|
861
|
+
console.log(` ${result.summary}`);
|
|
862
|
+
}
|
|
863
|
+
if (dashboard) {
|
|
864
|
+
dashboard.broadcastWorkflowComplete(result.summary ?? '', result.success);
|
|
865
|
+
await dashboard.stop();
|
|
866
|
+
}
|
|
867
|
+
process.exit(result.success ? 0 : 1);
|
|
868
|
+
}
|
|
869
|
+
catch (err) {
|
|
870
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
871
|
+
console.error(`\x1b[31m[weaver] Fatal: ${msg}\x1b[0m`);
|
|
872
|
+
if (dashboard) {
|
|
873
|
+
dashboard.broadcastWorkflowError(msg);
|
|
874
|
+
await dashboard.stop();
|
|
875
|
+
}
|
|
876
|
+
process.exit(1);
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
export async function handleSession(opts) {
|
|
880
|
+
const packRoot = new URL('..', import.meta.url);
|
|
881
|
+
let workflowPath;
|
|
882
|
+
try {
|
|
883
|
+
workflowPath = fileURLToPath(new URL('src/workflows/weaver-bot-session.ts', packRoot));
|
|
884
|
+
const { existsSync } = await import('node:fs');
|
|
885
|
+
if (!existsSync(workflowPath)) {
|
|
886
|
+
workflowPath = fileURLToPath(new URL('dist/workflows/weaver-bot-session.js', packRoot));
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
catch {
|
|
890
|
+
workflowPath = fileURLToPath(new URL('dist/workflows/weaver-bot-session.js', packRoot));
|
|
891
|
+
}
|
|
892
|
+
const config = await loadConfig(opts.configPath);
|
|
893
|
+
if (!opts.quiet) {
|
|
894
|
+
console.log('[weaver] Starting bot session (Ctrl+C to stop)');
|
|
895
|
+
console.log('[weaver] Add tasks with: flow-weaver weaver queue add "task"');
|
|
896
|
+
}
|
|
897
|
+
try {
|
|
898
|
+
const result = await runWorkflow(workflowPath, {
|
|
899
|
+
params: { projectDir: opts.file ?? process.cwd() },
|
|
900
|
+
verbose: opts.verbose,
|
|
901
|
+
dryRun: opts.dryRun,
|
|
902
|
+
config,
|
|
903
|
+
});
|
|
904
|
+
if (!opts.quiet) {
|
|
905
|
+
const color = result.success ? '\x1b[32m' : '\x1b[31m';
|
|
906
|
+
console.log(`${color}Session: ${result.outcome}\x1b[0m`);
|
|
907
|
+
}
|
|
908
|
+
process.exit(result.success ? 0 : 1);
|
|
909
|
+
}
|
|
910
|
+
catch (err) {
|
|
911
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
912
|
+
console.error(`\x1b[31m[weaver] Fatal: ${msg}\x1b[0m`);
|
|
913
|
+
process.exit(1);
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
export async function handleSteer(opts) {
|
|
917
|
+
const { SteeringController } = await import('./bot/steering.js');
|
|
918
|
+
const controller = new SteeringController();
|
|
919
|
+
const subcommand = opts.botTask;
|
|
920
|
+
if (!subcommand || !['pause', 'resume', 'cancel', 'redirect', 'queue'].includes(subcommand)) {
|
|
921
|
+
console.error('[weaver] Usage: flow-weaver weaver steer <pause|resume|cancel|redirect|queue> [payload]');
|
|
922
|
+
process.exit(1);
|
|
923
|
+
}
|
|
924
|
+
const command = {
|
|
925
|
+
command: subcommand,
|
|
926
|
+
payload: opts.botFile,
|
|
927
|
+
timestamp: Date.now(),
|
|
928
|
+
};
|
|
929
|
+
controller.write(command);
|
|
930
|
+
console.log(`[weaver] Steering command sent: ${subcommand}${opts.botFile ? ' "' + opts.botFile + '"' : ''}`);
|
|
931
|
+
}
|
|
932
|
+
export async function handleQueue(opts) {
|
|
933
|
+
const { TaskQueue } = await import('./bot/task-queue.js');
|
|
934
|
+
const queue = new TaskQueue();
|
|
935
|
+
const action = opts.botTask;
|
|
936
|
+
if (!action || !['add', 'list', 'clear', 'remove'].includes(action)) {
|
|
937
|
+
console.error('[weaver] Usage: flow-weaver weaver queue <add|list|clear|remove> [task|id]');
|
|
938
|
+
process.exit(1);
|
|
939
|
+
}
|
|
940
|
+
switch (action) {
|
|
941
|
+
case 'add': {
|
|
942
|
+
const instruction = opts.botFile;
|
|
943
|
+
if (!instruction) {
|
|
944
|
+
console.error('[weaver] Usage: flow-weaver weaver queue add "task instruction"');
|
|
945
|
+
process.exit(1);
|
|
946
|
+
}
|
|
947
|
+
const id = queue.add({ instruction, priority: 0 });
|
|
948
|
+
console.log(`[weaver] Task added: ${id}`);
|
|
949
|
+
break;
|
|
950
|
+
}
|
|
951
|
+
case 'list': {
|
|
952
|
+
const tasks = queue.list();
|
|
953
|
+
if (tasks.length === 0) {
|
|
954
|
+
console.log('No tasks in queue.');
|
|
955
|
+
}
|
|
956
|
+
else {
|
|
957
|
+
console.log('ID'.padEnd(10) + 'STATUS'.padEnd(12) + 'INSTRUCTION');
|
|
958
|
+
for (const t of tasks) {
|
|
959
|
+
console.log(t.id.padEnd(10) + t.status.padEnd(12) + t.instruction.slice(0, 60));
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
break;
|
|
963
|
+
}
|
|
964
|
+
case 'clear': {
|
|
965
|
+
const count = queue.clear();
|
|
966
|
+
console.log(`Cleared ${count} task(s).`);
|
|
967
|
+
break;
|
|
968
|
+
}
|
|
969
|
+
case 'remove': {
|
|
970
|
+
const id = opts.botFile;
|
|
971
|
+
if (!id) {
|
|
972
|
+
console.error('[weaver] Usage: flow-weaver weaver queue remove <id>');
|
|
973
|
+
process.exit(1);
|
|
974
|
+
}
|
|
975
|
+
const removed = queue.remove(id);
|
|
976
|
+
console.log(removed ? `Removed task ${id}.` : `No task found with id "${id}".`);
|
|
977
|
+
break;
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
}
|
|
720
981
|
//# sourceMappingURL=cli-handlers.js.map
|