agkan 3.0.1 → 3.2.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 (102) hide show
  1. package/README.ja.md +6 -6
  2. package/README.md +6 -6
  3. package/dist/board/boardRenderer.d.ts +7 -5
  4. package/dist/board/boardRenderer.d.ts.map +1 -1
  5. package/dist/board/boardRenderer.js +17 -59
  6. package/dist/board/boardRenderer.js.map +1 -1
  7. package/dist/board/boardRoutes.d.ts.map +1 -1
  8. package/dist/board/boardRoutes.js +115 -10
  9. package/dist/board/boardRoutes.js.map +1 -1
  10. package/dist/board/client/board.js +61 -7
  11. package/dist/cli/commands/task/add.d.ts.map +1 -1
  12. package/dist/cli/commands/task/add.js +3 -3
  13. package/dist/cli/commands/task/add.js.map +1 -1
  14. package/dist/cli/commands/task/archive.d.ts +6 -0
  15. package/dist/cli/commands/task/archive.d.ts.map +1 -0
  16. package/dist/cli/commands/task/archive.js +120 -0
  17. package/dist/cli/commands/task/archive.js.map +1 -0
  18. package/dist/cli/commands/task/copy.js +2 -2
  19. package/dist/cli/commands/task/copy.js.map +1 -1
  20. package/dist/cli/commands/task/find.js +2 -2
  21. package/dist/cli/commands/task/find.js.map +1 -1
  22. package/dist/cli/commands/task/get.d.ts.map +1 -1
  23. package/dist/cli/commands/task/get.js +4 -0
  24. package/dist/cli/commands/task/get.js.map +1 -1
  25. package/dist/cli/commands/task/list.d.ts.map +1 -1
  26. package/dist/cli/commands/task/list.js +4 -2
  27. package/dist/cli/commands/task/list.js.map +1 -1
  28. package/dist/cli/commands/task/purge.d.ts.map +1 -1
  29. package/dist/cli/commands/task/purge.js +2 -9
  30. package/dist/cli/commands/task/purge.js.map +1 -1
  31. package/dist/cli/commands/task/unarchive.d.ts +6 -0
  32. package/dist/cli/commands/task/unarchive.d.ts.map +1 -0
  33. package/dist/cli/commands/task/unarchive.js +86 -0
  34. package/dist/cli/commands/task/unarchive.js.map +1 -0
  35. package/dist/cli/index.js +4 -0
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/db/adapters/sqlite-storage-backend.d.ts.map +1 -1
  38. package/dist/db/adapters/sqlite-storage-backend.js +29 -3
  39. package/dist/db/adapters/sqlite-storage-backend.js.map +1 -1
  40. package/dist/db/config.d.ts +5 -0
  41. package/dist/db/config.d.ts.map +1 -1
  42. package/dist/db/config.js +12 -1
  43. package/dist/db/config.js.map +1 -1
  44. package/dist/db/migrations/20260412000000_add_archive_status.d.ts +3 -0
  45. package/dist/db/migrations/20260412000000_add_archive_status.d.ts.map +1 -0
  46. package/dist/db/migrations/20260412000000_add_archive_status.js +10 -0
  47. package/dist/db/migrations/20260412000000_add_archive_status.js.map +1 -0
  48. package/dist/db/migrations/20260412000000_add_is_archived_to_tasks.d.ts +3 -0
  49. package/dist/db/migrations/20260412000000_add_is_archived_to_tasks.d.ts.map +1 -0
  50. package/dist/db/migrations/20260412000000_add_is_archived_to_tasks.js +10 -0
  51. package/dist/db/migrations/20260412000000_add_is_archived_to_tasks.js.map +1 -0
  52. package/dist/db/migrations/index.d.ts.map +1 -1
  53. package/dist/db/migrations/index.js +6 -0
  54. package/dist/db/migrations/index.js.map +1 -1
  55. package/dist/db/reset.d.ts +3 -2
  56. package/dist/db/reset.d.ts.map +1 -1
  57. package/dist/db/reset.js +22 -21
  58. package/dist/db/reset.js.map +1 -1
  59. package/dist/db/types/repository.d.ts +6 -0
  60. package/dist/db/types/repository.d.ts.map +1 -1
  61. package/dist/models/Task.d.ts +1 -0
  62. package/dist/models/Task.d.ts.map +1 -1
  63. package/dist/services/CodexProcessService.d.ts +44 -0
  64. package/dist/services/CodexProcessService.d.ts.map +1 -0
  65. package/dist/services/CodexProcessService.js +257 -0
  66. package/dist/services/CodexProcessService.js.map +1 -0
  67. package/dist/services/FileService.d.ts.map +1 -1
  68. package/dist/services/FileService.js +3 -1
  69. package/dist/services/FileService.js.map +1 -1
  70. package/dist/services/IProcessService.d.ts +44 -0
  71. package/dist/services/IProcessService.d.ts.map +1 -0
  72. package/dist/services/IProcessService.js +3 -0
  73. package/dist/services/IProcessService.js.map +1 -0
  74. package/dist/services/ProcessServiceFactory.d.ts +18 -0
  75. package/dist/services/ProcessServiceFactory.d.ts.map +1 -0
  76. package/dist/services/ProcessServiceFactory.js +27 -0
  77. package/dist/services/ProcessServiceFactory.js.map +1 -0
  78. package/dist/services/TaskService.d.ts +17 -1
  79. package/dist/services/TaskService.d.ts.map +1 -1
  80. package/dist/services/TaskService.js +40 -7
  81. package/dist/services/TaskService.js.map +1 -1
  82. package/dist/utils/date.d.ts +10 -0
  83. package/dist/utils/date.d.ts.map +1 -0
  84. package/dist/utils/date.js +17 -0
  85. package/dist/utils/date.js.map +1 -0
  86. package/package.json +3 -3
  87. package/dist/board/boardScript.d.ts +0 -2
  88. package/dist/board/boardScript.d.ts.map +0 -1
  89. package/dist/board/boardScript.js +0 -1202
  90. package/dist/board/boardScript.js.map +0 -1
  91. package/dist/cli/utils/response-formatter.d.ts +0 -19
  92. package/dist/cli/utils/response-formatter.d.ts.map +0 -1
  93. package/dist/cli/utils/response-formatter.js +0 -43
  94. package/dist/cli/utils/response-formatter.js.map +0 -1
  95. package/dist/services/ProcessService.d.ts +0 -54
  96. package/dist/services/ProcessService.d.ts.map +0 -1
  97. package/dist/services/ProcessService.js +0 -147
  98. package/dist/services/ProcessService.js.map +0 -1
  99. package/dist/services/TmuxService.d.ts +0 -2
  100. package/dist/services/TmuxService.d.ts.map +0 -1
  101. package/dist/services/TmuxService.js +0 -7
  102. package/dist/services/TmuxService.js.map +0 -1
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.migrations = void 0;
4
4
  const _20260328000000_initial_schema_1 = require("./20260328000000_initial_schema");
