@synergenius/flow-weaver-pack-weaver 0.8.2 → 0.9.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.
Files changed (75) hide show
  1. package/LICENSE +23 -0
  2. package/dist/bot/audit-store.d.ts.map +1 -1
  3. package/dist/bot/audit-store.js +3 -11
  4. package/dist/bot/audit-store.js.map +1 -1
  5. package/dist/bot/cost-store.d.ts.map +1 -1
  6. package/dist/bot/cost-store.js +10 -14
  7. package/dist/bot/cost-store.js.map +1 -1
  8. package/dist/bot/genesis-store.d.ts.map +1 -1
  9. package/dist/bot/genesis-store.js +11 -20
  10. package/dist/bot/genesis-store.js.map +1 -1
  11. package/dist/bot/index.d.ts +3 -0
  12. package/dist/bot/index.d.ts.map +1 -1
  13. package/dist/bot/index.js +3 -0
  14. package/dist/bot/index.js.map +1 -1
  15. package/dist/bot/pipeline-runner.d.ts.map +1 -1
  16. package/dist/bot/pipeline-runner.js +8 -1
  17. package/dist/bot/pipeline-runner.js.map +1 -1
  18. package/dist/bot/run-store.d.ts.map +1 -1
  19. package/dist/bot/run-store.js +2 -10
  20. package/dist/bot/run-store.js.map +1 -1
  21. package/dist/bot/runner.d.ts.map +1 -1
  22. package/dist/bot/runner.js +12 -2
  23. package/dist/bot/runner.js.map +1 -1
  24. package/dist/bot/safe-json.d.ts +32 -0
  25. package/dist/bot/safe-json.d.ts.map +1 -0
  26. package/dist/bot/safe-json.js +56 -0
  27. package/dist/bot/safe-json.js.map +1 -0
  28. package/dist/bot/safe-path.d.ts +18 -0
  29. package/dist/bot/safe-path.d.ts.map +1 -0
  30. package/dist/bot/safe-path.js +40 -0
  31. package/dist/bot/safe-path.js.map +1 -0
  32. package/dist/bot/task-queue.d.ts.map +1 -1
  33. package/dist/bot/task-queue.js +7 -10
  34. package/dist/bot/task-queue.js.map +1 -1
  35. package/dist/cli-bridge.d.ts.map +1 -1
  36. package/dist/cli-bridge.js +6 -3
  37. package/dist/cli-bridge.js.map +1 -1
  38. package/dist/cli-handlers.d.ts +3 -1
  39. package/dist/cli-handlers.d.ts.map +1 -1
  40. package/dist/cli-handlers.js +146 -0
  41. package/dist/cli-handlers.js.map +1 -1
  42. package/dist/handlers/on-bot-completed.d.ts +21 -0
  43. package/dist/handlers/on-bot-completed.d.ts.map +1 -0
  44. package/dist/handlers/on-bot-completed.js +28 -0
  45. package/dist/handlers/on-bot-completed.js.map +1 -0
  46. package/dist/handlers/on-execution-failure.d.ts +23 -0
  47. package/dist/handlers/on-execution-failure.d.ts.map +1 -0
  48. package/dist/handlers/on-execution-failure.js +28 -0
  49. package/dist/handlers/on-execution-failure.js.map +1 -0
  50. package/dist/handlers/scheduled-run.d.ts +24 -0
  51. package/dist/handlers/scheduled-run.d.ts.map +1 -0
  52. package/dist/handlers/scheduled-run.js +25 -0
  53. package/dist/handlers/scheduled-run.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +4 -0
  57. package/dist/index.js.map +1 -1
  58. package/flowweaver.manifest.json +93 -2
  59. package/package.json +1 -1
  60. package/src/bot/audit-store.ts +3 -12
  61. package/src/bot/cost-store.ts +11 -12
  62. package/src/bot/genesis-store.ts +11 -17
  63. package/src/bot/index.ts +5 -0
  64. package/src/bot/pipeline-runner.ts +7 -1
  65. package/src/bot/run-store.ts +2 -11
  66. package/src/bot/runner.ts +14 -2
  67. package/src/bot/safe-json.ts +76 -0
  68. package/src/bot/safe-path.ts +44 -0
  69. package/src/bot/task-queue.ts +6 -8
  70. package/src/cli-bridge.ts +8 -3
  71. package/src/cli-handlers.ts +155 -1
  72. package/src/handlers/on-bot-completed.ts +48 -0
  73. package/src/handlers/on-execution-failure.ts +42 -0
  74. package/src/handlers/scheduled-run.ts +42 -0
  75. package/src/index.ts +5 -0
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Safe JSON parsing utilities.
3
+ *
4
+ * Wraps JSON.parse with proper error handling and optional context for
5
+ * meaningful error messages. Prevents crashes from malformed config files,
6
+ * corrupt NDJSON lines, or unexpected AI output.
7
+ */
8
+ /**
9
+ * Parse JSON safely, returning a discriminated result instead of throwing.
10
+ */
11
+ export function safeJsonParse(text, context) {
12
+ try {
13
+ return { ok: true, value: JSON.parse(text) };
14
+ }
15
+ catch (err) {
16
+ const msg = err instanceof Error ? err.message : String(err);
17
+ const prefix = context ? `${context}: ` : '';
18
+ return { ok: false, error: `${prefix}Invalid JSON — ${msg}` };
19
+ }
20
+ }
21
+ /**
22
+ * Parse JSON or return a fallback value on failure.
23
+ * Optionally logs a warning when parsing fails.
24
+ */
25
+ export function jsonParseOr(text, fallback, context) {
26
+ const result = safeJsonParse(text, context);
27
+ if (result.ok)
28
+ return result.value;
29
+ if (context) {
30
+ console.error(`[weaver] ${result.error}`);
31
+ }
32
+ return fallback;
33
+ }
34
+ /**
35
+ * Parse NDJSON (newline-delimited JSON) safely.
36
+ * Skips corrupt lines and optionally reports them.
37
+ */
38
+ export function parseNdjson(content, context) {
39
+ const lines = content.split('\n').filter((line) => line.trim().length > 0);
40
+ const records = [];
41
+ let errors = 0;
42
+ for (const line of lines) {
43
+ const result = safeJsonParse(line);
44
+ if (result.ok) {
45
+ records.push(result.value);
46
+ }
47
+ else {
48
+ errors++;
49
+ }
50
+ }
51
+ if (errors > 0 && context) {
52
+ console.error(`[weaver] ${context}: skipped ${errors} corrupt line(s)`);
53
+ }
54
+ return { records, errors };
55
+ }
56
+ //# sourceMappingURL=safe-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-json.js","sourceRoot":"","sources":["../../src/bot/safe-json.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,OAAgB;IAEhB,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,EAAE,CAAC;IACpD,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAkB,GAAG,EAAE,EAAE,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,QAAW,EACX,OAAgB;IAEhB,MAAM,MAAM,GAAG,aAAa,CAAI,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,OAAe,EACf,OAAgB;IAEhB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,OAAO,GAAQ,EAAE,CAAC;IACxB,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,aAAa,CAAI,IAAI,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,aAAa,MAAM,kBAAkB,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Path safety utilities.
3
+ *
4
+ * Prevents path traversal attacks and ensures file operations stay within
5
+ * expected boundaries. Critical for any code that constructs paths from
6
+ * user input, AI output, or external configuration.
7
+ */
8
+ /**
9
+ * Validate that a relative path does not escape the base directory.
10
+ * Returns the resolved absolute path if safe, or null if the path
11
+ * attempts traversal.
12
+ */
13
+ export declare function safePath(baseDir: string, relativePath: string): string | null;
14
+ /**
15
+ * Validate and resolve a path, throwing a descriptive error on traversal.
16
+ */
17
+ export declare function safePathOrThrow(baseDir: string, relativePath: string, context?: string): string;
18
+ //# sourceMappingURL=safe-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-path.d.ts","sourceRoot":"","sources":["../../src/bot/safe-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgB7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAO/F"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Path safety utilities.
3
+ *
4
+ * Prevents path traversal attacks and ensures file operations stay within
5
+ * expected boundaries. Critical for any code that constructs paths from
6
+ * user input, AI output, or external configuration.
7
+ */
8
+ import * as path from 'node:path';
9
+ /**
10
+ * Validate that a relative path does not escape the base directory.
11
+ * Returns the resolved absolute path if safe, or null if the path
12
+ * attempts traversal.
13
+ */
14
+ export function safePath(baseDir, relativePath) {
15
+ const normalized = path.normalize(relativePath);
16
+ // Reject absolute paths and explicit traversal
17
+ if (path.isAbsolute(normalized))
18
+ return null;
19
+ if (normalized.startsWith('..'))
20
+ return null;
21
+ const resolved = path.resolve(baseDir, normalized);
22
+ const resolvedBase = path.resolve(baseDir);
23
+ // Ensure resolved path is within baseDir
24
+ if (!resolved.startsWith(resolvedBase + path.sep) && resolved !== resolvedBase) {
25
+ return null;
26
+ }
27
+ return resolved;
28
+ }
29
+ /**
30
+ * Validate and resolve a path, throwing a descriptive error on traversal.
31
+ */
32
+ export function safePathOrThrow(baseDir, relativePath, context) {
33
+ const resolved = safePath(baseDir, relativePath);
34
+ if (resolved === null) {
35
+ const prefix = context ? `${context}: ` : '';
36
+ throw new Error(`${prefix}Unsafe file path rejected: "${relativePath}"`);
37
+ }
38
+ return resolved;
39
+ }
40
+ //# sourceMappingURL=safe-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-path.js","sourceRoot":"","sources":["../../src/bot/safe-path.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,YAAoB;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAEhD,+CAA+C;IAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3C,yCAAyC;IACzC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,YAAoB,EAAE,OAAgB;IACrF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,+BAA+B,YAAY,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-queue.d.ts","sourceRoot":"","sources":["../../src/bot/task-queue.ts"],"names":[],"mappings":"AAMA,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;IAKlB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQlC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IASxB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI7B,YAAY;IAW1B,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,QAAQ;CAKjB"}
1
+ {"version":3,"file":"task-queue.d.ts","sourceRoot":"","sources":["../../src/bot/task-queue.ts"],"names":[],"mappings":"AAOA,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;IAKlB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,GAAG,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQlC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUpC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IASxB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI7B,YAAY;IAW1B,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,QAAQ;CAKjB"}
@@ -3,6 +3,7 @@ import * as path from 'node:path';
3
3
  import * as os from 'node:os';
