@litmers/cursorflow-orchestrator 0.1.18 → 0.1.20

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 (68) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +25 -7
  3. package/dist/cli/clean.js +7 -6
  4. package/dist/cli/clean.js.map +1 -1
  5. package/dist/cli/index.js +5 -1
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/init.js +7 -6
  8. package/dist/cli/init.js.map +1 -1
  9. package/dist/cli/logs.js +50 -42
  10. package/dist/cli/logs.js.map +1 -1
  11. package/dist/cli/monitor.js +15 -14
  12. package/dist/cli/monitor.js.map +1 -1
  13. package/dist/cli/prepare.js +37 -20
  14. package/dist/cli/prepare.js.map +1 -1
  15. package/dist/cli/resume.js +193 -40
  16. package/dist/cli/resume.js.map +1 -1
  17. package/dist/cli/run.js +3 -2
  18. package/dist/cli/run.js.map +1 -1
  19. package/dist/cli/signal.js +7 -7
  20. package/dist/cli/signal.js.map +1 -1
  21. package/dist/core/orchestrator.d.ts +2 -1
  22. package/dist/core/orchestrator.js +48 -91
  23. package/dist/core/orchestrator.js.map +1 -1
  24. package/dist/core/runner.js +55 -20
  25. package/dist/core/runner.js.map +1 -1
  26. package/dist/utils/config.js +7 -6
  27. package/dist/utils/config.js.map +1 -1
  28. package/dist/utils/doctor.js +7 -6
  29. package/dist/utils/doctor.js.map +1 -1
  30. package/dist/utils/enhanced-logger.js +14 -11
  31. package/dist/utils/enhanced-logger.js.map +1 -1
  32. package/dist/utils/git.js +163 -10
  33. package/dist/utils/git.js.map +1 -1
  34. package/dist/utils/log-formatter.d.ts +16 -0
  35. package/dist/utils/log-formatter.js +194 -0
  36. package/dist/utils/log-formatter.js.map +1 -0
  37. package/dist/utils/path.d.ts +19 -0
  38. package/dist/utils/path.js +77 -0
  39. package/dist/utils/path.js.map +1 -0
  40. package/dist/utils/state.d.ts +4 -1
  41. package/dist/utils/state.js +11 -8
  42. package/dist/utils/state.js.map +1 -1
  43. package/dist/utils/template.d.ts +14 -0
  44. package/dist/utils/template.js +122 -0
  45. package/dist/utils/template.js.map +1 -0
  46. package/dist/utils/types.d.ts +1 -0
  47. package/package.json +1 -1
  48. package/src/cli/clean.ts +7 -6
  49. package/src/cli/index.ts +5 -1
  50. package/src/cli/init.ts +7 -6
  51. package/src/cli/logs.ts +52 -42
  52. package/src/cli/monitor.ts +15 -14
  53. package/src/cli/prepare.ts +39 -20
  54. package/src/cli/resume.ts +810 -626
  55. package/src/cli/run.ts +3 -2
  56. package/src/cli/signal.ts +7 -6
  57. package/src/core/orchestrator.ts +62 -91
  58. package/src/core/runner.ts +58 -20
  59. package/src/utils/config.ts +7 -6
  60. package/src/utils/doctor.ts +7 -6
  61. package/src/utils/enhanced-logger.ts +14 -11
  62. package/src/utils/git.ts +145 -11
  63. package/src/utils/log-formatter.ts +162 -0
  64. package/src/utils/path.ts +45 -0
  65. package/src/utils/state.ts +16 -8
  66. package/src/utils/template.ts +92 -0
  67. package/src/utils/types.ts +1 -0
  68. package/templates/basic.json +21 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.1.20] - 2025-12-22