5
5
  const _20260329000000_add_session_id_to_task_run_logs_1 = require("./20260329000000_add_session_id_to_task_run_logs");
6
+ const _20260412000000_add_is_archived_to_tasks_1 = require("./20260412000000_add_is_archived_to_tasks");
6
7
  exports.migrations = [
7
8
  {
8
9
  version: '20260328000000',
@@ -14,5 +15,10 @@ exports.migrations = [
14
15
  description: 'add_session_id_to_task_run_logs',
15
16
  up: _20260329000000_add_session_id_to_task_run_logs_1.up,
16
17
  },
18
+ {
19
+ version: '20260412000000',
20
+ description: 'add_is_archived_to_tasks',
21
+ up: _20260412000000_add_is_archived_to_tasks_1.up,
22
+ },
17
23
  ];
18
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":";;;AAGA,oFAAsE;AACtE,sHAAsF;AAEzE,QAAA,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,gBAAgB;QAC7B,EAAE,EAAE,mCAAa;KAClB;IACD;QACE,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,iCAAiC;QAC9C,EAAE,EAAE,oDAAY;KACjB;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":";;;AAGA,oFAAsE;AACtE,sHAAsF;AACtF,wGAAgF;AAEnE,QAAA,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,gBAAgB;QAC7B,EAAE,EAAE,mCAAa;KAClB;IACD;QACE,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,iCAAiC;QAC9C,EAAE,EAAE,oDAAY;KACjB;IACD;QACE,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,0BAA0B;QACvC,EAAE,EAAE,6CAAa;KAClB;CACF,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Reset the database (delete and recreate)
3
- * Ensures a clean state by calling before test execution
2
+ * Reset the database by deleting all rows in every data table.
3
+ * Reuses the existing connection to avoid file I/O overhead.
4
+ * Ensures a clean state by calling before test execution.
4
5
  *
5
6
  * @throws Error if called outside of test mode (NODE_ENV=test)
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/db/reset.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,IAAI,CA2BpC"}
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../src/db/reset.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,IAAI,CA6BpC"}
package/dist/db/reset.js CHANGED
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.resetDatabase = resetDatabase;
7
- const fs_1 = __importDefault(require("fs"));
8
4
  const config_1 = require("./config");
9
5
  const connection_1 = require("./connection");
10
6
  /**
11
- * Reset the database (delete and recreate)
12
- * Ensures a clean state by calling before test execution
7
+ * Reset the database by deleting all rows in every data table.
8
+ * Reuses the existing connection to avoid file I/O overhead.
9
+ * Ensures a clean state by calling before test execution.
13
10
  *
14
11
  * @throws Error if called outside of test mode (NODE_ENV=test)
15
12
  */
@@ -19,20 +16,24 @@ function resetDatabase() {
19
16
  throw new Error('resetDatabase() must only be called in test mode (NODE_ENV=test). ' +
20
17
  'Calling this outside test mode risks deleting the production database.');
21
18
  }
22
- // Close existing connection
23
- connection_1.DatabaseConnection.close();
24
- // Database file path
25
- const dbPath = (0, config_1.resolveDatabasePath)();
26
- // Delete database file and auxiliary SQLite files (journal, WAL, SHM).
27
- // Orphaned auxiliary files from a previous interrupted write can cause
28
- // SQLite to attempt journal recovery on the newly-created file, leading
29
- // to "attempt to write a readonly database" or "disk I/O error".
30
- for (const path of [dbPath, `${dbPath}-journal`, `${dbPath}-wal`, `${dbPath}-shm`]) {
31
- if (fs_1.default.existsSync(path)) {
32
- fs_1.default.unlinkSync(path);
33
- }
34
- }
35
- // Initialize new database connection (schema is automatically created)
36
- connection_1.DatabaseConnection.getInstance();
19
+ // Get or lazily initialize the database connection.
20
+ // Avoids closing/reopening the connection and eliminates file I/O.
21
+ const db = connection_1.DatabaseConnection.getRawDatabase();
22
+ // Clear all data tables without file I/O.
23
+ // Disabling foreign keys allows deleting in any order without constraint
24
+ // violations. Clearing sqlite_sequence resets AUTOINCREMENT counters so
25
+ // that IDs start from 1, consistent with a freshly created database.
26
+ db.exec(`
27
+ PRAGMA foreign_keys = OFF;
28
+ DELETE FROM task_run_logs;
29
+ DELETE FROM task_comments;
30
+ DELETE FROM task_metadata;
31
+ DELETE FROM task_tags;
32
+ DELETE FROM task_blocks;
33
+ DELETE FROM tasks;
34
+ DELETE FROM tags;
35
+ DELETE FROM sqlite_sequence;
36
+ PRAGMA foreign_keys = ON;
37
+ `);
37
38
  }