4
4
  import * as crypto from 'node:crypto';
5
5
  import { withFileLock } from './file-lock.js';
6
+ import { parseNdjson } from './safe-json.js';
6
7
  export class TaskQueue {
7
8
  filePath;
8
9
  constructor(dir) {
@@ -76,17 +77,13 @@ export class TaskQueue {
76
77
  });
77
78
  }
78
79
  readAll() {
79
- try {
80
- if (!fs.existsSync(this.filePath))
81
- return [];
82
- const content = fs.readFileSync(this.filePath, 'utf-8').trim();
83
- if (!content)
84
- return [];
85
- return content.split('\n').map(line => JSON.parse(line));
86
- }
87
- catch {
80
+ if (!fs.existsSync(this.filePath))
88
81
  return [];
89
- }
82
+ const content = fs.readFileSync(this.filePath, 'utf-8').trim();
83
+ if (!content)
84
+ return [];
85
+ const { records } = parseNdjson(content, 'task-queue');
86
+ return records;
90
87
  }
91
88
  writeAll(tasks) {
92
89
  const dir = path.dirname(this.filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/bot/task-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-queue.js","sourceRoot":"","sources":["../../src/bot/task-queue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-bridge.d.ts","sourceRoot":"","sources":["../src/cli-bridge.ts"],"names":[],"mappings":"AA0BA,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAWf"}
1
+ {"version":3,"file":"cli-bridge.d.ts","sourceRoot":"","sources":["../src/cli-bridge.ts"],"names":[],"mappings":"AA2BA,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC,IAAI,CAAC,CAef"}
@@ -1,4 +1,4 @@
1
- import { handleRun, handleHistory, handleCosts, handleWatch, handleCron, handlePipeline, handleDashboard, handleProviders, handleEject, handleBot, handleSession, handleSteer, handleQueue, handleGenesis, handleAudit, } from './cli-handlers.js';
1
+ import { handleRun, handleHistory, handleCosts, handleWatch, handleCron, handlePipeline, handleDashboard, handleProviders, handleEject, handleBot, handleSession, handleSteer, handleQueue, handleGenesis, handleAudit, handleInit, printHelp, } from './cli-handlers.js';
2
2
  const handlers = {
3
3
  run: handleRun,
4
4
  history: handleHistory,
@@ -15,16 +15,19 @@ const handlers = {
15
15
  queue: handleQueue,
16
16
  genesis: handleGenesis,
17
17
  audit: handleAudit,
18
+ init: handleInit,
18
19
  };
19
20
  export async function handleCommand(name, args) {
20
21
  const handler = handlers[name];
21
22
  if (!handler) {
22
23
  throw new Error(`Unknown weaver command: ${name}`);
23
24
  }
24
- // Import parseArgs to handle the remaining flags
25
25
  const { parseArgs } = await import('./cli-handlers.js');
26
- // Prepend dummy entries so parseArgs skips argv[0] and argv[1]
27
26
  const opts = parseArgs(['node', 'weaver', name, ...args]);
27
+ if (opts.showHelp) {
28
+ printHelp(name);
29
+ return;
30
+ }
28
31
  await handler(opts);
29
32
  }
30
33
  //# sourceMappingURL=cli-bridge.js.map
@@ -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,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAC/D,aAAa,EAAE,WAAW,GAC3B,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;IAClB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAc;IAEd,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"}
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,EAC/D,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,GAClD,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;IAClB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,UAAU;CACjB,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,IAAc;IAEd,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,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export interface ParsedArgs {
2
- command: 'run' | 'history' | 'costs' | 'providers' | 'watch' | 'cron' | 'pipeline' | 'dashboard' | 'eject' | 'bot' | 'session' | 'steer' | 'queue' | 'genesis' | 'audit';
2
+ command: 'run' | 'history' | 'costs' | 'providers' | 'watch' | 'cron' | 'pipeline' | 'dashboard' | 'eject' | 'bot' | 'session' | 'steer' | 'queue' | 'genesis' | 'audit' | 'init';
3
3
  file?: string;
4
4
  verbose: boolean;
5
5
  dryRun: boolean;
@@ -76,4 +76,6 @@ export declare function handleSteer(opts: ParsedArgs): Promise<void>;
76
76
  export declare function handleQueue(opts: ParsedArgs): Promise<void>;
77
77
  export declare function handleGenesis(opts: ParsedArgs): Promise<void>;
78
78
  export declare function handleAudit(opts: ParsedArgs): Promise<void>;
79
+ export declare function printHelp(command?: string): void;
80
+ export declare function handleInit(opts: ParsedArgs): Promise<void>;
79
81
  //# sourceMappingURL=cli-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-handlers.d.ts","sourceRoot":"","sources":["../src/cli-handlers.ts"],"names":[],"mappings":"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"}
@@ -228,6 +228,9 @@ export function parseArgs(argv) {
228
228
  else if (arg === 'genesis') {
229
229
  result.command = 'genesis';
230
230
  }
231
+ else if (arg === 'init') {
232
+ result.command = 'init';
233
+ }
231
234
  else if (arg === '--init') {
232
235
  result.genesisInit = true;
233
236
  }
@@ -1332,4 +1335,147 @@ function printAuditEvents(events, json) {
1332
1335
  console.log(`${time} [${e.type}]${dataStr}`);
1333
1336
  }
1334
1337
  }
1338
+ // --- Help ---
1339
+ const COMMAND_HELP = {
1340
+ run: 'run <workflow.ts> Execute a workflow with AI agent channel',
1341
+ bot: 'bot "task description" Create or modify a workflow from a task',
1342
+ init: 'init Create a .weaver.json config file',
1343
+ history: 'history [id] [--limit N] Show execution history',
1344
+ costs: 'costs [--since 7d] Show AI token usage and costs',
1345
+ providers: 'providers List available AI providers',
1346
+ watch: 'watch <workflow.ts> Re-run on file changes',
1347
+ cron: 'cron "*/5 * * * *" <file> Schedule workflow execution',
1348
+ pipeline: 'pipeline <config.json> Run multi-stage pipeline',
1349
+ dashboard: 'dashboard <file> [--port N] Start live execution dashboard',
1350
+ session: 'session Start continuous task queue processing',
1351
+ queue: 'queue <add|list|clear> [task] Manage task queue',
1352
+ steer: 'steer <pause|resume|cancel> Control a running session',
1353
+ genesis: 'genesis [--init] [--watch] Run self-evolution cycle',
1354
+ eject: 'eject [--workflow bot|genesis] Export managed workflows',
1355
+ audit: 'audit [runId] [--limit N] View audit log',
1356
+ };
1357
+ export function printHelp(command) {
1358
+ if (command && command !== 'help' && COMMAND_HELP[command]) {
1359
+ console.log(`\nUsage: flow-weaver weaver ${COMMAND_HELP[command]}\n`);
1360
+ printCommandHelp(command);
1361
+ return;
1362
+ }
1363
+ console.log(`
1364
+ Weaver — AI-powered workflow automation for Flow Weaver
1365
+
1366
+ Usage: flow-weaver weaver <command> [options]
1367
+
1368
+ Commands:
1369
+ ${Object.values(COMMAND_HELP).join('\n ')}
1370
+
1371
+ Global options:
1372
+ -h, --help Show help
1373
+ -v, --verbose Show detailed output
1374
+ -n, --dry-run Preview without executing
1375
+ --quiet Suppress output
1376
+ -p, --params <json> Input parameters as JSON
1377
+ -c, --config <path> Path to .weaver.json config
1378
+ --approval <mode> Override approval mode (auto|prompt|web|timeout-auto)
1379
+
1380
+ Quick start:
1381
+ flow-weaver weaver init # create .weaver.json
1382
+ flow-weaver weaver providers # check available AI providers
1383
+ flow-weaver weaver bot "Create a hello world workflow" # create your first workflow
1384
+ `);
1385
+ }
1386
+ function printCommandHelp(command) {
1387
+ const help = {
1388
+ run: `Options:
1389
+ --dashboard Enable live dashboard
1390
+ --port <n> Dashboard port (default: 4242)`,
1391
+ bot: `Options:
1392
+ --file <path> Target file for modification (switches to modify mode)
1393
+ --template <name> Use a template for scaffolding
1394
+ --batch <n> Process multiple tasks
1395
+ --auto-approve Skip approval gate
1396
+ --dashboard Enable live dashboard`,
1397
+ history: `Options:
1398
+ --limit <n> Number of records (default: 20)
1399
+ --outcome <type> Filter: completed, failed, error, skipped
1400
+ --workflow <path> Filter by workflow file
1401
+ --since <range> Time range: 7d, 2h, or ISO date
1402
+ --json Output as JSON
1403
+ --prune Remove old records
1404
+ --clear Delete all history`,
1405
+ costs: `Options:
1406
+ --since <range> Time range: 7d, 30d, or ISO date
1407
+ --model <name> Filter by model`,
1408
+ genesis: `Options:
1409
+ --init Initialize .genesis/config.json
1410
+ --watch Run multiple evolution cycles
1411
+ --project-dir <p> Project directory`,
1412
+ watch: `Options:
1413
+ --debounce <ms> Debounce interval (default: 500)
1414
+ --log <path> Log file for daemon output`,
1415
+ pipeline: `Options:
1416
+ --stage <id> Run a specific stage only`,
1417
+ queue: `Actions:
1418
+ add "task" Add task to queue
1419
+ list Show queue contents
1420
+ clear Remove all tasks
1421
+ remove <id> Remove a specific task`,
1422
+ steer: `Commands:
1423
+ pause Pause current execution
1424
+ resume Resume paused execution
1425
+ cancel Cancel current execution
1426
+ redirect "task" Switch to a different task
1427
+ queue "task" Add task to queue from steer`,
1428
+ };
1429
+ if (help[command]) {
1430
+ console.log(help[command]);
1431
+ console.log('');
1432
+ }
1433
+ }
1434
+ // --- Init ---
1435
+ export async function handleInit(opts) {
1436
+ const dir = opts.file ? path.resolve(opts.file) : process.cwd();
1437
+ const configPath = path.join(dir, '.weaver.json');
1438
+ if (fs.existsSync(configPath)) {
1439
+ console.log(`[weaver] Config already exists: ${configPath}`);
1440
+ console.log(' Edit it directly or delete it to regenerate.');
1441
+ return;
1442
+ }
1443
+ // Detect best available provider
1444
+ let provider = 'auto';
1445
+ try {
1446
+ if (process.env.ANTHROPIC_API_KEY) {
1447
+ provider = 'anthropic';
1448
+ }
1449
+ else {
1450
+ const { execFileSync } = await import('node:child_process');
1451
+ try {
1452
+ execFileSync('claude', ['--version'], { stdio: 'pipe' });
1453
+ provider = 'claude-cli';
1454
+ }
1455
+ catch {
1456
+ try {
1457
+ execFileSync('copilot', ['--version'], { stdio: 'pipe' });
1458
+ provider = 'copilot-cli';
1459
+ }
1460
+ catch {
1461
+ // Stay with auto
1462
+ }
1463
+ }
1464
+ }
1465
+ }
1466
+ catch {
1467
+ // Stay with auto
1468
+ }
1469
+ const config = {
1470
+ provider: provider === 'auto' ? 'auto' : { name: provider },
1471
+ approval: 'auto',
1472
+ };
1473
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
1474
+ console.log(`\x1b[32m✓\x1b[0m Created ${configPath}`);
1475
+ console.log(` Provider: ${provider}`);
1476
+ console.log('');
1477
+ console.log('Next steps:');
1478
+ console.log(' flow-weaver weaver providers # verify provider detection');
1479
+ console.log(' flow-weaver weaver bot "Create a ..." # create your first workflow');
1480
+ }
1335
1481
  //# sourceMappingURL=cli-handlers.js.map