@synergenius/flow-weaver-pack-weaver 0.8.1 → 0.8.3
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/LICENSE +23 -0
- package/dist/docs/weaver-config.md +9 -15
- package/flowweaver.manifest.json +1 -1
- package/package.json +3 -3
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -749
- package/dist/cli.js.map +0 -1
- package/dist/templates/weaver-template.d.ts +0 -11
- package/dist/templates/weaver-template.d.ts.map +0 -1
- package/dist/templates/weaver-template.js +0 -53
- package/dist/templates/weaver-template.js.map +0 -1
- package/dist/workflows/weaver-bot-session.d.ts +0 -65
- package/dist/workflows/weaver-bot-session.d.ts.map +0 -1
- package/dist/workflows/weaver-bot-session.js +0 -68
- package/dist/workflows/weaver-bot-session.js.map +0 -1
- package/dist/workflows/weaver.d.ts +0 -24
- package/dist/workflows/weaver.d.ts.map +0 -1
- package/dist/workflows/weaver.js +0 -28
- package/dist/workflows/weaver.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -37,6 +37,9 @@ Never permitted:
|
|
|
37
37
|
Remove or circumvent license keys Applies to software and derivatives
|
|
38
38
|
Remove licensing or copyright notices Must always be retained
|
|
39
39
|
Strip license key checks from forks Derivatives must retain protections
|
|
40
|
+
Reverse-engineer to build replacements Manual, automated, or AI-assisted
|
|
41
|
+
Use as AI/ML input to replicate features Training, prompting, or code generation
|
|
42
|
+
Extract specs for third-party cloning Indirect circumvention via intermediaries
|
|
40
43
|
|
|
41
44
|
---
|
|
42
45
|
|
|
@@ -81,6 +84,26 @@ mechanisms, and licensing notices present in the original software. Distributing
|
|
|
81
84
|
derivative works with license key protections removed, disabled, or bypassed
|
|
82
85
|
constitutes a violation of this license.
|
|
83
86
|
|
|
87
|
+
You may not use any part of the software, including but not limited to its
|
|
88
|
+
source code, test suites, documentation, specifications, observable behavior,
|
|
89
|
+
inputs, outputs, or error messages, to develop, train, fine-tune, prompt, or
|
|
90
|
+
otherwise assist in the creation of software that replicates, reimplements, or
|
|
91
|
+
substitutes for any functionality of the software. This restriction applies
|
|
92
|
+
whether the development is performed manually, through automated tools, or
|
|
93
|
+
through artificial intelligence or machine learning systems, and regardless of
|
|
94
|
+
whether the resulting software contains any code from the original.
|
|
95
|
+
|
|
96
|
+
You may not use any part of the software as input to any artificial intelligence,
|
|
97
|
+
machine learning, or large language model system for the purpose of generating,
|
|
98
|
+
synthesizing, or deriving source code, algorithms, data structures, or
|
|
99
|
+
architectures that replicate or approximate the functionality of the software.
|
|
100
|
+
|
|
101
|
+
You may not circumvent the limitations in this license through indirect means,
|
|
102
|
+
including but not limited to extracting specifications, behavioral descriptions,
|
|
103
|
+
or functional requirements from the software and providing them to third parties
|
|
104
|
+
or automated systems for the purpose of developing competing or functionally
|
|
105
|
+
equivalent software.
|
|
106
|
+
|
|
84
107
|
You may not alter, remove, or obscure any licensing, copyright, or other notices
|
|
85
108
|
of the licensor in the software. Any use of the licensor's trademarks is subject
|
|
86
109
|
to applicable law.
|
|
@@ -1,26 +1,20 @@
|
|
|
1
|
-
# Weaver Configuration Reference
|
|
1
|
+
# Weaver Bot Configuration Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The weaver bot runs workflows, executes tasks from natural language, and evolves autonomously. It auto-detects AI providers, manages approval gates, handles git operations, and sends notifications.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The bot has deep knowledge of the full flow-weaver ecosystem: annotation grammar, CLI tools, node patterns, error diagnosis, and the genesis protocol (loaded dynamically from `@synergenius/flow-weaver/doc-metadata`).
|
|
6
6
|
|
|
7
7
|
## Getting started
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
```typescript
|
|
12
|
-
import { weaverTemplate } from '@synergenius/flowweaver-pack-weaver/templates';
|
|
13
|
-
const source = weaverTemplate.generate({ projectDir: '.' });
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Then compile and run:
|
|
9
|
+
Run the bot directly via CLI:
|
|
17
10
|
|
|
18
11
|
```bash
|
|
19
|
-
flow-weaver
|
|
20
|
-
|
|
12
|
+
flow-weaver weaver bot "Create a workflow that processes CSV files"
|
|
13
|
+
flow-weaver weaver run my-workflow.ts
|
|
14
|
+
flow-weaver weaver session
|
|
21
15
|
```
|
|
22
16
|
|
|
23
|
-
Or
|
|
17
|
+
Or scaffold a project via `flow-weaver init` and select the "AI Workflow Runner" use case.
|
|
24
18
|
|
|
25
19
|
## .weaver.json
|
|
26
20
|
|
|
@@ -127,7 +121,7 @@ import {
|
|
|
127
121
|
detectProvider,
|
|
128
122
|
runWorkflow,
|
|
129
123
|
BotAgentChannel,
|
|
130
|
-
} from '@synergenius/
|
|
124
|
+
} from '@synergenius/flow-weaver-pack-weaver';
|
|
131
125
|
|
|
132
126
|
// Auto-detect and run
|
|
133
127
|
const result = await runWorkflow('path/to/workflow.ts', { verbose: true });
|
package/flowweaver.manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synergenius/flow-weaver-pack-weaver",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "AI bot for Flow Weaver. Execute tasks, run workflows, evolve autonomously.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"keywords": [
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"flow-weaver-marketplace-pack",
|
|
24
|
+
"flow-weaver-bot-pack",
|
|
25
25
|
"flow-weaver",
|
|
26
26
|
"weaver",
|
|
27
27
|
"automation",
|
package/dist/cli.d.ts
DELETED
package/dist/cli.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
DELETED
|
@@ -1,749 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import * as path from 'node:path';
|
|
3
|
-
import { runWorkflow } from './bot/runner.js';
|
|
4
|
-
import { RunStore } from './bot/run-store.js';
|
|
5
|
-
import { CostStore } from './bot/cost-store.js';
|
|
6
|
-
import { defaultRegistry, discoverProviders } from './bot/provider-registry.js';
|
|
7
|
-
import { WatchDaemon } from './bot/watch-daemon.js';
|
|
8
|
-
import { PipelineRunner } from './bot/pipeline-runner.js';
|
|
9
|
-
import { DashboardServer } from './bot/dashboard.js';
|
|
10
|
-
import { openBrowser } from './bot/utils.js';
|
|
11
|
-
const HELP = `
|
|
12
|
-
weaver - Autonomous workflow runner for Flow Weaver
|
|
13
|
-
|
|
14
|
-
Usage:
|
|
15
|
-
weaver <file> Run a workflow file
|
|
16
|
-
weaver run <file> Same as above
|
|
17
|
-
weaver history List recent runs
|
|
18
|
-
weaver history <id> Show details of a specific run
|
|
19
|
-
weaver costs Show cost summary
|
|
20
|
-
weaver watch <file> Watch file, re-run on change
|
|
21
|
-
weaver cron "<schedule>" <file> Run on cron schedule
|
|
22
|
-
weaver pipeline <config.json> Run multi-stage pipeline
|
|
23
|
-
weaver dashboard [file] Start live dashboard (optionally run file)
|
|
24
|
-
weaver providers List available providers
|
|
25
|
-
weaver --help Show this help
|
|
26
|
-
|
|
27
|
-
Options:
|
|
28
|
-
-v, --verbose Show detailed execution info
|
|
29
|
-
-n, --dry-run Preview without executing
|
|
30
|
-
-p, --params <json> Input parameters as JSON
|
|
31
|
-
-c, --config <path> Path to .weaver.json config
|
|
32
|
-
--quiet Suppress progress output
|
|
33
|
-
--version Show version
|
|
34
|
-
--dashboard Enable live dashboard for run
|
|
35
|
-
--port <number> Dashboard port (default 4242)
|
|
36
|
-
--open Auto-open browser
|
|
37
|
-
--approval <mode> Override approval mode
|
|
38
|
-
|
|
39
|
-
Watch/Cron options:
|
|
40
|
-
--cron "<schedule>" Add cron trigger to watch mode
|
|
41
|
-
--debounce <ms> File watch debounce (default 500)
|
|
42
|
-
--log <path> Write output to log file
|
|
43
|
-
|
|
44
|
-
Pipeline options:
|
|
45
|
-
--stage <id> Run single stage + its dependencies
|
|
46
|
-
|
|
47
|
-
History options:
|
|
48
|
-
--limit <n> Number of entries (default: 20)
|
|
49
|
-
--outcome <type> Filter: completed|failed|error|skipped
|
|
50
|
-
--workflow <path> Filter by workflow file
|
|
51
|
-
--since <date> Show runs after date (ISO-8601)
|
|
52
|
-
--json JSON output
|
|
53
|
-
--prune Prune old entries (keep 500, 90 days)
|
|
54
|
-
--clear Delete all history
|
|
55
|
-
|
|
56
|
-
Cost options:
|
|
57
|
-
--since <duration|date> Filter: 7d, 30d, or ISO-8601 date
|
|
58
|
-
--model <name> Filter by model
|
|
59
|
-
|
|
60
|
-
Examples:
|
|
61
|
-
weaver my-workflow.ts
|
|
62
|
-
weaver run pipeline.ts --verbose --params '{"env":"prod"}'
|
|
63
|
-
weaver watch my-workflow.ts --cron "*/5 * * * *"
|
|
64
|
-
weaver pipeline deploy.json --stage test
|
|
65
|
-
weaver history --outcome failed --limit 10
|
|
66
|
-
weaver costs --since 7d
|
|
67
|
-
`.trim();
|
|
68
|
-
function parseArgs(argv) {
|
|
69
|
-
const result = {
|
|
70
|
-
command: 'run',
|
|
71
|
-
file: undefined,
|
|
72
|
-
verbose: false,
|
|
73
|
-
dryRun: false,
|
|
74
|
-
quiet: false,
|
|
75
|
-
params: undefined,
|
|
76
|
-
configPath: undefined,
|
|
77
|
-
showHelp: false,
|
|
78
|
-
showVersion: false,
|
|
79
|
-
historyLimit: 20,
|
|
80
|
-
historyJson: false,
|
|
81
|
-
historyPrune: false,
|
|
82
|
-
historyClear: false,
|
|
83
|
-
debounceMs: 500,
|
|
84
|
-
dashboard: false,
|
|
85
|
-
dashboardPort: 4242,
|
|
86
|
-
dashboardOpen: false,
|
|
87
|
-
};
|
|
88
|
-
const args = argv.slice(2);
|
|
89
|
-
let i = 0;
|
|
90
|
-
while (i < args.length) {
|
|
91
|
-
const arg = args[i];
|
|
92
|
-
if (arg === '--help' || arg === '-h') {
|
|
93
|
-
result.showHelp = true;
|
|
94
|
-
}
|
|
95
|
-
else if (arg === '--version') {
|
|
96
|
-
result.showVersion = true;
|
|
97
|
-
}
|
|
98
|
-
else if (arg === '--verbose' || arg === '-v') {
|
|
99
|
-
result.verbose = true;
|
|
100
|
-
}
|
|
101
|
-
else if (arg === '--dry-run' || arg === '-n') {
|
|
102
|
-
result.dryRun = true;
|
|
103
|
-
}
|
|
104
|
-
else if (arg === '--quiet') {
|
|
105
|
-
result.quiet = true;
|
|
106
|
-
}
|
|
107
|
-
else if ((arg === '--params' || arg === '-p') && i + 1 < args.length) {
|
|
108
|
-
i++;
|
|
109
|
-
try {
|
|
110
|
-
result.params = JSON.parse(args[i]);
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
console.error(`[weaver] Invalid JSON for --params: ${args[i]}`);
|
|
114
|
-
process.exit(1);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else if ((arg === '--config' || arg === '-c') && i + 1 < args.length) {
|
|
118
|
-
i++;
|
|
119
|
-
result.configPath = args[i];
|
|
120
|
-
}
|
|
121
|
-
else if (arg === '--limit' && i + 1 < args.length) {
|
|
122
|
-
i++;
|
|
123
|
-
result.historyLimit = parseInt(args[i], 10) || 20;
|
|
124
|
-
}
|
|
125
|
-
else if (arg === '--outcome' && i + 1 < args.length) {
|
|
126
|
-
i++;
|
|
127
|
-
result.historyOutcome = args[i];
|
|
128
|
-
}
|
|
129
|
-
else if (arg === '--workflow' && i + 1 < args.length) {
|
|
130
|
-
i++;
|
|
131
|
-
result.historyWorkflow = args[i];
|
|
132
|
-
}
|
|
133
|
-
else if (arg === '--since' && i + 1 < args.length) {
|
|
134
|
-
i++;
|
|
135
|
-
if (result.command === 'costs') {
|
|
136
|
-
result.costsSince = args[i];
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
result.historySince = args[i];
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
else if (arg === '--model' && i + 1 < args.length) {
|
|
143
|
-
i++;
|
|
144
|
-
result.costsModel = args[i];
|
|
145
|
-
}
|
|
146
|
-
else if (arg === '--json') {
|
|
147
|
-
result.historyJson = true;
|
|
148
|
-
}
|
|
149
|
-
else if (arg === '--prune') {
|
|
150
|
-
result.historyPrune = true;
|
|
151
|
-
}
|
|
152
|
-
else if (arg === '--clear') {
|
|
153
|
-
result.historyClear = true;
|
|
154
|
-
}
|
|
155
|
-
else if (arg === 'history') {
|
|
156
|
-
result.command = 'history';
|
|
157
|
-
}
|
|
158
|
-
else if (arg === 'costs') {
|
|
159
|
-
result.command = 'costs';
|
|
160
|
-
}
|
|
161
|
-
else if (arg === 'providers') {
|
|
162
|
-
result.command = 'providers';
|
|
163
|
-
}
|
|
164
|
-
else if (arg === 'watch') {
|
|
165
|
-
result.command = 'watch';
|
|
166
|
-
}
|
|
167
|
-
else if (arg === 'cron') {
|
|
168
|
-
result.command = 'cron';
|
|
169
|
-
// Next arg is the schedule
|
|
170
|
-
if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
|
|
171
|
-
i++;
|
|
172
|
-
result.cronSchedule = args[i];
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
else if (arg === 'pipeline') {
|
|
176
|
-
result.command = 'pipeline';
|
|
177
|
-
}
|
|
178
|
-
else if (arg === '--cron' && i + 1 < args.length) {
|
|
179
|
-
i++;
|
|
180
|
-
result.cronSchedule = args[i];
|
|
181
|
-
}
|
|
182
|
-
else if (arg === '--debounce' && i + 1 < args.length) {
|
|
183
|
-
i++;
|
|
184
|
-
result.debounceMs = parseInt(args[i], 10) || 500;
|
|
185
|
-
}
|
|
186
|
-
else if (arg === '--log' && i + 1 < args.length) {
|
|
187
|
-
i++;
|
|
188
|
-
result.logFile = args[i];
|
|
189
|
-
}
|
|
190
|
-
else if (arg === '--stage' && i + 1 < args.length) {
|
|
191
|
-
i++;
|
|
192
|
-
result.pipelineStage = args[i];
|
|
193
|
-
}
|
|
194
|
-
else if (arg === '--dashboard') {
|
|
195
|
-
result.dashboard = true;
|
|
196
|
-
}
|
|
197
|
-
else if (arg === '--port' && i + 1 < args.length) {
|
|
198
|
-
i++;
|
|
199
|
-
result.dashboardPort = parseInt(args[i], 10) || 4242;
|
|
200
|
-
}
|
|
201
|
-
else if (arg === '--open') {
|
|
202
|
-
result.dashboardOpen = true;
|
|
203
|
-
}
|
|
204
|
-
else if (arg === '--approval' && i + 1 < args.length) {
|
|
205
|
-
i++;
|
|
206
|
-
result.approvalMode = args[i];
|
|
207
|
-
}
|
|
208
|
-
else if (arg === 'dashboard') {
|
|
209
|
-
result.command = 'dashboard';
|
|
210
|
-
result.dashboard = true;
|
|
211
|
-
}
|
|
212
|
-
else if (arg === 'run') {
|
|
213
|
-
// skip, next arg is the file
|
|
214
|
-
}
|
|
215
|
-
else if (!arg.startsWith('-')) {
|
|
216
|
-
if (result.command === 'history' && !result.file) {
|
|
217
|
-
result.historyId = arg;
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
result.file = arg;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
console.error(`[weaver] Unknown option: ${arg}`);
|
|
225
|
-
console.error('Run "weaver --help" for usage');
|
|
226
|
-
process.exit(1);
|
|
227
|
-
}
|
|
228
|
-
i++;
|
|
229
|
-
}
|
|
230
|
-
return result;
|
|
231
|
-
}
|
|
232
|
-
function formatDuration(ms) {
|
|
233
|
-
if (ms < 1000)
|
|
234
|
-
return `${ms}ms`;
|
|
235
|
-
return `${(ms / 1000).toFixed(1)}s`;
|
|
236
|
-
}
|
|
237
|
-
const STATUS_ICONS = {
|
|
238
|
-
'node-start': '\x1b[36m>\x1b[0m',
|
|
239
|
-
'node-complete': '\x1b[32m+\x1b[0m',
|
|
240
|
-
'node-error': '\x1b[31mx\x1b[0m',
|
|
241
|
-
};
|
|
242
|
-
const OUTCOME_COLORS = {
|
|
243
|
-
completed: '\x1b[32m',
|
|
244
|
-
failed: '\x1b[31m',
|
|
245
|
-
error: '\x1b[31m',
|
|
246
|
-
skipped: '\x1b[33m',
|
|
247
|
-
};
|
|
248
|
-
const RESET = '\x1b[0m';
|
|
249
|
-
// --- History ---
|
|
250
|
-
function printRunTable(records) {
|
|
251
|
-
console.log('ID'.padEnd(10) +
|
|
252
|
-
'OUTCOME'.padEnd(12) +
|
|
253
|
-
'DURATION'.padEnd(10) +
|
|
254
|
-
'WORKFLOW'.padEnd(24) +
|
|
255
|
-
'STARTED');
|
|
256
|
-
for (const r of records) {
|
|
257
|
-
const id = r.id.slice(0, 8);
|
|
258
|
-
const color = OUTCOME_COLORS[r.outcome] ?? '';
|
|
259
|
-
const outcome = `${color}${r.outcome}${RESET}`;
|
|
260
|
-
const duration = formatDuration(r.durationMs);
|
|
261
|
-
const workflow = path.basename(r.workflowFile);
|
|
262
|
-
const started = r.startedAt.replace('T', ' ').slice(0, 16);
|
|
263
|
-
console.log(id.padEnd(10) +
|
|
264
|
-
outcome.padEnd(12 + color.length + RESET.length) +
|
|
265
|
-
duration.padEnd(10) +
|
|
266
|
-
(workflow.length > 22 ? workflow.slice(0, 21) + '~' : workflow).padEnd(24) +
|
|
267
|
-
started);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
function printRunDetail(r) {
|
|
271
|
-
const outcomeColor = r.success ? '\x1b[32m' : '\x1b[31m';
|
|
272
|
-
console.log(`\nRun ${r.id}\n`);
|
|
273
|
-
console.log(` Workflow: ${r.workflowFile}`);
|
|
274
|
-
if (r.functionName)
|
|
275
|
-
console.log(` Function: ${r.functionName}`);
|
|
276
|
-
console.log(` Outcome: ${outcomeColor}${r.outcome}${RESET} (${r.success ? 'success' : 'failure'})`);
|
|
277
|
-
console.log(` Started: ${r.startedAt}`);
|
|
278
|
-
console.log(` Finished: ${r.finishedAt}`);
|
|
279
|
-
console.log(` Duration: ${formatDuration(r.durationMs)}`);
|
|
280
|
-
if (r.executionTime !== undefined) {
|
|
281
|
-
console.log(` Execution time: ${formatDuration(r.executionTime)}`);
|
|
282
|
-
}
|
|
283
|
-
if (r.provider)
|
|
284
|
-
console.log(` Provider: ${r.provider}`);
|
|
285
|
-
console.log(` Dry run: ${r.dryRun ? 'yes' : 'no'}`);
|
|
286
|
-
console.log(` Summary: ${r.summary}`);
|
|
287
|
-
if (r.params) {
|
|
288
|
-
console.log(` Params: ${JSON.stringify(r.params)}`);
|
|
289
|
-
}
|
|
290
|
-
console.log('');
|
|
291
|
-
}
|
|
292
|
-
async function handleHistory(opts) {
|
|
293
|
-
const store = new RunStore();
|
|
294
|
-
if (opts.historyClear) {
|
|
295
|
-
const deleted = store.clear();
|
|
296
|
-
console.log(deleted ? 'History cleared.' : 'No history to clear.');
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
if (opts.historyPrune) {
|
|
300
|
-
const pruned = store.prune({ maxRecords: 500, maxAgeDays: 90 });
|
|
301
|
-
console.log(`Pruned ${pruned} record(s).`);
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
if (opts.historyId) {
|
|
305
|
-
const record = store.get(opts.historyId);
|
|
306
|
-
if (!record) {
|
|
307
|
-
console.error(`[weaver] No run found matching "${opts.historyId}"`);
|
|
308
|
-
process.exit(1);
|
|
309
|
-
}
|
|
310
|
-
if (opts.historyJson) {
|
|
311
|
-
console.log(JSON.stringify(record, null, 2));
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
printRunDetail(record);
|
|
315
|
-
}
|
|
316
|
-
return;
|
|
317
|
-
}
|
|
318
|
-
const records = store.list({
|
|
319
|
-
outcome: opts.historyOutcome,
|
|
320
|
-
workflowFile: opts.historyWorkflow ? path.resolve(opts.historyWorkflow) : undefined,
|
|
321
|
-
since: opts.historySince,
|
|
322
|
-
limit: opts.historyLimit,
|
|
323
|
-
});
|
|
324
|
-
if (records.length === 0) {
|
|
325
|
-
console.log('No runs recorded yet.');
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
328
|
-
if (opts.historyJson) {
|
|
329
|
-
console.log(JSON.stringify(records, null, 2));
|
|
330
|
-
}
|
|
331
|
-
else {
|
|
332
|
-
printRunTable(records);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
// --- Costs ---
|
|
336
|
-
function parseSince(spec) {
|
|
337
|
-
if (!spec)
|
|
338
|
-
return undefined;
|
|
339
|
-
const match = spec.match(/^(\d+)([dhm])$/);
|
|
340
|
-
if (match) {
|
|
341
|
-
const n = parseInt(match[1], 10);
|
|
342
|
-
const unit = match[2];
|
|
343
|
-
const ms = unit === 'd' ? n * 86_400_000 : unit === 'h' ? n * 3_600_000 : n * 60_000;
|
|
344
|
-
return Date.now() - ms;
|
|
345
|
-
}
|
|
346
|
-
const ts = new Date(spec).getTime();
|
|
347
|
-
return isNaN(ts) ? undefined : ts;
|
|
348
|
-
}
|
|
349
|
-
function formatCostTable(summary) {
|
|
350
|
-
const lines = [];
|
|
351
|
-
lines.push(`Weaver Cost Summary (${summary.totalRuns} runs)`);
|
|
352
|
-
lines.push(`Total: ~$${summary.totalCost.toFixed(4)}`);
|
|
353
|
-
lines.push(`Tokens: ${summary.totalInputTokens.toLocaleString()} in / ${summary.totalOutputTokens.toLocaleString()} out`);
|
|
354
|
-
const models = Object.entries(summary.byModel);
|
|
355
|
-
if (models.length > 0) {
|
|
356
|
-
lines.push('');
|
|
357
|
-
lines.push('By model:');
|
|
358
|
-
for (const [model, data] of models) {
|
|
359
|
-
lines.push(` ${model}: ${data.runs} runs, ~$${data.cost.toFixed(4)}, ${data.inputTokens.toLocaleString()} in / ${data.outputTokens.toLocaleString()} out`);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
return lines.join('\n');
|
|
363
|
-
}
|
|
364
|
-
function formatRunCost(cost) {
|
|
365
|
-
const inp = cost.totalInputTokens.toLocaleString();
|
|
366
|
-
const out = cost.totalOutputTokens.toLocaleString();
|
|
367
|
-
const usd = cost.totalCost < 0.01
|
|
368
|
-
? `$${cost.totalCost.toFixed(4)}`
|
|
369
|
-
: `$${cost.totalCost.toFixed(2)}`;
|
|
370
|
-
return `tokens: ${inp} in / ${out} out | cost: ~${usd} (${cost.model})`;
|
|
371
|
-
}
|
|
372
|
-
async function handleCosts(opts) {
|
|
373
|
-
const store = new CostStore();
|
|
374
|
-
const sinceTs = parseSince(opts.costsSince);
|
|
375
|
-
const summary = store.summarize({ since: sinceTs, model: opts.costsModel });
|
|
376
|
-
if (summary.totalRuns === 0) {
|
|
377
|
-
console.log('No cost data found.');
|
|
378
|
-
return;
|
|
379
|
-
}
|
|
380
|
-
console.log(formatCostTable(summary));
|
|
381
|
-
}
|
|
382
|
-
async function loadConfig(configPath) {
|
|
383
|
-
if (!configPath)
|
|
384
|
-
return undefined;
|
|
385
|
-
try {
|
|
386
|
-
const { readFileSync } = await import('node:fs');
|
|
387
|
-
return JSON.parse(readFileSync(path.resolve(configPath), 'utf-8'));
|
|
388
|
-
}
|
|
389
|
-
catch (err) {
|
|
390
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
391
|
-
console.error(`[weaver] Failed to read config: ${msg}`);
|
|
392
|
-
process.exit(1);
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
// --- Watch/Cron ---
|
|
396
|
-
async function handleWatch(opts) {
|
|
397
|
-
if (!opts.file) {
|
|
398
|
-
console.error('[weaver] No workflow file specified for watch');
|
|
399
|
-
process.exit(1);
|
|
400
|
-
}
|
|
401
|
-
const config = await loadConfig(opts.configPath);
|
|
402
|
-
const daemon = new WatchDaemon({
|
|
403
|
-
filePath: path.resolve(opts.file),
|
|
404
|
-
watchFile: true,
|
|
405
|
-
cron: opts.cronSchedule,
|
|
406
|
-
debounceMs: opts.debounceMs,
|
|
407
|
-
logFile: opts.logFile,
|
|
408
|
-
verbose: opts.verbose,
|
|
409
|
-
params: opts.params,
|
|
410
|
-
config,
|
|
411
|
-
quiet: opts.quiet,
|
|
412
|
-
});
|
|
413
|
-
await daemon.start();
|
|
414
|
-
}
|
|
415
|
-
async function handleCron(opts) {
|
|
416
|
-
if (!opts.cronSchedule) {
|
|
417
|
-
console.error('[weaver] No cron schedule specified');
|
|
418
|
-
console.error('Usage: weaver cron "*/5 * * * *" <file>');
|
|
419
|
-
process.exit(1);
|
|
420
|
-
}
|
|
421
|
-
if (!opts.file) {
|
|
422
|
-
console.error('[weaver] No workflow file specified for cron');
|
|
423
|
-
process.exit(1);
|
|
424
|
-
}
|
|
425
|
-
const config = await loadConfig(opts.configPath);
|
|
426
|
-
const daemon = new WatchDaemon({
|
|
427
|
-
filePath: path.resolve(opts.file),
|
|
428
|
-
watchFile: false,
|
|
429
|
-
cron: opts.cronSchedule,
|
|
430
|
-
debounceMs: opts.debounceMs,
|
|
431
|
-
logFile: opts.logFile,
|
|
432
|
-
verbose: opts.verbose,
|
|
433
|
-
params: opts.params,
|
|
434
|
-
config,
|
|
435
|
-
quiet: opts.quiet,
|
|
436
|
-
});
|
|
437
|
-
await daemon.start();
|
|
438
|
-
}
|
|
439
|
-
// --- Pipeline ---
|
|
440
|
-
const STAGE_ICONS = {
|
|
441
|
-
running: '\x1b[36m>\x1b[0m',
|
|
442
|
-
completed: '\x1b[32m+\x1b[0m',
|
|
443
|
-
failed: '\x1b[31mx\x1b[0m',
|
|
444
|
-
skipped: '\x1b[33m-\x1b[0m',
|
|
445
|
-
cancelled: '\x1b[33m~\x1b[0m',
|
|
446
|
-
};
|
|
447
|
-
async function handlePipeline(opts) {
|
|
448
|
-
if (!opts.file) {
|
|
449
|
-
console.error('[weaver] No pipeline config specified');
|
|
450
|
-
console.error('Usage: weaver pipeline <config.json>');
|
|
451
|
-
process.exit(1);
|
|
452
|
-
}
|
|
453
|
-
let config;
|
|
454
|
-
try {
|
|
455
|
-
config = PipelineRunner.load(opts.file);
|
|
456
|
-
}
|
|
457
|
-
catch (err) {
|
|
458
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
459
|
-
console.error(`\x1b[31m[weaver] Pipeline config error: ${msg}\x1b[0m`);
|
|
460
|
-
process.exit(1);
|
|
461
|
-
}
|
|
462
|
-
const runner = new PipelineRunner();
|
|
463
|
-
if (!opts.quiet) {
|
|
464
|
-
console.log(`Pipeline: ${config.name}`);
|
|
465
|
-
console.log(` ${config.stages.length} stages\n`);
|
|
466
|
-
}
|
|
467
|
-
const stageTimings = new Map();
|
|
468
|
-
const onStageEvent = opts.quiet
|
|
469
|
-
? undefined
|
|
470
|
-
: (stageId, status, result) => {
|
|
471
|
-
const icon = STAGE_ICONS[status] ?? ' ';
|
|
472
|
-
const stage = config.stages.find((s) => s.id === stageId);
|
|
473
|
-
const label = stage?.label ?? stageId;
|
|
474
|
-
if (status === 'running') {
|
|
475
|
-
stageTimings.set(stageId, Date.now());
|
|
476
|
-
if (opts.verbose) {
|
|
477
|
-
console.log(` ${icon} ${label}`);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
else {
|
|
481
|
-
const start = stageTimings.get(stageId);
|
|
482
|
-
const dur = start ? ` (${formatDuration(Date.now() - start)})` : '';
|
|
483
|
-
console.log(` ${icon} ${label}${dur}`);
|
|
484
|
-
}
|
|
485
|
-
};
|
|
486
|
-
const weaverConfig = await loadConfig(opts.configPath);
|
|
487
|
-
try {
|
|
488
|
-
const pipelineResult = await runner.run(config, {
|
|
489
|
-
verbose: opts.verbose,
|
|
490
|
-
dryRun: opts.dryRun,
|
|
491
|
-
config: weaverConfig,
|
|
492
|
-
stage: opts.pipelineStage,
|
|
493
|
-
onStageEvent,
|
|
494
|
-
onNotificationError: (channel, _event, error) => {
|
|
495
|
-
console.error(`[weaver] Notification error (${channel}): ${error}`);
|
|
496
|
-
},
|
|
497
|
-
});
|
|
498
|
-
if (!opts.quiet) {
|
|
499
|
-
const elapsed = formatDuration(pipelineResult.durationMs);
|
|
500
|
-
const color = pipelineResult.success ? '\x1b[32m' : '\x1b[31m';
|
|
501
|
-
console.log(`\n${color}Pipeline: ${pipelineResult.outcome}\x1b[0m (${elapsed})`);
|
|
502
|
-
}
|
|
503
|
-
process.exit(pipelineResult.success ? 0 : 1);
|
|
504
|
-
}
|
|
505
|
-
catch (err) {
|
|
506
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
507
|
-
console.error(`\x1b[31m[weaver] Pipeline error: ${msg}\x1b[0m`);
|
|
508
|
-
process.exit(1);
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
// --- Dashboard ---
|
|
512
|
-
async function handleDashboard(opts) {
|
|
513
|
-
const dashboard = new DashboardServer({ port: opts.dashboardPort });
|
|
514
|
-
const port = await dashboard.start();
|
|
515
|
-
const url = dashboard.getUrl();
|
|
516
|
-
console.log(`[weaver] Dashboard: ${url}`);
|
|
517
|
-
if (opts.dashboardOpen)
|
|
518
|
-
openBrowser(url);
|
|
519
|
-
if (!opts.file) {
|
|
520
|
-
// Dashboard-only mode: view history, wait for SIGINT
|
|
521
|
-
console.log('[weaver] Dashboard running (Ctrl+C to stop)');
|
|
522
|
-
await new Promise((resolve) => {
|
|
523
|
-
process.on('SIGINT', () => { dashboard.stop().then(resolve); });
|
|
524
|
-
process.on('SIGTERM', () => { dashboard.stop().then(resolve); });
|
|
525
|
-
});
|
|
526
|
-
return;
|
|
527
|
-
}
|
|
528
|
-
// Run workflow with live dashboard
|
|
529
|
-
const config = await loadConfig(opts.configPath);
|
|
530
|
-
if (opts.approvalMode) {
|
|
531
|
-
const cfg = config ?? { provider: 'auto' };
|
|
532
|
-
cfg.approval = { mode: opts.approvalMode, webOpen: opts.dashboardOpen };
|
|
533
|
-
}
|
|
534
|
-
dashboard.broadcastWorkflowStart(path.resolve(opts.file));
|
|
535
|
-
const nodeTimings = new Map();
|
|
536
|
-
const onEvent = (event) => {
|
|
537
|
-
dashboard.broadcastExecution(event);
|
|
538
|
-
if (opts.quiet)
|
|
539
|
-
return;
|
|
540
|
-
const icon = STATUS_ICONS[event.type] ?? ' ';
|
|
541
|
-
const label = event.nodeType ? `${event.nodeId} (${event.nodeType})` : event.nodeId;
|
|
542
|
-
if (event.type === 'node-start') {
|
|
543
|
-
nodeTimings.set(event.nodeId, event.timestamp);
|
|
544
|
-
if (opts.verbose)
|
|
545
|
-
console.log(` ${icon} ${label}`);
|
|
546
|
-
}
|
|
547
|
-
else if (event.type === 'node-complete') {
|
|
548
|
-
const start = nodeTimings.get(event.nodeId);
|
|
549
|
-
const dur = start ? ` ${formatDuration(event.timestamp - start)}` : '';
|
|
550
|
-
console.log(` ${icon} ${label}${dur}`);
|
|
551
|
-
}
|
|
552
|
-
else if (event.type === 'node-error') {
|
|
553
|
-
console.log(` ${icon} ${label}: ${event.error ?? 'unknown error'}`);
|
|
554
|
-
}
|
|
555
|
-
};
|
|
556
|
-
const startTime = Date.now();
|
|
557
|
-
try {
|
|
558
|
-
const result = await runWorkflow(path.resolve(opts.file), {
|
|
559
|
-
params: opts.params,
|
|
560
|
-
verbose: opts.verbose,
|
|
561
|
-
dryRun: opts.dryRun,
|
|
562
|
-
config,
|
|
563
|
-
onEvent,
|
|
564
|
-
dashboardServer: dashboard,
|
|
565
|
-
onNotificationError: (channel, _event, error) => {
|
|
566
|
-
console.error(`[weaver] Notification error (${channel}): ${error}`);
|
|
567
|
-
},
|
|
568
|
-
});
|
|
569
|
-
dashboard.broadcastWorkflowComplete(result.summary, result.success);
|
|
570
|
-
const elapsed = formatDuration(Date.now() - startTime);
|
|
571
|
-
if (!opts.quiet) {
|
|
572
|
-
console.log('');
|
|
573
|
-
const color = result.success ? '\x1b[32m' : '\x1b[31m';
|
|
574
|
-
console.log(`${color}Weaver: ${result.outcome}\x1b[0m (${elapsed})`);
|
|
575
|
-
console.log(` ${result.summary}`);
|
|
576
|
-
if (result.cost && result.cost.totalInputTokens > 0) {
|
|
577
|
-
console.log(` ${formatRunCost(result.cost)}`);
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
// Keep alive for 5 minutes after completion
|
|
581
|
-
console.log(`[weaver] Dashboard at ${url} (5min keep-alive, Ctrl+C to stop)`);
|
|
582
|
-
await new Promise((resolve) => {
|
|
583
|
-
const timer = setTimeout(() => resolve(), 300_000);
|
|
584
|
-
const handler = () => { clearTimeout(timer); resolve(); };
|
|
585
|
-
process.on('SIGINT', handler);
|
|
586
|
-
process.on('SIGTERM', handler);
|
|
587
|
-
});
|
|
588
|
-
await dashboard.stop();
|
|
589
|
-
process.exit(result.success ? 0 : 1);
|
|
590
|
-
}
|
|
591
|
-
catch (err) {
|
|
592
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
593
|
-
dashboard.broadcastWorkflowError(msg);
|
|
594
|
-
console.error(`\x1b[31m[weaver] Fatal: ${msg}\x1b[0m`);
|
|
595
|
-
await dashboard.stop();
|
|
596
|
-
process.exit(1);
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
// --- Providers ---
|
|
600
|
-
async function handleProviders() {
|
|
601
|
-
await discoverProviders(defaultRegistry);
|
|
602
|
-
const providers = defaultRegistry.list();
|
|
603
|
-
if (providers.length === 0) {
|
|
604
|
-
console.log('No providers found.');
|
|
605
|
-
return;
|
|
606
|
-
}
|
|
607
|
-
console.log('Available providers:\n');
|
|
608
|
-
for (const { name, metadata } of providers) {
|
|
609
|
-
const tag = `[${metadata.source}]`;
|
|
610
|
-
console.log(` ${name} ${tag}`);
|
|
611
|
-
if (metadata.description) {
|
|
612
|
-
console.log(` ${metadata.description}`);
|
|
613
|
-
}
|
|
614
|
-
if (metadata.requiredEnvVars && metadata.requiredEnvVars.length > 0) {
|
|
615
|
-
const present = metadata.requiredEnvVars.every((v) => process.env[v]);
|
|
616
|
-
const status = present ? '\x1b[32mset\x1b[0m' : '\x1b[33mnot set\x1b[0m';
|
|
617
|
-
console.log(` env: ${metadata.requiredEnvVars.join(', ')} (${status})`);
|
|
618
|
-
}
|
|
619
|
-
if (metadata.detectCliCommand) {
|
|
620
|
-
console.log(` cli: ${metadata.detectCliCommand}`);
|
|
621
|
-
}
|
|
622
|
-
console.log('');
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
// --- Main ---
|
|
626
|
-
async function main() {
|
|
627
|
-
const opts = parseArgs(process.argv);
|
|
628
|
-
// Recover orphaned runs from previous crashes
|
|
629
|
-
try {
|
|
630
|
-
const store = new RunStore();
|
|
631
|
-
const orphans = store.checkOrphans();
|
|
632
|
-
for (const orphan of orphans) {
|
|
633
|
-
console.error(`[weaver] Recovered orphaned run ${orphan.id.slice(0, 8)} (${orphan.workflowFile}) killed at PID ${orphan.pid}`);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
catch { /* non-fatal */ }
|
|
637
|
-
if (opts.showHelp) {
|
|
638
|
-
console.log(HELP);
|
|
639
|
-
process.exit(0);
|
|
640
|
-
}
|
|
641
|
-
if (opts.showVersion) {
|
|
642
|
-
try {
|
|
643
|
-
const pkgPath = new URL('../package.json', import.meta.url);
|
|
644
|
-
const { default: pkg } = await import(pkgPath.href, { with: { type: 'json' } });
|
|
645
|
-
console.log(`weaver v${pkg.version}`);
|
|
646
|
-
}
|
|
647
|
-
catch {
|
|
648
|
-
console.log('weaver (version unknown)');
|
|
649
|
-
}
|
|
650
|
-
process.exit(0);
|
|
651
|
-
}
|
|
652
|
-
if (opts.command === 'history') {
|
|
653
|
-
await handleHistory(opts);
|
|
654
|
-
process.exit(0);
|
|
655
|
-
}
|
|
656
|
-
if (opts.command === 'costs') {
|
|
657
|
-
await handleCosts(opts);
|
|
658
|
-
process.exit(0);
|
|
659
|
-
}
|
|
660
|
-
if (opts.command === 'providers') {
|
|
661
|
-
await handleProviders();
|
|
662
|
-
process.exit(0);
|
|
663
|
-
}
|
|
664
|
-
if (opts.command === 'watch') {
|
|
665
|
-
await handleWatch(opts);
|
|
666
|
-
process.exit(0);
|
|
667
|
-
}
|
|
668
|
-
if (opts.command === 'cron') {
|
|
669
|
-
await handleCron(opts);
|
|
670
|
-
process.exit(0);
|
|
671
|
-
}
|
|
672
|
-
if (opts.command === 'pipeline') {
|
|
673
|
-
await handlePipeline(opts);
|
|
674
|
-
return;
|
|
675
|
-
}
|
|
676
|
-
if (opts.command === 'dashboard' || opts.dashboard) {
|
|
677
|
-
await handleDashboard(opts);
|
|
678
|
-
return;
|
|
679
|
-
}
|
|
680
|
-
if (!opts.file) {
|
|
681
|
-
console.error('[weaver] No workflow file specified');
|
|
682
|
-
console.error('Run "weaver --help" for usage');
|
|
683
|
-
process.exit(1);
|
|
684
|
-
}
|
|
685
|
-
const filePath = path.resolve(opts.file);
|
|
686
|
-
const config = await loadConfig(opts.configPath);
|
|
687
|
-
// Apply --approval override
|
|
688
|
-
if (opts.approvalMode && config) {
|
|
689
|
-
config.approval = { mode: opts.approvalMode };
|
|
690
|
-
}
|
|
691
|
-
const nodeTimings = new Map();
|
|
692
|
-
const onEvent = opts.quiet
|
|
693
|
-
? undefined
|
|
694
|
-
: (event) => {
|
|
695
|
-
const icon = STATUS_ICONS[event.type] ?? ' ';
|
|
696
|
-
const label = event.nodeType
|
|
697
|
-
? `${event.nodeId} (${event.nodeType})`
|
|
698
|
-
: event.nodeId;
|
|
699
|
-
if (event.type === 'node-start') {
|
|
700
|
-
nodeTimings.set(event.nodeId, event.timestamp);
|
|
701
|
-
if (opts.verbose) {
|
|
702
|
-
console.log(` ${icon} ${label}`);
|
|
703
|
-
}
|
|
704
|
-
}
|
|
705
|
-
else if (event.type === 'node-complete') {
|
|
706
|
-
const start = nodeTimings.get(event.nodeId);
|
|
707
|
-
const dur = start ? ` ${formatDuration(event.timestamp - start)}` : '';
|
|
708
|
-
console.log(` ${icon} ${label}${dur}`);
|
|
709
|
-
}
|
|
710
|
-
else if (event.type === 'node-error') {
|
|
711
|
-
console.log(` ${icon} ${label}: ${event.error ?? 'unknown error'}`);
|
|
712
|
-
}
|
|
713
|
-
};
|
|
714
|
-
const startTime = Date.now();
|
|
715
|
-
try {
|
|
716
|
-
const result = await runWorkflow(filePath, {
|
|
717
|
-
params: opts.params,
|
|
718
|
-
verbose: opts.verbose,
|
|
719
|
-
dryRun: opts.dryRun,
|
|
720
|
-
config,
|
|
721
|
-
onEvent,
|
|
722
|
-
onNotificationError: (channel, _event, error) => {
|
|
723
|
-
console.error(`[weaver] Notification error (${channel}): ${error}`);
|
|
724
|
-
},
|
|
725
|
-
});
|
|
726
|
-
const elapsed = formatDuration(Date.now() - startTime);
|
|
727
|
-
if (!opts.quiet) {
|
|
728
|
-
console.log('');
|
|
729
|
-
if (result.success) {
|
|
730
|
-
console.log(`\x1b[32mWeaver: ${result.outcome}\x1b[0m (${elapsed})`);
|
|
731
|
-
}
|
|
732
|
-
else {
|
|
733
|
-
console.log(`\x1b[31mWeaver: ${result.outcome}\x1b[0m (${elapsed})`);
|
|
734
|
-
}
|
|
735
|
-
console.log(` ${result.summary}`);
|
|
736
|
-
if (result.cost && result.cost.totalInputTokens > 0) {
|
|
737
|
-
console.log(` ${formatRunCost(result.cost)}`);
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
process.exit(result.success ? 0 : 1);
|
|
741
|
-
}
|
|
742
|
-
catch (err) {
|
|
743
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
744
|
-
console.error(`\x1b[31m[weaver] Fatal: ${msg}\x1b[0m`);
|
|
745
|
-
process.exit(1);
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
main();
|
|
749
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface WorkflowTemplate {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
description: string;
|
|
5
|
-
category: string;
|
|
6
|
-
generate: (opts: {
|
|
7
|
-
projectDir?: string;
|
|
8
|
-
}) => string;
|
|
9
|
-
}
|
|
10
|
-
export declare const weaverTemplate: WorkflowTemplate;
|
|
11
|
-
//# sourceMappingURL=weaver-template.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weaver-template.d.ts","sourceRoot":"","sources":["../../src/templates/weaver-template.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CACrD;AAED,eAAO,MAAM,cAAc,EAAE,gBAmD5B,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
export const weaverTemplate = {
|
|
2
|
-
id: 'weaver',
|
|
3
|
-
name: 'Weaver: Autonomous workflow runner',
|
|
4
|
-
description: 'AI-powered runner that executes any Flow Weaver workflow autonomously, with auto-detected providers and notification support',
|
|
5
|
-
category: 'automation',
|
|
6
|
-
generate: (_opts) => {
|
|
7
|
-
return `// Generated by flowweaver-pack-weaver. Compile before running:
|
|
8
|
-
// flow-weaver compile weaver.ts
|
|
9
|
-
// flow-weaver run weaver.ts
|
|
10
|
-
// Or use the CLI directly: npx weaver weaver.ts
|
|
11
|
-
//
|
|
12
|
-
// Node types are provided by @synergenius/flowweaver-pack-weaver.
|
|
13
|
-
// Install it: npm install @synergenius/flowweaver-pack-weaver
|
|
14
|
-
|
|
15
|
-
import { weaverLoadConfig } from '@synergenius/flowweaver-pack-weaver/node-types';
|
|
16
|
-
import { weaverDetectProvider } from '@synergenius/flowweaver-pack-weaver/node-types';
|
|
17
|
-
import { weaverResolveTarget } from '@synergenius/flowweaver-pack-weaver/node-types';
|
|
18
|
-
import { weaverExecuteTarget } from '@synergenius/flowweaver-pack-weaver/node-types';
|
|
19
|
-
import { weaverSendNotify } from '@synergenius/flowweaver-pack-weaver/node-types';
|
|
20
|
-
import { weaverReport } from '@synergenius/flowweaver-pack-weaver/node-types';
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @flowWeaver workflow
|
|
24
|
-
* @node cfg weaverLoadConfig [color: "teal"] [icon: "settings"] [position: 100 0]
|
|
25
|
-
* @node detect weaverDetectProvider [color: "cyan"] [icon: "search"] [position: 250 0]
|
|
26
|
-
* @node target weaverResolveTarget [color: "blue"] [icon: "code"] [position: 400 0]
|
|
27
|
-
* @node exec weaverExecuteTarget [color: "purple"] [icon: "psychology"] [position: 550 0]
|
|
28
|
-
* @node notify weaverSendNotify [color: "yellow"] [icon: "notifications"] [position: 700 0]
|
|
29
|
-
* @node rep weaverReport [color: "green"] [icon: "description"] [position: 850 0]
|
|
30
|
-
* @path Start -> cfg -> detect -> target -> exec -> notify -> rep -> Exit
|
|
31
|
-
* @position Start 0 0
|
|
32
|
-
* @position Exit 1000 0
|
|
33
|
-
* @connect rep.summary -> Exit.summary
|
|
34
|
-
* @param execute [order:-1] - Execute
|
|
35
|
-
* @param params [order:0] - Params
|
|
36
|
-
* @returns onSuccess [order:-2] - On Success
|
|
37
|
-
* @returns onFailure [order:-1] - On Failure
|
|
38
|
-
* @returns summary [order:0] - Summary text
|
|
39
|
-
*/
|
|
40
|
-
export async function weaver(
|
|
41
|
-
execute: boolean,
|
|
42
|
-
params: Record<string, never> = {},
|
|
43
|
-
__abortSignal__?: AbortSignal,
|
|
44
|
-
): Promise<{ onSuccess: boolean; onFailure: boolean; summary: string | null }> {
|
|
45
|
-
// @flow-weaver-body-start
|
|
46
|
-
// (auto-generated by compiler)
|
|
47
|
-
// @flow-weaver-body-end
|
|
48
|
-
return { onSuccess: false, onFailure: true, summary: null };
|
|
49
|
-
}
|
|
50
|
-
`;
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
//# sourceMappingURL=weaver-template.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weaver-template.js","sourceRoot":"","sources":["../../src/templates/weaver-template.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,oCAAoC;IAC1C,WAAW,EAAE,8HAA8H;IAC3I,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QAClB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CV,CAAC;IACA,CAAC;CACF,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Session mode bot. Continuously polls the task queue and processes
|
|
3
|
-
* tasks through the full bot pipeline.
|
|
4
|
-
*
|
|
5
|
-
* @flowWeaver workflow
|
|
6
|
-
*
|
|
7
|
-
* @node cfg weaverLoadConfig [color: "teal"] [icon: "settings"] [position: 80 200]
|
|
8
|
-
* @node detect weaverDetectProvider [color: "cyan"] [icon: "search"] [position: 230 200]
|
|
9
|
-
* @node receive weaverReceiveTask [color: "blue"] [icon: "send"] [position: 400 200]
|
|
10
|
-
* @node route weaverRouteTask [color: "purple"] [icon: "flow"] [position: 570 200]
|
|
11
|
-
* @node readWf weaverReadWorkflow [color: "cyan"] [icon: "description"] [position: 740 450]
|
|
12
|
-
* @node context weaverBuildContext [color: "teal"] [icon: "code"] [position: 740 200]
|
|
13
|
-
* @node plan weaverPlanTask [color: "blue"] [icon: "psychology"] [position: 910 200]
|
|
14
|
-
* @node approve weaverApprovalGate [color: "orange"] [icon: "send"] [position: 1080 200]
|
|
15
|
-
* @node abort weaverAbortTask [color: "red"] [icon: "code"] [position: 1250 450]
|
|
16
|
-
* @node execRetry weaverExecValidateRetry [color: "purple"] [icon: "code"] [position: 1250 200]
|
|
17
|
-
* @node gitOps weaverGitOps [color: "green"] [icon: "code"] [position: 1420 100]
|
|
18
|
-
* @node notify weaverSendNotify [color: "yellow"] [icon: "send"] [position: 1420 300]
|
|
19
|
-
* @node report weaverBotReport [color: "green"] [icon: "description"] [position: 1600 200]
|
|
20
|
-
*
|
|
21
|
-
* @path Start -> cfg -> detect -> receive -> route -> context -> plan -> approve -> execRetry -> gitOps -> report -> Exit
|
|
22
|
-
* @path execRetry -> notify
|
|
23
|
-
* @path route:fail -> readWf
|
|
24
|
-
* @path approve:fail -> abort
|
|
25
|
-
*
|
|
26
|
-
* @connect readWf.onSuccess -> report.execute
|
|
27
|
-
* @connect abort.onSuccess -> report.execute
|
|
28
|
-
* @connect notify.onSuccess -> report.execute
|
|
29
|
-
*
|
|
30
|
-
* @connect route.taskJson -> readWf.taskJson
|
|
31
|
-
* @connect route.projectDir -> readWf.projectDir
|
|
32
|
-
* @connect readWf.resultJson -> report.readResult
|
|
33
|
-
*
|
|
34
|
-
* @connect context.contextBundle -> plan.contextBundle
|
|
35
|
-
*
|
|
36
|
-
* @connect approve.rejectionReason -> abort.rejectionReason
|
|
37
|
-
* @connect approve.taskJson -> abort.taskJson
|
|
38
|
-
* @connect approve.projectDir -> abort.projectDir
|
|
39
|
-
* @connect abort.resultJson -> report.abortResult
|
|
40
|
-
*
|
|
41
|
-
* @connect execRetry.resultJson -> notify.resultJson
|
|
42
|
-
* @connect execRetry.projectDir -> notify.targetPath
|
|
43
|
-
*
|
|
44
|
-
* @connect execRetry.resultJson -> report.mainResult
|
|
45
|
-
* @connect execRetry.filesModified -> report.filesModified
|
|
46
|
-
* @connect gitOps.gitResultJson -> report.gitResultJson
|
|
47
|
-
*
|
|
48
|
-
* @connect report.summary -> Exit.summary
|
|
49
|
-
*
|
|
50
|
-
* @position Start 0 200
|
|
51
|
-
* @position Exit 1750 200
|
|
52
|
-
*
|
|
53
|
-
* @param execute [order:-1] - Execute
|
|
54
|
-
* @param taskJson [order:0] [optional] - Task instruction (JSON)
|
|
55
|
-
* @param projectDir [order:1] [optional] - Project directory
|
|
56
|
-
* @returns onSuccess [order:-2] - On Success
|
|
57
|
-
* @returns onFailure [order:-1] - On Failure
|
|
58
|
-
* @returns summary [order:0] - Summary text
|
|
59
|
-
*/
|
|
60
|
-
export declare function weaverBotSession(execute: boolean, taskJson?: string, projectDir?: string, __abortSignal__?: AbortSignal): Promise<{
|
|
61
|
-
onSuccess: boolean;
|
|
62
|
-
onFailure: boolean;
|
|
63
|
-
summary: string | null;
|
|
64
|
-
}>;
|
|
65
|
-
//# sourceMappingURL=weaver-bot-session.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weaver-bot-session.d.ts","sourceRoot":"","sources":["../../src/workflows/weaver-bot-session.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,WAAW,GAC5B,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAK7E"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// Managed weaver bot session workflow - continuously processes task queue.
|
|
2
|
-
// Run `weaver eject` to customize.
|
|
3
|
-
/**
|
|
4
|
-
* Session mode bot. Continuously polls the task queue and processes
|
|
5
|
-
* tasks through the full bot pipeline.
|
|
6
|
-
*
|
|
7
|
-
* @flowWeaver workflow
|
|
8
|
-
*
|
|
9
|
-
* @node cfg weaverLoadConfig [color: "teal"] [icon: "settings"] [position: 80 200]
|
|
10
|
-
* @node detect weaverDetectProvider [color: "cyan"] [icon: "search"] [position: 230 200]
|
|
11
|
-
* @node receive weaverReceiveTask [color: "blue"] [icon: "send"] [position: 400 200]
|
|
12
|
-
* @node route weaverRouteTask [color: "purple"] [icon: "flow"] [position: 570 200]
|
|
13
|
-
* @node readWf weaverReadWorkflow [color: "cyan"] [icon: "description"] [position: 740 450]
|
|
14
|
-
* @node context weaverBuildContext [color: "teal"] [icon: "code"] [position: 740 200]
|
|
15
|
-
* @node plan weaverPlanTask [color: "blue"] [icon: "psychology"] [position: 910 200]
|
|
16
|
-
* @node approve weaverApprovalGate [color: "orange"] [icon: "send"] [position: 1080 200]
|
|
17
|
-
* @node abort weaverAbortTask [color: "red"] [icon: "code"] [position: 1250 450]
|
|
18
|
-
* @node execRetry weaverExecValidateRetry [color: "purple"] [icon: "code"] [position: 1250 200]
|
|
19
|
-
* @node gitOps weaverGitOps [color: "green"] [icon: "code"] [position: 1420 100]
|
|
20
|
-
* @node notify weaverSendNotify [color: "yellow"] [icon: "send"] [position: 1420 300]
|
|
21
|
-
* @node report weaverBotReport [color: "green"] [icon: "description"] [position: 1600 200]
|
|
22
|
-
*
|
|
23
|
-
* @path Start -> cfg -> detect -> receive -> route -> context -> plan -> approve -> execRetry -> gitOps -> report -> Exit
|
|
24
|
-
* @path execRetry -> notify
|
|
25
|
-
* @path route:fail -> readWf
|
|
26
|
-
* @path approve:fail -> abort
|
|
27
|
-
*
|
|
28
|
-
* @connect readWf.onSuccess -> report.execute
|
|
29
|
-
* @connect abort.onSuccess -> report.execute
|
|
30
|
-
* @connect notify.onSuccess -> report.execute
|
|
31
|
-
*
|
|
32
|
-
* @connect route.taskJson -> readWf.taskJson
|
|
33
|
-
* @connect route.projectDir -> readWf.projectDir
|
|
34
|
-
* @connect readWf.resultJson -> report.readResult
|
|
35
|
-
*
|
|
36
|
-
* @connect context.contextBundle -> plan.contextBundle
|
|
37
|
-
*
|
|
38
|
-
* @connect approve.rejectionReason -> abort.rejectionReason
|
|
39
|
-
* @connect approve.taskJson -> abort.taskJson
|
|
40
|
-
* @connect approve.projectDir -> abort.projectDir
|
|
41
|
-
* @connect abort.resultJson -> report.abortResult
|
|
42
|
-
*
|
|
43
|
-
* @connect execRetry.resultJson -> notify.resultJson
|
|
44
|
-
* @connect execRetry.projectDir -> notify.targetPath
|
|
45
|
-
*
|
|
46
|
-
* @connect execRetry.resultJson -> report.mainResult
|
|
47
|
-
* @connect execRetry.filesModified -> report.filesModified
|
|
48
|
-
* @connect gitOps.gitResultJson -> report.gitResultJson
|
|
49
|
-
*
|
|
50
|
-
* @connect report.summary -> Exit.summary
|
|
51
|
-
*
|
|
52
|
-
* @position Start 0 200
|
|
53
|
-
* @position Exit 1750 200
|
|
54
|
-
*
|
|
55
|
-
* @param execute [order:-1] - Execute
|
|
56
|
-
* @param taskJson [order:0] [optional] - Task instruction (JSON)
|
|
57
|
-
* @param projectDir [order:1] [optional] - Project directory
|
|
58
|
-
* @returns onSuccess [order:-2] - On Success
|
|
59
|
-
* @returns onFailure [order:-1] - On Failure
|
|
60
|
-
* @returns summary [order:0] - Summary text
|
|
61
|
-
*/
|
|
62
|
-
export async function weaverBotSession(execute, taskJson, projectDir, __abortSignal__) {
|
|
63
|
-
// @flow-weaver-body-start
|
|
64
|
-
// (auto-generated by compiler)
|
|
65
|
-
// @flow-weaver-body-end
|
|
66
|
-
return { onSuccess: false, onFailure: true, summary: null };
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=weaver-bot-session.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weaver-bot-session.js","sourceRoot":"","sources":["../../src/workflows/weaver-bot-session.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,mCAAmC;AAgBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgB,EAChB,QAAiB,EACjB,UAAmB,EACnB,eAA6B;IAE7B,0BAA0B;IAC1B,+BAA+B;IAC/B,wBAAwB;IACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9D,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @flowWeaver workflow
|
|
3
|
-
* @node cfg weaverLoadConfig [color: "teal"] [icon: "settings"] [position: 200 0]
|
|
4
|
-
* @node detect weaverDetectProvider [color: "cyan"] [icon: "search"] [position: 400 0]
|
|
5
|
-
* @node target weaverResolveTarget [color: "blue"] [icon: "code"] [position: 600 0]
|
|
6
|
-
* @node exec weaverExecuteTarget [color: "purple"] [icon: "psychology"] [position: 800 0]
|
|
7
|
-
* @node notify weaverSendNotify [color: "yellow"] [icon: "notifications"] [position: 1000 0]
|
|
8
|
-
* @node rep weaverReport [color: "green"] [icon: "description"] [position: 1200 0]
|
|
9
|
-
* @path Start -> cfg -> detect -> target -> exec -> notify -> rep -> Exit
|
|
10
|
-
* @position Start 0 0
|
|
11
|
-
* @position Exit 1400 0
|
|
12
|
-
* @connect rep.summary -> Exit.summary
|
|
13
|
-
* @param execute [order:-1] - Execute
|
|
14
|
-
* @param params [order:0] [hidden] - Params
|
|
15
|
-
* @returns onSuccess [order:-2] - On Success
|
|
16
|
-
* @returns onFailure [order:-1] [hidden] - On Failure
|
|
17
|
-
* @returns summary [order:0] - Summary text
|
|
18
|
-
*/
|
|
19
|
-
export declare function weaver(execute: boolean, params?: Record<string, never>, __abortSignal__?: AbortSignal): Promise<{
|
|
20
|
-
onSuccess: boolean;
|
|
21
|
-
onFailure: boolean;
|
|
22
|
-
summary: string | null;
|
|
23
|
-
}>;
|
|
24
|
-
//# sourceMappingURL=weaver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weaver.d.ts","sourceRoot":"","sources":["../../src/workflows/weaver.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAM,EAClC,eAAe,CAAC,EAAE,WAAW,GAC5B,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAK7E"}
|
package/dist/workflows/weaver.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// Managed weaver workflow - shipped with the pack.
|
|
2
|
-
// Users on managed mode use this automatically.
|
|
3
|
-
// Run `weaver eject` to customize.
|
|
4
|
-
/**
|
|
5
|
-
* @flowWeaver workflow
|
|
6
|
-
* @node cfg weaverLoadConfig [color: "teal"] [icon: "settings"] [position: 200 0]
|
|
7
|
-
* @node detect weaverDetectProvider [color: "cyan"] [icon: "search"] [position: 400 0]
|
|
8
|
-
* @node target weaverResolveTarget [color: "blue"] [icon: "code"] [position: 600 0]
|
|
9
|
-
* @node exec weaverExecuteTarget [color: "purple"] [icon: "psychology"] [position: 800 0]
|
|
10
|
-
* @node notify weaverSendNotify [color: "yellow"] [icon: "notifications"] [position: 1000 0]
|
|
11
|
-
* @node rep weaverReport [color: "green"] [icon: "description"] [position: 1200 0]
|
|
12
|
-
* @path Start -> cfg -> detect -> target -> exec -> notify -> rep -> Exit
|
|
13
|
-
* @position Start 0 0
|
|
14
|
-
* @position Exit 1400 0
|
|
15
|
-
* @connect rep.summary -> Exit.summary
|
|
16
|
-
* @param execute [order:-1] - Execute
|
|
17
|
-
* @param params [order:0] [hidden] - Params
|
|
18
|
-
* @returns onSuccess [order:-2] - On Success
|
|
19
|
-
* @returns onFailure [order:-1] [hidden] - On Failure
|
|
20
|
-
* @returns summary [order:0] - Summary text
|
|
21
|
-
*/
|
|
22
|
-
export async function weaver(execute, params = {}, __abortSignal__) {
|
|
23
|
-
// @flow-weaver-body-start
|
|
24
|
-
// (auto-generated by compiler)
|
|
25
|
-
// @flow-weaver-body-end
|
|
26
|
-
return { onSuccess: false, onFailure: true, summary: null };
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=weaver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"weaver.js","sourceRoot":"","sources":["../../src/workflows/weaver.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,gDAAgD;AAChD,mCAAmC;AASnC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAgB,EAChB,SAAgC,EAAE,EAClC,eAA6B;IAE7B,0BAA0B;IAC1B,+BAA+B;IAC/B,wBAAwB;IACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC9D,CAAC"}
|