38
39
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/db/reset.ts"],"names":[],"mappings":";;;;;AAUA,sCA2BC;AArCD,4CAAoB;AACpB,qCAA2D;AAC3D,6CAAkD;AAElD;;;;;GAKG;AACH,SAAgB,aAAa;IAC3B,uDAAuD;IACvD,IAAI,CAAC,IAAA,mBAAU,GAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,oEAAoE;YAClE,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,+BAAkB,CAAC,KAAK,EAAE,CAAC;IAE3B,qBAAqB;IACrB,MAAM,MAAM,GAAG,IAAA,4BAAmB,GAAE,CAAC;IAErC,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,iEAAiE;IACjE,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,UAAU,EAAE,GAAG,MAAM,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC;QACnF,IAAI,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,YAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,+BAAkB,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../src/db/reset.ts"],"names":[],"mappings":";;AAUA,sCA6BC;AAvCD,qCAAsC;AACtC,6CAAkD;AAElD;;;;;;GAMG;AACH,SAAgB,aAAa;IAC3B,uDAAuD;IACvD,IAAI,CAAC,IAAA,mBAAU,GAAE,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CACb,oEAAoE;YAClE,wEAAwE,CAC3E,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,mEAAmE;IACnE,MAAM,EAAE,GAAG,+BAAkB,CAAC,cAAc,EAAE,CAAC;IAE/C,0CAA0C;IAC1C,yEAAyE;IACzE,wEAAwE;IACxE,qEAAqE;IACrE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;GAWP,CAAC,CAAC;AACL,CAAC"}
@@ -20,6 +20,8 @@ export interface TaskFilter {
20
20
  tagIds?: number[];
21
21
  priority?: Priority | Priority[];
22
22
  search?: string;
23
+ /** If true, include archived tasks (is_archived=1). Default: false (exclude archived) */
24
+ includeArchived?: boolean;
23
25
  }