9
+
10
+ ### Fixed
11
+ - **Security**: Resolved potential path traversal vulnerabilities in `Runner` and `Template` utilities by using `safeJoin`.
12
+ - **Logging**: Improved terminal output formatting and log rotation management.
13
+ - **Orchestration**: Refined lane status reporting and error handling.
14
+
15
+ ### Added
16
+ - **Log Formatting**: Added `src/utils/log-formatter.ts` for consistent log output across the system.
17
+
18
+ ## [0.1.19] - 2025-12-22
19
+
20
+ ### Added
21
+ - **CLI Help Improvements**: Added missing `setup` command and updated `clean` command description to include `tasks`.
22
+ - **README Updates**: Synchronized command reference table with CLI help descriptions and added examples for `logs`, `resume`, and `doctor`.
23
+
8
24
  ## [0.1.16] - 2025-12-22
9
25
 
10
26
  ### Fixed
package/README.md CHANGED
@@ -70,6 +70,23 @@ CursorFlow provides built-in task templates:
70
70
  | `--preset merge` | merge → test | Integration lanes (auto-applied with `--depends-on`) |
71
71
  | *(none)* | implement | Quick single task |
72
72
 
73
+ ### Using External Templates
74
+
75
+ You can use templates from a local file, a remote URL, or a built-in name:
76
+
77
+ ```bash
78
+ # Using a built-in template name
79
+ cursorflow prepare Feature --template basic
80
+
81
+ # Using a local template file
82
+ cursorflow prepare Custom --template ./my-template.json
83
+
84
+ # Using a remote template URL
85
+ cursorflow prepare Remote --template https://raw.githubusercontent.com/user/repo/main/template.json
86
+ ```
87
+
88
+ Templates support `{{featureName}}`, `{{laneNumber}}`, and `{{devPort}}` placeholders.
89
+
73
90
  ```bash
74
91
  # Complex: Creates plan document that subsequent tasks reference
75
92
  cursorflow prepare Feature --preset complex --prompt "Build user dashboard"
@@ -160,13 +177,14 @@ cursorflow doctor --tasks-dir _cursorflow/tasks/my-feature
160
177
  | Command | Description |
161
178
  |---------|-------------|
162
179
  | `cursorflow init` | Initialize CursorFlow in project |
163
- | `cursorflow prepare` | Generate task files (with presets) |
164
- | `cursorflow doctor` | Validate environment and tasks |
165
- | `cursorflow run` | Execute task orchestration |
166
- | `cursorflow monitor` | Interactive dashboard |
167
- | `cursorflow resume` | Resume interrupted lane |
168
- | `cursorflow clean` | Clean branches/worktrees |
169
- | `cursorflow signal` | Send message to running agent |
180
+ | `cursorflow setup` | Install Cursor IDE commands |
181
+ | `cursorflow prepare` | Prepare task directory and JSON files |
182
+ | `cursorflow run` | Run orchestration (DAG-based) |
183
+ | `cursorflow monitor` | Interactive lane dashboard |
184
+ | `cursorflow clean` | Clean branches/worktrees/logs/tasks |
185
+ | `cursorflow resume` | Resume lane(s) - use --all for batch resume |
186
+ | `cursorflow doctor` | Check environment and preflight |
187
+ | `cursorflow signal` | Directly intervene in a running lane |
170
188
  | `cursorflow models` | List available AI models |
171
189
  | `cursorflow logs` | View, export, and follow logs |
172
190
 
package/dist/cli/clean.js CHANGED
@@ -42,6 +42,7 @@ const path = __importStar(require("path"));
42
42
  const logger = __importStar(require("../utils/logger"));
43
43
  const git = __importStar(require("../utils/git"));
44
44
  const config_1 = require("../utils/config");
45
+ const path_1 = require("../utils/path");
45
46
  function printHelp() {
46
47
  console.log(`
47
48
  Usage: cursorflow clean <type> [options]