24
26
  /** Sort options for task listing */
25
27
  export interface TaskSortOptions {
@@ -54,6 +56,10 @@ export interface TaskRepository {
54
56
  findForPurge(beforeDate: string, statuses: TaskStatus[]): Task[];
55
57
  /** Delete multiple tasks by IDs */
56
58
  deleteMany(ids: number[]): number;
59
+ /** Set is_archived=1 on multiple tasks by IDs */
60
+ archiveMany(ids: number[]): number;
61
+ /** Set is_archived=0 on multiple tasks by IDs */
62
+ unarchiveMany(ids: number[]): number;
57
63
  }
58
64
  /**
59
65
  * Repository for Tag entity data access
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/db/types/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../../src/db/types/repository.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export interface Task {
22
22
  created_at: string;
23
23
  updated_at: string;
24
24
  parent_id: number | null;
25
+ is_archived: 0 | 1;
25
26
  }
26
27
  /**
27
28
  * Task creation input type
@@ -1 +1 @@
1
- {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/models/Task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvG;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../src/models/Task.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEvG;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
@@ -0,0 +1,44 @@
1
+ import type { StorageBackend } from '../db/types/repository';
2
+ import type { IProcessService } from './IProcessService';
3
+ import type { RunLog, SubscribeCallback } from './ClaudeProcessService';
4
+ /**
5
+ * CodexProcessService
6
+ * Manages codex CLI processes running in JSON mode.
7
+ * Parses JSONL output from codex and converts to OutputEvent format.
8
+ * Implements IProcessService for use with ProcessServiceFactory.
9
+ */
10
+ export declare class CodexProcessService implements IProcessService {
11
+ private processes;
12
+ private db;
13
+ constructor(db?: StorageBackend | null);
14
+ /**
15
+ * Start a codex process for the given taskId and prompt.
16
+ * Prevents duplicate processes for the same taskId.
17
+ */
18
+ startProcess(taskId: number, prompt: string, command?: string): void;
19
+ /**
20
+ * Stop the process for the given taskId.
21
+ * Returns true if the process was found and signalled, false otherwise.
22
+ */
23
+ stopProcess(taskId: number): boolean;
24
+ /**
25
+ * List all currently running tasks with their command type.
26
+ */
27
+ listRunningTasks(): {
28
+ taskId: number;
29
+ command: string;
30
+ }[];
31
+ /**
32
+ * Subscribe to output events for a given taskId.
33
+ * If process is running: replay past events and subscribe to future events.
34
+ * If no process but DB available: replay last saved log from DB.
35
+ * Returns an unsubscribe function.
36
+ */
37
+ subscribeOutput(taskId: number, callback: SubscribeCallback): () => void;
38
+ /**
39
+ * Get saved run logs for a task from DB (most recent first, up to 5).
40
+ */
41
+ getRunLogs(taskId: number): RunLog[];
42
+ private _notifySubscribers;
43
+ }
44
+ //# sourceMappingURL=CodexProcessService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexProcessService.d.ts","sourceRoot":"","sources":["../../src/services/CodexProcessService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAe,MAAM,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AA8BrF;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,EAAE,CAAwB;gBAEtB,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI;IAItC;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,IAAI;IA2J3E;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAapC;;OAEG;IACH,gBAAgB,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE;IAIzD;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IA4BxE;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAgBpC,OAAO,CAAC,kBAAkB;CA+B3B"}
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CodexProcessService = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const logger_1 = require("../utils/logger");
6
+ const errors_1 = require("../errors");
7
+ /**
8
+ * CodexProcessService
9
+ * Manages codex CLI processes running in JSON mode.
10
+ * Parses JSONL output from codex and converts to OutputEvent format.
11
+ * Implements IProcessService for use with ProcessServiceFactory.
12
+ */
13
+ class CodexProcessService {
14
+ processes = new Map();
15
+ db;
16
+ constructor(db) {
17
+ this.db = db ?? null;
18
+ }
19
+ /**
20
+ * Start a codex process for the given taskId and prompt.
21
+ * Prevents duplicate processes for the same taskId.
22
+ */
23
+ startProcess(taskId, prompt, command = 'run') {
24
+ if (this.processes.has(taskId)) {
25
+ const existing = this.processes.get(taskId);
26
+ const pid = existing.process.pid;
27
+ const killed = existing.process.killed;
28
+ const exitCode = existing.process.exitCode;
29
+ const signalCode = existing.process.signalCode;
30
+ const aliveMs = Date.now() - existing.startedAt.getTime();
31
+ (0, logger_1.verboseLog)(`[CodexProcessService] startProcess DUPLICATE taskId=${taskId} existing pid=${pid} killed=${killed} exitCode=${exitCode} signalCode=${signalCode} aliveMs=${aliveMs} command=${existing.command}`);
32
+ throw new errors_1.ConflictError(`Process for taskId ${taskId} is already running`);
33
+ }
34
+ (0, logger_1.verboseLog)(`[CodexProcessService] startProcess taskId=${taskId} command=${command}`);
35
+ const child = (0, child_process_1.spawn)('codex', ['exec', '--json', '--dangerously-bypass-approvals-and-sandbox', prompt], {
36
+ cwd: process.cwd(),
37
+ env: process.env,
38
+ stdio: ['ignore', 'pipe', 'pipe'],
39
+ });
40
+ const info = {
41
+ taskId,
42
+ command,
43
+ process: child,
44
+ startedAt: new Date(),
45
+ status: 'running',
46
+ outputBuffer: [],
47
+ processedEvents: [],
48
+ subscribers: new Set(),
49
+ runLogId: null,
50
+ sessionId: null,
51
+ };
52
+ this.processes.set(taskId, info);
53
+ (0, logger_1.verboseLog)(`[CodexProcessService] process added to map taskId=${taskId} total=${this.processes.size}`);
54
+ if (this.db) {
55
+ info.runLogId = this.db.runLogs.create(info.taskId, info.startedAt.toISOString());
56
+ (0, logger_1.verboseLog)(`[CodexProcessService] run log created id=${info.runLogId} taskId=${taskId}`);
57
+ }
58
+ let lineBuffer = '';
59
+ let spawnError = false;
60
+ child.on('error', (err) => {
61
+ spawnError = true;
62
+ const message = err.code === 'ENOENT' ? 'codex CLI not found in PATH' : err.message;
63
+ console.error(`[CodexProcessService] spawn error for taskId=${taskId}: ${message}`, err);
64
+ const errorEvent = { kind: 'error', message };
65
+ info.processedEvents.push(errorEvent);
66
+ info.subscribers.forEach((cb) => cb(errorEvent));
67
+ const doneEvent = { kind: 'done', exitCode: 1 };
68
+ info.subscribers.forEach((cb) => cb(doneEvent));
69
+ if (this.db && info.runLogId) {
70
+ const finishedAt = new Date().toISOString();
71
+ this.db.runLogs.updateFinished(info.runLogId, finishedAt, 1, JSON.stringify(info.processedEvents));
72
+ (0, logger_1.verboseLog)(`[CodexProcessService] run log updated (error) id=${info.runLogId} taskId=${taskId}`);
73
+ }
74
+ if (this.processes.get(taskId) === info) {
75
+ this.processes.delete(taskId);
76
+ (0, logger_1.verboseLog)(`[CodexProcessService] process removed from map (error) taskId=${taskId} total=${this.processes.size}`);
77
+ }
78
+ else {
79
+ (0, logger_1.verboseLog)(`[CodexProcessService] process error skipped map delete (stale entry) taskId=${taskId}`);
80
+ }
81
+ });
82
+ child.stdout?.on('data', (chunk) => {
83
+ lineBuffer += chunk.toString();
84
+ const lines = lineBuffer.split('\n');
85
+ // Keep the last (potentially incomplete) line in the buffer
86
+ lineBuffer = lines.pop() ?? '';
87
+ for (const line of lines) {
88
+ const trimmed = line.trim();
89
+ if (!trimmed)
90
+ continue;
91
+ let parsed;
92
+ try {
93
+ parsed = JSON.parse(trimmed);
94
+ }
95
+ catch {
96
+ // Skip non-JSON lines
97
+ continue;
98
+ }
99
+ info.outputBuffer.push(parsed);
100
+ this._notifySubscribers(info, parsed);
101
+ }
102
+ });
103
+ let stderrBuffer = '';
104
+ child.stderr?.on('data', (chunk) => {
105
+ stderrBuffer += chunk.toString();
106
+ });
107
+ child.on('close', (code) => {
108
+ if (spawnError)
109
+ return;
110
+ // Process any remaining buffered line
111
+ const remaining = lineBuffer.trim();
112
+ if (remaining) {
113
+ try {
114
+ const parsed = JSON.parse(remaining);
115
+ info.outputBuffer.push(parsed);
116
+ this._notifySubscribers(info, parsed);
117
+ }
118
+ catch {
119
+ // Ignore
120
+ }
121
+ }
122
+ if (stderrBuffer) {
123
+ console.error(`[CodexProcessService] stderr for taskId=${taskId}:\n${stderrBuffer}`);
124
+ const errorEvent = { kind: 'error', message: stderrBuffer };
125
+ info.processedEvents.push(errorEvent);
126
+ info.subscribers.forEach((cb) => cb(errorEvent));
127
+ }
128
+ const exitCode = code ?? 0;
129
+ (0, logger_1.verboseLog)(`[CodexProcessService] process close taskId=${taskId} exitCode=${exitCode}`);
130
+ if (exitCode !== 0) {
131
+ console.error(`[CodexProcessService] process exited with code ${exitCode} for taskId=${taskId}`);
132
+ }
133
+ const doneEvent = { kind: 'done', exitCode };
134
+ info.subscribers.forEach((cb) => cb(doneEvent));
135
+ // Finalize log in DB before removing process
136
+ if (this.db && info.runLogId) {
137
+ const finishedAt = new Date().toISOString();
138
+ this.db.runLogs.updateFinished(info.runLogId, finishedAt, exitCode, JSON.stringify(info.processedEvents));
139
+ (0, logger_1.verboseLog)(`[CodexProcessService] run log finalized id=${info.runLogId} taskId=${taskId} exitCode=${exitCode}`);
140
+ // Rotate: keep only latest 5 per task
141
+ const ids = this.db.runLogs.findIdsByTaskId(info.taskId);
142
+ if (ids.length > 5) {
143
+ const toDelete = ids.slice(5);
144
+ this.db.runLogs.deleteMany(toDelete);
145
+ (0, logger_1.verboseLog)(`[CodexProcessService] rotated run logs taskId=${taskId} deleted=${toDelete.length}`);
146
+ }
147
+ }
148
+ if (this.processes.get(taskId) === info) {
149
+ this.processes.delete(taskId);
150
+ (0, logger_1.verboseLog)(`[CodexProcessService] process removed from map (close) taskId=${taskId} total=${this.processes.size}`);
151
+ }
152
+ else {
153
+ (0, logger_1.verboseLog)(`[CodexProcessService] process close skipped map delete (stale entry) taskId=${taskId}`);
154
+ }
155
+ });
156
+ }
157
+ /**
158
+ * Stop the process for the given taskId.
159
+ * Returns true if the process was found and signalled, false otherwise.
160
+ */
161
+ stopProcess(taskId) {
162
+ const info = this.processes.get(taskId);
163
+ if (!info) {
164
+ (0, logger_1.verboseLog)(`[CodexProcessService] stopProcess taskId=${taskId} not found`);
165
+ return false;
166
+ }
167
+ (0, logger_1.verboseLog)(`[CodexProcessService] stopProcess taskId=${taskId} sending SIGTERM`);
168
+ info.process.kill('SIGTERM');
169
+ this.processes.delete(taskId);
170
+ (0, logger_1.verboseLog)(`[CodexProcessService] process removed from map (stop) taskId=${taskId} total=${this.processes.size}`);
171
+ return true;
172
+ }
173
+ /**
174
+ * List all currently running tasks with their command type.
175
+ */
176
+ listRunningTasks() {
177
+ return Array.from(this.processes.values()).map((info) => ({ taskId: info.taskId, command: info.command }));
178
+ }
179
+ /**
180
+ * Subscribe to output events for a given taskId.
181
+ * If process is running: replay past events and subscribe to future events.
182
+ * If no process but DB available: replay last saved log from DB.
183
+ * Returns an unsubscribe function.
184
+ */
185
+ subscribeOutput(taskId, callback) {
186
+ const info = this.processes.get(taskId);
187
+ if (!info) {
188
+ // Try to replay from DB
189
+ if (this.db) {
190
+ const row = this.db.runLogs.findLatestByTaskId(taskId);
191
+ if (row) {
192
+ const events = JSON.parse(row.events);
193
+ events.forEach((evt) => callback(evt));
194
+ callback({ kind: 'done', exitCode: row.exit_code ?? 0 });
195
+ return () => { };
196
+ }
197
+ }
198
+ // No process and no log found — emit error
199
+ callback({ kind: 'error', message: `No running process for taskId ${taskId}` });
200
+ return () => { };
201
+ }
202
+ // Replay past events to the new subscriber before registering
203
+ info.processedEvents.forEach((evt) => callback(evt));
204
+ info.subscribers.add(callback);
205
+ return () => {
206
+ info.subscribers.delete(callback);
207
+ };
208
+ }
209
+ /**
210
+ * Get saved run logs for a task from DB (most recent first, up to 5).
211
+ */
212
+ getRunLogs(taskId) {
213
+ if (!this.db)
214
+ return [];
215
+ const rows = this.db.runLogs.findByTaskId(taskId, 5);
216
+ return rows.map((r) => ({
217
+ id: r.id,
218
+ task_id: r.task_id,
219
+ started_at: r.started_at,
220
+ finished_at: r.finished_at,
221
+ exit_code: r.exit_code,
222
+ session_id: r.session_id,
223
+ events: JSON.parse(r.events),
224
+ }));
225
+ }
226
+ // ---- Private helpers ----
227
+ _notifySubscribers(info, event) {
228
+ // Map Codex events to OutputEvent format
229
+ if (event.type === 'thread.started') {
230
+ // Extract thread_id as session_id
231
+ const threadId = event.thread_id;
232
+ if (threadId && !info.sessionId) {
233
+ info.sessionId = threadId;
234
+ if (this.db && info.runLogId) {
235
+ this.db.runLogs.updateSessionId(info.runLogId, info.sessionId);
236
+ }
237
+ }
238
+ }
239
+ if (event.type === 'item.completed') {
240
+ const itemEvent = event;
241
+ const item = itemEvent.item;
242
+ // Treat agent_message items as text output
243
+ if (item.type === 'agent_message' && item.content) {
244
+ const outputEvent = { kind: 'text', text: String(item.content) };
245
+ info.processedEvents.push(outputEvent);
246
+ info.subscribers.forEach((cb) => cb(outputEvent));
247
+ if (this.db && info.runLogId) {
248
+ this.db.runLogs.updateEvents(info.runLogId, JSON.stringify(info.processedEvents));
249
+ }
250
+ }
251
+ }
252
+ // 'turn.completed' events are buffered but not forwarded as OutputEvents
253
+ // (done/error are sent on process close)
254
+ }
255
+ }
256
+ exports.CodexProcessService = CodexProcessService;
257
+ //# sourceMappingURL=CodexProcessService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexProcessService.js","sourceRoot":"","sources":["../../src/services/CodexProcessService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileService.d.ts","sourceRoot":"","sources":["../../src/services/FileService.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IA2BtF;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAY1C;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAYtC"}
1
+ {"version":3,"file":"FileService.d.ts","sourceRoot":"","sources":["../../src/services/FileService.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,qBAAa,WAAW;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IA4BtF;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAY1C;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAYtC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FileService = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
+ const config_1 = require("../db/config");
9
10
  const security_1 = require("../utils/security");
10
11
  /**
11
12
  * File Service
@@ -27,7 +28,8 @@ class FileService {
27
28
  // Get file name
28
29
  const fileName = path_1.default.basename(sourceFile);
29
30
  // Create destination directory (attachments/<task_id>/)
30
- const attachmentDir = path_1.default.join(process.cwd(), 'attachments', taskId.toString());
31
+ const attachmentsRoot = `attachments${(0, config_1.getWorkerSuffix)()}`;
32
+ const attachmentDir = path_1.default.join(process.cwd(), attachmentsRoot, taskId.toString());
31
33
  fs_1.default.mkdirSync(attachmentDir, { recursive: true });
32
34
  // Generate filename with timestamp
33
35
  const timestamp = Date.now();
@@ -1 +1 @@
1
- {"version":3,"file":"FileService.js","sourceRoot":"","sources":["../../src/services/FileService.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,gDAA+C;AAE/C;;;GAGG;AACH,MAAa,WAAW;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAkB,EAAE,MAAc;QACzC,uBAAuB;QACvB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE3C,wDAAwD;QACxD,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjF,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAExD,YAAY;QACZ,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;SACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,IAAA,qBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;AAtED,kCAsEC"}
1
+ {"version":3,"file":"FileService.js","sourceRoot":"","sources":["../../src/services/FileService.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,yCAA+C;AAC/C,gDAA+C;AAE/C;;;GAGG;AACH,MAAa,WAAW;IACtB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAkB,EAAE,MAAc;QACzC,uBAAuB;QACvB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,gBAAgB;QAChB,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE3C,wDAAwD;QACxD,MAAM,eAAe,GAAG,cAAc,IAAA,wBAAe,GAAE,EAAE,CAAC;QAC1D,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnF,YAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEjD,mCAAmC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAExD,YAAY;QACZ,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEtC,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;SACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,IAAA,qBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,QAAgB;QACzB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF;AAvED,kCAuEC"}
@@ -0,0 +1,44 @@
1
+ import type { OutputEvent, RunLog } from './ClaudeProcessService';
2
+ export type SubscribeCallback = (event: OutputEvent) => void;
3
+ /**
4
+ * IProcessService
5
+ * Common interface for managing LLM processes (Claude, Codex, etc.)
6
+ * Abstracts the details of process spawning, output parsing, and event streaming.
7
+ */
8
+ export interface IProcessService {
9
+ /**
10
+ * Start a process for the given taskId with the provided prompt.
11
+ * @param taskId Unique task identifier
12
+ * @param prompt The input prompt for the LLM
13
+ * @param command Type of command (run, planning, pr, etc.)
14
+ * @throws ConflictError if a process is already running for this taskId
15
+ */
16
+ startProcess(taskId: number, prompt: string, command?: string): void;
17
+ /**
18
+ * Stop the process for the given taskId.
19
+ * @param taskId Unique task identifier
20
+ * @returns true if the process was found and stopped, false if no process was running
21
+ */
22
+ stopProcess(taskId: number): boolean;
23
+ /**
24
+ * List all currently running tasks with their command type.
25
+ */
26
+ listRunningTasks(): {
27
+ taskId: number;
28
+ command: string;
29
+ }[];
30
+ /**
31
+ * Subscribe to output events for a given taskId.
32
+ * If process is running: replays past events and subscribes to future events.
33
+ * If no process but storage available: replays last saved log from storage.
34
+ * @param taskId Unique task identifier
35
+ * @param callback Function called for each output event
36
+ * @returns Unsubscribe function
37
+ */
38
+ subscribeOutput(taskId: number, callback: SubscribeCallback): () => void;
39
+ /**
40
+ * Get saved run logs for a task from storage (most recent first, up to 5).
41
+ */
42
+ getRunLogs(taskId: number): RunLog[];
43
+ }
44
+ //# sourceMappingURL=IProcessService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IProcessService.d.ts","sourceRoot":"","sources":["../../src/services/IProcessService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAGlE,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErE;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAErC;;OAEG;IACH,gBAAgB,IAAI;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAE1D;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;IAEzE;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACtC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IProcessService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IProcessService.js","sourceRoot":"","sources":["../../src/services/IProcessService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { LlmPreference } from '../board/boardConfig';
2
+ import type { StorageBackend } from '../db/types/repository';
3
+ import type { IProcessService } from './IProcessService';
4
+ /**
5
+ * ProcessServiceFactory
6
+ * Creates the appropriate IProcessService implementation based on LlmPreference.
7
+ * Defaults to ClaudeProcessService if llm is invalid or undefined.
8
+ */
9
+ export declare class ProcessServiceFactory {
10
+ /**
11
+ * Create a process service for the given LLM preference.
12
+ * @param llm The LLM preference ('claude' or 'codex')
13
+ * @param db Optional database backend for persisting run logs
14
+ * @returns An IProcessService implementation
15
+ */
16
+ static create(llm: LlmPreference | undefined, db?: StorageBackend | null): IProcessService;
17
+ }
18
+ //# sourceMappingURL=ProcessServiceFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessServiceFactory.d.ts","sourceRoot":"","sources":["../../src/services/ProcessServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIzD;;;;GAIG;AACH,qBAAa,qBAAqB;IAChC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,EAAE,EAAE,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,eAAe;CAO3F"}