@@ -120,7 +121,7 @@ async function clean(args) {
120
121
  async function cleanWorktrees(config, repoRoot, options) {
121
122
  logger.info('\nChecking worktrees...');
122
123
  const worktrees = git.listWorktrees(repoRoot);
123
- const worktreeRoot = path.join(repoRoot, config.worktreeRoot || '_cursorflow/worktrees');
124
+ const worktreeRoot = (0, path_1.safeJoin)(repoRoot, config.worktreeRoot || '_cursorflow/worktrees');
124
125
  let toRemove = worktrees.filter(wt => {
125
126
  // Skip main worktree
126
127
  if (wt.path === repoRoot)
@@ -232,9 +233,9 @@ async function cleanLogs(config, options) {
232
233
  const entries = fs.readdirSync(logsDir, { withFileTypes: true });
233
234
  let items = entries.map(entry => ({
234
235
  name: entry.name,
235
- path: path.join(logsDir, entry.name),
236
+ path: (0, path_1.safeJoin)(logsDir, entry.name),
236
237
  isDir: entry.isDirectory(),
237
- mtime: getModTime(path.join(logsDir, entry.name))
238
+ mtime: getModTime((0, path_1.safeJoin)(logsDir, entry.name))
238
239
  }));
239
240
  if (items.length <= 1) {
240
241
  logger.info(' Only one or no log entries found, nothing to clean.');
@@ -292,9 +293,9 @@ async function cleanTasks(config, options) {
292
293
  .filter(entry => entry.name !== 'example')
293
294
  .map(entry => ({
294
295
  name: entry.name,
295
- path: path.join(tasksDir, entry.name),
296
+ path: (0, path_1.safeJoin)(tasksDir, entry.name),
296
297
  isDir: entry.isDirectory(),
297
- mtime: getModTime(path.join(tasksDir, entry.name))
298
+ mtime: getModTime((0, path_1.safeJoin)(tasksDir, entry.name))
298
299
  }));
299
300
  if (items.length <= 1) {
300
301
  logger.info(' Only one or no user task entries found, nothing to clean.');
@@ -330,7 +331,7 @@ async function cleanTasks(config, options) {
330
331
  for (const entry of entries) {
331
332
  if (entry.name === 'example')
332
333
  continue;
333
- const itemPath = path.join(tasksDir, entry.name);
334
+ const itemPath = (0, path_1.safeJoin)(tasksDir, entry.name);
334
335
  logger.info(` Removing task: ${entry.name}...`);
335
336
  fs.rmSync(itemPath, { recursive: true, force: true });
336
337
  }
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/cli/clean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/cli/clean.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -65,10 +65,11 @@ function printHelp() {
65
65
 
66
66
  \x1b[1mCOMMANDS\x1b[0m
67
67
  \x1b[33minit\x1b[0m [options] Initialize CursorFlow in project
68
+ \x1b[33msetup\x1b[0m [options] Install Cursor IDE commands
68
69
  \x1b[33mprepare\x1b[0m <feature> [opts] Prepare task directory and JSON files
69
70
  \x1b[33mrun\x1b[0m <tasks-dir> [options] Run orchestration (DAG-based)
70
71
  \x1b[33mmonitor\x1b[0m [run-dir] [options] \x1b[36mInteractive\x1b[0m lane dashboard
71
- \x1b[33mclean\x1b[0m <type> [options] Clean branches/worktrees/logs
72
+ \x1b[33mclean\x1b[0m <type> [options] Clean branches/worktrees/logs/tasks
72
73
  \x1b[33mresume\x1b[0m [lane] [options] Resume lane(s) - use --all for batch resume
73
74
  \x1b[33mdoctor\x1b[0m [options] Check environment and preflight
74
75
  \x1b[33msignal\x1b[0m <lane> <msg> Directly intervene in a running lane
@@ -85,6 +86,9 @@ function printHelp() {
85
86
  $ \x1b[32mcursorflow prepare NewFeature --lanes 3\x1b[0m
86
87
  $ \x1b[32mcursorflow run _cursorflow/tasks/MyFeature/\x1b[0m
87
88
  $ \x1b[32mcursorflow monitor latest\x1b[0m
89
+ $ \x1b[32mcursorflow logs --all --follow\x1b[0m
90
+ $ \x1b[32mcursorflow resume --all\x1b[0m
91
+ $ \x1b[32mcursorflow doctor\x1b[0m
88
92
  $ \x1b[32mcursorflow models\x1b[0m
89
93
 
90
94
  \x1b[1mDOCUMENTATION\x1b[0m
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/dist/cli/init.js CHANGED
@@ -42,6 +42,7 @@ const path = __importStar(require("path"));
42
42
  const logger = __importStar(require("../utils/logger"));
43
43
  const config_1 = require("../utils/config");
44
44
  const setup_commands_1 = require("./setup-commands");
45
+ const path_1 = require("../utils/path");
45
46
  function parseArgs(args) {
46
47
  const options = {
47
48
  example: false,
@@ -103,8 +104,8 @@ Examples:
103
104
  `);
104
105
  }
105
106
  function createDirectories(projectRoot, config) {
106
- const tasksDir = path.join(projectRoot, config.tasksDir);
107
- const logsDir = path.join(projectRoot, config.logsDir);
107
+ const tasksDir = (0, path_1.safeJoin)(projectRoot, config.tasksDir);
108
+ const logsDir = (0, path_1.safeJoin)(projectRoot, config.logsDir);
108
109
  if (!fs.existsSync(tasksDir)) {
109
110
  fs.mkdirSync(tasksDir, { recursive: true });
110
111
  logger.success(`Created directory: ${config.tasksDir}`);
@@ -121,7 +122,7 @@ function createDirectories(projectRoot, config) {
121
122
  }
122
123
  }
123
124
  function createExampleTasks(projectRoot, config) {
124
- const exampleDir = path.join(projectRoot, config.tasksDir, 'example');
125
+ const exampleDir = (0, path_1.safeJoin)(projectRoot, config.tasksDir, 'example');
125
126
  if (!fs.existsSync(exampleDir)) {
126
127
  fs.mkdirSync(exampleDir, { recursive: true });
127
128
  }
@@ -149,11 +150,11 @@ Create a simple hello.txt file with a greeting message.
149
150
  }
150
151
  ]
151
152
  };
152
- const taskPath = path.join(exampleDir, '01-hello.json');
153
+ const taskPath = (0, path_1.safeJoin)(exampleDir, '01-hello.json');
153
154
  fs.writeFileSync(taskPath, JSON.stringify(exampleTask, null, 2) + '\n', 'utf8');
154
155
  logger.success(`Created example task: ${path.relative(projectRoot, taskPath)}`);
155
156
  // Create README
156
- const readmePath = path.join(exampleDir, 'README.md');
157
+ const readmePath = (0, path_1.safeJoin)(exampleDir, 'README.md');
157
158
  const readme = `# Example Task
158
159
 
159
160
  This is an example CursorFlow task to help you get started.
@@ -183,7 +184,7 @@ cursorflow run ${config.tasksDir}/example/
183
184
  * Add _cursorflow to .gitignore
184
185
  */
185
186
  function updateGitignore(projectRoot) {
186
- const gitignorePath = path.join(projectRoot, '.gitignore');
187
+ const gitignorePath = (0, path_1.safeJoin)(projectRoot, '.gitignore');
187
188
  const entry = '_cursorflow/';
188
189
  // Try to read existing .gitignore (avoid TOCTOU by reading directly)
189
190
  let content;
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,wDAA0C;AAC1C,4CAAyF;AACzF,qDAAiD;AACjD,wCAAyC;AAUzC,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAgB;QAC3B,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,IAAI;QAClB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI;KAChB,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,WAAW;gBACd,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,KAAK,iBAAiB;gBACpB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC5B,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;gBAC7B,MAAM;YACR,KAAK,eAAe;gBAClB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;gBAC1B,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR,KAAK,gBAAgB;gBACnB,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC1B,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;GAmBX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB,EAAE,MAAwB;IACtE,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,sBAAsB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,sBAAsB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB,EAAE,MAAwB;IACvE,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAErE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,uCAAuC;QACnD,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,qBAAqB;QACnC,QAAQ,EAAE,cAAc;QACxB,YAAY,EAAE,KAAK;QACnB,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE;;;;;;;;;CASf;aACM;SACF;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IAEhF,MAAM,CAAC,OAAO,CAAC,yBAAyB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEhF,gBAAgB;IAChB,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG;;;;;;;iBAOA,MAAM,CAAC,QAAQ;;;;;;;;;;;;;;CAc/B,CAAC;IAEA,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,WAAmB;IAC1C,MAAM,aAAa,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,cAAc,CAAC;IAE7B,qEAAqE;IACrE,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,6CAA6C;YAC7C,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,KAAK,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACvD,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,4BAA4B;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,OAAO,KAAK,aAAa;YACzB,OAAO,KAAK,cAAc;YAC1B,OAAO,KAAK,cAAc;YAC1B,OAAO,KAAK,eAAe,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,YAAY;IACZ,IAAI,UAAU,GAAG,OAAO,CAAC;IAEzB,2CAA2C;IAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,UAAU,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,+BAA+B;IAC/B,UAAU,IAAI,mBAAmB,KAAK,IAAI,CAAC;IAE3C,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAc;IAChC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,IAAA,wBAAe,GAAE,CAAC;IAEtC,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAE5C,wBAAwB;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAE/C,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,IAAA,4BAAmB,EAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAqB,OAAO,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAED,wBAAwB;IACxB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAC5C,iBAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEvC,uBAAuB;IACvB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,eAAe,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,gCAAgC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,IAAA,8BAAa,EAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa;IACb,MAAM,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAEzD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IAEpF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,CAAC,QAAQ,kBAAkB,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAE1F,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,iBAAS,IAAI,CAAC"}
package/dist/cli/logs.js CHANGED
@@ -39,7 +39,9 @@ const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  const logger = __importStar(require("../utils/logger"));
41
41
  const config_1 = require("../utils/config");
42
+ const path_1 = require("../utils/path");
42
43
  const enhanced_logger_1 = require("../utils/enhanced-logger");
44
+ const log_formatter_1 = require("../utils/log-formatter");
43
45
  /**
44
46
  * Escape special regex characters to prevent regex injection
45
47
  */
@@ -120,15 +122,15 @@ function parseArgs(args) {
120
122
  * Find the latest run directory
121
123
  */
122
124
  function findLatestRunDir(logsDir) {
123
- const runsDir = path.join(logsDir, 'runs');
125
+ const runsDir = (0, path_1.safeJoin)(logsDir, 'runs');
124
126
  if (!fs.existsSync(runsDir))
125
127
  return null;
126
128
  const runs = fs.readdirSync(runsDir)
127
129
  .filter(d => d.startsWith('run-'))
128
130
  .map(d => ({
129
131
  name: d,
130
- path: path.join(runsDir, d),
131
- mtime: fs.statSync(path.join(runsDir, d)).mtime.getTime()
132
+ path: (0, path_1.safeJoin)(runsDir, d),
133
+ mtime: fs.statSync((0, path_1.safeJoin)(runsDir, d)).mtime.getTime()
132
134
  }))
133
135
  .sort((a, b) => b.mtime - a.mtime);
134
136
  return runs.length > 0 ? runs[0].path : null;
@@ -137,20 +139,20 @@ function findLatestRunDir(logsDir) {
137
139
  * List lanes in a run directory
138
140
  */
139
141
  function listLanes(runDir) {
140
- const lanesDir = path.join(runDir, 'lanes');
142
+ const lanesDir = (0, path_1.safeJoin)(runDir, 'lanes');
141
143
  if (!fs.existsSync(lanesDir))
142
144
  return [];
143
145
  return fs.readdirSync(lanesDir)
144
- .filter(d => fs.statSync(path.join(lanesDir, d)).isDirectory());
146
+ .filter(d => fs.statSync((0, path_1.safeJoin)(lanesDir, d)).isDirectory());
145
147
  }
146
148
  /**
147
149
  * Read and display text logs
148
150
  */
149
151
  function displayTextLogs(laneDir, options) {
150
152
  let logFile;
151
- const readableLog = path.join(laneDir, 'terminal-readable.log');
152
- const rawLog = path.join(laneDir, 'terminal-raw.log');
153
- const cleanLog = path.join(laneDir, 'terminal.log');
153
+ const readableLog = (0, path_1.safeJoin)(laneDir, 'terminal-readable.log');
154
+ const rawLog = (0, path_1.safeJoin)(laneDir, 'terminal-raw.log');
155
+ const cleanLog = (0, path_1.safeJoin)(laneDir, 'terminal.log');
154
156
  if (options.raw) {
155
157
  logFile = rawLog;
156
158
  }
@@ -170,10 +172,10 @@ function displayTextLogs(laneDir, options) {
170
172
  }
171
173
  let content = fs.readFileSync(logFile, 'utf8');
172
174
  let lines = content.split('\n');
173
- // Apply filter (escape to prevent regex injection)
175
+ // Apply filter (case-insensitive string match to avoid ReDoS)
174
176
  if (options.filter) {
175
- const regex = new RegExp(escapeRegex(options.filter), 'i');
176
- lines = lines.filter(line => regex.test(line));
177
+ const filterLower = options.filter.toLowerCase();
178
+ lines = lines.filter(line => line.toLowerCase().includes(filterLower));
177
179
  }
178
180
  // Apply tail
179
181
  if (options.tail && lines.length > options.tail) {
@@ -189,7 +191,7 @@ function displayTextLogs(laneDir, options) {
189
191
  * Read and display JSON logs
190
192
  */
191
193
  function displayJsonLogs(laneDir, options) {
192
- const logFile = path.join(laneDir, 'terminal.jsonl');
194
+ const logFile = (0, path_1.safeJoin)(laneDir, 'terminal.jsonl');
193
195
  if (!fs.existsSync(logFile)) {
194
196
  console.log('No JSON log file found.');
195
197
  return;
@@ -199,10 +201,11 @@ function displayJsonLogs(laneDir, options) {
199
201
  if (options.level) {
200
202
  entries = entries.filter(e => e.level === options.level);
201
203
  }
202
- // Apply regex filter (escape to prevent regex injection)
204
+ // Apply filter (case-insensitive string match to avoid ReDoS)
203
205
  if (options.filter) {
204
- const regex = new RegExp(escapeRegex(options.filter), 'i');
205
- entries = entries.filter(e => regex.test(e.message) || regex.test(e.task || ''));
206
+ const filterLower = options.filter.toLowerCase();
207
+ entries = entries.filter(e => e.message.toLowerCase().includes(filterLower) ||
208
+ (e.task && e.task.toLowerCase().includes(filterLower)));
206
209
  }
207
210
  // Apply tail
208
211
  if (options.tail && entries.length > options.tail) {
@@ -216,7 +219,8 @@ function displayJsonLogs(laneDir, options) {
216
219
  for (const entry of entries) {
217
220
  const levelColor = getLevelColor(entry.level);
218
221
  const ts = new Date(entry.timestamp).toLocaleTimeString();
219
- console.log(`${levelColor}[${ts}] [${entry.level.toUpperCase().padEnd(6)}]${logger.COLORS.reset} ${entry.message}`);
222
+ const formattedMsg = (0, log_formatter_1.formatPotentialJsonMessage)(entry.message);
223
+ console.log(`${levelColor}[${ts}] [${entry.level.toUpperCase().padEnd(6)}]${logger.COLORS.reset} ${formattedMsg}`);
220
224
  }
221
225
  }
222
226
  }
@@ -264,8 +268,8 @@ function readAllLaneLogs(runDir) {
264
268
  const lanes = listLanes(runDir);
265
269
  const allEntries = [];
266
270
  lanes.forEach((laneName, index) => {
267
- const laneDir = path.join(runDir, 'lanes', laneName);
268
- const jsonLogPath = path.join(laneDir, 'terminal.jsonl');
271
+ const laneDir = (0, path_1.safeJoin)(runDir, 'lanes', laneName);
272
+ const jsonLogPath = (0, path_1.safeJoin)(laneDir, 'terminal.jsonl');
269
273
  if (fs.existsSync(jsonLogPath)) {
270
274
  const entries = (0, enhanced_logger_1.readJsonLog)(jsonLogPath);
271
275
  const laneColor = getLaneColor(laneName, index);
@@ -299,12 +303,12 @@ function displayMergedLogs(runDir, options) {
299
303
  if (options.level) {
300
304
  entries = entries.filter(e => e.level === options.level);
301
305
  }
302
- // Apply regex filter (escape to prevent regex injection)
306
+ // Apply filter (case-insensitive string match to avoid ReDoS)
303
307
  if (options.filter) {
304
- const regex = new RegExp(escapeRegex(options.filter), 'i');
305
- entries = entries.filter(e => regex.test(e.message) ||
306
- regex.test(e.task || '') ||
307
- regex.test(e.laneName));
308
+ const filterLower = options.filter.toLowerCase();
309
+ entries = entries.filter(e => e.message.toLowerCase().includes(filterLower) ||
310
+ (e.task && e.task.toLowerCase().includes(filterLower)) ||
311
+ e.laneName.toLowerCase().includes(filterLower));
308
312
  }
309
313
  // Apply tail
310
314
  if (options.tail && entries.length > options.tail) {
@@ -343,7 +347,8 @@ function displayMergedLogs(runDir, options) {
343
347
  console.log(`${logger.COLORS.gray}[${ts}]${logger.COLORS.reset} ${laneColor}[${lanePad}]${logger.COLORS.reset} ${logger.COLORS.cyan}── Session Ended ──${logger.COLORS.reset}`);
344
348
  continue;
345
349
  }
346
- console.log(`${logger.COLORS.gray}[${ts}]${logger.COLORS.reset} ${laneColor}[${lanePad}]${logger.COLORS.reset} ${levelColor}[${levelPad}]${logger.COLORS.reset} ${entry.message}`);
350
+ const formattedMsg = (0, log_formatter_1.formatPotentialJsonMessage)(entry.message);
351
+ console.log(`${logger.COLORS.gray}[${ts}]${logger.COLORS.reset} ${laneColor}[${lanePad}]${logger.COLORS.reset} ${levelColor}[${levelPad}]${logger.COLORS.reset} ${formattedMsg}`);
347
352
  }
348
353
  console.log(`\n${logger.COLORS.cyan}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${logger.COLORS.reset}`);
349
354
  }
@@ -374,8 +379,8 @@ function followAllLogs(runDir, options) {
374
379
  const checkInterval = setInterval(() => {
375
380
  const newEntries = [];
376
381
  for (const lane of lanes) {
377
- const laneDir = path.join(runDir, 'lanes', lane);
378
- const jsonLogPath = path.join(laneDir, 'terminal.jsonl');
382
+ const laneDir = (0, path_1.safeJoin)(runDir, 'lanes', lane);
383
+ const jsonLogPath = (0, path_1.safeJoin)(laneDir, 'terminal.jsonl');
379
384
  try {
380
385
  // Use statSync directly to avoid TOCTOU race condition
381
386
  const stats = fs.statSync(jsonLogPath);
@@ -417,10 +422,12 @@ function followAllLogs(runDir, options) {
417
422
  // Apply level filter
418
423
  if (options.level && entry.level !== options.level)
419
424
  continue;
420
- // Apply regex filter (escape to prevent regex injection)
425
+ // Apply filter (case-insensitive string match to avoid ReDoS)
421
426
  if (options.filter) {
422
- const regex = new RegExp(escapeRegex(options.filter), 'i');
423
- if (!regex.test(entry.message) && !regex.test(entry.task || '') && !regex.test(entry.laneName)) {
427
+ const filterLower = options.filter.toLowerCase();
428
+ if (!entry.message.toLowerCase().includes(filterLower) &&
429
+ !(entry.task && entry.task.toLowerCase().includes(filterLower)) &&
430
+ !entry.laneName.toLowerCase().includes(filterLower)) {
424
431
  continue;
425
432
  }
426
433
  }
@@ -438,7 +445,8 @@ function followAllLogs(runDir, options) {
438
445
  }
439
446
  continue;
440
447
  }
441
- console.log(`${logger.COLORS.gray}[${ts}]${logger.COLORS.reset} ${entry.laneColor}[${lanePad}]${logger.COLORS.reset} ${levelColor}[${levelPad}]${logger.COLORS.reset} ${entry.message}`);
448
+ const formattedMsg = (0, log_formatter_1.formatPotentialJsonMessage)(entry.message);
449
+ console.log(`${logger.COLORS.gray}[${ts}]${logger.COLORS.reset} ${entry.laneColor}[${lanePad}]${logger.COLORS.reset} ${levelColor}[${levelPad}]${logger.COLORS.reset} ${formattedMsg}`);
442
450
  }
443
451
  }, 100);
444
452
  // Handle Ctrl+C
@@ -564,9 +572,9 @@ function escapeHtml(text) {
564
572
  */
565
573
  function followLogs(laneDir, options) {
566
574
  let logFile;
567
- const readableLog = path.join(laneDir, 'terminal-readable.log');
568
- const rawLog = path.join(laneDir, 'terminal-raw.log');
569
- const cleanLog = path.join(laneDir, 'terminal.log');
575
+ const readableLog = (0, path_1.safeJoin)(laneDir, 'terminal-readable.log');
576
+ const rawLog = (0, path_1.safeJoin)(laneDir, 'terminal-raw.log');
577
+ const cleanLog = (0, path_1.safeJoin)(laneDir, 'terminal.log');
570
578
  if (options.raw) {
571
579
  logFile = rawLog;
572
580
  }
@@ -604,11 +612,11 @@ function followLogs(laneDir, options) {
604
612
  fs.readSync(fd, buffer, 0, buffer.length, lastSize);
605
613
  fs.closeSync(fd);
606
614
  let content = buffer.toString();
607
- // Apply filter (escape to prevent regex injection)
615
+ // Apply filter (case-insensitive string match to avoid ReDoS)
608
616
  if (options.filter) {
609
- const regex = new RegExp(escapeRegex(options.filter), 'i');
617
+ const filterLower = options.filter.toLowerCase();
610
618
  const lines = content.split('\n');
611
- content = lines.filter(line => regex.test(line)).join('\n');
619
+ content = lines.filter(line => line.toLowerCase().includes(filterLower)).join('\n');
612
620
  }
613
621
  // Clean ANSI if needed (unless raw mode)
614
622
  if (!options.raw) {
@@ -644,11 +652,11 @@ function displaySummary(runDir) {
644
652
  return;
645
653
  }
646
654
  for (const lane of lanes) {
647
- const laneDir = path.join(runDir, 'lanes', lane);
648
- const cleanLog = path.join(laneDir, 'terminal.log');
649
- const rawLog = path.join(laneDir, 'terminal-raw.log');
650
- const jsonLog = path.join(laneDir, 'terminal.jsonl');
651
- const readableLog = path.join(laneDir, 'terminal-readable.log');
655
+ const laneDir = (0, path_1.safeJoin)(runDir, 'lanes', lane);
656
+ const cleanLog = (0, path_1.safeJoin)(laneDir, 'terminal.log');
657
+ const rawLog = (0, path_1.safeJoin)(laneDir, 'terminal-raw.log');
658
+ const jsonLog = (0, path_1.safeJoin)(laneDir, 'terminal.jsonl');
659
+ const readableLog = (0, path_1.safeJoin)(laneDir, 'terminal-readable.log');
652
660
  console.log(` ${logger.COLORS.green}📁 ${lane}${logger.COLORS.reset}`);
653
661
  if (fs.existsSync(cleanLog)) {
654
662
  const stats = fs.statSync(cleanLog);
@@ -736,7 +744,7 @@ async function logs(args) {
736
744
  return;
737
745
  }
738
746
  // Find lane directory
739
- const laneDir = path.join(runDir, 'lanes', options.lane);
747
+ const laneDir = (0, path_1.safeJoin)(runDir, 'lanes', options.lane);
740
748
  if (!fs.existsSync(laneDir)) {
741
749
  const lanes = listLanes(runDir);
742
750
  throw new Error(`Lane not found: ${options.lane}\nAvailable lanes: ${lanes.join(', ')}`);